diff --git a/.publish/ai/package.json b/.publish/ai/package.json index a016b1b4..a0ed7329 100644 --- a/.publish/ai/package.json +++ b/.publish/ai/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ai", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "Zero-dependency Claude (Anthropic) client for WrNexus apps.", "license": "MIT", diff --git a/.publish/authz/package.json b/.publish/authz/package.json index 2ca0954c..9495e31e 100644 --- a/.publish/authz/package.json +++ b/.publish/authz/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/authz", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/authz — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/cli/package.json b/.publish/cli/package.json index af26cd6f..91f187b5 100644 --- a/.publish/cli/package.json +++ b/.publish/cli/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/cli", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/cli — part of the WrNexus framework.", "license": "MIT", @@ -28,18 +28,18 @@ "wrnexus": "./dist/index.js" }, "dependencies": { - "@wrnexus/core": "^0.4.0", - "@wrnexus/router": "^0.4.0", - "@wrnexus/csr": "^0.4.0", - "@wrnexus/compiler": "^0.4.0", - "@wrnexus/styles": "^0.4.0", - "@wrnexus/dev-server": "^0.4.0", - "@wrnexus/ui": "^0.4.0", - "@wrnexus/validation": "^0.4.0", - "@wrnexus/i18n": "^0.4.0", - "@wrnexus/db": "^0.4.0", - "@wrnexus/plugin": "^0.4.0", - "@wrnexus/syntax": "^0.4.0" + "@wrnexus/core": "^0.5.0", + "@wrnexus/router": "^0.5.0", + "@wrnexus/csr": "^0.5.0", + "@wrnexus/compiler": "^0.5.0", + "@wrnexus/styles": "^0.5.0", + "@wrnexus/dev-server": "^0.5.0", + "@wrnexus/ui": "^0.5.0", + "@wrnexus/validation": "^0.5.0", + "@wrnexus/i18n": "^0.5.0", + "@wrnexus/db": "^0.5.0", + "@wrnexus/plugin": "^0.5.0", + "@wrnexus/syntax": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/compiler/package.json b/.publish/compiler/package.json index fd90ea93..57e656f7 100644 --- a/.publish/compiler/package.json +++ b/.publish/compiler/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/compiler", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/compiler — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/syntax": "^0.4.0" + "@wrnexus/syntax": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/core/package.json b/.publish/core/package.json index f08406c7..2fe60532 100644 --- a/.publish/core/package.json +++ b/.publish/core/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/core", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/core — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/csr/package.json b/.publish/csr/package.json index b7d2f731..78ffec1a 100644 --- a/.publish/csr/package.json +++ b/.publish/csr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/csr", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/csr — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.4.0" + "@wrnexus/core": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/db/package.json b/.publish/db/package.json index 68c35266..7cfc6812 100644 --- a/.publish/db/package.json +++ b/.publish/db/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/db", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/db — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/dev-server/package.json b/.publish/dev-server/package.json index 94e99a33..f9ce9850 100644 --- a/.publish/dev-server/package.json +++ b/.publish/dev-server/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-server", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/dev-server — part of the WrNexus framework.", "license": "MIT", @@ -25,20 +25,20 @@ } }, "dependencies": { - "@wrnexus/core": "^0.4.0", - "@wrnexus/dev-toolbar": "^0.4.0", - "@wrnexus/router": "^0.4.0", - "@wrnexus/ssr": "^0.4.0", - "@wrnexus/csr": "^0.4.0", - "@wrnexus/compiler": "^0.4.0", - "@wrnexus/styles": "^0.4.0", - "@wrnexus/ui": "^0.4.0", - "@wrnexus/validation": "^0.4.0", - "@wrnexus/i18n": "^0.4.0", - "@wrnexus/db": "^0.4.0", - "@wrnexus/pubsub": "^0.4.0", - "@wrnexus/uploader": "^0.4.0", - "@wrnexus/plugin": "^0.4.0" + "@wrnexus/core": "^0.5.0", + "@wrnexus/dev-toolbar": "^0.5.0", + "@wrnexus/router": "^0.5.0", + "@wrnexus/ssr": "^0.5.0", + "@wrnexus/csr": "^0.5.0", + "@wrnexus/compiler": "^0.5.0", + "@wrnexus/styles": "^0.5.0", + "@wrnexus/ui": "^0.5.0", + "@wrnexus/validation": "^0.5.0", + "@wrnexus/i18n": "^0.5.0", + "@wrnexus/db": "^0.5.0", + "@wrnexus/pubsub": "^0.5.0", + "@wrnexus/uploader": "^0.5.0", + "@wrnexus/plugin": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/dev-toolbar/package.json b/.publish/dev-toolbar/package.json index 6d52fcbc..6c0a232e 100644 --- a/.publish/dev-toolbar/package.json +++ b/.publish/dev-toolbar/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/dev-toolbar", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/dev-toolbar — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/encryption/package.json b/.publish/encryption/package.json index 16ab1dc1..14a3b3a0 100644 --- a/.publish/encryption/package.json +++ b/.publish/encryption/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/encryption", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/encryption — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/helpers/package.json b/.publish/helpers/package.json index a2b29257..340f75e4 100644 --- a/.publish/helpers/package.json +++ b/.publish/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/helpers", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "Safe convenience helpers for WrNexus request contexts and common application flows.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.4.0" + "@wrnexus/core": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/i18n/package.json b/.publish/i18n/package.json index fb46d7ff..e5c8cf1e 100644 --- a/.publish/i18n/package.json +++ b/.publish/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/i18n", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/i18n — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.4.0" + "@wrnexus/core": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/jwt/package.json b/.publish/jwt/package.json index a84a0268..11375c7d 100644 --- a/.publish/jwt/package.json +++ b/.publish/jwt/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/jwt", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/jwt — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/mobile/package.json b/.publish/mobile/package.json index 25cf6d9f..3bed2457 100644 --- a/.publish/mobile/package.json +++ b/.publish/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/mobile", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/mobile — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/native": "^0.4.0" + "@wrnexus/native": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/native/package.json b/.publish/native/package.json index 4b3ce4fe..87feca02 100644 --- a/.publish/native/package.json +++ b/.publish/native/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/native", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/native — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/oauth/package.json b/.publish/oauth/package.json index 23fa12d5..4ce74cfe 100644 --- a/.publish/oauth/package.json +++ b/.publish/oauth/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/oauth", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/oauth — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/plugin/package.json b/.publish/plugin/package.json index e2e278a6..3a8fdb8f 100644 --- a/.publish/plugin/package.json +++ b/.publish/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/plugin", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/plugin — part of the WrNexus framework.", "license": "MIT", @@ -33,7 +33,7 @@ } }, "dependencies": { - "@wrnexus/syntax": "^0.4.0" + "@wrnexus/syntax": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/pubsub/package.json b/.publish/pubsub/package.json index d1a64b77..62544d9d 100644 --- a/.publish/pubsub/package.json +++ b/.publish/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/pubsub", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/pubsub — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/queue/package.json b/.publish/queue/package.json index c58c89ca..1c0e1d41 100644 --- a/.publish/queue/package.json +++ b/.publish/queue/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/queue", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/queue — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/reactive/package.json b/.publish/reactive/package.json index a02d588b..fde097cf 100644 --- a/.publish/reactive/package.json +++ b/.publish/reactive/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/reactive", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/reactive — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/router/package.json b/.publish/router/package.json index 42f954d3..858667e6 100644 --- a/.publish/router/package.json +++ b/.publish/router/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/router", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/router — part of the WrNexus framework.", "license": "MIT", @@ -21,8 +21,8 @@ } }, "dependencies": { - "@wrnexus/compiler": "^0.4.0", - "@wrnexus/core": "^0.4.0" + "@wrnexus/compiler": "^0.5.0", + "@wrnexus/core": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/ssr/package.json b/.publish/ssr/package.json index 3f36289a..e39102e7 100644 --- a/.publish/ssr/package.json +++ b/.publish/ssr/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/ssr", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/ssr — part of the WrNexus framework.", "license": "MIT", @@ -21,7 +21,7 @@ } }, "dependencies": { - "@wrnexus/core": "^0.4.0" + "@wrnexus/core": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/styles/package.json b/.publish/styles/package.json index 279f9293..3bcf83a4 100644 --- a/.publish/styles/package.json +++ b/.publish/styles/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/styles", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/styles — part of the WrNexus framework.", "license": "MIT", @@ -21,9 +21,9 @@ } }, "dependencies": { - "@wrnexus/uploader": "^0.4.0", - "@wrnexus/core": "^0.4.0", - "@wrnexus/plugin": "^0.4.0" + "@wrnexus/uploader": "^0.5.0", + "@wrnexus/core": "^0.5.0", + "@wrnexus/plugin": "^0.5.0" }, "files": [ "dist" diff --git a/.publish/syntax/package.json b/.publish/syntax/package.json index 75b8d195..f3595afb 100644 --- a/.publish/syntax/package.json +++ b/.publish/syntax/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/syntax", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/syntax — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/test/package.json b/.publish/test/package.json index 3ba16fdd..db635655 100644 --- a/.publish/test/package.json +++ b/.publish/test/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/test", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/test — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/tracking/package.json b/.publish/tracking/package.json index a10c65c7..c0ac46c9 100644 --- a/.publish/tracking/package.json +++ b/.publish/tracking/package.json @@ -1,6 +1,6 @@ { "name": "@wrnexus/tracking", - "version": "0.4.0", + "version": "0.5.0", "type": "module", "description": "@wrnexus/tracking — part of the WrNexus framework.", "license": "MIT", diff --git a/.publish/ui/COMPONENTS.md b/.publish/ui/COMPONENTS.md index a3163320..5cfe2a91 100644 --- a/.publish/ui/COMPONENTS.md +++ b/.publish/ui/COMPONENTS.md @@ -29,7 +29,7 @@ Theme-aware, responsive copy markup component. - Mount: `data-component="CopyMarkup"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Copy Markup"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "text"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `copy`, `success`, `error` ### InputNumber @@ -56,7 +56,7 @@ Theme-aware, responsive search box component. - Mount: `data-component="SearchBox"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Search Box"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "search"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `search`, `submit`, `clear` ### StrongPassword @@ -72,9 +72,9 @@ Theme-aware, responsive strong password component. Theme-aware, responsive toggle count component. - Mount: `data-component="ToggleCount"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Toggle Count"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "text"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `variant: string = "segmented"`, `class: string = ""`, `name: string = "billing-cycle"`, `value: string = "monthly"`, `firstValue: string = "monthly"`, `firstLabel: string = "Monthly"`, `secondValue: string = "annual"`, `secondLabel: string = "Annual"`, `ariaLabel: string = "Billing frequency"`, `items: string = []`, `currency: string = "$"`, `suffix: string = ""`, `firstValueKey: string = "monthly"`, `secondValueKey: string = "annual"`, `emptyValue: string = "—"`, `align: string = "end"`, `fullWidth: boolean = true`, `disabled: boolean = false`, `animate: boolean = true`, `animationDuration: number = 450`, `animationSteps: number = 18` - Slots: None -- Events: None +- Events: `change`, `toggle` ### TogglePassword @@ -92,52 +92,52 @@ Accessible password field with optional show and hide controls. Theme-aware, responsive accordion component. - Mount: `data-component="Accordion"` -- Props: `size: string = "default"`, `color: string = "primary"`, `items: string = []`, `multiple: boolean = false`, `class: string = ""` -- Slots: `default` -- Events: None +- Props: `size: string = "default"`, `color: string = "primary"`, `variant: string = "default"`, `class: string = ""`, `id: string = "accordion"`, `items: string = []`, `defaultOpen: string = []`, `multiple: boolean = false`, `alwaysOpen: boolean = false`, `disabled: boolean = false`, `indicator: string = "plus"`, `indicatorPosition: string = "start"`, `showIndicator: boolean = true`, `bordered: boolean = false`, `separated: boolean = false`, `flush: boolean = false`, `contentItalic: boolean = false` +- Slots: None +- Events: `change`, `open`, `close` ### Alert Theme-aware, responsive alert component. - Mount: `data-component="Alert"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Alert"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` -- Slots: `default` -- Events: None +- Props: `size: string = "default"`, `color: string = "info"`, `variant: string = "soft"`, `class: string = ""`, `radius: string = "md"`, `shadow: string = "sm"`, `title: string = "Alert"`, `description: string = ""`, `items: string = []`, `actions: string = []`, `showIcon: boolean = false`, `icon: string = ""`, `dismissible: boolean = false`, `dismissLabel: string = "Dismiss alert"`, `role: string = "alert"`, `live: string = "polite"`, `linkLabel: string = ""`, `linkHref: string = ""`, `actionLabel: string = ""`, `actionHref: string = ""`, `compact: boolean = false` +- Slots: None +- Events: `dismiss`, `action` ### Avatar Theme-aware, responsive avatar component. - Mount: `data-component="Avatar"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Avatar"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` -- Slots: `default` -- Events: None +- Props: `src: string = ""`, `alt: string = ""`, `initials: string = ""`, `size: string = "md"`, `color: string = "primary"`, `variant: string = "solid"`, `shape: string = "circle"`, `status: string = ""`, `statusLabel: string = ""`, `statusPosition: string = "bottom"`, `badge: string = ""`, `badgeIcon: string = ""`, `badgeLabel: string = ""`, `tooltip: string = ""`, `name: string = ""`, `description: string = ""`, `loading: string = "lazy"`, `class: string = ""` +- Slots: None +- Events: `load`, `error`, `click` ### AvatarGroup Theme-aware, responsive avatar group component. - Mount: `data-component="AvatarGroup"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Avatar Group"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` -- Slots: `default` -- Events: None +- Props: `items: string = []`, `size: string = "md"`, `color: string = "primary"`, `variant: string = "solid"`, `shape: string = "circle"`, `layout: string = "stack"`, `maxVisible: number = 4`, `columns: number = 3`, `borderColor: string = ""`, `showTooltips: boolean = true`, `overflowLabel: string = "Show remaining members"`, `class: string = ""` +- Slots: None +- Events: `overflow` ### Badge Theme-aware, responsive badge component. - Mount: `data-component="Badge"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Badge"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` -- Slots: `default` -- Events: None +- Props: `label: string = "Badge"`, `size: string = "md"`, `color: string = "primary"`, `variant: string = "solid"`, `shape: string = "pill"`, `class: string = ""`, `icon: string = ""`, `iconPosition: string = "start"`, `dot: boolean = false`, `dotOnly: boolean = false`, `dotLabel: string = "Status"`, `animated: boolean = false`, `avatarSrc: string = ""`, `avatarAlt: string = ""`, `dismissible: boolean = false`, `dismissLabel: string = "Remove badge"`, `truncate: boolean = false`, `maxWidth: string = "12rem"`, `anchorLabel: string = ""`, `anchorIcon: string = ""`, `placement: string = "inline"`, `anchorLabelText: string = "Badge anchor"` +- Slots: None +- Events: `dismiss` ### Blockquote Theme-aware, responsive blockquote component. - Mount: `data-component="Blockquote"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Blockquote"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` +- Props: `quote: string = "I just wanted to say that I'm very happy with my purchase so far. The documentation is outstanding - clear and detailed."`, `citation: string = ""`, `citationTitle: string = ""`, `citationUrl: string = ""`, `avatarSrc: string = ""`, `avatarAlt: string = ""`, `size: string = "md"`, `color: string = "primary"`, `align: string = "left"`, `variant: string = "default"`, `quoteMark: boolean = true`, `italic: boolean = true`, `class: string = ""` - Slots: `default` - Events: None @@ -148,79 +148,79 @@ Theme-aware, responsive button component. - Mount: `data-component="Button"` - Props: `label: string = "Button"`, `loadingLabel: string = "Loading…"`, `description: string = ""`, `as: string = ""`, `href: string = ""`, `target: string = ""`, `rel: string = ""`, `type: string = "button"`, `variant: string = "default"`, `color: string = "primary"`, `size: string = "default"`, `disabled: boolean = false`, `loading: boolean = false`, `pill: boolean = false`, `fullWidth: boolean = false`, `icon: string = ""`, `iconPosition: string = "start"`, `ariaLabel: string = ""`, `ariaPressed: string = ""`, `ariaExpanded: string = ""`, `ariaControls: string = ""`, `title: string = ""`, `autofocus: boolean = false`, `controlClass: string = ""`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `click`, `focus`, `blur` ### ButtonGroup Theme-aware, responsive button group component. - Mount: `data-component="ButtonGroup"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Button Group"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` +- Props: `items: string = []`, `value: string = ""`, `size: string = "md"`, `color: string = "primary"`, `variant: string = "default"`, `orientation: string = "horizontal"`, `responsive: boolean = false`, `attached: boolean = true`, `selectable: boolean = false`, `toolbar: boolean = false`, `disabled: boolean = false`, `ariaLabel: string = "Button group"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `click`, `select`, `change` ### Card Theme-aware, responsive card component. - Mount: `data-component="Card"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Card"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` +- Props: `title: string = "Card title"`, `subtitle: string = ""`, `description: string = ""`, `header: string = ""`, `footer: string = ""`, `imageSrc: string = ""`, `imageAlt: string = ""`, `imagePosition: string = "top"`, `actionLabel: string = ""`, `actionHref: string = ""`, `headerActions: string = []`, `navigation: string = []`, `activeNav: string = ""`, `mobileNavigation: boolean = false`, `alertTitle: string = ""`, `alertDescription: string = ""`, `empty: boolean = false`, `emptyTitle: string = "No data to show"`, `emptyIcon: string = "icon-[lucide--inbox]"`, `items: string = []`, `size: string = "md"`, `color: string = "primary"`, `variant: string = "default"`, `layout: string = "vertical"`, `align: string = "left"`, `hover: string = "none"`, `scrollable: boolean = false`, `maxHeight: string = "18rem"`, `dismissible: boolean = false`, `ariaLabel: string = ""`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `click`, `action`, `navigate`, `dismiss`, `load`, `error` ### Carousel Theme-aware, responsive carousel component. - Mount: `data-component="Carousel"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Carousel"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = ""`, `description: string = ""`, `items: string = []`, `activeIndex: number = 0`, `slidesPerView: number = 1`, `gap: string = "0.75rem"`, `showPagination: boolean = false`, `isAutoPlay: boolean = false`, `autoplayInterval: number = 4000`, `isInfiniteLoop: boolean = false`, `isRTL: boolean = false`, `isCentered: boolean = false`, `isDraggable: boolean = false`, `isAutoHeight: boolean = false`, `isSnap: boolean = false`, `showCounter: boolean = false`, `thumbnails: string = "none"`, `ariaLabel: string = "Content carousel"`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `initialize`, `change`, `previous`, `next`, `play`, `pause`, `reachStart`, `reachEnd`, `dragStart`, `dragEnd` ### ChatBubble Theme-aware, responsive chat bubble component. - Mount: `data-component="ChatBubble"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Chat Bubble"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = ""`, `description: string = ""`, `items: string = []`, `oneSided: boolean = false`, `showAvatars: boolean = false`, `showMetadata: boolean = false`, `ariaLabel: string = "Conversation"`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `action`, `messageClick`, `avatarClick`, `linkClick` ### Collapse Theme-aware, responsive collapse component. - Mount: `data-component="Collapse"` -- Props: `size: string = "default"`, `color: string = "primary"`, `items: string = []`, `multiple: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `items: string = []`, `multiple: boolean = false`, `mode: string = "panel"`, `initialOpenIndexes: string = []`, `ariaLabel: string = "Collapsible content"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `toggle`, `open`, `close` ### DatePicker Theme-aware, responsive date picker component. - Mount: `data-component="DatePicker"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Date Picker"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "date"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Date Picker"`, `id: string = ""`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "date"`, `locale: string = "en-US"`, `firstDayOfWeek: number = 0`, `months: string = [{ label: "Jan", value: "01" }, { label: "Feb", value: "02" }, { label: "Mar", value: "03" }, { label: "Apr", value: "04" }, { label: "May", value: "05" }, { label: "Jun", value: "06" }, { label: "Jul", value: "07" }, { label: "Aug", value: "08" }, { label: "Sep", value: "09" }, { label: "Oct", value: "10" }, { label: "Nov", value: "11" }, { label: "Dec", value: "12" }]`, `days: string = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]`, `years: string = [2024, 2025, 2026, 2027, 2028, 2029, 2030]`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `variant: string = "normal"`, `inline: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `open`, `close`, `focus`, `blur`, `invalid` ### DeviceFrame Theme-aware, responsive device frame component. - Mount: `data-component="DeviceFrame"` -- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Device Frame"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Device Frame"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `device: string = "phone"`, `orientation: string = "portrait"`, `src: string = ""`, `srcdoc: string = ""`, `frameTitle: string = "Device preview"`, `showToolbar: boolean = true`, `allow: string = ""`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `change`, `rotate` ### FileUploadProgress Theme-aware, responsive file upload progress component. - Mount: `data-component="FileUploadProgress"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Progress"`, `value: number = 50`, `max: number = 100`, `showValue: boolean = true`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Progress"`, `value: number = 50`, `max: number = 100`, `showValue: boolean = true`, `fileName: string = ""`, `fileSize: string = ""`, `uploadedSize: string = ""`, `status: string = "uploading"`, `cancelLabel: string = "Cancel upload"`, `retryLabel: string = "Retry upload"`, `class: string = ""` - Slots: None -- Events: None +- Events: `cancel`, `retry`, `complete` ### LegendIndicator @@ -229,7 +229,7 @@ Theme-aware, responsive legend indicator component. - Mount: `data-component="LegendIndicator"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Legend Indicator"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `toggle`, `select` ### List @@ -238,7 +238,7 @@ Theme-aware, responsive list component. - Mount: `data-component="List"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "List"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `click` ### ListGroup @@ -247,7 +247,7 @@ Theme-aware, responsive list group component. - Mount: `data-component="ListGroup"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "List Group"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `change` ### Marquee @@ -256,7 +256,7 @@ Theme-aware, responsive marquee component. - Mount: `data-component="Marquee"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Marquee"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `pause`, `resume` ### Progress @@ -274,7 +274,7 @@ Theme-aware, responsive rating component. - Mount: `data-component="Rating"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Rating"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `input`, `change` ### Skeleton @@ -310,7 +310,7 @@ Theme-aware, responsive timeline component. - Mount: `data-component="Timeline"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Timeline"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select` ### Toast @@ -319,7 +319,7 @@ Theme-aware, responsive toast component. - Mount: `data-component="Toast"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Toast"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `dismiss`, `action` ### TreeView @@ -328,7 +328,7 @@ Theme-aware, responsive tree view component. - Mount: `data-component="TreeView"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Tree View"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `toggle`, `expand`, `collapse` ## Forms @@ -337,99 +337,99 @@ Theme-aware, responsive tree view component. Theme-aware, responsive checkbox component. - Mount: `data-component="Checkbox"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Checkbox"`, `name: string = ""`, `value: string = "on"`, `checked: boolean = false`, `disabled: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Checkbox"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `value: string = "on"`, `values: string = []`, `options: string = []`, `checked: boolean = false`, `indeterminate: boolean = false`, `orientation: string = "vertical"`, `card: boolean = false`, `rightAligned: boolean = false`, `list: boolean = false`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `invalid` ### ColorPicker Theme-aware, responsive color picker component. - Mount: `data-component="ColorPicker"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Color Picker"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "color"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Color"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `value: string = "#2563eb"`, `icon: string = ""`, `iconPosition: string = "start"`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `variant: string = "normal"`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur` ### FileInput Theme-aware, responsive file input component. - Mount: `data-component="FileInput"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "File Input"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "file"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "File"`, `hiddenLabel: boolean = false`, `placeholder: string = "Choose a file"`, `value: string = ""`, `icon: string = "icon-[lucide--upload]"`, `iconPosition: string = "start"`, `accept: string = ""`, `multiple: boolean = false`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `variant: string = "normal"`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `select`, `clear`, `invalid` ### Input Theme-aware, responsive input component. - Mount: `data-component="Input"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Input"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "text"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Input"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `value: string = ""`, `type: string = "text"`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `autocomplete: string = ""`, `inputmode: string = ""`, `minlength: string = ""`, `maxlength: string = ""`, `pattern: string = ""`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `invalid`, `keydown`, `keyup` ### InputGroup Theme-aware, responsive input group component. - Mount: `data-component="InputGroup"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Input Group"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "text"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Input group"`, `hiddenLabel: boolean = false`, `value: string = ""`, `placeholder: string = ""`, `type: string = "text"`, `startText: string = ""`, `endText: string = ""`, `icon: string = ""`, `iconPosition: string = "start"`, `actionLabel: string = ""`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `variant: string = "normal"`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `submit`, `action` ### Radio Theme-aware, responsive radio component. - Mount: `data-component="Radio"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Radio"`, `name: string = ""`, `value: string = "on"`, `checked: boolean = false`, `disabled: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Radio"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `value: string = "on"`, `options: string = []`, `checked: boolean = false`, `orientation: string = "vertical"`, `card: boolean = false`, `rightAligned: boolean = false`, `list: boolean = false`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `invalid` ### RangeSlider Theme-aware, responsive range slider component. - Mount: `data-component="RangeSlider"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Range Slider"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "range"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Range"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `value: number = 50`, `min: number = 0`, `max: number = 100`, `step: number = 1`, `showValue: boolean = true`, `showBounds: boolean = true`, `showSteps: boolean = false`, `marks: string = []`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur` ### Select Theme-aware, responsive select component. - Mount: `data-component="Select"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Select"`, `name: string = ""`, `value: string = ""`, `options: string = []`, `placeholder: string = "Select an option"`, `multiple: boolean = false`, `disabled: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Select"`, `hiddenLabel: boolean = false`, `value: string = ""`, `values: string = []`, `options: string = []`, `placeholder: string = "Select an option"`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `multiple: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `open`, `close`, `invalid` ### Switch Theme-aware, responsive switch component. - Mount: `data-component="Switch"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Switch"`, `name: string = ""`, `value: string = "on"`, `checked: boolean = false`, `disabled: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Switch"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `value: string = "on"`, `checked: boolean = false`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur` ### Textarea Theme-aware, responsive textarea component. - Mount: `data-component="Textarea"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Textarea"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `rows: number = 5`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Textarea"`, `hiddenLabel: boolean = false`, `placeholder: string = ""`, `value: string = ""`, `variant: string = "normal"`, `icon: string = ""`, `iconPosition: string = "start"`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `rows: number = 5`, `resize: string = "vertical"`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `minlength: string = ""`, `maxlength: string = ""`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `invalid` ### TimePicker Theme-aware, responsive time picker component. - Mount: `data-component="TimePicker"` -- Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Time Picker"`, `name: string = ""`, `value: string = ""`, `placeholder: string = ""`, `type: string = "time"`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` +- Props: `size: string = "default"`, `color: string = "primary"`, `id: string = ""`, `name: string = ""`, `label: string = "Time"`, `hiddenLabel: boolean = false`, `value: string = ""`, `placeholder: string = ""`, `variant: string = "normal"`, `icon: string = "icon-[lucide--clock-3]"`, `iconPosition: string = "end"`, `helperText: string = ""`, `cornerHint: string = ""`, `error: string = ""`, `inline: boolean = false`, `min: string = ""`, `max: string = ""`, `step: string = ""`, `format: string = "24"`, `minuteStep: number = 5`, `hours: string = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"]`, `minutes: string = ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"]`, `readonly: boolean = false`, `disabled: boolean = false`, `required: boolean = false`, `class: string = ""` - Slots: None -- Events: None +- Events: `input`, `change`, `focus`, `blur`, `open`, `close`, `invalid` ## Integrations @@ -440,7 +440,7 @@ Theme-aware, responsive advanced date picker component. - Mount: `data-component="AdvancedDatePicker"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Advanced Date Picker"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `input`, `change`, `open`, `close`, `clear` ### AdvancedRangeSlider @@ -449,7 +449,7 @@ Theme-aware, responsive advanced range slider component. - Mount: `data-component="AdvancedRangeSlider"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Advanced Range Slider"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `input`, `change`, `start`, `end` ### Chart @@ -458,7 +458,7 @@ Theme-aware, responsive chart component. - Mount: `data-component="Chart"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Chart"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `dataPointClick`, `legendToggle` ### Clipboard @@ -467,7 +467,7 @@ Theme-aware, responsive clipboard component. - Mount: `data-component="Clipboard"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Clipboard"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `copy`, `success`, `error` ### Confetti @@ -476,7 +476,7 @@ Theme-aware, responsive confetti component. - Mount: `data-component="Confetti"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Confetti"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `start`, `complete` ### DataMap @@ -485,7 +485,7 @@ Theme-aware, responsive data map component. - Mount: `data-component="DataMap"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Data Map"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `change` ### DataTable @@ -494,7 +494,7 @@ Theme-aware, responsive data table component. - Mount: `data-component="DataTable"` - Props: `size: string = "default"`, `color: string = "primary"`, `caption: string = "Data Table"`, `columns: string = []`, `rows: string = []`, `striped: boolean = true`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `sort`, `select`, `change`, `rowClick`, `pageChange` ### DragAndDrop @@ -503,7 +503,7 @@ Theme-aware, responsive drag and drop component. - Mount: `data-component="DragAndDrop"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Drag And Drop"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `dragStart`, `dragEnd`, `dragEnter`, `dragLeave`, `drop`, `change` ### FileUpload @@ -512,7 +512,7 @@ Theme-aware, responsive file upload component. - Mount: `data-component="FileUpload"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "File Upload"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `upload`, `progress`, `success`, `error`, `cancel`, `remove` ### Map @@ -521,7 +521,7 @@ Theme-aware, responsive map component. - Mount: `data-component="Map"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Map"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `ready`, `move`, `zoom`, `markerClick` ### ToastNotifications @@ -530,7 +530,7 @@ Theme-aware, responsive toast notifications component. - Mount: `data-component="ToastNotifications"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Toast Notifications"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `add`, `dismiss`, `clear`, `action` ### WysiwygEditor @@ -539,7 +539,7 @@ Theme-aware, responsive wysiwyg editor component. - Mount: `data-component="WysiwygEditor"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Wysiwyg Editor"`, `description: string = ""`, `items: string = []`, `variant: string = "default"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `input`, `change`, `focus`, `blur` ## Layout @@ -568,7 +568,7 @@ Theme-aware, responsive custom scrollbar component. - Mount: `data-component="CustomScrollbar"` - Props: `size: string = "default"`, `color: string = "primary"`, `columns: number = 2`, `gap: string = "md"`, `maxWidth: string = "xl"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `scroll` ### Divider @@ -595,7 +595,7 @@ Theme-aware, responsive image component. - Mount: `data-component="Image"` - Props: `size: string = "default"`, `color: string = "primary"`, `src: string = ""`, `alt: string = ""`, `width: string = ""`, `height: string = ""`, `loading: string = "lazy"`, `rounded: boolean = false`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `load`, `error` ### Kbd @@ -613,7 +613,7 @@ Theme-aware, responsive layout splitter component. - Mount: `data-component="LayoutSplitter"` - Props: `size: string = "default"`, `color: string = "primary"`, `columns: number = 2`, `gap: string = "md"`, `maxWidth: string = "xl"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `resizeStart`, `resize`, `resizeEnd` ### Link @@ -622,7 +622,7 @@ Theme-aware, responsive link component. - Mount: `data-component="Link"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Link"`, `href: string = "#"`, `target: string = ""`, `rel: string = ""`, `external: boolean = false`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `click`, `focus`, `blur` ### Typography @@ -642,7 +642,7 @@ Theme-aware, responsive breadcrumb component. - Mount: `data-component="Breadcrumb"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Breadcrumb"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `navigate`, `click` ### MegaMenu @@ -651,7 +651,7 @@ Theme-aware, responsive mega menu component. - Mount: `data-component="MegaMenu"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Mega Menu"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close`, `select` ### Nav @@ -660,7 +660,7 @@ Theme-aware, responsive nav component. - Mount: `data-component="Nav"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Nav"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `select`, `change` ### Navbar @@ -669,7 +669,7 @@ Theme-aware, responsive navbar component. - Mount: `data-component="Navbar"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Navbar"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `toggle`, `open`, `close` ### Pagination @@ -678,7 +678,7 @@ Theme-aware, responsive pagination component. - Mount: `data-component="Pagination"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Pagination"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `change`, `previous`, `next` ### Scrollspy @@ -687,7 +687,7 @@ Theme-aware, responsive scrollspy component. - Mount: `data-component="Scrollspy"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Scrollspy"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `change` ### Sidebar @@ -696,7 +696,7 @@ Theme-aware, responsive sidebar component. - Mount: `data-component="Sidebar"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Sidebar"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `toggle`, `open`, `close` ### Stepper @@ -705,7 +705,7 @@ Theme-aware, responsive stepper component. - Mount: `data-component="Stepper"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Stepper"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `change`, `previous`, `next`, `complete` ### Tabs @@ -714,7 +714,7 @@ Theme-aware, responsive tabs component. - Mount: `data-component="Tabs"` - Props: `size: string = "default"`, `color: string = "primary"`, `label: string = "Tabs"`, `items: string = []`, `active: string = ""`, `orientation: string = "horizontal"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `change`, `select` ## Overlays @@ -725,7 +725,7 @@ Theme-aware, responsive context menu component. - Mount: `data-component="ContextMenu"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Context Menu"`, `description: string = ""`, `open: boolean = false`, `placement: string = "bottom"`, `closeLabel: string = "Close"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close`, `select` ### Drawer @@ -734,7 +734,7 @@ Theme-aware, responsive drawer component. - Mount: `data-component="Drawer"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Drawer"`, `description: string = ""`, `open: boolean = false`, `placement: string = "bottom"`, `closeLabel: string = "Close"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close` ### Dropdown @@ -743,7 +743,7 @@ Theme-aware, responsive dropdown component. - Mount: `data-component="Dropdown"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Dropdown"`, `description: string = ""`, `open: boolean = false`, `placement: string = "bottom"`, `closeLabel: string = "Close"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close`, `select`, `change` ### Modal @@ -752,7 +752,7 @@ Theme-aware, responsive modal component. - Mount: `data-component="Modal"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Modal"`, `description: string = ""`, `open: boolean = false`, `placement: string = "bottom"`, `closeLabel: string = "Close"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close`, `cancel`, `confirm` ### Popover @@ -761,7 +761,7 @@ Theme-aware, responsive popover component. - Mount: `data-component="Popover"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Popover"`, `description: string = ""`, `open: boolean = false`, `placement: string = "bottom"`, `closeLabel: string = "Close"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close` ### Tooltip @@ -770,7 +770,7 @@ Theme-aware, responsive tooltip component. - Mount: `data-component="Tooltip"` - Props: `size: string = "default"`, `color: string = "primary"`, `title: string = "Tooltip"`, `description: string = ""`, `open: boolean = false`, `placement: string = "bottom"`, `closeLabel: string = "Close"`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `open`, `close` ## Tables @@ -781,4 +781,4 @@ Theme-aware, responsive table component. - Mount: `data-component="Table"` - Props: `size: string = "default"`, `color: string = "primary"`, `caption: string = "Table"`, `columns: string = []`, `rows: string = []`, `striped: boolean = true`, `class: string = ""` - Slots: `default` -- Events: None +- Events: `sort`, `select`, `rowClick` diff --git a/.publish/ui/component-reference.json b/.publish/ui/component-reference.json index 6c8ed5ff..32d524f1 100644 --- a/.publish/ui/component-reference.json +++ b/.publish/ui/component-reference.json @@ -20,12 +20,36 @@ "required": false, "default": "\"primary\"" }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"default\"" + }, + { + "name": "class", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "id", + "type": "string", + "required": false, + "default": "\"accordion\"" + }, { "name": "items", "type": "string", "required": false, "default": "[]" }, + { + "name": "defaultOpen", + "type": "string", + "required": false, + "default": "[]" + }, { "name": "multiple", "type": "boolean", @@ -33,14 +57,62 @@ "default": "false" }, { - "name": "class", + "name": "alwaysOpen", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "disabled", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "indicator", "type": "string", "required": false, - "default": "\"\"" + "default": "\"plus\"" + }, + { + "name": "indicatorPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "showIndicator", + "type": "boolean", + "required": false, + "default": "true" + }, + { + "name": "bordered", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "separated", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "flush", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "contentItalic", + "type": "boolean", + "required": false, + "default": "false" } ], - "slots": ["default"], - "events": [], + "slots": [], + "events": ["change", "open", "close"], "source": "components/Accordion.wrn" }, { @@ -93,7 +165,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["input", "change", "open", "close", "clear"], "source": "components/AdvancedDatePicker.wrn" }, { @@ -146,7 +218,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["input", "change", "start", "end"], "source": "components/AdvancedRangeSlider.wrn" }, { @@ -482,7 +554,31 @@ "name": "color", "type": "string", "required": false, - "default": "\"primary\"" + "default": "\"info\"" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"soft\"" + }, + { + "name": "class", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "radius", + "type": "string", + "required": false, + "default": "\"md\"" + }, + { + "name": "shadow", + "type": "string", + "required": false, + "default": "\"sm\"" }, { "name": "title", @@ -503,20 +599,80 @@ "default": "[]" }, { - "name": "variant", + "name": "actions", "type": "string", "required": false, - "default": "\"default\"" + "default": "[]" }, { - "name": "class", + "name": "showIcon", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "icon", "type": "string", "required": false, "default": "\"\"" + }, + { + "name": "dismissible", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "dismissLabel", + "type": "string", + "required": false, + "default": "\"Dismiss alert\"" + }, + { + "name": "role", + "type": "string", + "required": false, + "default": "\"alert\"" + }, + { + "name": "live", + "type": "string", + "required": false, + "default": "\"polite\"" + }, + { + "name": "linkLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "linkHref", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "actionLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "actionHref", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "compact", + "type": "boolean", + "required": false, + "default": "false" } ], - "slots": ["default"], - "events": [], + "slots": [], + "events": ["dismiss", "action"], "source": "components/alert.wrn" }, { @@ -525,11 +681,29 @@ "category": "base", "purpose": "Theme-aware, responsive avatar component.", "props": [ + { + "name": "src", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "alt", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "initials", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "size", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"md\"" }, { "name": "color", @@ -538,10 +712,64 @@ "default": "\"primary\"" }, { - "name": "title", + "name": "variant", "type": "string", "required": false, - "default": "\"Avatar\"" + "default": "\"solid\"" + }, + { + "name": "shape", + "type": "string", + "required": false, + "default": "\"circle\"" + }, + { + "name": "status", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "statusLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "statusPosition", + "type": "string", + "required": false, + "default": "\"bottom\"" + }, + { + "name": "badge", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "badgeIcon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "badgeLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "tooltip", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "name", + "type": "string", + "required": false, + "default": "\"\"" }, { "name": "description", @@ -550,16 +778,10 @@ "default": "\"\"" }, { - "name": "items", + "name": "loading", "type": "string", "required": false, - "default": "[]" - }, - { - "name": "variant", - "type": "string", - "required": false, - "default": "\"default\"" + "default": "\"lazy\"" }, { "name": "class", @@ -568,8 +790,8 @@ "default": "\"\"" } ], - "slots": ["default"], - "events": [], + "slots": [], + "events": ["load", "error", "click"], "source": "components/avatar.wrn" }, { @@ -578,11 +800,17 @@ "category": "base", "purpose": "Theme-aware, responsive avatar group component.", "props": [ + { + "name": "items", + "type": "string", + "required": false, + "default": "[]" + }, { "name": "size", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"md\"" }, { "name": "color", @@ -591,28 +819,52 @@ "default": "\"primary\"" }, { - "name": "title", + "name": "variant", "type": "string", "required": false, - "default": "\"Avatar Group\"" + "default": "\"solid\"" }, { - "name": "description", + "name": "shape", + "type": "string", + "required": false, + "default": "\"circle\"" + }, + { + "name": "layout", + "type": "string", + "required": false, + "default": "\"stack\"" + }, + { + "name": "maxVisible", + "type": "number", + "required": false, + "default": "4" + }, + { + "name": "columns", + "type": "number", + "required": false, + "default": "3" + }, + { + "name": "borderColor", "type": "string", "required": false, "default": "\"\"" }, { - "name": "items", - "type": "string", + "name": "showTooltips", + "type": "boolean", "required": false, - "default": "[]" + "default": "true" }, { - "name": "variant", + "name": "overflowLabel", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"Show remaining members\"" }, { "name": "class", @@ -621,8 +873,8 @@ "default": "\"\"" } ], - "slots": ["default"], - "events": [], + "slots": [], + "events": ["overflow"], "source": "components/AvatarGroup.wrn" }, { @@ -631,11 +883,17 @@ "category": "base", "purpose": "Theme-aware, responsive badge component.", "props": [ + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Badge\"" + }, { "name": "size", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"md\"" }, { "name": "color", @@ -643,40 +901,124 @@ "required": false, "default": "\"primary\"" }, - { - "name": "title", - "type": "string", - "required": false, - "default": "\"Badge\"" - }, - { - "name": "description", - "type": "string", - "required": false, - "default": "\"\"" - }, - { - "name": "items", - "type": "string", - "required": false, - "default": "[]" - }, { "name": "variant", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"solid\"" + }, + { + "name": "shape", + "type": "string", + "required": false, + "default": "\"pill\"" }, { "name": "class", "type": "string", "required": false, "default": "\"\"" + }, + { + "name": "icon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "dot", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "dotOnly", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "dotLabel", + "type": "string", + "required": false, + "default": "\"Status\"" + }, + { + "name": "animated", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "avatarSrc", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "avatarAlt", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "dismissible", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "dismissLabel", + "type": "string", + "required": false, + "default": "\"Remove badge\"" + }, + { + "name": "truncate", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "maxWidth", + "type": "string", + "required": false, + "default": "\"12rem\"" + }, + { + "name": "anchorLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "anchorIcon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "placement", + "type": "string", + "required": false, + "default": "\"inline\"" + }, + { + "name": "anchorLabelText", + "type": "string", + "required": false, + "default": "\"Badge anchor\"" } ], - "slots": ["default"], - "events": [], - "source": "components/badge.wrn" + "slots": [], + "events": ["dismiss"], + "source": "components/Badge.wrn" }, { "name": "Blockquote", @@ -684,11 +1026,47 @@ "category": "base", "purpose": "Theme-aware, responsive blockquote component.", "props": [ + { + "name": "quote", + "type": "string", + "required": false, + "default": "\"I just wanted to say that I'm very happy with my purchase so far. The documentation is outstanding - clear and detailed.\"" + }, + { + "name": "citation", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "citationTitle", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "citationUrl", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "avatarSrc", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "avatarAlt", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "size", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"md\"" }, { "name": "color", @@ -697,22 +1075,10 @@ "default": "\"primary\"" }, { - "name": "title", + "name": "align", "type": "string", "required": false, - "default": "\"Blockquote\"" - }, - { - "name": "description", - "type": "string", - "required": false, - "default": "\"\"" - }, - { - "name": "items", - "type": "string", - "required": false, - "default": "[]" + "default": "\"left\"" }, { "name": "variant", @@ -720,6 +1086,18 @@ "required": false, "default": "\"default\"" }, + { + "name": "quoteMark", + "type": "boolean", + "required": false, + "default": "true" + }, + { + "name": "italic", + "type": "boolean", + "required": false, + "default": "true" + }, { "name": "class", "type": "string", @@ -781,7 +1159,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["navigate", "click"], "source": "components/Breadcrumb.wrn" }, { @@ -942,7 +1320,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["click", "focus", "blur"], "source": "components/button.wrn" }, { @@ -951,11 +1329,23 @@ "category": "base", "purpose": "Theme-aware, responsive button group component.", "props": [ + { + "name": "items", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "value", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "size", "type": "string", "required": false, - "default": "\"default\"" + "default": "\"md\"" }, { "name": "color", @@ -963,30 +1353,54 @@ "required": false, "default": "\"primary\"" }, - { - "name": "title", - "type": "string", - "required": false, - "default": "\"Button Group\"" - }, - { - "name": "description", - "type": "string", - "required": false, - "default": "\"\"" - }, - { - "name": "items", - "type": "string", - "required": false, - "default": "[]" - }, { "name": "variant", "type": "string", "required": false, "default": "\"default\"" }, + { + "name": "orientation", + "type": "string", + "required": false, + "default": "\"horizontal\"" + }, + { + "name": "responsive", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "attached", + "type": "boolean", + "required": false, + "default": "true" + }, + { + "name": "selectable", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "toolbar", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "disabled", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "ariaLabel", + "type": "string", + "required": false, + "default": "\"Button group\"" + }, { "name": "class", "type": "string", @@ -995,7 +1409,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["click", "select", "change"], "source": "components/ButtonGroup.wrn" }, { @@ -1004,23 +1418,17 @@ "category": "base", "purpose": "Theme-aware, responsive card component.", "props": [ - { - "name": "size", - "type": "string", - "required": false, - "default": "\"default\"" - }, - { - "name": "color", - "type": "string", - "required": false, - "default": "\"primary\"" - }, { "name": "title", "type": "string", "required": false, - "default": "\"Card\"" + "default": "\"Card title\"" + }, + { + "name": "subtitle", + "type": "string", + "required": false, + "default": "\"\"" }, { "name": "description", @@ -1028,18 +1436,168 @@ "required": false, "default": "\"\"" }, + { + "name": "header", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "footer", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "imageSrc", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "imageAlt", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "imagePosition", + "type": "string", + "required": false, + "default": "\"top\"" + }, + { + "name": "actionLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "actionHref", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "headerActions", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "navigation", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "activeNav", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "mobileNavigation", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "alertTitle", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "alertDescription", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "empty", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "emptyTitle", + "type": "string", + "required": false, + "default": "\"No data to show\"" + }, + { + "name": "emptyIcon", + "type": "string", + "required": false, + "default": "\"icon-[lucide--inbox]\"" + }, { "name": "items", "type": "string", "required": false, "default": "[]" }, + { + "name": "size", + "type": "string", + "required": false, + "default": "\"md\"" + }, + { + "name": "color", + "type": "string", + "required": false, + "default": "\"primary\"" + }, { "name": "variant", "type": "string", "required": false, "default": "\"default\"" }, + { + "name": "layout", + "type": "string", + "required": false, + "default": "\"vertical\"" + }, + { + "name": "align", + "type": "string", + "required": false, + "default": "\"left\"" + }, + { + "name": "hover", + "type": "string", + "required": false, + "default": "\"none\"" + }, + { + "name": "scrollable", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "maxHeight", + "type": "string", + "required": false, + "default": "\"18rem\"" + }, + { + "name": "dismissible", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "ariaLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "class", "type": "string", @@ -1048,7 +1606,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["click", "action", "navigate", "dismiss", "load", "error"], "source": "components/card.wrn" }, { @@ -1073,7 +1631,7 @@ "name": "title", "type": "string", "required": false, - "default": "\"Carousel\"" + "default": "\"\"" }, { "name": "description", @@ -1087,6 +1645,96 @@ "required": false, "default": "[]" }, + { + "name": "activeIndex", + "type": "number", + "required": false, + "default": "0" + }, + { + "name": "slidesPerView", + "type": "number", + "required": false, + "default": "1" + }, + { + "name": "gap", + "type": "string", + "required": false, + "default": "\"0.75rem\"" + }, + { + "name": "showPagination", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "isAutoPlay", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "autoplayInterval", + "type": "number", + "required": false, + "default": "4000" + }, + { + "name": "isInfiniteLoop", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "isRTL", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "isCentered", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "isDraggable", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "isAutoHeight", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "isSnap", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "showCounter", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "thumbnails", + "type": "string", + "required": false, + "default": "\"none\"" + }, + { + "name": "ariaLabel", + "type": "string", + "required": false, + "default": "\"Content carousel\"" + }, { "name": "variant", "type": "string", @@ -1101,8 +1749,19 @@ } ], "slots": ["default"], - "events": [], - "source": "components/Carousel.wrn" + "events": [ + "initialize", + "change", + "previous", + "next", + "play", + "pause", + "reachStart", + "reachEnd", + "dragStart", + "dragEnd" + ], + "source": "components/carousel.wrn" }, { "name": "Chart", @@ -1154,7 +1813,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "dataPointClick", "legendToggle"], "source": "components/Chart.wrn" }, { @@ -1179,7 +1838,7 @@ "name": "title", "type": "string", "required": false, - "default": "\"Chat Bubble\"" + "default": "\"\"" }, { "name": "description", @@ -1193,6 +1852,30 @@ "required": false, "default": "[]" }, + { + "name": "oneSided", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "showAvatars", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "showMetadata", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "ariaLabel", + "type": "string", + "required": false, + "default": "\"Conversation\"" + }, { "name": "variant", "type": "string", @@ -1207,7 +1890,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["action", "messageClick", "avatarClick", "linkClick"], "source": "components/ChatBubble.wrn" }, { @@ -1229,10 +1912,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"Checkbox\"" + "default": "\"\"" }, { "name": "name", @@ -1240,24 +1923,138 @@ "required": false, "default": "\"\"" }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Checkbox\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "placeholder", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "icon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, { "name": "value", "type": "string", "required": false, "default": "\"on\"" }, + { + "name": "values", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "options", + "type": "string", + "required": false, + "default": "[]" + }, { "name": "checked", "type": "boolean", "required": false, "default": "false" }, + { + "name": "indeterminate", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "orientation", + "type": "string", + "required": false, + "default": "\"vertical\"" + }, + { + "name": "card", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "rightAligned", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "list", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", "required": false, "default": "false" }, + { + "name": "required", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "class", "type": "string", @@ -1266,8 +2063,8 @@ } ], "slots": [], - "events": [], - "source": "components/checkbox.wrn" + "events": ["input", "change", "focus", "blur", "invalid"], + "source": "components/Checkbox.wrn" }, { "name": "Clipboard", @@ -1319,7 +2116,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["copy", "success", "error"], "source": "components/Clipboard.wrn" }, { @@ -1352,6 +2149,24 @@ "required": false, "default": "false" }, + { + "name": "mode", + "type": "string", + "required": false, + "default": "\"panel\"" + }, + { + "name": "initialOpenIndexes", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "ariaLabel", + "type": "string", + "required": false, + "default": "\"Collapsible content\"" + }, { "name": "class", "type": "string", @@ -1360,7 +2175,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["toggle", "open", "close"], "source": "components/Collapse.wrn" }, { @@ -1382,10 +2197,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"Color Picker\"" + "default": "\"\"" }, { "name": "name", @@ -1394,10 +2209,16 @@ "default": "\"\"" }, { - "name": "value", + "name": "label", "type": "string", "required": false, - "default": "\"\"" + "default": "\"Color\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" }, { "name": "placeholder", @@ -1406,29 +2227,59 @@ "default": "\"\"" }, { - "name": "type", + "name": "value", "type": "string", "required": false, - "default": "\"color\"" + "default": "\"#2563eb\"" }, { - "name": "min", + "name": "icon", "type": "string", "required": false, "default": "\"\"" }, { - "name": "max", + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "helperText", "type": "string", "required": false, "default": "\"\"" }, { - "name": "step", + "name": "cornerHint", "type": "string", "required": false, "default": "\"\"" }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -1449,7 +2300,7 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "focus", "blur"], "source": "components/ColorPicker.wrn" }, { @@ -1806,7 +2657,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["start", "complete"], "source": "components/Confetti.wrn" }, { @@ -1912,7 +2763,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close", "select"], "source": "components/ContextMenu.wrn" }, { @@ -2001,7 +2852,7 @@ } ], "slots": [], - "events": [], + "events": ["copy", "success", "error"], "source": "components/CopyMarkup.wrn" }, { @@ -2048,7 +2899,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["scroll"], "source": "components/CustomScrollbar.wrn" }, { @@ -2101,7 +2952,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "change"], "source": "components/DataMap.wrn" }, { @@ -2154,7 +3005,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["sort", "select", "change", "rowClick", "pageChange"], "source": "components/DataTable.wrn" }, { @@ -2181,6 +3032,12 @@ "required": false, "default": "\"Date Picker\"" }, + { + "name": "id", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "name", "type": "string", @@ -2205,6 +3062,36 @@ "required": false, "default": "\"date\"" }, + { + "name": "locale", + "type": "string", + "required": false, + "default": "\"en-US\"" + }, + { + "name": "firstDayOfWeek", + "type": "number", + "required": false, + "default": "0" + }, + { + "name": "months", + "type": "string", + "required": false, + "default": "[{ label: \"Jan\", value: \"01\" }, { label: \"Feb\", value: \"02\" }, { label: \"Mar\", value: \"03\" }, { label: \"Apr\", value: \"04\" }, { label: \"May\", value: \"05\" }, { label: \"Jun\", value: \"06\" }, { label: \"Jul\", value: \"07\" }, { label: \"Aug\", value: \"08\" }, { label: \"Sep\", value: \"09\" }, { label: \"Oct\", value: \"10\" }, { label: \"Nov\", value: \"11\" }, { label: \"Dec\", value: \"12\" }]" + }, + { + "name": "days", + "type": "string", + "required": false, + "default": "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]" + }, + { + "name": "years", + "type": "string", + "required": false, + "default": "[2024, 2025, 2026, 2027, 2028, 2029, 2030]" + }, { "name": "min", "type": "string", @@ -2223,6 +3110,42 @@ "required": false, "default": "\"\"" }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -2243,7 +3166,7 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "open", "close", "focus", "blur", "invalid"], "source": "components/DatePicker.wrn" }, { @@ -2288,6 +3211,48 @@ "required": false, "default": "\"default\"" }, + { + "name": "device", + "type": "string", + "required": false, + "default": "\"phone\"" + }, + { + "name": "orientation", + "type": "string", + "required": false, + "default": "\"portrait\"" + }, + { + "name": "src", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "srcdoc", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "frameTitle", + "type": "string", + "required": false, + "default": "\"Device preview\"" + }, + { + "name": "showToolbar", + "type": "boolean", + "required": false, + "default": "true" + }, + { + "name": "allow", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "class", "type": "string", @@ -2296,7 +3261,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["change", "rotate"], "source": "components/DeviceFrame.wrn" }, { @@ -2390,7 +3355,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["dragStart", "dragEnd", "dragEnter", "dragLeave", "drop", "change"], "source": "components/DragAndDrop.wrn" }, { @@ -2449,7 +3414,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close"], "source": "components/Drawer.wrn" }, { @@ -2508,7 +3473,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close", "select", "change"], "source": "components/Dropdown.wrn" }, { @@ -2530,10 +3495,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"File Input\"" + "default": "\"\"" }, { "name": "name", @@ -2541,6 +3506,24 @@ "required": false, "default": "\"\"" }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"File\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "placeholder", + "type": "string", + "required": false, + "default": "\"Choose a file\"" + }, { "name": "value", "type": "string", @@ -2548,35 +3531,65 @@ "default": "\"\"" }, { - "name": "placeholder", + "name": "icon", + "type": "string", + "required": false, + "default": "\"icon-[lucide--upload]\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "accept", "type": "string", "required": false, "default": "\"\"" }, { - "name": "type", - "type": "string", + "name": "multiple", + "type": "boolean", "required": false, - "default": "\"file\"" + "default": "false" }, { - "name": "min", + "name": "helperText", "type": "string", "required": false, "default": "\"\"" }, { - "name": "max", + "name": "cornerHint", "type": "string", "required": false, "default": "\"\"" }, { - "name": "step", + "name": "error", "type": "string", "required": false, "default": "\"\"" }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -2597,7 +3610,7 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "focus", "blur", "select", "clear", "invalid"], "source": "components/FileInput.wrn" }, { @@ -2650,7 +3663,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "upload", "progress", "success", "error", "cancel", "remove"], "source": "components/FileUpload.wrn" }, { @@ -2695,6 +3708,42 @@ "required": false, "default": "true" }, + { + "name": "fileName", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "fileSize", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "uploadedSize", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "status", + "type": "string", + "required": false, + "default": "\"uploading\"" + }, + { + "name": "cancelLabel", + "type": "string", + "required": false, + "default": "\"Cancel upload\"" + }, + { + "name": "retryLabel", + "type": "string", + "required": false, + "default": "\"Retry upload\"" + }, { "name": "class", "type": "string", @@ -2703,7 +3752,7 @@ } ], "slots": [], - "events": [], + "events": ["cancel", "retry", "complete"], "source": "components/FileUploadProgress.wrn" }, { @@ -2815,7 +3864,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["load", "error"], "source": "components/Image.wrn" }, { @@ -2836,6 +3885,18 @@ "required": false, "default": "\"primary\"" }, + { + "name": "id", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "name", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "label", "type": "string", @@ -2843,7 +3904,13 @@ "default": "\"Input\"" }, { - "name": "name", + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "placeholder", "type": "string", "required": false, "default": "\"\"" @@ -2855,16 +3922,100 @@ "default": "\"\"" }, { - "name": "placeholder", + "name": "type", + "type": "string", + "required": false, + "default": "\"text\"" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "icon", "type": "string", "required": false, "default": "\"\"" }, { - "name": "type", + "name": "iconPosition", "type": "string", "required": false, - "default": "\"text\"" + "default": "\"start\"" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "disabled", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "required", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "autocomplete", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inputmode", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "minlength", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "maxlength", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "pattern", + "type": "string", + "required": false, + "default": "\"\"" }, { "name": "min", @@ -2884,18 +4035,6 @@ "required": false, "default": "\"\"" }, - { - "name": "disabled", - "type": "boolean", - "required": false, - "default": "false" - }, - { - "name": "required", - "type": "boolean", - "required": false, - "default": "false" - }, { "name": "class", "type": "string", @@ -2904,8 +4043,8 @@ } ], "slots": [], - "events": [], - "source": "components/input.wrn" + "events": ["input", "change", "focus", "blur", "invalid", "keydown", "keyup"], + "source": "components/Input.wrn" }, { "name": "InputGroup", @@ -2926,10 +4065,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"Input Group\"" + "default": "\"\"" }, { "name": "name", @@ -2937,6 +4076,18 @@ "required": false, "default": "\"\"" }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Input group\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "value", "type": "string", @@ -2956,23 +4107,71 @@ "default": "\"text\"" }, { - "name": "min", + "name": "startText", "type": "string", "required": false, "default": "\"\"" }, { - "name": "max", + "name": "endText", "type": "string", "required": false, "default": "\"\"" }, { - "name": "step", + "name": "icon", "type": "string", "required": false, "default": "\"\"" }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "actionLabel", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -2993,7 +4192,7 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "focus", "blur", "submit", "action"], "source": "components/InputGroup.wrn" }, { @@ -3326,7 +4525,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["resizeStart", "resize", "resizeEnd"], "source": "components/LayoutSplitter.wrn" }, { @@ -3379,7 +4578,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["toggle", "select"], "source": "components/LegendIndicator.wrn" }, { @@ -3438,7 +4637,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["click", "focus", "blur"], "source": "components/Link.wrn" }, { @@ -3491,7 +4690,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "click"], "source": "components/List.wrn" }, { @@ -3544,7 +4743,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "change"], "source": "components/ListGroup.wrn" }, { @@ -3597,7 +4796,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["ready", "move", "zoom", "markerClick"], "source": "components/Map.wrn" }, { @@ -3650,7 +4849,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["pause", "resume"], "source": "components/Marquee.wrn" }, { @@ -3703,7 +4902,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close", "select"], "source": "components/MegaMenu.wrn" }, { @@ -3762,7 +4961,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close", "cancel", "confirm"], "source": "components/Modal.wrn" }, { @@ -3815,7 +5014,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "change"], "source": "components/Nav.wrn" }, { @@ -3868,7 +5067,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["toggle", "open", "close"], "source": "components/Navbar.wrn" }, { @@ -3921,7 +5120,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["change", "previous", "next"], "source": "components/Pagination.wrn" }, { @@ -4147,7 +5346,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close"], "source": "components/Popover.wrn" }, { @@ -4221,6 +5420,18 @@ "required": false, "default": "\"primary\"" }, + { + "name": "id", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "name", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "label", "type": "string", @@ -4228,76 +5439,11 @@ "default": "\"Radio\"" }, { - "name": "name", - "type": "string", - "required": false, - "default": "\"\"" - }, - { - "name": "value", - "type": "string", - "required": false, - "default": "\"on\"" - }, - { - "name": "checked", + "name": "hiddenLabel", "type": "boolean", "required": false, "default": "false" }, - { - "name": "disabled", - "type": "boolean", - "required": false, - "default": "false" - }, - { - "name": "class", - "type": "string", - "required": false, - "default": "\"\"" - } - ], - "slots": [], - "events": [], - "source": "components/radio.wrn" - }, - { - "name": "RangeSlider", - "mount": "RangeSlider", - "category": "forms", - "purpose": "Theme-aware, responsive range slider component.", - "props": [ - { - "name": "size", - "type": "string", - "required": false, - "default": "\"default\"" - }, - { - "name": "color", - "type": "string", - "required": false, - "default": "\"primary\"" - }, - { - "name": "label", - "type": "string", - "required": false, - "default": "\"Range Slider\"" - }, - { - "name": "name", - "type": "string", - "required": false, - "default": "\"\"" - }, - { - "name": "value", - "type": "string", - "required": false, - "default": "\"\"" - }, { "name": "placeholder", "type": "string", @@ -4305,29 +5451,95 @@ "default": "\"\"" }, { - "name": "type", + "name": "variant", "type": "string", "required": false, - "default": "\"range\"" + "default": "\"normal\"" }, { - "name": "min", + "name": "icon", "type": "string", "required": false, "default": "\"\"" }, { - "name": "max", + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "value", + "type": "string", + "required": false, + "default": "\"on\"" + }, + { + "name": "options", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "checked", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "orientation", + "type": "string", + "required": false, + "default": "\"vertical\"" + }, + { + "name": "card", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "rightAligned", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "list", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "helperText", "type": "string", "required": false, "default": "\"\"" }, { - "name": "step", + "name": "cornerHint", "type": "string", "required": false, "default": "\"\"" }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -4348,7 +5560,174 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "focus", "blur", "invalid"], + "source": "components/Radio.wrn" + }, + { + "name": "RangeSlider", + "mount": "RangeSlider", + "category": "forms", + "purpose": "Theme-aware, responsive range slider component.", + "props": [ + { + "name": "size", + "type": "string", + "required": false, + "default": "\"default\"" + }, + { + "name": "color", + "type": "string", + "required": false, + "default": "\"primary\"" + }, + { + "name": "id", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "name", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Range\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "placeholder", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "icon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "value", + "type": "number", + "required": false, + "default": "50" + }, + { + "name": "min", + "type": "number", + "required": false, + "default": "0" + }, + { + "name": "max", + "type": "number", + "required": false, + "default": "100" + }, + { + "name": "step", + "type": "number", + "required": false, + "default": "1" + }, + { + "name": "showValue", + "type": "boolean", + "required": false, + "default": "true" + }, + { + "name": "showBounds", + "type": "boolean", + "required": false, + "default": "true" + }, + { + "name": "showSteps", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "marks", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "disabled", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "required", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "class", + "type": "string", + "required": false, + "default": "\"\"" + } + ], + "slots": [], + "events": ["input", "change", "focus", "blur"], "source": "components/RangeSlider.wrn" }, { @@ -4401,7 +5780,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["input", "change"], "source": "components/Rating.wrn" }, { @@ -4454,7 +5833,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["change"], "source": "components/Scrollspy.wrn" }, { @@ -4543,7 +5922,7 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "search", "submit", "clear"], "source": "components/SearchBox.wrn" }, { @@ -4565,10 +5944,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"Select\"" + "default": "\"\"" }, { "name": "name", @@ -4576,12 +5955,30 @@ "required": false, "default": "\"\"" }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Select\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "value", "type": "string", "required": false, "default": "\"\"" }, + { + "name": "values", + "type": "string", + "required": false, + "default": "[]" + }, { "name": "options", "type": "string", @@ -4594,18 +5991,72 @@ "required": false, "default": "\"Select an option\"" }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "icon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "multiple", "type": "boolean", "required": false, "default": "false" }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", "required": false, "default": "false" }, + { + "name": "required", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "class", "type": "string", @@ -4614,8 +6065,8 @@ } ], "slots": [], - "events": [], - "source": "components/select.wrn" + "events": ["input", "change", "focus", "blur", "open", "close", "invalid"], + "source": "components/Select.wrn" }, { "name": "Sidebar", @@ -4667,7 +6118,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["toggle", "open", "close"], "source": "components/Sidebar.wrn" }, { @@ -4802,7 +6253,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["change", "previous", "next", "complete"], "source": "components/Stepper.wrn" }, { @@ -5050,10 +6501,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"Switch\"" + "default": "\"\"" }, { "name": "name", @@ -5061,6 +6512,42 @@ "required": false, "default": "\"\"" }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Switch\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "placeholder", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "icon", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, { "name": "value", "type": "string", @@ -5073,12 +6560,48 @@ "required": false, "default": "false" }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", "required": false, "default": "false" }, + { + "name": "required", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "class", "type": "string", @@ -5087,8 +6610,8 @@ } ], "slots": [], - "events": [], - "source": "components/switch.wrn" + "events": ["input", "change", "focus", "blur"], + "source": "components/Switch.wrn" }, { "name": "Table", @@ -5140,7 +6663,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["sort", "select", "rowClick"], "source": "components/table.wrn" }, { @@ -5193,7 +6716,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["change", "select"], "source": "components/Tabs.wrn" }, { @@ -5214,6 +6737,18 @@ "required": false, "default": "\"primary\"" }, + { + "name": "id", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "name", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "label", "type": "string", @@ -5221,7 +6756,13 @@ "default": "\"Textarea\"" }, { - "name": "name", + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, + { + "name": "placeholder", "type": "string", "required": false, "default": "\"\"" @@ -5233,17 +6774,65 @@ "default": "\"\"" }, { - "name": "placeholder", + "name": "variant", + "type": "string", + "required": false, + "default": "\"normal\"" + }, + { + "name": "icon", "type": "string", "required": false, "default": "\"\"" }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"start\"" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "rows", "type": "number", "required": false, "default": "5" }, + { + "name": "resize", + "type": "string", + "required": false, + "default": "\"vertical\"" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -5256,6 +6845,18 @@ "required": false, "default": "false" }, + { + "name": "minlength", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "maxlength", + "type": "string", + "required": false, + "default": "\"\"" + }, { "name": "class", "type": "string", @@ -5264,8 +6865,8 @@ } ], "slots": [], - "events": [], - "source": "components/textarea.wrn" + "events": ["input", "change", "focus", "blur", "invalid"], + "source": "components/Textarea.wrn" }, { "name": "Timeline", @@ -5317,7 +6918,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select"], "source": "components/Timeline.wrn" }, { @@ -5339,10 +6940,10 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "id", "type": "string", "required": false, - "default": "\"Time Picker\"" + "default": "\"\"" }, { "name": "name", @@ -5350,6 +6951,18 @@ "required": false, "default": "\"\"" }, + { + "name": "label", + "type": "string", + "required": false, + "default": "\"Time\"" + }, + { + "name": "hiddenLabel", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "value", "type": "string", @@ -5363,10 +6976,46 @@ "default": "\"\"" }, { - "name": "type", + "name": "variant", "type": "string", "required": false, - "default": "\"time\"" + "default": "\"normal\"" + }, + { + "name": "icon", + "type": "string", + "required": false, + "default": "\"icon-[lucide--clock-3]\"" + }, + { + "name": "iconPosition", + "type": "string", + "required": false, + "default": "\"end\"" + }, + { + "name": "helperText", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "cornerHint", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "error", + "type": "string", + "required": false, + "default": "\"\"" + }, + { + "name": "inline", + "type": "boolean", + "required": false, + "default": "false" }, { "name": "min", @@ -5386,6 +7035,36 @@ "required": false, "default": "\"\"" }, + { + "name": "format", + "type": "string", + "required": false, + "default": "\"24\"" + }, + { + "name": "minuteStep", + "type": "number", + "required": false, + "default": "5" + }, + { + "name": "hours", + "type": "string", + "required": false, + "default": "[\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"]" + }, + { + "name": "minutes", + "type": "string", + "required": false, + "default": "[\"00\", \"05\", \"10\", \"15\", \"20\", \"25\", \"30\", \"35\", \"40\", \"45\", \"50\", \"55\"]" + }, + { + "name": "readonly", + "type": "boolean", + "required": false, + "default": "false" + }, { "name": "disabled", "type": "boolean", @@ -5406,7 +7085,7 @@ } ], "slots": [], - "events": [], + "events": ["input", "change", "focus", "blur", "open", "close", "invalid"], "source": "components/TimePicker.wrn" }, { @@ -5459,7 +7138,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["dismiss", "action"], "source": "components/Toast.wrn" }, { @@ -5512,7 +7191,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["add", "dismiss", "clear", "action"], "source": "components/ToastNotifications.wrn" }, { @@ -5534,52 +7213,106 @@ "default": "\"primary\"" }, { - "name": "label", + "name": "variant", "type": "string", "required": false, - "default": "\"Toggle Count\"" + "default": "\"segmented\"" + }, + { + "name": "class", + "type": "string", + "required": false, + "default": "\"\"" }, { "name": "name", "type": "string", "required": false, - "default": "\"\"" + "default": "\"billing-cycle\"" }, { "name": "value", "type": "string", "required": false, - "default": "\"\"" + "default": "\"monthly\"" }, { - "name": "placeholder", + "name": "firstValue", + "type": "string", + "required": false, + "default": "\"monthly\"" + }, + { + "name": "firstLabel", + "type": "string", + "required": false, + "default": "\"Monthly\"" + }, + { + "name": "secondValue", + "type": "string", + "required": false, + "default": "\"annual\"" + }, + { + "name": "secondLabel", + "type": "string", + "required": false, + "default": "\"Annual\"" + }, + { + "name": "ariaLabel", + "type": "string", + "required": false, + "default": "\"Billing frequency\"" + }, + { + "name": "items", + "type": "string", + "required": false, + "default": "[]" + }, + { + "name": "currency", + "type": "string", + "required": false, + "default": "\"$\"" + }, + { + "name": "suffix", "type": "string", "required": false, "default": "\"\"" }, { - "name": "type", + "name": "firstValueKey", "type": "string", "required": false, - "default": "\"text\"" + "default": "\"monthly\"" }, { - "name": "min", + "name": "secondValueKey", "type": "string", "required": false, - "default": "\"\"" + "default": "\"annual\"" }, { - "name": "max", + "name": "emptyValue", "type": "string", "required": false, - "default": "\"\"" + "default": "\"—\"" }, { - "name": "step", + "name": "align", "type": "string", "required": false, - "default": "\"\"" + "default": "\"end\"" + }, + { + "name": "fullWidth", + "type": "boolean", + "required": false, + "default": "true" }, { "name": "disabled", @@ -5588,20 +7321,26 @@ "default": "false" }, { - "name": "required", + "name": "animate", "type": "boolean", "required": false, - "default": "false" + "default": "true" }, { - "name": "class", - "type": "string", + "name": "animationDuration", + "type": "number", "required": false, - "default": "\"\"" + "default": "450" + }, + { + "name": "animationSteps", + "type": "number", + "required": false, + "default": "18" } ], "slots": [], - "events": [], + "events": ["change", "toggle"], "source": "components/ToggleCount.wrn" }, { @@ -5815,7 +7554,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["open", "close"], "source": "components/tooltip.wrn" }, { @@ -5868,7 +7607,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["select", "toggle", "expand", "collapse"], "source": "components/TreeView.wrn" }, { @@ -5968,7 +7707,7 @@ } ], "slots": ["default"], - "events": [], + "events": ["input", "change", "focus", "blur"], "source": "components/WysiwygEditor.wrn" } ] diff --git a/.publish/ui/components/Accordion.wrn b/.publish/ui/components/Accordion.wrn index 689c3bb9..8e75cc66 100644 --- a/.publish/ui/components/Accordion.wrn +++ b/.publish/ui/components/Accordion.wrn @@ -2,14 +2,202 @@ component Accordion { props { size = "default" color = "primary" - items = [] - multiple = false + variant = "default" class = "" + + id = "accordion" + items = [] + defaultOpen = [] + multiple = false + alwaysOpen = false + disabled = false + + indicator = "plus" + indicatorPosition = "start" + showIndicator = true + bordered = false + separated = false + flush = false + contentItalic = false + + @event change = function + @event open = function + @event close = function } + + state openValues = defaultOpen + + functions { + function itemValue(item, index) { + return item.value !== undefined && item.value !== "" + ? String(item.value) + : String(index) + } + + function nestedValue(parent, parentIndex, item, index) { + return itemValue(parent, parentIndex) + "." + itemValue(item, index) + } + + function isOpen(value) { + return openValues.includes(value) + } + + function allowsMultiple() { + return multiple || alwaysOpen + } + + function dispatchAccordionEvent(sourceEvent, eventName, value, item, root, customEvent) { + root = sourceEvent.currentTarget.closest("[data-wrn-accordion]") + + if (!root) { + return + } + + customEvent = document.createEvent("CustomEvent") + customEvent.initCustomEvent(eventName, true, false, { + component: "Accordion", + value: value, + item: item, + open: isOpen(value), + openValues: openValues + }) + root.dispatchEvent(customEvent) + } + + function toggleItem(sourceEvent, value, item, wasOpen) { + if (disabled || item.disabled) { + return + } + + wasOpen = isOpen(value) + + if (wasOpen) { + openValues = openValues.filter((entry) => entry !== value) + } else if (allowsMultiple()) { + openValues = openValues.concat([value]) + } else { + openValues = [value] + } + + dispatchAccordionEvent( + sourceEvent, + wasOpen ? "close" : "open", + value, + item + ) + dispatchAccordionEvent(sourceEvent, "change", value, item) + } + + } + view { -
- {#each items as item}
{item.label}
{item.content}
{/each} - +
+ {#each items as item, index} +
+

+ +

+ +
+
+
+ {#if item.content}

{item.content}

{/if} + + {#if item.children && item.children.length > 0} +
+ {#each item.children as child, childIndex} +
+

+ +

+
+
+
+

{child.content}

+
+
+
+
+ {/each} +
+ {/if} +
+
+
+
+ {/each}
} } diff --git a/.publish/ui/components/AdvancedDatePicker.wrn b/.publish/ui/components/AdvancedDatePicker.wrn index 48954b2a..e9664362 100644 --- a/.publish/ui/components/AdvancedDatePicker.wrn +++ b/.publish/ui/components/AdvancedDatePicker.wrn @@ -1,5 +1,10 @@ component AdvancedDatePicker { props { + @event input = function + @event change = function + @event open = function + @event close = function + @event clear = function size = "default" color = "primary" title = "Advanced Date Picker" diff --git a/.publish/ui/components/AdvancedRangeSlider.wrn b/.publish/ui/components/AdvancedRangeSlider.wrn index 963bed7d..51090087 100644 --- a/.publish/ui/components/AdvancedRangeSlider.wrn +++ b/.publish/ui/components/AdvancedRangeSlider.wrn @@ -1,5 +1,9 @@ component AdvancedRangeSlider { props { + @event input = function + @event change = function + @event start = function + @event end = function size = "default" color = "primary" title = "Advanced Range Slider" diff --git a/.publish/ui/components/AvatarGroup.wrn b/.publish/ui/components/AvatarGroup.wrn index 1930a2c4..1bb009c6 100644 --- a/.publish/ui/components/AvatarGroup.wrn +++ b/.publish/ui/components/AvatarGroup.wrn @@ -1,19 +1,121 @@ component AvatarGroup { props { - size = "default" - color = "primary" - title = "Avatar Group" - description = "" items = [] - variant = "default" + size = "md" + color = "primary" + variant = "solid" + shape = "circle" + layout = "stack" + maxVisible = 4 + columns = 3 + borderColor = "" + showTooltips = true + overflowLabel = "Show remaining members" class = "" + + @event overflow = function } + + state overflowOpen = false + + functions { + function visibleMembers() { + return items.slice(0, Number(maxVisible)) + } + + function hiddenMembers() { + return items.slice(Number(maxVisible)) + } + + function toggleOverflow(sourceEvent, root, customEvent) { + overflowOpen = !overflowOpen + root = sourceEvent.currentTarget.closest("[data-wrn-avatar-group]") + + customEvent = document.createEvent("CustomEvent") + customEvent.initCustomEvent("overflow", true, false, { + component: "AvatarGroup", + open: overflowOpen, + hiddenCount: hiddenMembers().length + }) + root.dispatchEvent(customEvent) + } + } + view { -
- {#if title}{title}{/if} - {#if description}

{description}

{/if} - {#if items}
{#each items as item}{item.label}{/each}
{/if} - -
+
+
+ {#each visibleMembers() as item} + + + {#if item.src} + {item.alt || item.name || ''} + {:else if item.initials} + + {:else} + + {/if} + + + {#if showTooltips && (item.tooltip || item.name)} + + {item.tooltip || item.name} + + {/if} + + {/each} + + {#if hiddenMembers().length > 0} + + + + + {#each hiddenMembers() as item} + + + {#if item.src} + + {:else} + {item.initials || '?'} + {/if} + + {item.name || item.alt || item.initials || 'Team member'} + + {/each} + + + {/if} +
+
} } diff --git a/.publish/ui/components/Blockquote.wrn b/.publish/ui/components/Blockquote.wrn index 693b09a3..dc476675 100644 --- a/.publish/ui/components/Blockquote.wrn +++ b/.publish/ui/components/Blockquote.wrn @@ -1,19 +1,67 @@ component Blockquote { props { - size = "default" + quote = "I just wanted to say that I'm very happy with my purchase so far. The documentation is outstanding - clear and detailed." + citation = "" + citationTitle = "" + citationUrl = "" + avatarSrc = "" + avatarAlt = "" + size = "md" color = "primary" - title = "Blockquote" - description = "" - items = [] + align = "left" variant = "default" + quoteMark = true + italic = true class = "" } + view { -
- {#if title}{title}{/if} - {#if description}

{description}

{/if} - {#if items}
{#each items as item}{item.label}{/each}
{/if} - -
+
+
+ {#if quoteMark} + + {/if} + +
+ {#if quote} +

{quote}

+ {:else} + + {/if} +
+
+ + {#if citation || citationTitle || avatarSrc} +
+ {#if avatarSrc} + {avatarAlt} + {/if} + + + {#if citation} + {#if citationUrl} + {citation} + {:else} + {citation} + {/if} + {/if} + {#if citationTitle}{citationTitle}{/if} + +
+ {/if} +
} } diff --git a/.publish/ui/components/Breadcrumb.wrn b/.publish/ui/components/Breadcrumb.wrn index 41e5654e..1fee40b5 100644 --- a/.publish/ui/components/Breadcrumb.wrn +++ b/.publish/ui/components/Breadcrumb.wrn @@ -1,5 +1,7 @@ component Breadcrumb { props { + @event navigate = function + @event click = function size = "default" color = "primary" label = "Breadcrumb" diff --git a/.publish/ui/components/ButtonGroup.wrn b/.publish/ui/components/ButtonGroup.wrn index 8d40d424..7430aba7 100644 --- a/.publish/ui/components/ButtonGroup.wrn +++ b/.publish/ui/components/ButtonGroup.wrn @@ -1,19 +1,89 @@ component ButtonGroup { props { - size = "default" - color = "primary" - title = "Button Group" - description = "" + @event click = function + @event select = function + @event change = function items = [] + value = "" + size = "md" + color = "primary" variant = "default" + orientation = "horizontal" + responsive = false + attached = true + selectable = false + toolbar = false + disabled = false + ariaLabel = "Button group" class = "" } + + state selectedValue = value + + functions { + function itemValue(item, index) { + return item.value || item.label || String(index) + } + + function selectItem(item, index) { + previousValue = selectedValue + nextValue = itemValue(item, index) + + $emit("select", { + value: nextValue, + previousValue: previousValue, + item: item, + index: index + }) + + if (selectable && previousValue !== nextValue) { + selectedValue = nextValue + $emit("change", { + value: nextValue, + previousValue: previousValue, + item: item, + index: index + }) + } + } + } + view { -
- {#if title}{title}{/if} - {#if description}

{description}

{/if} - {#if items}
{#each items as item}{item.label}{/each}
{/if} +
+ {#if items} + {#each items as item, index} + + {/each} + {/if} -
+
} } diff --git a/.publish/ui/components/Carousel.wrn b/.publish/ui/components/Carousel.wrn index c9024c86..4efdb206 100644 --- a/.publish/ui/components/Carousel.wrn +++ b/.publish/ui/components/Carousel.wrn @@ -1,19 +1,461 @@ +// Interactive, hydration-safe content carousel. component Carousel { props { + @event initialize = function + @event change = function + @event previous = function + @event next = function + @event play = function + @event pause = function + @event reachStart = function + @event reachEnd = function + @event dragStart = function + @event dragEnd = function size = "default" color = "primary" - title = "Carousel" + title = "" description = "" items = [] + activeIndex = 0 + slidesPerView = 1 + gap = "0.75rem" + showPagination = false + isAutoPlay = false + autoplayInterval = 4000 + isInfiniteLoop = false + isRTL = false + isCentered = false + isDraggable = false + isAutoHeight = false + isSnap = false + showCounter = false + thumbnails = "none" + ariaLabel = "Content carousel" variant = "default" class = "" } + + state currentIndex = activeIndex + state playing = false + state dragOrigin = null + state dragOffset = 0 + state autoplayTimer = null + state carouselRoot = null + + functions { + function slideCount() { + return items.length + } + + function maximumIndex(count, visible) { + count = slideCount() + visible = Math.max(1, Number(slidesPerView) || 1) + if (isCentered || isSnap) { + return Math.max(0, count - 1) + } + return Math.max(0, count - visible) + } + + function normalizedIndex(index, maximum) { + maximum = maximumIndex() + if (slideCount() === 0) { + return 0 + } + if (isInfiniteLoop) { + if (index < 0) { + return maximum + } + if (index > maximum) { + return 0 + } + } + return Math.max(0, Math.min(index, maximum)) + } + + function rememberRoot(sourceEvent, root) { + if (!sourceEvent || !sourceEvent.currentTarget) { + return + } + root = sourceEvent.currentTarget.closest(".wire-next--carousel") + if (root) { + carouselRoot = root + } + } + + function syncNavigation(sourceEvent, index, root, viewport, slides, slide, thumbnails, thumbnail, rail) { + rememberRoot(sourceEvent) + root = carouselRoot + if (!root) { + return + } + if (isSnap) { + viewport = root.querySelector(".wire-next__carousel-viewport") + slides = root.querySelectorAll(".wire-next__carousel-slide") + slide = slides[index] + if (viewport && slide) { + viewport.scrollTo({ + left: slide.offsetLeft - (viewport.clientWidth - slide.clientWidth) / 2, + behavior: "smooth" + }) + } + } + thumbnails = root.querySelectorAll(".wire-next__carousel-thumbnails button") + if (thumbnails[index]) { + thumbnail = thumbnails[index] + rail = thumbnail.parentElement + rail.scrollTo({ + left: thumbnail.offsetLeft - (rail.clientWidth - thumbnail.clientWidth) / 2, + top: thumbnail.offsetTop - (rail.clientHeight - thumbnail.clientHeight) / 2, + behavior: "smooth" + }) + } + } + + function handleSnapScroll(sourceEvent, slides, viewport, viewportCenter, closestIndex, closestDistance, slide, slideCenter, distance, previousIndex) { + if (!isSnap) { + return + } + rememberRoot(sourceEvent) + viewport = sourceEvent.currentTarget + slides = viewport.querySelectorAll(".wire-next__carousel-slide") + viewportCenter = viewport.scrollLeft + viewport.clientWidth / 2 + closestIndex = currentIndex + closestDistance = 1000000000 + slides.forEach(function (candidate, index) { + slideCenter = candidate.offsetLeft + candidate.clientWidth / 2 + distance = Math.abs(slideCenter - viewportCenter) + if (distance < closestDistance) { + closestDistance = distance + closestIndex = index + } + }) + closestIndex = normalizedIndex(closestIndex) + if (closestIndex !== currentIndex) { + previousIndex = currentIndex + currentIndex = closestIndex + $emit("change", { + index: currentIndex, + previousIndex: previousIndex, + item: items[currentIndex], + reason: "snap" + }) + slides = carouselRoot.querySelectorAll(".wire-next__carousel-thumbnails button") + slide = slides[currentIndex] + if (slide) { + viewport = slide.parentElement + viewport.scrollTo({ + left: slide.offsetLeft - (viewport.clientWidth - slide.clientWidth) / 2, + top: slide.offsetTop - (viewport.clientHeight - slide.clientHeight) / 2, + behavior: "smooth" + }) + } + } + } + + function selectSlide(index, reason, sourceEvent, previousIndex) { + if (slideCount() === 0) { + return + } + previousIndex = currentIndex + currentIndex = normalizedIndex(Number(index)) + syncNavigation(sourceEvent, currentIndex) + if (previousIndex === currentIndex && reason !== "initialize") { + return + } + $emit("change", { + index: currentIndex, + previousIndex: previousIndex, + item: items[currentIndex], + reason: reason || "select" + }) + if (currentIndex === 0) { + $emit("reachStart", { index: currentIndex }) + } + if (currentIndex === maximumIndex()) { + $emit("reachEnd", { index: currentIndex }) + } + } + + function previousSlide(sourceEvent, previousIndex) { + previousIndex = currentIndex + selectSlide(currentIndex - 1, "previous", sourceEvent) + $emit("previous", { + index: currentIndex, + previousIndex: previousIndex, + item: items[currentIndex] + }) + } + + function nextSlide(sourceEvent, previousIndex) { + previousIndex = currentIndex + selectSlide(currentIndex + 1, "next", sourceEvent) + $emit("next", { + index: currentIndex, + previousIndex: previousIndex, + item: items[currentIndex] + }) + } + + function handleKeydown(sourceEvent) { + if (sourceEvent.key === "ArrowLeft") { + sourceEvent.preventDefault() + if (isRTL) { + nextSlide(sourceEvent) + } else { + previousSlide(sourceEvent) + } + } + if (sourceEvent.key === "ArrowRight") { + sourceEvent.preventDefault() + if (isRTL) { + previousSlide(sourceEvent) + } else { + nextSlide(sourceEvent) + } + } + if (sourceEvent.key === "Home") { + sourceEvent.preventDefault() + selectSlide(0, "keyboard", sourceEvent) + } + if (sourceEvent.key === "End") { + sourceEvent.preventDefault() + selectSlide(maximumIndex(), "keyboard", sourceEvent) + } + } + + function beginDrag(sourceEvent) { + if (!isDraggable || isSnap) { + return + } + sourceEvent.preventDefault() + dragOrigin = sourceEvent.clientX + dragOffset = 0 + sourceEvent.currentTarget.setPointerCapture(sourceEvent.pointerId) + $emit("dragStart", { index: currentIndex, x: dragOrigin }) + } + + function moveDrag(sourceEvent) { + if (!isDraggable || isSnap || dragOrigin === null) { + return + } + sourceEvent.preventDefault() + dragOffset = sourceEvent.clientX - dragOrigin + } + + function cancelDrag() { + dragOrigin = null + dragOffset = 0 + } + + function endDrag(sourceEvent, distance) { + if (!isDraggable || isSnap || dragOrigin === null) { + return + } + sourceEvent.preventDefault() + distance = dragOffset || sourceEvent.clientX - dragOrigin + dragOrigin = null + dragOffset = 0 + if (Math.abs(distance) > 20) { + if ((distance < 0 && !isRTL) || (distance > 0 && isRTL)) { + nextSlide(sourceEvent) + } else { + previousSlide(sourceEvent) + } + } + $emit("dragEnd", { + index: currentIndex, + distance: distance + }) + } + + function advanceAutoplay() { + if (currentIndex >= maximumIndex()) { + selectSlide(0, "autoplay") + } else { + selectSlide(currentIndex + 1, "autoplay") + } + } + + function startAutoplay() { + if (!isAutoPlay || playing || slideCount() < 2) { + return + } + playing = true + autoplayTimer = setInterval(advanceAutoplay, Math.max(1000, Number(autoplayInterval))) + $emit("play", { index: currentIndex, interval: autoplayInterval }) + } + + function pauseAutoplay() { + if (autoplayTimer) { + clearInterval(autoplayTimer) + } + autoplayTimer = null + if (playing) { + $emit("pause", { index: currentIndex }) + } + playing = false + } + + } + + lifecycle { + mount { + $emit("initialize", { index: currentIndex, count: slideCount() }) + startAutoplay() + } + unmount { + if (autoplayTimer) { + clearInterval(autoplayTimer) + } + } + } + view { - @@ -241,11 +241,15 @@ page ButtonDetail { - +
Component events

Events

Public events declared by this component. Custom events bubble from the component root and expose state through event.detail.

@clickFires when the component is activated by pointer or keyboard.
@focusFires when the component receives focus.
@blurFires when focus leaves the component.
Event listener.js
const component = document.querySelector('[data-wrn-events]')
+
+component.addEventListener('click', (event) => {
+  console.log(event.detail)
+})
Component API

Props and configuration

All content and behavior shown above is supplied through these props and slots.

PropTypeDefaultRequired
labelstring"Button"No
loadingLabelstring"Loading…"No
descriptionstring""No
asstring""No
hrefstring""No
targetstring""No
relstring""No
typestring"button"No
variantstring"default"No
colorstring"primary"No
sizestring"default"No
disabledbooleanfalseNo
loadingbooleanfalseNo
pillbooleanfalseNo
fullWidthbooleanfalseNo
iconstring""No
iconPositionstring"start"No
ariaLabelstring""No
ariaPressedstring""No
ariaExpandedstring""No
ariaControlsstring""No
titlestring""No
autofocusbooleanfalseNo
controlClassstring""No
classstring""No