@colletdev/core 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -0
- package/custom-elements.json +6037 -0
- package/generated/.gitattributes +2 -0
- package/generated/index.d.ts +120 -0
- package/generated/index.js +521 -0
- package/generated/styles.js +2845 -0
- package/package.json +56 -0
- package/src/elements/accordion.d.ts +20 -0
- package/src/elements/accordion.js +92 -0
- package/src/elements/activity_group.d.ts +19 -0
- package/src/elements/activity_group.js +27 -0
- package/src/elements/alert.d.ts +24 -0
- package/src/elements/alert.js +40 -0
- package/src/elements/autocomplete.d.ts +30 -0
- package/src/elements/autocomplete.js +671 -0
- package/src/elements/avatar.d.ts +18 -0
- package/src/elements/avatar.js +28 -0
- package/src/elements/backdrop.d.ts +14 -0
- package/src/elements/backdrop.js +28 -0
- package/src/elements/badge.d.ts +21 -0
- package/src/elements/badge.js +42 -0
- package/src/elements/breadcrumb.d.ts +17 -0
- package/src/elements/breadcrumb.js +41 -0
- package/src/elements/button.d.ts +24 -0
- package/src/elements/button.js +36 -0
- package/src/elements/card.d.ts +21 -0
- package/src/elements/card.js +67 -0
- package/src/elements/carousel.d.ts +23 -0
- package/src/elements/carousel.js +895 -0
- package/src/elements/chat_input.d.ts +22 -0
- package/src/elements/chat_input.js +78 -0
- package/src/elements/checkbox.d.ts +21 -0
- package/src/elements/checkbox.js +114 -0
- package/src/elements/code_block.d.ts +21 -0
- package/src/elements/code_block.js +27 -0
- package/src/elements/collapsible.d.ts +20 -0
- package/src/elements/collapsible.js +93 -0
- package/src/elements/date_picker.d.ts +30 -0
- package/src/elements/date_picker.js +528 -0
- package/src/elements/dialog.d.ts +20 -0
- package/src/elements/dialog.js +314 -0
- package/src/elements/drawer.d.ts +20 -0
- package/src/elements/drawer.js +318 -0
- package/src/elements/fab.d.ts +22 -0
- package/src/elements/fab.js +36 -0
- package/src/elements/file_upload.d.ts +26 -0
- package/src/elements/file_upload.js +59 -0
- package/src/elements/listbox.d.ts +19 -0
- package/src/elements/listbox.js +250 -0
- package/src/elements/menu.d.ts +20 -0
- package/src/elements/menu.js +224 -0
- package/src/elements/message_bubble.d.ts +23 -0
- package/src/elements/message_bubble.js +29 -0
- package/src/elements/message_group.d.ts +18 -0
- package/src/elements/message_group.js +28 -0
- package/src/elements/message_part.d.ts +35 -0
- package/src/elements/message_part.js +153 -0
- package/src/elements/pagination.d.ts +22 -0
- package/src/elements/pagination.js +36 -0
- package/src/elements/popover.d.ts +26 -0
- package/src/elements/popover.js +191 -0
- package/src/elements/profile_menu.d.ts +20 -0
- package/src/elements/profile_menu.js +213 -0
- package/src/elements/progress.d.ts +18 -0
- package/src/elements/progress.js +31 -0
- package/src/elements/radio_group.d.ts +22 -0
- package/src/elements/radio_group.js +70 -0
- package/src/elements/scrollbar.d.ts +19 -0
- package/src/elements/scrollbar.js +299 -0
- package/src/elements/search_bar.d.ts +27 -0
- package/src/elements/search_bar.js +98 -0
- package/src/elements/select.d.ts +26 -0
- package/src/elements/select.js +485 -0
- package/src/elements/sidebar.d.ts +21 -0
- package/src/elements/sidebar.js +322 -0
- package/src/elements/skeleton.d.ts +17 -0
- package/src/elements/skeleton.js +31 -0
- package/src/elements/slider.d.ts +28 -0
- package/src/elements/slider.js +93 -0
- package/src/elements/speed_dial.d.ts +23 -0
- package/src/elements/speed_dial.js +370 -0
- package/src/elements/spinner.d.ts +15 -0
- package/src/elements/spinner.js +28 -0
- package/src/elements/split_button.d.ts +23 -0
- package/src/elements/split_button.js +281 -0
- package/src/elements/stepper.d.ts +20 -0
- package/src/elements/stepper.js +31 -0
- package/src/elements/switch.d.ts +22 -0
- package/src/elements/switch.js +129 -0
- package/src/elements/table.d.ts +29 -0
- package/src/elements/table.js +371 -0
- package/src/elements/tabs.d.ts +19 -0
- package/src/elements/tabs.js +139 -0
- package/src/elements/text.d.ts +26 -0
- package/src/elements/text.js +32 -0
- package/src/elements/text_input.d.ts +36 -0
- package/src/elements/text_input.js +121 -0
- package/src/elements/thinking.d.ts +17 -0
- package/src/elements/thinking.js +28 -0
- package/src/elements/toast.d.ts +23 -0
- package/src/elements/toast.js +209 -0
- package/src/elements/toggle_group.d.ts +22 -0
- package/src/elements/toggle_group.js +176 -0
- package/src/elements/tooltip.d.ts +18 -0
- package/src/elements/tooltip.js +64 -0
- package/src/markdown.d.ts +24 -0
- package/src/markdown.js +66 -0
- package/src/runtime.d.ts +35 -0
- package/src/runtime.js +790 -0
- package/src/server.d.ts +69 -0
- package/src/server.js +176 -0
- package/src/streaming-markdown.js +43 -0
- package/src/vite-plugin.d.ts +46 -0
- package/src/vite-plugin.js +221 -0
- package/wasm/package.json +16 -0
- package/wasm/wasm_api.d.ts +72 -0
- package/wasm/wasm_api.js +593 -0
- package/wasm/wasm_api_bg.wasm +0 -0
- package/wasm/wasm_api_bg.wasm.d.ts +10 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/avatar.rs
|
|
3
|
+
|
|
4
|
+
export function defineCxAvatar(wasmFn, baseClass) {
|
|
5
|
+
class CxAvatar extends baseClass {
|
|
6
|
+
static observedAttributes = ['id', 'label', 'shape', 'size', 'image', 'initials', 'clickable'];
|
|
7
|
+
static _booleanAttrs = new Set(['clickable']);
|
|
8
|
+
static _focusable = false;
|
|
9
|
+
static _hostDisplay = 'inline-flex';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
connectedCallback() {
|
|
13
|
+
super.connectedCallback();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
_doRender() {
|
|
17
|
+
try {
|
|
18
|
+
const result = wasmFn(this._props);
|
|
19
|
+
this._injectHtml(result);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
console.error('[cx-avatar]', e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
customElements.define('cx-avatar', CxAvatar);
|
|
27
|
+
return CxAvatar;
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/backdrop.rs
|
|
3
|
+
|
|
4
|
+
export interface CxBackdropAttributes {
|
|
5
|
+
tint?: string;
|
|
6
|
+
blur?: string;
|
|
7
|
+
dismissible?: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare global {
|
|
11
|
+
interface HTMLElementTagNameMap {
|
|
12
|
+
'cx-backdrop': HTMLElement & CxBackdropAttributes;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/backdrop.rs
|
|
3
|
+
|
|
4
|
+
export function defineCxBackdrop(wasmFn, baseClass) {
|
|
5
|
+
class CxBackdrop extends baseClass {
|
|
6
|
+
static observedAttributes = ['tint', 'blur', 'dismissible'];
|
|
7
|
+
static _booleanAttrs = new Set(['dismissible']);
|
|
8
|
+
static _focusable = false;
|
|
9
|
+
static _hostDisplay = 'block';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
connectedCallback() {
|
|
13
|
+
super.connectedCallback();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
_doRender() {
|
|
17
|
+
try {
|
|
18
|
+
const result = wasmFn(this._props);
|
|
19
|
+
this._injectHtml(result);
|
|
20
|
+
} catch (e) {
|
|
21
|
+
console.error('[cx-backdrop]', e);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
customElements.define('cx-backdrop', CxBackdrop);
|
|
27
|
+
return CxBackdrop;
|
|
28
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/badge.rs
|
|
3
|
+
|
|
4
|
+
export interface CxBadgeAttributes {
|
|
5
|
+
id?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
variant?: 'filled' | 'outline' | 'ghost';
|
|
8
|
+
intent?: 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
|
|
9
|
+
shape?: 'rounded' | 'pill';
|
|
10
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
11
|
+
dot?: boolean;
|
|
12
|
+
dismissible?: boolean;
|
|
13
|
+
dismissLabel?: string;
|
|
14
|
+
dynamic?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
declare global {
|
|
18
|
+
interface HTMLElementTagNameMap {
|
|
19
|
+
'cx-badge': HTMLElement & CxBadgeAttributes;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/badge.rs
|
|
3
|
+
|
|
4
|
+
export function defineCxBadge(wasmFn, baseClass) {
|
|
5
|
+
class CxBadge extends baseClass {
|
|
6
|
+
static observedAttributes = ['id', 'label', 'variant', 'intent', 'shape', 'size', 'dot', 'dismissible', 'dismiss-label', 'dynamic'];
|
|
7
|
+
static _booleanAttrs = new Set(['dot', 'dismissible', 'dynamic']);
|
|
8
|
+
static _focusable = false;
|
|
9
|
+
static _hostDisplay = 'inline-flex';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
connectedCallback() {
|
|
13
|
+
if (!this._isInitialized) {
|
|
14
|
+
this._markInitialized();
|
|
15
|
+
if (!this._props.id) {
|
|
16
|
+
this._props.id = `cx-badge-${Math.random().toString(36).slice(2, 8)}`;
|
|
17
|
+
}
|
|
18
|
+
// Delegate dismiss button click
|
|
19
|
+
// Badge/Alert use data-handler="...-dismiss", Toast uses data-toast-dismiss
|
|
20
|
+
this._shadow.addEventListener('click', (e) => {
|
|
21
|
+
const btn = e.target.closest('[data-handler*="dismiss"], [data-toast-dismiss]');
|
|
22
|
+
if (btn) {
|
|
23
|
+
this._emit('cx-dismiss', {});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
super.connectedCallback();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_doRender() {
|
|
31
|
+
try {
|
|
32
|
+
const result = wasmFn(this._props);
|
|
33
|
+
this._injectHtml(result);
|
|
34
|
+
} catch (e) {
|
|
35
|
+
console.error('[cx-badge]', e);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
customElements.define('cx-badge', CxBadge);
|
|
41
|
+
return CxBadge;
|
|
42
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/breadcrumb.rs
|
|
3
|
+
|
|
4
|
+
export interface CxBreadcrumbAttributes {
|
|
5
|
+
id?: string;
|
|
6
|
+
items?: string;
|
|
7
|
+
separator?: string;
|
|
8
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
9
|
+
navLabel?: string;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare global {
|
|
14
|
+
interface HTMLElementTagNameMap {
|
|
15
|
+
'cx-breadcrumb': HTMLElement & CxBreadcrumbAttributes;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/breadcrumb.rs
|
|
3
|
+
|
|
4
|
+
export function defineCxBreadcrumb(wasmFn, baseClass) {
|
|
5
|
+
class CxBreadcrumb extends baseClass {
|
|
6
|
+
static observedAttributes = ['id', 'items', 'separator', 'size', 'nav-label', 'disabled'];
|
|
7
|
+
static _booleanAttrs = new Set(['disabled']);
|
|
8
|
+
static _focusable = false;
|
|
9
|
+
static _hostDisplay = 'inline-flex';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
connectedCallback() {
|
|
13
|
+
if (!this._isInitialized) {
|
|
14
|
+
this._markInitialized();
|
|
15
|
+
// Delegate link clicks to cx-navigate Custom Event
|
|
16
|
+
this._shadow.addEventListener('click', (e) => {
|
|
17
|
+
const link = e.target.closest('a[href]');
|
|
18
|
+
if (!link) return;
|
|
19
|
+
e.preventDefault();
|
|
20
|
+
this._emit('cx-navigate', {
|
|
21
|
+
href: link.getAttribute('href'),
|
|
22
|
+
label: link.textContent?.trim() || '',
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
super.connectedCallback();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
_doRender() {
|
|
30
|
+
try {
|
|
31
|
+
const result = wasmFn(this._props);
|
|
32
|
+
this._injectHtml(result);
|
|
33
|
+
} catch (e) {
|
|
34
|
+
console.error('[cx-breadcrumb]', e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
customElements.define('cx-breadcrumb', CxBreadcrumb);
|
|
40
|
+
return CxBreadcrumb;
|
|
41
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/button.rs
|
|
3
|
+
|
|
4
|
+
export interface CxButtonAttributes {
|
|
5
|
+
label?: string;
|
|
6
|
+
variant?: 'filled' | 'ghost' | 'outline' | 'underline' | 'side-indicator';
|
|
7
|
+
intent?: 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'danger';
|
|
8
|
+
shape?: 'sharp' | 'rounded' | 'pill';
|
|
9
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
iconLeading?: string;
|
|
12
|
+
iconTrailing?: string;
|
|
13
|
+
iconOnly?: string;
|
|
14
|
+
ariaLabel?: string;
|
|
15
|
+
kind?: 'button' | 'submit' | 'toggle' | 'link';
|
|
16
|
+
pressed?: boolean;
|
|
17
|
+
href?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
'cx-button': HTMLElement & CxButtonAttributes;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/button.rs
|
|
3
|
+
|
|
4
|
+
export function defineCxButton(wasmFn, baseClass) {
|
|
5
|
+
class CxButton extends baseClass {
|
|
6
|
+
static observedAttributes = ['label', 'variant', 'intent', 'shape', 'size', 'disabled', 'icon-leading', 'icon-trailing', 'icon-only', 'aria-label', 'kind', 'pressed', 'href'];
|
|
7
|
+
static _booleanAttrs = new Set(['disabled', 'pressed']);
|
|
8
|
+
static _hostDisplay = 'inline-flex';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
connectedCallback() {
|
|
12
|
+
if (!this._isInitialized) {
|
|
13
|
+
this._markInitialized();
|
|
14
|
+
// Delegate click from inner element to Custom Event
|
|
15
|
+
this._shadow.addEventListener('click', (e) => {
|
|
16
|
+
if (!this.hasAttribute('disabled')) {
|
|
17
|
+
this._emit('cx-click', { originalEvent: e });
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
super.connectedCallback();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
_doRender() {
|
|
25
|
+
try {
|
|
26
|
+
const result = wasmFn(this._props);
|
|
27
|
+
this._injectHtml(result);
|
|
28
|
+
} catch (e) {
|
|
29
|
+
console.error('[cx-button]', e);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
customElements.define('cx-button', CxButton);
|
|
35
|
+
return CxButton;
|
|
36
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/card.rs
|
|
3
|
+
|
|
4
|
+
export interface CxCardAttributes {
|
|
5
|
+
id?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
variant?: 'elevated' | 'outlined' | 'filled';
|
|
8
|
+
shape?: 'rounded' | 'sharp';
|
|
9
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
10
|
+
header?: string;
|
|
11
|
+
body?: string;
|
|
12
|
+
footer?: string;
|
|
13
|
+
clickable?: boolean;
|
|
14
|
+
texture?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
declare global {
|
|
18
|
+
interface HTMLElementTagNameMap {
|
|
19
|
+
'cx-card': HTMLElement & CxCardAttributes;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Custom behavior for <cx-card> — click delegation for clickable cards.
|
|
2
|
+
// Source: crates/wasm-api/src/card.rs
|
|
3
|
+
|
|
4
|
+
export function defineCxCard(wasmFn, baseClass) {
|
|
5
|
+
class CxCard extends baseClass {
|
|
6
|
+
static observedAttributes = ['id', 'label', 'variant', 'shape', 'size', 'clickable'];
|
|
7
|
+
static _booleanAttrs = new Set(['clickable']);
|
|
8
|
+
static _focusable = false;
|
|
9
|
+
|
|
10
|
+
connectedCallback() {
|
|
11
|
+
if (!this._isInitialized) {
|
|
12
|
+
this._markInitialized();
|
|
13
|
+
const shadow = this._shadow;
|
|
14
|
+
|
|
15
|
+
// Clickable cards: delegate click and Enter/Space keydown
|
|
16
|
+
shadow.addEventListener('click', (e) => {
|
|
17
|
+
if (this._props.clickable) {
|
|
18
|
+
this._emit('cx-click', { originalEvent: e });
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
shadow.addEventListener('keydown', (e) => {
|
|
23
|
+
if (this._props.clickable && (e.key === 'Enter' || e.key === ' ')) {
|
|
24
|
+
e.preventDefault();
|
|
25
|
+
this._emit('cx-click', {});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// Forward keyboard events from inner interactive elements
|
|
30
|
+
shadow.addEventListener('keydown', (e) => {
|
|
31
|
+
this._emit('cx-keydown', { key: e.key, code: e.code, shiftKey: e.shiftKey, ctrlKey: e.ctrlKey, altKey: e.altKey, metaKey: e.metaKey });
|
|
32
|
+
});
|
|
33
|
+
shadow.addEventListener('keyup', (e) => {
|
|
34
|
+
this._emit('cx-keyup', { key: e.key, code: e.code, shiftKey: e.shiftKey, ctrlKey: e.ctrlKey, altKey: e.altKey, metaKey: e.metaKey });
|
|
35
|
+
});
|
|
36
|
+
} // end _isInitialized guard
|
|
37
|
+
super.connectedCallback();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
_doRender() {
|
|
41
|
+
try {
|
|
42
|
+
this._props.slotted = true;
|
|
43
|
+
const result = wasmFn(this._props);
|
|
44
|
+
this._injectHtml(result);
|
|
45
|
+
|
|
46
|
+
// Apply tint gradient from --cx-card-tint custom property.
|
|
47
|
+
// Consumers set this on the host via style prop:
|
|
48
|
+
// <cx-card style="--cx-card-tint: var(--color-primary)">
|
|
49
|
+
// The article gets a subtle directional gradient tinted with
|
|
50
|
+
// that color, plus a whisper-thin border.
|
|
51
|
+
const article = this._shadow.querySelector('article');
|
|
52
|
+
if (article) {
|
|
53
|
+
const tint = getComputedStyle(this).getPropertyValue('--cx-card-tint').trim();
|
|
54
|
+
if (tint) {
|
|
55
|
+
article.style.background = `linear-gradient(145deg, color-mix(in oklch, ${tint} 12%, var(--color-surface)) 0%, var(--color-surface) 100%)`;
|
|
56
|
+
article.style.borderColor = `color-mix(in oklch, var(--color-border) 30%, transparent)`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
} catch (e) {
|
|
60
|
+
console.error('[cx-card]', e);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
customElements.define('cx-card', CxCard);
|
|
66
|
+
return CxCard;
|
|
67
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Auto-generated by scripts/generate-elements.mjs — DO NOT EDIT
|
|
2
|
+
// Source: crates/wasm-api/src/carousel.rs
|
|
3
|
+
|
|
4
|
+
export interface CxCarouselAttributes {
|
|
5
|
+
id?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
variant?: 'editorial' | 'card';
|
|
8
|
+
shape?: 'sharp' | 'rounded';
|
|
9
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
10
|
+
slides?: string;
|
|
11
|
+
autoplay?: 'off' | 'on';
|
|
12
|
+
autoplayInterval?: number;
|
|
13
|
+
loopMode?: boolean;
|
|
14
|
+
motionBlur?: boolean;
|
|
15
|
+
customCursor?: boolean;
|
|
16
|
+
indicator?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
declare global {
|
|
20
|
+
interface HTMLElementTagNameMap {
|
|
21
|
+
'cx-carousel': HTMLElement & CxCarouselAttributes;
|
|
22
|
+
}
|
|
23
|
+
}
|