@deepfuture/dui-components 0.0.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/accordion/accordion-context.d.ts +15 -0
- package/accordion/accordion-context.js +3 -0
- package/accordion/accordion-item.d.ts +22 -0
- package/accordion/accordion-item.js +254 -0
- package/accordion/accordion.d.ts +20 -0
- package/accordion/accordion.js +185 -0
- package/accordion/index.d.ts +3 -0
- package/accordion/index.js +2 -0
- package/accordion/register.d.ts +1 -0
- package/accordion/register.js +8 -0
- package/alert-dialog/alert-dialog-close.d.ts +15 -0
- package/alert-dialog/alert-dialog-close.js +35 -0
- package/alert-dialog/alert-dialog-context.d.ts +13 -0
- package/alert-dialog/alert-dialog-context.js +3 -0
- package/alert-dialog/alert-dialog-popup.d.ts +34 -0
- package/alert-dialog/alert-dialog-popup.js +260 -0
- package/alert-dialog/alert-dialog-trigger.d.ts +15 -0
- package/alert-dialog/alert-dialog-trigger.js +52 -0
- package/alert-dialog/alert-dialog.d.ts +30 -0
- package/alert-dialog/alert-dialog.js +97 -0
- package/alert-dialog/index.d.ts +6 -0
- package/alert-dialog/index.js +4 -0
- package/alert-dialog/register.d.ts +1 -0
- package/alert-dialog/register.js +16 -0
- package/all.d.ts +86 -0
- package/all.js +191 -0
- package/avatar/avatar.d.ts +41 -0
- package/avatar/avatar.js +188 -0
- package/avatar/index.d.ts +2 -0
- package/avatar/index.js +1 -0
- package/avatar/register.d.ts +1 -0
- package/avatar/register.js +4 -0
- package/badge/badge.d.ts +14 -0
- package/badge/badge.js +43 -0
- package/badge/index.d.ts +2 -0
- package/badge/index.js +1 -0
- package/badge/register.d.ts +1 -0
- package/badge/register.js +4 -0
- package/breadcrumb/breadcrumb-ellipsis.d.ts +14 -0
- package/breadcrumb/breadcrumb-ellipsis.js +39 -0
- package/breadcrumb/breadcrumb-item.d.ts +13 -0
- package/breadcrumb/breadcrumb-item.js +31 -0
- package/breadcrumb/breadcrumb-link.d.ts +14 -0
- package/breadcrumb/breadcrumb-link.js +32 -0
- package/breadcrumb/breadcrumb-page.d.ts +13 -0
- package/breadcrumb/breadcrumb-page.js +36 -0
- package/breadcrumb/breadcrumb-separator.d.ts +14 -0
- package/breadcrumb/breadcrumb-separator.js +36 -0
- package/breadcrumb/breadcrumb.d.ts +14 -0
- package/breadcrumb/breadcrumb.js +38 -0
- package/breadcrumb/index.d.ts +6 -0
- package/breadcrumb/index.js +6 -0
- package/breadcrumb/register.d.ts +1 -0
- package/breadcrumb/register.js +14 -0
- package/button/button.d.ts +38 -0
- package/button/button.js +143 -0
- package/button/index.d.ts +2 -0
- package/button/index.js +1 -0
- package/button/register.d.ts +1 -0
- package/button/register.js +4 -0
- package/calendar/calendar.d.ts +33 -0
- package/calendar/calendar.js +428 -0
- package/calendar/index.d.ts +1 -0
- package/calendar/index.js +1 -0
- package/calendar/register.d.ts +1 -0
- package/calendar/register.js +4 -0
- package/center/center.d.ts +14 -0
- package/center/center.js +37 -0
- package/center/index.d.ts +1 -0
- package/center/index.js +1 -0
- package/center/register.d.ts +1 -0
- package/center/register.js +4 -0
- package/checkbox/checkbox-group-context.d.ts +11 -0
- package/checkbox/checkbox-group-context.js +3 -0
- package/checkbox/checkbox-group.d.ts +34 -0
- package/checkbox/checkbox-group.js +128 -0
- package/checkbox/checkbox.d.ts +46 -0
- package/checkbox/checkbox.js +314 -0
- package/checkbox/index.d.ts +3 -0
- package/checkbox/index.js +2 -0
- package/checkbox/register.d.ts +1 -0
- package/checkbox/register.js +8 -0
- package/collapsible/collapsible.d.ts +22 -0
- package/collapsible/collapsible.js +227 -0
- package/collapsible/index.d.ts +1 -0
- package/collapsible/index.js +1 -0
- package/collapsible/register.d.ts +1 -0
- package/collapsible/register.js +4 -0
- package/combobox/combobox.d.ts +46 -0
- package/combobox/combobox.js +524 -0
- package/combobox/index.d.ts +2 -0
- package/combobox/index.js +1 -0
- package/combobox/register.d.ts +1 -0
- package/combobox/register.js +4 -0
- package/command/command-context.d.ts +30 -0
- package/command/command-context.js +3 -0
- package/command/command-empty.d.ts +10 -0
- package/command/command-empty.js +50 -0
- package/command/command-group.d.ts +15 -0
- package/command/command-group.js +79 -0
- package/command/command-input.d.ts +13 -0
- package/command/command-input.js +106 -0
- package/command/command-item.d.ts +20 -0
- package/command/command-item.js +175 -0
- package/command/command-list.d.ts +9 -0
- package/command/command-list.js +43 -0
- package/command/command-score.d.ts +6 -0
- package/command/command-score.js +31 -0
- package/command/command-separator.d.ts +7 -0
- package/command/command-separator.js +15 -0
- package/command/command-shortcut.d.ts +7 -0
- package/command/command-shortcut.js +16 -0
- package/command/command.d.ts +25 -0
- package/command/command.js +278 -0
- package/command/index.d.ts +10 -0
- package/command/index.js +9 -0
- package/command/register.d.ts +1 -0
- package/command/register.js +22 -0
- package/data-table/data-table.d.ts +59 -0
- package/data-table/data-table.js +416 -0
- package/data-table/index.d.ts +2 -0
- package/data-table/index.js +1 -0
- package/data-table/register.d.ts +1 -0
- package/data-table/register.js +4 -0
- package/dialog/dialog-close.d.ts +15 -0
- package/dialog/dialog-close.js +35 -0
- package/dialog/dialog-context.d.ts +13 -0
- package/dialog/dialog-context.js +3 -0
- package/dialog/dialog-popup.d.ts +36 -0
- package/dialog/dialog-popup.js +277 -0
- package/dialog/dialog-trigger.d.ts +15 -0
- package/dialog/dialog-trigger.js +52 -0
- package/dialog/dialog.d.ts +30 -0
- package/dialog/dialog.js +97 -0
- package/dialog/index.d.ts +6 -0
- package/dialog/index.js +4 -0
- package/dialog/register.d.ts +1 -0
- package/dialog/register.js +16 -0
- package/dropzone/dropzone.d.ts +74 -0
- package/dropzone/dropzone.js +357 -0
- package/dropzone/index.d.ts +2 -0
- package/dropzone/index.js +1 -0
- package/dropzone/register.d.ts +1 -0
- package/dropzone/register.js +4 -0
- package/field/field-context.d.ts +20 -0
- package/field/field-context.js +2 -0
- package/field/index.d.ts +2 -0
- package/field/index.js +1 -0
- package/global.d.ts +189 -0
- package/hstack/hstack.d.ts +25 -0
- package/hstack/hstack.js +141 -0
- package/hstack/index.d.ts +2 -0
- package/hstack/index.js +1 -0
- package/hstack/register.d.ts +1 -0
- package/hstack/register.js +4 -0
- package/icon/icon.d.ts +16 -0
- package/icon/icon.js +34 -0
- package/icon/index.d.ts +1 -0
- package/icon/index.js +1 -0
- package/icon/register.d.ts +1 -0
- package/icon/register.js +4 -0
- package/input/index.d.ts +1 -0
- package/input/index.js +1 -0
- package/input/input.d.ts +47 -0
- package/input/input.js +205 -0
- package/input/register.d.ts +1 -0
- package/input/register.js +4 -0
- package/link/index.d.ts +1 -0
- package/link/index.js +1 -0
- package/link/link.d.ts +27 -0
- package/link/link.js +57 -0
- package/link/register.d.ts +1 -0
- package/link/register.js +4 -0
- package/menu/index.d.ts +2 -0
- package/menu/index.js +2 -0
- package/menu/menu-item.d.ts +17 -0
- package/menu/menu-item.js +62 -0
- package/menu/menu.d.ts +15 -0
- package/menu/menu.js +228 -0
- package/menu/register.d.ts +1 -0
- package/menu/register.js +8 -0
- package/menubar/index.d.ts +2 -0
- package/menubar/index.js +1 -0
- package/menubar/menubar-context.d.ts +9 -0
- package/menubar/menubar-context.js +2 -0
- package/menubar/menubar.d.ts +19 -0
- package/menubar/menubar.js +130 -0
- package/menubar/register.d.ts +1 -0
- package/menubar/register.js +4 -0
- package/number-field/index.d.ts +1 -0
- package/number-field/index.js +1 -0
- package/number-field/number-field.d.ts +34 -0
- package/number-field/number-field.js +326 -0
- package/number-field/register.d.ts +1 -0
- package/number-field/register.js +4 -0
- package/package.json +217 -0
- package/page-inset/index.d.ts +1 -0
- package/page-inset/index.js +1 -0
- package/page-inset/page-inset.d.ts +28 -0
- package/page-inset/page-inset.js +103 -0
- package/page-inset/register.d.ts +1 -0
- package/page-inset/register.js +4 -0
- package/popover/index.d.ts +6 -0
- package/popover/index.js +4 -0
- package/popover/popover-close.d.ts +13 -0
- package/popover/popover-close.js +33 -0
- package/popover/popover-context.d.ts +17 -0
- package/popover/popover-context.js +3 -0
- package/popover/popover-popup.d.ts +20 -0
- package/popover/popover-popup.js +176 -0
- package/popover/popover-trigger.d.ts +13 -0
- package/popover/popover-trigger.js +57 -0
- package/popover/popover.d.ts +30 -0
- package/popover/popover.js +140 -0
- package/popover/register.d.ts +1 -0
- package/popover/register.js +16 -0
- package/portal/index.d.ts +2 -0
- package/portal/index.js +1 -0
- package/portal/portal.d.ts +29 -0
- package/portal/portal.js +115 -0
- package/portal/register.d.ts +1 -0
- package/portal/register.js +4 -0
- package/preview-card/index.d.ts +5 -0
- package/preview-card/index.js +3 -0
- package/preview-card/preview-card-context.d.ts +16 -0
- package/preview-card/preview-card-context.js +3 -0
- package/preview-card/preview-card-popup.d.ts +16 -0
- package/preview-card/preview-card-popup.js +167 -0
- package/preview-card/preview-card-trigger.d.ts +13 -0
- package/preview-card/preview-card-trigger.js +75 -0
- package/preview-card/preview-card.d.ts +34 -0
- package/preview-card/preview-card.js +164 -0
- package/preview-card/register.d.ts +1 -0
- package/preview-card/register.js +12 -0
- package/progress/index.d.ts +1 -0
- package/progress/index.js +1 -0
- package/progress/progress.d.ts +19 -0
- package/progress/progress.js +94 -0
- package/progress/register.d.ts +1 -0
- package/progress/register.js +4 -0
- package/radio/index.d.ts +3 -0
- package/radio/index.js +2 -0
- package/radio/radio-group-context.d.ts +11 -0
- package/radio/radio-group-context.js +2 -0
- package/radio/radio-group.d.ts +37 -0
- package/radio/radio-group.js +135 -0
- package/radio/radio.d.ts +27 -0
- package/radio/radio.js +204 -0
- package/radio/register.d.ts +1 -0
- package/radio/register.js +8 -0
- package/scroll-area/index.d.ts +1 -0
- package/scroll-area/index.js +1 -0
- package/scroll-area/register.d.ts +1 -0
- package/scroll-area/register.js +4 -0
- package/scroll-area/scroll-area.d.ts +38 -0
- package/scroll-area/scroll-area.js +453 -0
- package/select/index.d.ts +2 -0
- package/select/index.js +1 -0
- package/select/register.d.ts +1 -0
- package/select/register.js +4 -0
- package/select/select.d.ts +36 -0
- package/select/select.js +404 -0
- package/separator/index.d.ts +1 -0
- package/separator/index.js +1 -0
- package/separator/register.d.ts +1 -0
- package/separator/register.js +4 -0
- package/separator/separator.d.ts +12 -0
- package/separator/separator.js +50 -0
- package/sidebar/index.d.ts +16 -0
- package/sidebar/index.js +13 -0
- package/sidebar/register.d.ts +1 -0
- package/sidebar/register.js +52 -0
- package/sidebar/sidebar-content.d.ts +14 -0
- package/sidebar/sidebar-content.js +30 -0
- package/sidebar/sidebar-context.d.ts +15 -0
- package/sidebar/sidebar-context.js +3 -0
- package/sidebar/sidebar-footer.d.ts +12 -0
- package/sidebar/sidebar-footer.js +21 -0
- package/sidebar/sidebar-group-label.d.ts +17 -0
- package/sidebar/sidebar-group-label.js +49 -0
- package/sidebar/sidebar-group.d.ts +15 -0
- package/sidebar/sidebar-group.js +29 -0
- package/sidebar/sidebar-header.d.ts +12 -0
- package/sidebar/sidebar-header.js +21 -0
- package/sidebar/sidebar-inset.d.ts +15 -0
- package/sidebar/sidebar-inset.js +29 -0
- package/sidebar/sidebar-menu-button.d.ts +31 -0
- package/sidebar/sidebar-menu-button.js +201 -0
- package/sidebar/sidebar-menu-item.d.ts +12 -0
- package/sidebar/sidebar-menu-item.js +20 -0
- package/sidebar/sidebar-menu.d.ts +14 -0
- package/sidebar/sidebar-menu.js +30 -0
- package/sidebar/sidebar-provider.d.ts +34 -0
- package/sidebar/sidebar-provider.js +157 -0
- package/sidebar/sidebar-separator.d.ts +12 -0
- package/sidebar/sidebar-separator.js +24 -0
- package/sidebar/sidebar-trigger.d.ts +16 -0
- package/sidebar/sidebar-trigger.js +50 -0
- package/sidebar/sidebar.d.ts +21 -0
- package/sidebar/sidebar.js +228 -0
- package/slider/index.d.ts +1 -0
- package/slider/index.js +1 -0
- package/slider/register.d.ts +1 -0
- package/slider/register.js +4 -0
- package/slider/slider.d.ts +37 -0
- package/slider/slider.js +268 -0
- package/spinner/index.d.ts +1 -0
- package/spinner/index.js +1 -0
- package/spinner/register.d.ts +1 -0
- package/spinner/register.js +4 -0
- package/spinner/spinner.d.ts +18 -0
- package/spinner/spinner.js +138 -0
- package/switch/index.d.ts +1 -0
- package/switch/index.js +1 -0
- package/switch/register.d.ts +1 -0
- package/switch/register.js +4 -0
- package/switch/switch.d.ts +29 -0
- package/switch/switch.js +201 -0
- package/tabs/index.d.ts +6 -0
- package/tabs/index.js +5 -0
- package/tabs/register.d.ts +1 -0
- package/tabs/register.js +10 -0
- package/tabs/tab.d.ts +16 -0
- package/tabs/tab.js +98 -0
- package/tabs/tabs-context.d.ts +8 -0
- package/tabs/tabs-context.js +2 -0
- package/tabs/tabs-indicator.d.ts +11 -0
- package/tabs/tabs-indicator.js +27 -0
- package/tabs/tabs-list.d.ts +17 -0
- package/tabs/tabs-list.js +85 -0
- package/tabs/tabs-panel.d.ts +18 -0
- package/tabs/tabs-panel.js +85 -0
- package/tabs/tabs.d.ts +24 -0
- package/tabs/tabs.js +111 -0
- package/textarea/index.d.ts +2 -0
- package/textarea/index.js +1 -0
- package/textarea/register.d.ts +1 -0
- package/textarea/register.js +4 -0
- package/textarea/textarea.d.ts +37 -0
- package/textarea/textarea.js +170 -0
- package/toggle/index.d.ts +3 -0
- package/toggle/index.js +2 -0
- package/toggle/register.d.ts +1 -0
- package/toggle/register.js +8 -0
- package/toggle/toggle-group-context.d.ts +9 -0
- package/toggle/toggle-group-context.js +2 -0
- package/toggle/toggle-group.d.ts +27 -0
- package/toggle/toggle-group.js +163 -0
- package/toggle/toggle.d.ts +25 -0
- package/toggle/toggle.js +124 -0
- package/toolbar/index.d.ts +1 -0
- package/toolbar/index.js +1 -0
- package/toolbar/register.d.ts +1 -0
- package/toolbar/register.js +4 -0
- package/toolbar/toolbar.d.ts +15 -0
- package/toolbar/toolbar.js +89 -0
- package/tooltip/index.d.ts +5 -0
- package/tooltip/index.js +3 -0
- package/tooltip/register.d.ts +1 -0
- package/tooltip/register.js +12 -0
- package/tooltip/tooltip-context.d.ts +17 -0
- package/tooltip/tooltip-context.js +3 -0
- package/tooltip/tooltip-popup.d.ts +16 -0
- package/tooltip/tooltip-popup.js +162 -0
- package/tooltip/tooltip-trigger.d.ts +15 -0
- package/tooltip/tooltip-trigger.js +110 -0
- package/tooltip/tooltip.d.ts +36 -0
- package/tooltip/tooltip.js +176 -0
- package/trunc/index.d.ts +1 -0
- package/trunc/index.js +1 -0
- package/trunc/register.d.ts +1 -0
- package/trunc/register.js +4 -0
- package/trunc/trunc.d.ts +19 -0
- package/trunc/trunc.js +68 -0
- package/vstack/index.d.ts +1 -0
- package/vstack/index.js +1 -0
- package/vstack/register.d.ts +1 -0
- package/vstack/register.js +4 -0
- package/vstack/vstack.d.ts +17 -0
- package/vstack/vstack.js +83 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Ported from original DUI: deep-future-app/app/client/components/dui/breadcrumb */
|
|
2
|
+
import { css, html, LitElement } from "lit";
|
|
3
|
+
import { base } from "@deepfuture/dui-core/base";
|
|
4
|
+
/** Structural styles only — layout CSS. */
|
|
5
|
+
const styles = css `
|
|
6
|
+
:host {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[part="root"] {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
/**
|
|
16
|
+
* `<dui-breadcrumb-page>` — Current page indicator (not clickable).
|
|
17
|
+
*
|
|
18
|
+
* @slot - The current page label text.
|
|
19
|
+
* @csspart root - The `<span>` element with `aria-current="page"`.
|
|
20
|
+
*/
|
|
21
|
+
export class DuiBreadcrumbPage extends LitElement {
|
|
22
|
+
static { this.tagName = "dui-breadcrumb-page"; }
|
|
23
|
+
static { this.styles = [base, styles]; }
|
|
24
|
+
render() {
|
|
25
|
+
return html `
|
|
26
|
+
<span
|
|
27
|
+
role="link"
|
|
28
|
+
aria-disabled="true"
|
|
29
|
+
aria-current="page"
|
|
30
|
+
part="root"
|
|
31
|
+
>
|
|
32
|
+
<slot></slot>
|
|
33
|
+
</span>
|
|
34
|
+
`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Ported from original DUI: deep-future-app/app/client/components/dui/breadcrumb */
|
|
2
|
+
import { LitElement, type TemplateResult } from "lit";
|
|
3
|
+
/**
|
|
4
|
+
* `<dui-breadcrumb-separator>` — Visual separator between breadcrumb items.
|
|
5
|
+
* Defaults to "/" but can be overridden via slot (e.g., a chevron icon).
|
|
6
|
+
*
|
|
7
|
+
* @slot - Custom separator content. Defaults to "/".
|
|
8
|
+
* @csspart root - The `<li>` element (presentational, aria-hidden).
|
|
9
|
+
*/
|
|
10
|
+
export declare class DuiBreadcrumbSeparator extends LitElement {
|
|
11
|
+
static tagName: "dui-breadcrumb-separator";
|
|
12
|
+
static styles: import("lit").CSSResult[];
|
|
13
|
+
render(): TemplateResult;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Ported from original DUI: deep-future-app/app/client/components/dui/breadcrumb */
|
|
2
|
+
import { css, html, LitElement } from "lit";
|
|
3
|
+
import { base } from "@deepfuture/dui-core/base";
|
|
4
|
+
/** Structural styles only — layout CSS. */
|
|
5
|
+
const styles = css `
|
|
6
|
+
:host {
|
|
7
|
+
display: flex;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[part="root"] {
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
/**
|
|
16
|
+
* `<dui-breadcrumb-separator>` — Visual separator between breadcrumb items.
|
|
17
|
+
* Defaults to "/" but can be overridden via slot (e.g., a chevron icon).
|
|
18
|
+
*
|
|
19
|
+
* @slot - Custom separator content. Defaults to "/".
|
|
20
|
+
* @csspart root - The `<li>` element (presentational, aria-hidden).
|
|
21
|
+
*/
|
|
22
|
+
export class DuiBreadcrumbSeparator extends LitElement {
|
|
23
|
+
static { this.tagName = "dui-breadcrumb-separator"; }
|
|
24
|
+
static { this.styles = [base, styles]; }
|
|
25
|
+
render() {
|
|
26
|
+
return html `
|
|
27
|
+
<li
|
|
28
|
+
role="presentation"
|
|
29
|
+
aria-hidden="true"
|
|
30
|
+
part="root"
|
|
31
|
+
>
|
|
32
|
+
<slot>/</slot>
|
|
33
|
+
</li>
|
|
34
|
+
`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Ported from original DUI: deep-future-app/app/client/components/dui/breadcrumb */
|
|
2
|
+
import { LitElement, type TemplateResult } from "lit";
|
|
3
|
+
/**
|
|
4
|
+
* `<dui-breadcrumb>` — Root navigation wrapper for breadcrumb trails.
|
|
5
|
+
* Renders a `<nav>` with an internal `<ol>` for semantic structure.
|
|
6
|
+
*
|
|
7
|
+
* @slot - Breadcrumb items and separators.
|
|
8
|
+
* @csspart root - The `<ol>` element.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DuiBreadcrumb extends LitElement {
|
|
11
|
+
static tagName: "dui-breadcrumb";
|
|
12
|
+
static styles: import("lit").CSSResult[];
|
|
13
|
+
render(): TemplateResult;
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** Ported from original DUI: deep-future-app/app/client/components/dui/breadcrumb */
|
|
2
|
+
import { css, html, LitElement } from "lit";
|
|
3
|
+
import { base } from "@deepfuture/dui-core/base";
|
|
4
|
+
/** Structural styles only — layout CSS. */
|
|
5
|
+
const styles = css `
|
|
6
|
+
:host {
|
|
7
|
+
display: block;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[part="root"] {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-wrap: nowrap;
|
|
13
|
+
align-items: center;
|
|
14
|
+
list-style: none;
|
|
15
|
+
margin: 0;
|
|
16
|
+
padding: 0;
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
/**
|
|
20
|
+
* `<dui-breadcrumb>` — Root navigation wrapper for breadcrumb trails.
|
|
21
|
+
* Renders a `<nav>` with an internal `<ol>` for semantic structure.
|
|
22
|
+
*
|
|
23
|
+
* @slot - Breadcrumb items and separators.
|
|
24
|
+
* @csspart root - The `<ol>` element.
|
|
25
|
+
*/
|
|
26
|
+
export class DuiBreadcrumb extends LitElement {
|
|
27
|
+
static { this.tagName = "dui-breadcrumb"; }
|
|
28
|
+
static { this.styles = [base, styles]; }
|
|
29
|
+
render() {
|
|
30
|
+
return html `
|
|
31
|
+
<nav aria-label="breadcrumb">
|
|
32
|
+
<ol part="root">
|
|
33
|
+
<slot></slot>
|
|
34
|
+
</ol>
|
|
35
|
+
</nav>
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { DuiBreadcrumb } from "./breadcrumb.js";
|
|
2
|
+
export { DuiBreadcrumbItem } from "./breadcrumb-item.js";
|
|
3
|
+
export { DuiBreadcrumbLink } from "./breadcrumb-link.js";
|
|
4
|
+
export { DuiBreadcrumbPage } from "./breadcrumb-page.js";
|
|
5
|
+
export { DuiBreadcrumbSeparator } from "./breadcrumb-separator.js";
|
|
6
|
+
export { DuiBreadcrumbEllipsis } from "./breadcrumb-ellipsis.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { DuiBreadcrumb } from "./breadcrumb.js";
|
|
2
|
+
export { DuiBreadcrumbItem } from "./breadcrumb-item.js";
|
|
3
|
+
export { DuiBreadcrumbLink } from "./breadcrumb-link.js";
|
|
4
|
+
export { DuiBreadcrumbPage } from "./breadcrumb-page.js";
|
|
5
|
+
export { DuiBreadcrumbSeparator } from "./breadcrumb-separator.js";
|
|
6
|
+
export { DuiBreadcrumbEllipsis } from "./breadcrumb-ellipsis.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DuiBreadcrumb, DuiBreadcrumbItem, DuiBreadcrumbLink, DuiBreadcrumbPage, DuiBreadcrumbSeparator, DuiBreadcrumbEllipsis, } from "./index.js";
|
|
2
|
+
const components = [
|
|
3
|
+
DuiBreadcrumb,
|
|
4
|
+
DuiBreadcrumbItem,
|
|
5
|
+
DuiBreadcrumbLink,
|
|
6
|
+
DuiBreadcrumbPage,
|
|
7
|
+
DuiBreadcrumbSeparator,
|
|
8
|
+
DuiBreadcrumbEllipsis,
|
|
9
|
+
];
|
|
10
|
+
for (const comp of components) {
|
|
11
|
+
if (!customElements.get(comp.tagName)) {
|
|
12
|
+
customElements.define(comp.tagName, comp);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { LitElement, type TemplateResult } from "lit";
|
|
2
|
+
export type ButtonSize = "sm" | "md" | "lg";
|
|
3
|
+
export type ButtonVariant = "default" | "primary" | "secondary" | "destructive" | "outline" | "ghost" | "link";
|
|
4
|
+
/** Fired when a button with `href` is clicked via normal (non-modifier) click. */
|
|
5
|
+
export declare const navigateEvent: (detail: {
|
|
6
|
+
href: string;
|
|
7
|
+
}) => CustomEvent<{
|
|
8
|
+
href: string;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* `<dui-button>` — A button component with variants, sizes, and theme-aware hover.
|
|
12
|
+
*
|
|
13
|
+
* Renders as a native `<button>` by default. When `href` is set, renders as a
|
|
14
|
+
* native `<a>` tag instead. Normal clicks fire a `dui-navigate` event that
|
|
15
|
+
* consumers handle for SPA routing.
|
|
16
|
+
*
|
|
17
|
+
* @slot - Button label / content.
|
|
18
|
+
* @csspart root - The button or anchor element.
|
|
19
|
+
* @fires dui-navigate - Fired on normal link clicks. Detail: { href: string }
|
|
20
|
+
*/
|
|
21
|
+
export declare class DuiButton extends LitElement {
|
|
22
|
+
#private;
|
|
23
|
+
static tagName: "dui-button";
|
|
24
|
+
static shadowRootOptions: {
|
|
25
|
+
delegatesFocus: boolean;
|
|
26
|
+
mode: ShadowRootMode;
|
|
27
|
+
serializable?: boolean;
|
|
28
|
+
slotAssignment?: SlotAssignmentMode;
|
|
29
|
+
};
|
|
30
|
+
static styles: import("lit").CSSResult[];
|
|
31
|
+
accessor variant: ButtonVariant;
|
|
32
|
+
accessor size: ButtonSize;
|
|
33
|
+
accessor disabled: boolean;
|
|
34
|
+
accessor focusableWhenDisabled: boolean;
|
|
35
|
+
accessor type: "button" | "submit" | "reset";
|
|
36
|
+
accessor href: string | undefined;
|
|
37
|
+
render(): TemplateResult;
|
|
38
|
+
}
|
package/button/button.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { css, html, LitElement, nothing } from "lit";
|
|
8
|
+
import { property } from "lit/decorators.js";
|
|
9
|
+
import { base } from "@deepfuture/dui-core/base";
|
|
10
|
+
import { customEvent } from "@deepfuture/dui-core/event";
|
|
11
|
+
/** Fired when a button with `href` is clicked via normal (non-modifier) click. */
|
|
12
|
+
export const navigateEvent = customEvent("dui-navigate", { bubbles: true, composed: true });
|
|
13
|
+
/** Structural styles only — layout and behavioral CSS. */
|
|
14
|
+
const styles = css `
|
|
15
|
+
:host {
|
|
16
|
+
display: inline-block;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
button, a {
|
|
20
|
+
appearance: none;
|
|
21
|
+
background: none;
|
|
22
|
+
border: none;
|
|
23
|
+
padding: 0;
|
|
24
|
+
margin: 0;
|
|
25
|
+
font: inherit;
|
|
26
|
+
color: inherit;
|
|
27
|
+
text-decoration: none;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
[part="root"] {
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
box-sizing: border-box;
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
user-select: none;
|
|
37
|
+
-webkit-tap-highlight-color: transparent;
|
|
38
|
+
transition-property: background, box-shadow, filter, transform, border-color;
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
/**
|
|
42
|
+
* `<dui-button>` — A button component with variants, sizes, and theme-aware hover.
|
|
43
|
+
*
|
|
44
|
+
* Renders as a native `<button>` by default. When `href` is set, renders as a
|
|
45
|
+
* native `<a>` tag instead. Normal clicks fire a `dui-navigate` event that
|
|
46
|
+
* consumers handle for SPA routing.
|
|
47
|
+
*
|
|
48
|
+
* @slot - Button label / content.
|
|
49
|
+
* @csspart root - The button or anchor element.
|
|
50
|
+
* @fires dui-navigate - Fired on normal link clicks. Detail: { href: string }
|
|
51
|
+
*/
|
|
52
|
+
export class DuiButton extends LitElement {
|
|
53
|
+
static { this.tagName = "dui-button"; }
|
|
54
|
+
static { this.shadowRootOptions = {
|
|
55
|
+
...LitElement.shadowRootOptions,
|
|
56
|
+
delegatesFocus: true,
|
|
57
|
+
}; }
|
|
58
|
+
static { this.styles = [base, styles]; }
|
|
59
|
+
#variant_accessor_storage = "default";
|
|
60
|
+
get variant() { return this.#variant_accessor_storage; }
|
|
61
|
+
set variant(value) { this.#variant_accessor_storage = value; }
|
|
62
|
+
#size_accessor_storage = "md";
|
|
63
|
+
get size() { return this.#size_accessor_storage; }
|
|
64
|
+
set size(value) { this.#size_accessor_storage = value; }
|
|
65
|
+
#disabled_accessor_storage = false;
|
|
66
|
+
get disabled() { return this.#disabled_accessor_storage; }
|
|
67
|
+
set disabled(value) { this.#disabled_accessor_storage = value; }
|
|
68
|
+
#focusableWhenDisabled_accessor_storage = false;
|
|
69
|
+
get focusableWhenDisabled() { return this.#focusableWhenDisabled_accessor_storage; }
|
|
70
|
+
set focusableWhenDisabled(value) { this.#focusableWhenDisabled_accessor_storage = value; }
|
|
71
|
+
#type_accessor_storage = "button";
|
|
72
|
+
get type() { return this.#type_accessor_storage; }
|
|
73
|
+
set type(value) { this.#type_accessor_storage = value; }
|
|
74
|
+
#href_accessor_storage = undefined;
|
|
75
|
+
get href() { return this.#href_accessor_storage; }
|
|
76
|
+
set href(value) { this.#href_accessor_storage = value; }
|
|
77
|
+
#handleClick = (e) => {
|
|
78
|
+
if (this.disabled) {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
e.stopPropagation();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
#onLinkClick = (event) => {
|
|
84
|
+
if (this.disabled) {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (this.href) {
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
this.dispatchEvent(navigateEvent({ href: this.href }));
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
#renderButton() {
|
|
97
|
+
const ariaDisabled = this.disabled && this.focusableWhenDisabled;
|
|
98
|
+
return html `
|
|
99
|
+
<button
|
|
100
|
+
part="root"
|
|
101
|
+
type="${this.type}"
|
|
102
|
+
?disabled="${this.disabled && !this.focusableWhenDisabled}"
|
|
103
|
+
aria-disabled="${ariaDisabled || nothing}"
|
|
104
|
+
@click="${this.#handleClick}"
|
|
105
|
+
>
|
|
106
|
+
<slot></slot>
|
|
107
|
+
</button>
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
#renderLink() {
|
|
111
|
+
return html `
|
|
112
|
+
<a
|
|
113
|
+
part="root"
|
|
114
|
+
href="${this.href ?? nothing}"
|
|
115
|
+
aria-disabled="${this.disabled || nothing}"
|
|
116
|
+
@click="${this.#onLinkClick}"
|
|
117
|
+
>
|
|
118
|
+
<slot></slot>
|
|
119
|
+
</a>
|
|
120
|
+
`;
|
|
121
|
+
}
|
|
122
|
+
render() {
|
|
123
|
+
return this.href !== undefined ? this.#renderLink() : this.#renderButton();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
__decorate([
|
|
127
|
+
property({ reflect: true })
|
|
128
|
+
], DuiButton.prototype, "variant", null);
|
|
129
|
+
__decorate([
|
|
130
|
+
property({ reflect: true })
|
|
131
|
+
], DuiButton.prototype, "size", null);
|
|
132
|
+
__decorate([
|
|
133
|
+
property({ type: Boolean, reflect: true })
|
|
134
|
+
], DuiButton.prototype, "disabled", null);
|
|
135
|
+
__decorate([
|
|
136
|
+
property({ type: Boolean, attribute: "focusable-when-disabled" })
|
|
137
|
+
], DuiButton.prototype, "focusableWhenDisabled", null);
|
|
138
|
+
__decorate([
|
|
139
|
+
property()
|
|
140
|
+
], DuiButton.prototype, "type", null);
|
|
141
|
+
__decorate([
|
|
142
|
+
property()
|
|
143
|
+
], DuiButton.prototype, "href", null);
|
package/button/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { DuiButton, navigateEvent } from "./button.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LitElement, type TemplateResult } from "lit";
|
|
2
|
+
export declare const valueChangeEvent: (detail: {
|
|
3
|
+
value: string;
|
|
4
|
+
}) => CustomEvent<{
|
|
5
|
+
value: string;
|
|
6
|
+
}>;
|
|
7
|
+
/**
|
|
8
|
+
* `<dui-calendar>` — A date picker calendar grid.
|
|
9
|
+
*
|
|
10
|
+
* @csspart root - The outer container.
|
|
11
|
+
* @csspart header - Month navigation header.
|
|
12
|
+
* @csspart heading - The month/year heading text.
|
|
13
|
+
* @csspart prev - Previous month button.
|
|
14
|
+
* @csspart next - Next month button.
|
|
15
|
+
* @csspart grid - The day grid container.
|
|
16
|
+
* @csspart weekday - Weekday column header.
|
|
17
|
+
* @csspart day - Individual day button.
|
|
18
|
+
* @fires value-change - Fired when a date is selected. Detail: { value: string }
|
|
19
|
+
*/
|
|
20
|
+
export declare class DuiCalendar extends LitElement {
|
|
21
|
+
#private;
|
|
22
|
+
static tagName: "dui-calendar";
|
|
23
|
+
static styles: import("lit").CSSResult[];
|
|
24
|
+
accessor value: string | undefined;
|
|
25
|
+
accessor defaultValue: string | undefined;
|
|
26
|
+
accessor min: string | undefined;
|
|
27
|
+
accessor max: string | undefined;
|
|
28
|
+
accessor locale: string;
|
|
29
|
+
accessor disabled: boolean;
|
|
30
|
+
accessor readOnly: boolean;
|
|
31
|
+
connectedCallback(): void;
|
|
32
|
+
render(): TemplateResult;
|
|
33
|
+
}
|