@desktalk/ui 0.1.0-alpha.1
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/LICENSE +21 -0
- package/dist/chart-entry.d.ts +7 -0
- package/dist/chart-entry.d.ts.map +1 -0
- package/dist/chart.umd.js +30 -0
- package/dist/chart.umd.js.map +7 -0
- package/dist/desktalk-ui.js +1681 -0
- package/dist/desktalk-ui.js.map +7 -0
- package/dist/dt-badge.d.ts +39 -0
- package/dist/dt-badge.d.ts.map +1 -0
- package/dist/dt-badge.stories.d.ts +34 -0
- package/dist/dt-badge.stories.d.ts.map +1 -0
- package/dist/dt-button.d.ts +51 -0
- package/dist/dt-button.d.ts.map +1 -0
- package/dist/dt-button.stories.d.ts +40 -0
- package/dist/dt-button.stories.d.ts.map +1 -0
- package/dist/dt-card.d.ts +30 -0
- package/dist/dt-card.d.ts.map +1 -0
- package/dist/dt-card.stories.d.ts +31 -0
- package/dist/dt-card.stories.d.ts.map +1 -0
- package/dist/dt-chart.d.ts +67 -0
- package/dist/dt-chart.d.ts.map +1 -0
- package/dist/dt-chart.stories.d.ts +26 -0
- package/dist/dt-chart.stories.d.ts.map +1 -0
- package/dist/dt-divider.d.ts +41 -0
- package/dist/dt-divider.d.ts.map +1 -0
- package/dist/dt-divider.stories.d.ts +38 -0
- package/dist/dt-divider.stories.d.ts.map +1 -0
- package/dist/dt-grid.d.ts +50 -0
- package/dist/dt-grid.d.ts.map +1 -0
- package/dist/dt-grid.stories.d.ts +49 -0
- package/dist/dt-grid.stories.d.ts.map +1 -0
- package/dist/dt-list-view.d.ts +94 -0
- package/dist/dt-list-view.d.ts.map +1 -0
- package/dist/dt-list-view.stories.d.ts +49 -0
- package/dist/dt-list-view.stories.d.ts.map +1 -0
- package/dist/dt-markdown-editor.d.ts +54 -0
- package/dist/dt-markdown-editor.d.ts.map +1 -0
- package/dist/dt-markdown-editor.stories.d.ts +22 -0
- package/dist/dt-markdown-editor.stories.d.ts.map +1 -0
- package/dist/dt-markdown.d.ts +47 -0
- package/dist/dt-markdown.d.ts.map +1 -0
- package/dist/dt-markdown.stories.d.ts +22 -0
- package/dist/dt-markdown.stories.d.ts.map +1 -0
- package/dist/dt-select.d.ts +71 -0
- package/dist/dt-select.d.ts.map +1 -0
- package/dist/dt-select.stories.d.ts +41 -0
- package/dist/dt-select.stories.d.ts.map +1 -0
- package/dist/dt-stack.d.ts +51 -0
- package/dist/dt-stack.d.ts.map +1 -0
- package/dist/dt-stack.stories.d.ts +48 -0
- package/dist/dt-stack.stories.d.ts.map +1 -0
- package/dist/dt-stat.d.ts +61 -0
- package/dist/dt-stat.d.ts.map +1 -0
- package/dist/dt-stat.stories.d.ts +47 -0
- package/dist/dt-stat.stories.d.ts.map +1 -0
- package/dist/dt-table-view.d.ts +119 -0
- package/dist/dt-table-view.d.ts.map +1 -0
- package/dist/dt-table-view.stories.d.ts +46 -0
- package/dist/dt-table-view.stories.d.ts.map +1 -0
- package/dist/dt-tooltip.d.ts +47 -0
- package/dist/dt-tooltip.d.ts.map +1 -0
- package/dist/dt-tooltip.stories.d.ts +41 -0
- package/dist/dt-tooltip.stories.d.ts.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1681 -0
- package/dist/index.js.map +7 -0
- package/dist/lib/chart-loader.d.ts +10 -0
- package/dist/lib/chart-loader.d.ts.map +1 -0
- package/dist/lib/marked-loader.d.ts +13 -0
- package/dist/lib/marked-loader.d.ts.map +1 -0
- package/dist/lib/milkdown-loader.d.ts +12 -0
- package/dist/lib/milkdown-loader.d.ts.map +1 -0
- package/dist/lib/template-bind.d.ts +3 -0
- package/dist/lib/template-bind.d.ts.map +1 -0
- package/dist/lib/virtualizer.d.ts +35 -0
- package/dist/lib/virtualizer.d.ts.map +1 -0
- package/dist/marked-entry.d.ts +7 -0
- package/dist/marked-entry.d.ts.map +1 -0
- package/dist/marked.umd.js +61 -0
- package/dist/marked.umd.js.map +7 -0
- package/dist/milkdown-entry.d.ts +7 -0
- package/dist/milkdown-entry.d.ts.map +1 -0
- package/dist/milkdown.umd.js +1875 -0
- package/dist/milkdown.umd.js.map +7 -0
- package/dist/stores/all-components.stories.d.ts +6 -0
- package/dist/stores/all-components.stories.d.ts.map +1 -0
- package/dist/theme-css.d.ts +38 -0
- package/dist/theme-css.d.ts.map +1 -0
- package/dist/theme-css.js +193 -0
- package/dist/theme-css.js.map +7 -0
- package/dist/ui-elements.d.ts +213 -0
- package/dist/ui-elements.d.ts.map +1 -0
- package/package.json +65 -0
- package/src/fonts/OFL.txt +76 -0
- package/src/fonts/README.md +43 -0
- package/src/fonts/fonts.css +91 -0
- package/src/fonts/sora-400.ttf +0 -0
- package/src/fonts/sora-500.ttf +0 -0
- package/src/fonts/sora-600.ttf +0 -0
- package/src/fonts/sora-700.ttf +0 -0
- package/src/fonts/work-sans-400.ttf +0 -0
- package/src/fonts/work-sans-500.ttf +0 -0
- package/src/fonts/work-sans-600.ttf +0 -0
- package/src/fonts/work-sans-700.ttf +0 -0
- package/src/theme-css.ts +390 -0
- package/types.d.ts +249 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-badge.d.ts","sourceRoot":"","sources":["../src/dt-badge.ts"],"names":[],"mappings":"AAIA,KAAK,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACjG,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IAEtC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAGD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,KAAK,CAAmB;IAGhC,IAAI,OAAO,IAAI,YAAY,CAa1B;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,YAAY,EAE5B;IAED,IAAI,IAAI,IAAI,SAAS,CAIpB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,EAEtB;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,CAExB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAM1B;;IA6BD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAM5F,OAAO,CAAC,OAAO;CAMhB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './index';
|
|
3
|
+
type BadgeStoryArgs = {
|
|
4
|
+
variant: 'accent' | 'success' | 'danger' | 'warning' | 'info' | 'default' | 'neutral';
|
|
5
|
+
size: 'sm' | 'md' | 'lg';
|
|
6
|
+
text: string;
|
|
7
|
+
};
|
|
8
|
+
declare function createBadge(args: BadgeStoryArgs): HTMLElement;
|
|
9
|
+
declare const meta: {
|
|
10
|
+
title: string;
|
|
11
|
+
tags: string[];
|
|
12
|
+
argTypes: {
|
|
13
|
+
variant: {
|
|
14
|
+
control: "select";
|
|
15
|
+
options: string[];
|
|
16
|
+
};
|
|
17
|
+
size: {
|
|
18
|
+
control: "inline-radio";
|
|
19
|
+
options: string[];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
args: {
|
|
23
|
+
variant: "accent";
|
|
24
|
+
size: "md";
|
|
25
|
+
text: string;
|
|
26
|
+
};
|
|
27
|
+
render: typeof createBadge;
|
|
28
|
+
};
|
|
29
|
+
export default meta;
|
|
30
|
+
type Story = StoryObj<BadgeStoryArgs>;
|
|
31
|
+
export declare const Playground: Story;
|
|
32
|
+
export declare const VariantShowcase: Story;
|
|
33
|
+
export declare const SizeComparison: Story;
|
|
34
|
+
//# sourceMappingURL=dt-badge.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-badge.stories.d.ts","sourceRoot":"","sources":["../src/dt-badge.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,SAAS,CAAC;AAEjB,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACtF,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,iBAAS,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,CAWtD;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAmBsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEtC,eAAO,MAAM,UAAU,EAAE,KAAU,CAAC;AAEpC,eAAO,MAAM,eAAe,EAAE,KA2B7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAkB5B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
2
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
/**
|
|
4
|
+
* `<dt-button>` — framework-agnostic button web component.
|
|
5
|
+
*
|
|
6
|
+
* Themed button with multiple variants and sizes. Automatically styles to match
|
|
7
|
+
* the DeskTalk design system using CSS custom properties.
|
|
8
|
+
*
|
|
9
|
+
* ## Attributes
|
|
10
|
+
* - `variant` — button style: `primary` (default), `secondary`, `ghost`, `danger`
|
|
11
|
+
* - `size` — button size: `sm`, `md` (default), `lg`
|
|
12
|
+
* - `disabled` — disables the button
|
|
13
|
+
* - `fullwidth` — makes the button fill its container width
|
|
14
|
+
* - `type` — HTML button type: `button` (default), `submit`, `reset`
|
|
15
|
+
*
|
|
16
|
+
* ## Slots
|
|
17
|
+
* - default — button content (text, icons, etc.)
|
|
18
|
+
* - `icon` — icon element positioned before the content
|
|
19
|
+
*
|
|
20
|
+
* ## Usage
|
|
21
|
+
* ```html
|
|
22
|
+
* <dt-button>Save</dt-button>
|
|
23
|
+
*
|
|
24
|
+
* <dt-button variant="secondary">Cancel</dt-button>
|
|
25
|
+
*
|
|
26
|
+
* <dt-button variant="danger" size="sm">Delete</dt-button>
|
|
27
|
+
*
|
|
28
|
+
* <dt-button variant="ghost" disabled>Disabled</dt-button>
|
|
29
|
+
*
|
|
30
|
+
* <dt-button fullwidth>Full Width Button</dt-button>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class DtButton extends HTMLElement {
|
|
34
|
+
static get observedAttributes(): string[];
|
|
35
|
+
private _button;
|
|
36
|
+
private _slot;
|
|
37
|
+
get variant(): ButtonVariant;
|
|
38
|
+
set variant(val: ButtonVariant);
|
|
39
|
+
get size(): ButtonSize;
|
|
40
|
+
set size(val: ButtonSize);
|
|
41
|
+
get disabled(): boolean;
|
|
42
|
+
set disabled(val: boolean);
|
|
43
|
+
get fullwidth(): boolean;
|
|
44
|
+
set fullwidth(val: boolean);
|
|
45
|
+
get type(): 'button' | 'submit' | 'reset';
|
|
46
|
+
set type(val: 'button' | 'submit' | 'reset');
|
|
47
|
+
constructor();
|
|
48
|
+
attributeChangedCallback(name: string, _oldVal: string | null, _newVal: string | null): void;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=dt-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-button.d.ts","sourceRoot":"","sources":["../src/dt-button.ts"],"names":[],"mappings":"AAIA,KAAK,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClE,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAS,SAAQ,WAAW;IAEvC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAGD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAmB;IAGhC,IAAI,OAAO,IAAI,aAAa,CAI3B;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,aAAa,EAE7B;IAED,IAAI,IAAI,IAAI,UAAU,CAIrB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAEvB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAMxB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAMzB;IAED,IAAI,IAAI,IAAI,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAIxC;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,EAE1C;;IAyBD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAU7F"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './index';
|
|
3
|
+
type ButtonStoryArgs = {
|
|
4
|
+
variant: 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
5
|
+
size: 'sm' | 'md' | 'lg';
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
fullwidth: boolean;
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
declare function createButton(args: ButtonStoryArgs): HTMLElement;
|
|
11
|
+
declare const meta: {
|
|
12
|
+
title: string;
|
|
13
|
+
tags: string[];
|
|
14
|
+
argTypes: {
|
|
15
|
+
variant: {
|
|
16
|
+
control: "inline-radio";
|
|
17
|
+
options: string[];
|
|
18
|
+
};
|
|
19
|
+
size: {
|
|
20
|
+
control: "inline-radio";
|
|
21
|
+
options: string[];
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
args: {
|
|
25
|
+
variant: "primary";
|
|
26
|
+
size: "md";
|
|
27
|
+
disabled: false;
|
|
28
|
+
fullwidth: false;
|
|
29
|
+
text: string;
|
|
30
|
+
};
|
|
31
|
+
render: typeof createButton;
|
|
32
|
+
};
|
|
33
|
+
export default meta;
|
|
34
|
+
type Story = StoryObj<ButtonStoryArgs>;
|
|
35
|
+
export declare const Playground: Story;
|
|
36
|
+
export declare const VariantShowcase: Story;
|
|
37
|
+
export declare const SizeComparison: Story;
|
|
38
|
+
export declare const Disabled: Story;
|
|
39
|
+
export declare const FullWidth: Story;
|
|
40
|
+
//# sourceMappingURL=dt-button.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-button.stories.d.ts","sourceRoot":"","sources":["../src/dt-button.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,SAAS,CAAC;AAEjB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtD,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,iBAAS,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAiBxD;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;CAqBuB,CAAC;AAElC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;AAEvC,eAAO,MAAM,UAAU,EAAE,KAAU,CAAC;AAEpC,eAAO,MAAM,eAAe,EAAE,KAkB7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAkB5B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
type CardVariant = 'default' | 'outlined' | 'filled';
|
|
2
|
+
/**
|
|
3
|
+
* `<dt-card>` — framework-agnostic card web component.
|
|
4
|
+
*
|
|
5
|
+
* Renders a card container with a solid border using the theme accent color
|
|
6
|
+
* and no border-radius.
|
|
7
|
+
*
|
|
8
|
+
* ## Attributes
|
|
9
|
+
* - `variant` — visual style: default | outlined | filled (default "default")
|
|
10
|
+
*
|
|
11
|
+
* ## Usage
|
|
12
|
+
* ```html
|
|
13
|
+
* <dt-card>
|
|
14
|
+
* <h3>Title</h3>
|
|
15
|
+
* <p>Card content goes here.</p>
|
|
16
|
+
* </dt-card>
|
|
17
|
+
*
|
|
18
|
+
* <dt-card variant="outlined">
|
|
19
|
+
* <p>Outlined card with transparent background.</p>
|
|
20
|
+
* </dt-card>
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class DtCard extends HTMLElement {
|
|
24
|
+
static get observedAttributes(): string[];
|
|
25
|
+
get variant(): CardVariant;
|
|
26
|
+
set variant(val: CardVariant);
|
|
27
|
+
constructor();
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=dt-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-card.d.ts","sourceRoot":"","sources":["../src/dt-card.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,MAAO,SAAQ,WAAW;IAErC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAGD,IAAI,OAAO,IAAI,WAAW,CAIzB;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,WAAW,EAE3B;;CAiBF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './index';
|
|
3
|
+
type CardStoryArgs = {
|
|
4
|
+
variant: 'default' | 'outlined' | 'filled';
|
|
5
|
+
heading: string;
|
|
6
|
+
body: string;
|
|
7
|
+
eyebrow: string;
|
|
8
|
+
};
|
|
9
|
+
declare function createCard(args: CardStoryArgs): HTMLElement;
|
|
10
|
+
declare const meta: {
|
|
11
|
+
title: string;
|
|
12
|
+
tags: string[];
|
|
13
|
+
argTypes: {
|
|
14
|
+
variant: {
|
|
15
|
+
control: "inline-radio";
|
|
16
|
+
options: string[];
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
args: {
|
|
20
|
+
variant: "default";
|
|
21
|
+
eyebrow: string;
|
|
22
|
+
heading: string;
|
|
23
|
+
body: string;
|
|
24
|
+
};
|
|
25
|
+
render: typeof createCard;
|
|
26
|
+
};
|
|
27
|
+
export default meta;
|
|
28
|
+
type Story = StoryObj<CardStoryArgs>;
|
|
29
|
+
export declare const Playground: Story;
|
|
30
|
+
export declare const VariantGrid: Story;
|
|
31
|
+
//# sourceMappingURL=dt-card.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-card.stories.d.ts","sourceRoot":"","sources":["../src/dt-card.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,SAAS,CAAC;AAEjB,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,iBAAS,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CA6BpD;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;CAgBqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAErC,eAAO,MAAM,UAAU,EAAE,KAAU,CAAC;AAEpC,eAAO,MAAM,WAAW,EAAE,KAsBzB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
type DtChartLegend = 'top' | 'bottom' | 'left' | 'right' | 'none';
|
|
2
|
+
type DtChartType = 'bar' | 'line' | 'area' | 'pie' | 'doughnut' | 'radar' | 'scatter' | 'bubble';
|
|
3
|
+
export interface DtChartDatasetInput {
|
|
4
|
+
label?: string;
|
|
5
|
+
data: Array<number | {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
} | {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
r: number;
|
|
12
|
+
}>;
|
|
13
|
+
color?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface DtChartDataInput {
|
|
16
|
+
labels?: string[];
|
|
17
|
+
datasets: DtChartDatasetInput[];
|
|
18
|
+
}
|
|
19
|
+
export interface DtChartClickDetail {
|
|
20
|
+
label: string | null;
|
|
21
|
+
datasetIndex: number;
|
|
22
|
+
index: number;
|
|
23
|
+
value: unknown;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* `<dt-chart>` — lazy-loaded Chart.js wrapper.
|
|
27
|
+
*
|
|
28
|
+
* Set the `.data` JS property to provide chart data. This is the only supported
|
|
29
|
+
* method for filling data into the chart.
|
|
30
|
+
*/
|
|
31
|
+
export declare class DtChart extends HTMLElement {
|
|
32
|
+
private readonly _canvas;
|
|
33
|
+
private readonly _status;
|
|
34
|
+
private _runtime;
|
|
35
|
+
private _loadPromise;
|
|
36
|
+
private _chart;
|
|
37
|
+
private _renderedType;
|
|
38
|
+
private _dataInput;
|
|
39
|
+
private _optionsOverride;
|
|
40
|
+
private _syncFrame;
|
|
41
|
+
static get observedAttributes(): string[];
|
|
42
|
+
get type(): DtChartType;
|
|
43
|
+
set type(value: DtChartType);
|
|
44
|
+
get legend(): DtChartLegend;
|
|
45
|
+
set legend(value: DtChartLegend);
|
|
46
|
+
get stacked(): boolean;
|
|
47
|
+
set stacked(value: boolean);
|
|
48
|
+
get labels(): string[];
|
|
49
|
+
set labels(value: string[]);
|
|
50
|
+
get data(): DtChartDataInput | null;
|
|
51
|
+
set data(value: DtChartDataInput | null);
|
|
52
|
+
get options(): Record<string, unknown> | null;
|
|
53
|
+
set options(value: Record<string, unknown> | null);
|
|
54
|
+
constructor();
|
|
55
|
+
connectedCallback(): void;
|
|
56
|
+
disconnectedCallback(): void;
|
|
57
|
+
attributeChangedCallback(): void;
|
|
58
|
+
private _handleCanvasClick;
|
|
59
|
+
private _scheduleSync;
|
|
60
|
+
private _syncFromCurrentSource;
|
|
61
|
+
private _ensureRuntime;
|
|
62
|
+
private _renderChart;
|
|
63
|
+
private _buildConfig;
|
|
64
|
+
private _setStatus;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=dt-chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-chart.d.ts","sourceRoot":"","sources":["../src/dt-chart.ts"],"names":[],"mappings":"AAIA,KAAK,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAClE,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAGjG,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AA6JD;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,UAAU,CAAK;IAEvB,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAE1B;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAE9B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAEzB;IAED,IAAI,IAAI,IAAI,gBAAgB,GAAG,IAAI,CAElC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAGtC;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE5C;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAGhD;;IAwBD,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAW5B,wBAAwB,IAAI,IAAI;IAIhC,OAAO,CAAC,kBAAkB,CAkCxB;IAEF,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,sBAAsB;YAIhB,cAAc;YAed,YAAY;IAwB1B,OAAO,CAAC,YAAY;IAoJpB,OAAO,CAAC,UAAU;CASnB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './index';
|
|
3
|
+
import './chart-entry';
|
|
4
|
+
type ChartStoryArgs = {
|
|
5
|
+
type: 'bar' | 'line' | 'area' | 'doughnut' | 'radar';
|
|
6
|
+
legend: 'top' | 'bottom' | 'left' | 'right' | 'none';
|
|
7
|
+
stacked: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare function createChart(args: ChartStoryArgs): HTMLElement;
|
|
10
|
+
declare const meta: {
|
|
11
|
+
title: string;
|
|
12
|
+
tags: string[];
|
|
13
|
+
args: {
|
|
14
|
+
type: "bar";
|
|
15
|
+
legend: "top";
|
|
16
|
+
stacked: false;
|
|
17
|
+
};
|
|
18
|
+
render: typeof createChart;
|
|
19
|
+
};
|
|
20
|
+
export default meta;
|
|
21
|
+
type Story = StoryObj<ChartStoryArgs>;
|
|
22
|
+
export declare const Playground: Story;
|
|
23
|
+
export declare const StackedArea: Story;
|
|
24
|
+
export declare const Doughnut: Story;
|
|
25
|
+
export declare const Scatter: StoryObj;
|
|
26
|
+
//# sourceMappingURL=dt-chart.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-chart.stories.d.ts","sourceRoot":"","sources":["../src/dt-chart.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,CAAC;AAEvB,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,iBAAS,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,CAuBtD;AA8BD,QAAA,MAAM,IAAI;;;;;;;;;CASsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEtC,eAAO,MAAM,UAAU,EAAE,KAAU,CAAC;AAEpC,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QAErB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
type DividerDirection = 'horizontal' | 'vertical';
|
|
2
|
+
type DividerStyle = 'default' | 'subtle' | 'strong';
|
|
3
|
+
type DividerSpacing = 'sm' | 'md' | 'lg';
|
|
4
|
+
/**
|
|
5
|
+
* `<dt-divider>` — framework-agnostic divider/separator web component.
|
|
6
|
+
*
|
|
7
|
+
* Horizontal or vertical separator line for organizing content.
|
|
8
|
+
*
|
|
9
|
+
* ## Attributes
|
|
10
|
+
* - `direction` — divider orientation: `horizontal` (default) or `vertical`
|
|
11
|
+
* - `style-variant` — border style: `default`, `subtle`, `strong`
|
|
12
|
+
* - `spacing` — margin around divider: `sm`, `md`, `lg`
|
|
13
|
+
*
|
|
14
|
+
* ## Usage
|
|
15
|
+
* ```html
|
|
16
|
+
* <!-- Horizontal divider (default) -->
|
|
17
|
+
* <dt-divider></dt-divider>
|
|
18
|
+
*
|
|
19
|
+
* <!-- Subtle horizontal divider with spacing -->
|
|
20
|
+
* <dt-divider style-variant="subtle" spacing="md"></dt-divider>
|
|
21
|
+
*
|
|
22
|
+
* <!-- Vertical divider in a row layout -->
|
|
23
|
+
* <dt-stack direction="row">
|
|
24
|
+
* <span>Left</span>
|
|
25
|
+
* <dt-divider direction="vertical"></dt-divider>
|
|
26
|
+
* <span>Right</span>
|
|
27
|
+
* </dt-stack>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare class DtDivider extends HTMLElement {
|
|
31
|
+
static get observedAttributes(): string[];
|
|
32
|
+
get direction(): DividerDirection;
|
|
33
|
+
set direction(val: DividerDirection);
|
|
34
|
+
get styleVariant(): DividerStyle;
|
|
35
|
+
set styleVariant(val: DividerStyle);
|
|
36
|
+
get spacing(): DividerSpacing | null;
|
|
37
|
+
set spacing(val: DividerSpacing | null);
|
|
38
|
+
constructor();
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=dt-divider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-divider.d.ts","sourceRoot":"","sources":["../src/dt-divider.ts"],"names":[],"mappings":"AAIA,KAAK,gBAAgB,GAAG,YAAY,GAAG,UAAU,CAAC;AAClD,KAAK,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACpD,KAAK,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,SAAU,SAAQ,WAAW;IAExC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAGD,IAAI,SAAS,IAAI,gBAAgB,CAIhC;IAED,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAElC;IAED,IAAI,YAAY,IAAI,YAAY,CAI/B;IAED,IAAI,YAAY,CAAC,GAAG,EAAE,YAAY,EAEjC;IAED,IAAI,OAAO,IAAI,cAAc,GAAG,IAAI,CAInC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,EAMrC;;CAgBF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './index';
|
|
3
|
+
type DividerStoryArgs = {
|
|
4
|
+
direction: 'horizontal' | 'vertical';
|
|
5
|
+
styleVariant: 'default' | 'subtle' | 'strong';
|
|
6
|
+
spacing: 'sm' | 'md' | 'lg';
|
|
7
|
+
};
|
|
8
|
+
declare function createDivider(args: DividerStoryArgs): HTMLElement;
|
|
9
|
+
declare const meta: {
|
|
10
|
+
title: string;
|
|
11
|
+
tags: string[];
|
|
12
|
+
argTypes: {
|
|
13
|
+
direction: {
|
|
14
|
+
control: "inline-radio";
|
|
15
|
+
options: string[];
|
|
16
|
+
};
|
|
17
|
+
styleVariant: {
|
|
18
|
+
control: "inline-radio";
|
|
19
|
+
options: string[];
|
|
20
|
+
};
|
|
21
|
+
spacing: {
|
|
22
|
+
control: "inline-radio";
|
|
23
|
+
options: string[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
args: {
|
|
27
|
+
direction: "horizontal";
|
|
28
|
+
styleVariant: "default";
|
|
29
|
+
spacing: "md";
|
|
30
|
+
};
|
|
31
|
+
render: typeof createDivider;
|
|
32
|
+
};
|
|
33
|
+
export default meta;
|
|
34
|
+
type Story = StoryObj<DividerStoryArgs>;
|
|
35
|
+
export declare const Playground: Story;
|
|
36
|
+
export declare const StyleVariants: Story;
|
|
37
|
+
export declare const Vertical: Story;
|
|
38
|
+
//# sourceMappingURL=dt-divider.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-divider.stories.d.ts","sourceRoot":"","sources":["../src/dt-divider.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,SAAS,CAAC;AAEjB,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC;IACrC,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,iBAAS,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAW1D;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;CAuBwB,CAAC;AAEnC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AAExC,eAAO,MAAM,UAAU,EAAE,KAAU,CAAC;AAEpC,eAAO,MAAM,aAAa,EAAE,KAoC3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA2BtB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
type GridCols = '1' | '2' | '3' | '4' | '5' | '6';
|
|
2
|
+
type GridGap = '0' | '4' | '8' | '12' | '16' | '20' | '24' | '32';
|
|
3
|
+
type GridMinWidth = '150' | '180' | '200' | '220' | '260' | '300';
|
|
4
|
+
/**
|
|
5
|
+
* `<dt-grid>` — framework-agnostic responsive grid web component.
|
|
6
|
+
*
|
|
7
|
+
* Provides a grid layout that auto-collapses to single column in narrow views.
|
|
8
|
+
* Uses CSS Grid's repeat(auto-fit) pattern with minmax for responsive behavior.
|
|
9
|
+
*
|
|
10
|
+
* ## Attributes
|
|
11
|
+
* - `cols` — fixed number of columns (1-6). Auto-fit responsive when omitted.
|
|
12
|
+
* - `gap` — spacing between items: 0, 4, 8, 12, 16, 20, 24, 32 (default: 16)
|
|
13
|
+
* - `min-width` — minimum width for auto-fit columns: 150, 180, 200, 220, 260, 300 (default: 220)
|
|
14
|
+
*
|
|
15
|
+
* ## Usage
|
|
16
|
+
* ```html
|
|
17
|
+
* <!-- Auto-responsive: columns collapse based on available space -->
|
|
18
|
+
* <dt-grid>
|
|
19
|
+
* <dt-card>Item 1</dt-card>
|
|
20
|
+
* <dt-card>Item 2</dt-card>
|
|
21
|
+
* <dt-card>Item 3</dt-card>
|
|
22
|
+
* </dt-grid>
|
|
23
|
+
*
|
|
24
|
+
* <!-- Fixed 3 columns, collapses to 1 on mobile -->
|
|
25
|
+
* <dt-grid cols="3" gap="24">
|
|
26
|
+
* <dt-card>Item 1</dt-card>
|
|
27
|
+
* <dt-card>Item 2</dt-card>
|
|
28
|
+
* <dt-card>Item 3</dt-card>
|
|
29
|
+
* </dt-grid>
|
|
30
|
+
*
|
|
31
|
+
* <!-- Narrow items: more columns fit side-by-side -->
|
|
32
|
+
* <dt-grid min-width="150">
|
|
33
|
+
* <dt-stat label="CPU" value="42%"></dt-stat>
|
|
34
|
+
* <dt-stat label="RAM" value="8GB"></dt-stat>
|
|
35
|
+
* <dt-stat label="Disk" value="256GB"></dt-stat>
|
|
36
|
+
* </dt-grid>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class DtGrid extends HTMLElement {
|
|
40
|
+
static get observedAttributes(): string[];
|
|
41
|
+
get cols(): GridCols | null;
|
|
42
|
+
set cols(val: GridCols | null);
|
|
43
|
+
get gap(): GridGap;
|
|
44
|
+
set gap(val: GridGap);
|
|
45
|
+
get minWidth(): GridMinWidth;
|
|
46
|
+
set minWidth(val: GridMinWidth);
|
|
47
|
+
constructor();
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=dt-grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-grid.d.ts","sourceRoot":"","sources":["../src/dt-grid.ts"],"names":[],"mappings":"AAIA,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,KAAK,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClE,KAAK,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,MAAO,SAAQ,WAAW;IAErC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAGD,IAAI,IAAI,IAAI,QAAQ,GAAG,IAAI,CAM1B;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,EAM5B;IAED,IAAI,GAAG,IAAI,OAAO,CAcjB;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAEnB;IAED,IAAI,QAAQ,IAAI,YAAY,CAM3B;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,EAE7B;;CAiBF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './index';
|
|
3
|
+
type GridStoryArgs = {
|
|
4
|
+
cols: string | null;
|
|
5
|
+
gap: string;
|
|
6
|
+
minWidth: string;
|
|
7
|
+
itemCount: number;
|
|
8
|
+
};
|
|
9
|
+
declare function createGrid(args: GridStoryArgs): HTMLElement;
|
|
10
|
+
declare const meta: {
|
|
11
|
+
title: string;
|
|
12
|
+
tags: string[];
|
|
13
|
+
argTypes: {
|
|
14
|
+
cols: {
|
|
15
|
+
control: "select";
|
|
16
|
+
options: (string | null)[];
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
gap: {
|
|
20
|
+
control: "select";
|
|
21
|
+
options: string[];
|
|
22
|
+
};
|
|
23
|
+
minWidth: {
|
|
24
|
+
control: "select";
|
|
25
|
+
options: string[];
|
|
26
|
+
};
|
|
27
|
+
itemCount: {
|
|
28
|
+
control: {
|
|
29
|
+
type: "number";
|
|
30
|
+
min: number;
|
|
31
|
+
max: number;
|
|
32
|
+
step: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
args: {
|
|
37
|
+
cols: null;
|
|
38
|
+
gap: string;
|
|
39
|
+
minWidth: string;
|
|
40
|
+
itemCount: number;
|
|
41
|
+
};
|
|
42
|
+
render: typeof createGrid;
|
|
43
|
+
};
|
|
44
|
+
export default meta;
|
|
45
|
+
type Story = StoryObj<GridStoryArgs>;
|
|
46
|
+
export declare const Playground: Story;
|
|
47
|
+
export declare const FixedColumns: Story;
|
|
48
|
+
export declare const NarrowItems: Story;
|
|
49
|
+
//# sourceMappingURL=dt-grid.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-grid.stories.d.ts","sourceRoot":"","sources":["../src/dt-grid.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,SAAS,CAAC;AAEjB,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iBAAS,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CA2BpD;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAErC,eAAO,MAAM,UAAU,EAAE,KAAU,CAAC;AAEpC,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export type DtListViewSelectable = 'none' | 'single' | 'multi';
|
|
2
|
+
export interface DtListViewItemClickDetail<T = unknown> {
|
|
3
|
+
item: T;
|
|
4
|
+
index: number;
|
|
5
|
+
}
|
|
6
|
+
export interface DtListViewSelectionChangeDetail<T = unknown> {
|
|
7
|
+
selected: T[];
|
|
8
|
+
}
|
|
9
|
+
export type DtListViewRenderItem<T = unknown> = (item: T, container: HTMLElement, index: number) => void;
|
|
10
|
+
/**
|
|
11
|
+
* `<dt-list-view>` — virtualized list web component for long collections.
|
|
12
|
+
*
|
|
13
|
+
* Supports two sizing modes:
|
|
14
|
+
* - fixed-height mode via `item-height`
|
|
15
|
+
* - variable-height mode when `item-height` is omitted
|
|
16
|
+
*
|
|
17
|
+
* ## Attributes
|
|
18
|
+
* - `item-height` — fixed row height in px; omit for measured variable-height rows
|
|
19
|
+
* - `dividers` — when present, shows dividers between items
|
|
20
|
+
* - `selectable` — selection mode: `none`, `single`, or `multi`
|
|
21
|
+
* - `empty-text` — text shown when the list has no items
|
|
22
|
+
*
|
|
23
|
+
* ## Properties
|
|
24
|
+
* - `items` — array of item objects to render
|
|
25
|
+
* - `renderItem` — optional custom renderer `(item, container, index) => void`
|
|
26
|
+
* - `selectedItems` — readonly array of currently selected item objects
|
|
27
|
+
*
|
|
28
|
+
* ## Template binding
|
|
29
|
+
* When using a child `<template>`, bindings are applied as follows:
|
|
30
|
+
* - `data-field="title"` sets `textContent` from `item.title`
|
|
31
|
+
* - `data-field-variant="statusVariant"` sets the `variant` attribute from `item.statusVariant`
|
|
32
|
+
*
|
|
33
|
+
* ## Events
|
|
34
|
+
* - `dt-item-click` — fired when an item is clicked; `detail` contains `{ item, index }`
|
|
35
|
+
* - `dt-selection-change` — fired when selection changes; `detail.selected` is the selected items array
|
|
36
|
+
*
|
|
37
|
+
* ## Usage
|
|
38
|
+
* ```html
|
|
39
|
+
* <dt-list-view id="tasks" item-height="72" dividers selectable="single">
|
|
40
|
+
* <template>
|
|
41
|
+
* <dt-stack gap="8">
|
|
42
|
+
* <dt-stack direction="row" align="center" gap="8">
|
|
43
|
+
* <strong data-field="title"></strong>
|
|
44
|
+
* <dt-badge data-field="status" data-field-variant="statusVariant"></dt-badge>
|
|
45
|
+
* </dt-stack>
|
|
46
|
+
* <span class="text-muted" data-field="summary"></span>
|
|
47
|
+
* </dt-stack>
|
|
48
|
+
* </template>
|
|
49
|
+
* </dt-list-view>
|
|
50
|
+
* <script>
|
|
51
|
+
* const list = document.getElementById('tasks');
|
|
52
|
+
* list.items = [
|
|
53
|
+
* { title: 'Review report', status: 'Queued', statusVariant: 'warning', summary: 'Waiting on CPU budget' },
|
|
54
|
+
* { title: 'Ship release', status: 'Done', statusVariant: 'success', summary: 'Published 4 minutes ago' },
|
|
55
|
+
* ];
|
|
56
|
+
* </script>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare class DtListView extends HTMLElement {
|
|
60
|
+
private _items;
|
|
61
|
+
private _selectedIndices;
|
|
62
|
+
private _renderItem;
|
|
63
|
+
private readonly _virtualizer;
|
|
64
|
+
private readonly _viewport;
|
|
65
|
+
private readonly _spacer;
|
|
66
|
+
private readonly _itemsLayer;
|
|
67
|
+
private readonly _emptyState;
|
|
68
|
+
private _resizeObserver;
|
|
69
|
+
private _itemResizeObserver;
|
|
70
|
+
static get observedAttributes(): string[];
|
|
71
|
+
get items(): unknown[];
|
|
72
|
+
set items(value: unknown[]);
|
|
73
|
+
get selectedItems(): unknown[];
|
|
74
|
+
get renderItem(): DtListViewRenderItem | null;
|
|
75
|
+
set renderItem(value: DtListViewRenderItem | null);
|
|
76
|
+
get itemHeight(): number | null;
|
|
77
|
+
set itemHeight(value: number | null);
|
|
78
|
+
get selectable(): DtListViewSelectable;
|
|
79
|
+
set selectable(value: DtListViewSelectable);
|
|
80
|
+
get emptyText(): string;
|
|
81
|
+
set emptyText(value: string);
|
|
82
|
+
constructor();
|
|
83
|
+
connectedCallback(): void;
|
|
84
|
+
disconnectedCallback(): void;
|
|
85
|
+
attributeChangedCallback(name: string): void;
|
|
86
|
+
private _onScroll;
|
|
87
|
+
private _syncSizingMode;
|
|
88
|
+
private _render;
|
|
89
|
+
private _renderVisibleItem;
|
|
90
|
+
private _handleItemClick;
|
|
91
|
+
private _emitSelectionChange;
|
|
92
|
+
private _getTemplate;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=dt-list-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dt-list-view.d.ts","sourceRoot":"","sources":["../src/dt-list-view.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,+BAA+B,CAAC,CAAC,GAAG,OAAO;IAC1D,QAAQ,EAAE,CAAC,EAAE,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC9C,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAWV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG1B;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,mBAAmB,CAA+B;IAE1D,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,IAAI,KAAK,IAAI,OAAO,EAAE,CAErB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAQzB;IAED,IAAI,aAAa,IAAI,OAAO,EAAE,CAE7B;IAED,IAAI,UAAU,IAAI,oBAAoB,GAAG,IAAI,CAE5C;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,EAGhD;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAO9B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAMlC;IAED,IAAI,UAAU,IAAI,oBAAoB,CAMrC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,oBAAoB,EAEzC;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAE1B;;IA4BD,iBAAiB,IAAI,IAAI;IAqCzB,oBAAoB,IAAI,IAAI;IAQ5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa5C,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,kBAAkB;IA+C1B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,YAAY;CAQrB"}
|