@threadlabs/looma 0.10.11 → 0.11.0
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/components/shared/editor.js +2 -26
- package/components/shared/icons.js +53 -0
- package/components/ui-avatar-group/ui-avatar-group.html +6 -6
- package/components/ui-avatar-group/ui-avatar-group.js +1 -1
- package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +60 -0
- package/components/ui-breadcrumbs/ui-breadcrumbs.html +31 -0
- package/components/ui-card/ui-card.html +55 -0
- package/components/ui-combobox/ui-combobox.js +2 -2
- package/components/ui-context-menu/ui-context-menu.js +4 -4
- package/components/ui-cover/ui-cover.html +36 -0
- package/components/ui-description-item/ui-description-item.html +46 -0
- package/components/ui-description-list/ui-description-list.html +37 -0
- package/components/ui-icon/ui-icon.js +1 -1
- package/components/ui-list/ui-list.html +33 -0
- package/components/ui-list-item/ui-list-item.html +146 -0
- package/components/ui-menu/ui-menu.js +3 -3
- package/components/ui-page-header/ui-page-header.html +97 -0
- package/components/ui-radio/ui-radio.js +1 -1
- package/components/ui-radio-group/ui-radio-group.js +1 -1
- package/components/ui-section/ui-section.html +108 -0
- package/components/ui-spinner/ui-spinner.html +48 -0
- package/components/ui-status-message/ui-status-message.html +84 -0
- package/components/ui-text/ui-text.html +96 -0
- package/components/ui-tree/ui-tree.js +2 -2
- package/components/ui-tree-item/ui-tree-item.js +3 -3
- package/dist/index.js +1 -1
- package/editor/icons.d.ts +5 -0
- package/editor/index.js +6 -1
- package/package.json +1 -1
- package/styles/ui-avatar-group.css +6 -6
- package/styles/ui-breadcrumb-item.css +57 -0
- package/styles/ui-breadcrumbs.css +32 -0
- package/styles/ui-card.css +51 -0
- package/styles/ui-cover.css +35 -0
- package/styles/ui-description-item.css +43 -0
- package/styles/ui-description-list.css +38 -0
- package/styles/ui-list-item.css +146 -0
- package/styles/ui-list.css +33 -0
- package/styles/ui-page-header.css +89 -0
- package/styles/ui-section.css +94 -0
- package/styles/ui-spinner.css +42 -0
- package/styles/ui-status-message.css +72 -0
- package/styles/ui-text.css +85 -0
- package/vanilla/UiBreadcrumbItem.d.ts +14 -0
- package/vanilla/UiBreadcrumbItem.js +38 -0
- package/vanilla/UiBreadcrumbs.d.ts +14 -0
- package/vanilla/UiBreadcrumbs.js +39 -0
- package/vanilla/UiCard.d.ts +17 -0
- package/vanilla/UiCard.js +32 -0
- package/vanilla/UiCover.d.ts +14 -0
- package/vanilla/UiCover.js +28 -0
- package/vanilla/UiDescriptionItem.d.ts +14 -0
- package/vanilla/UiDescriptionItem.js +39 -0
- package/vanilla/UiDescriptionList.d.ts +14 -0
- package/vanilla/UiDescriptionList.js +28 -0
- package/vanilla/UiList.d.ts +14 -0
- package/vanilla/UiList.js +29 -0
- package/vanilla/UiListItem.d.ts +15 -0
- package/vanilla/UiListItem.js +77 -0
- package/vanilla/UiPageHeader.d.ts +14 -0
- package/vanilla/UiPageHeader.js +78 -0
- package/vanilla/UiSection.d.ts +16 -0
- package/vanilla/UiSection.js +64 -0
- package/vanilla/UiSpinner.d.ts +15 -0
- package/vanilla/UiSpinner.js +23 -0
- package/vanilla/UiStatusMessage.d.ts +16 -0
- package/vanilla/UiStatusMessage.js +53 -0
- package/vanilla/UiText.d.ts +20 -0
- package/vanilla/UiText.js +38 -0
- package/vanilla/index.js +13 -0
- package/vue/UiAvatarGroup.vue +6 -6
- package/vue/UiBreadcrumbItem.d.ts +18 -0
- package/vue/UiBreadcrumbItem.js +2 -0
- package/vue/UiBreadcrumbItem.vue +101 -0
- package/vue/UiBreadcrumbs.d.ts +18 -0
- package/vue/UiBreadcrumbs.js +2 -0
- package/vue/UiBreadcrumbs.vue +45 -0
- package/vue/UiCard.d.ts +24 -0
- package/vue/UiCard.js +2 -0
- package/vue/UiCard.vue +82 -0
- package/vue/UiCover.d.ts +18 -0
- package/vue/UiCover.js +2 -0
- package/vue/UiCover.vue +57 -0
- package/vue/UiDescriptionItem.d.ts +18 -0
- package/vue/UiDescriptionItem.js +2 -0
- package/vue/UiDescriptionItem.vue +58 -0
- package/vue/UiDescriptionList.d.ts +18 -0
- package/vue/UiDescriptionList.js +2 -0
- package/vue/UiDescriptionList.vue +62 -0
- package/vue/UiIconButton.d.ts +1 -1
- package/vue/UiList.d.ts +18 -0
- package/vue/UiList.js +2 -0
- package/vue/UiList.vue +60 -0
- package/vue/UiListItem.d.ts +26 -0
- package/vue/UiListItem.js +2 -0
- package/vue/UiListItem.vue +171 -0
- package/vue/UiPageHeader.d.ts +26 -0
- package/vue/UiPageHeader.js +2 -0
- package/vue/UiPageHeader.vue +118 -0
- package/vue/UiSection.d.ts +26 -0
- package/vue/UiSection.js +2 -0
- package/vue/UiSection.vue +128 -0
- package/vue/UiSpinner.d.ts +10 -0
- package/vue/UiSpinner.js +2 -0
- package/vue/UiSpinner.vue +87 -0
- package/vue/UiStatusMessage.d.ts +24 -0
- package/vue/UiStatusMessage.js +2 -0
- package/vue/UiStatusMessage.vue +121 -0
- package/vue/UiText.d.ts +30 -0
- package/vue/UiText.js +2 -0
- package/vue/UiText.vue +125 -0
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBreadcrumbItem.js +50 -0
- package/vue/chunks/UiBreadcrumbs.js +19 -0
- package/vue/chunks/UiCard.js +31 -0
- package/vue/chunks/UiCover.js +21 -0
- package/vue/chunks/UiDescriptionItem.js +16 -0
- package/vue/chunks/UiDescriptionList.js +21 -0
- package/vue/chunks/UiList.js +24 -0
- package/vue/chunks/UiListItem.js +39 -0
- package/vue/chunks/UiPageHeader.js +35 -0
- package/vue/chunks/UiSection.js +34 -0
- package/vue/chunks/UiSpinner.js +64 -0
- package/vue/chunks/UiStatusMessage.js +54 -0
- package/vue/chunks/UiText.js +40 -0
- package/vue/components.css +661 -29
- package/vue/index.d.ts +13 -0
- package/vue/index.js +15 -2
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@scope ([data-component~="ui-section"]) to ([data-component], [data-slotted]) {
|
|
3
|
+
/* A part of a view: a heading, an optional line under it, actions for the whole section at its
|
|
4
|
+
end, and the content. Sections space themselves out through the Stack around them. */
|
|
5
|
+
:scope {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
gap: var(--ui-space-4);
|
|
9
|
+
min-inline-size: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
:scope[data-ui-section-state~="variant=card"] {
|
|
13
|
+
padding: var(--ui-space-5);
|
|
14
|
+
border: 1px solid var(--ui-border-default);
|
|
15
|
+
border-radius: var(--ui-radius-lg);
|
|
16
|
+
background: var(--ui-surface-raised);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:scope[data-ui-section-state~="variant=divided"] {
|
|
20
|
+
padding-block-start: var(--ui-space-6);
|
|
21
|
+
border-block-start: 1px solid var(--ui-border-default);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:scope[data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"] {
|
|
25
|
+
border-color: var(--ui-danger);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.head {
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-wrap: wrap;
|
|
31
|
+
align-items: flex-start;
|
|
32
|
+
justify-content: space-between;
|
|
33
|
+
gap: var(--ui-space-2) var(--ui-space-4);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.copy {
|
|
37
|
+
display: flex;
|
|
38
|
+
flex: 1 1 16rem;
|
|
39
|
+
flex-direction: column;
|
|
40
|
+
gap: var(--ui-space-1);
|
|
41
|
+
min-inline-size: 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.heading {
|
|
45
|
+
margin: 0;
|
|
46
|
+
color: var(--ui-text-primary);
|
|
47
|
+
font-size: var(--ui-font-size-lg);
|
|
48
|
+
font-weight: var(--ui-font-semibold);
|
|
49
|
+
line-height: var(--ui-line-height-tight);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:scope[data-ui-section-state~="tone=danger"] .heading {
|
|
53
|
+
color: var(--ui-danger);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.description {
|
|
57
|
+
color: var(--ui-text-secondary);
|
|
58
|
+
font-size: var(--ui-font-size-sm);
|
|
59
|
+
line-height: var(--ui-line-height);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.actions {
|
|
63
|
+
display: inline-flex;
|
|
64
|
+
flex-wrap: wrap;
|
|
65
|
+
gap: var(--ui-space-2);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.body {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
gap: var(--ui-space-4);
|
|
72
|
+
min-inline-size: 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.description:empty,
|
|
76
|
+
.actions:empty {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.head:has(.heading[hidden]):has(.description:empty):has(.actions:empty) {
|
|
81
|
+
display: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
85
|
+
:scope[hidden] {
|
|
86
|
+
display: none;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
@scope ([data-component~="ui-section"]) to ([data-component]) {
|
|
90
|
+
/* A part of a view: a heading, an optional line under it, actions for the whole section at its
|
|
91
|
+
end, and the content. Sections space themselves out through the Stack around them. */
|
|
92
|
+
|
|
93
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
94
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@keyframes ui-spinner-turn {
|
|
3
|
+
to {
|
|
4
|
+
transform: rotate(1turn);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
@scope ([data-component~="ui-spinner"]) to ([data-component], [data-slotted]) {
|
|
8
|
+
/* Something is on its way. It turns in the current text colour; with reduced motion it holds still,
|
|
9
|
+
and the label (or the text beside it) still says what is happening. */
|
|
10
|
+
:scope {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
flex: none;
|
|
13
|
+
color: currentColor;
|
|
14
|
+
font-size: var(--ui-font-size-lg);
|
|
15
|
+
line-height: 1;
|
|
16
|
+
animation: ui-spinner-turn 0.8s linear infinite;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:scope[data-ui-spinner-state~="size=sm"] {
|
|
20
|
+
font-size: var(--ui-font-size-md);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@media (prefers-reduced-motion: reduce) {
|
|
24
|
+
:scope {
|
|
25
|
+
animation: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
30
|
+
:scope[hidden] {
|
|
31
|
+
display: none;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
@scope ([data-component~="ui-spinner"]) to ([data-component]) {
|
|
35
|
+
/* Something is on its way. It turns in the current text colour; with reduced motion it holds still,
|
|
36
|
+
and the label (or the text beside it) still says what is happening. */
|
|
37
|
+
|
|
38
|
+
@media (prefers-reduced-motion: reduce) {
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
42
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@scope ([data-component~="ui-status-message"]) to ([data-component], [data-slotted]) {
|
|
3
|
+
/* The one way a view says it is loading, has nothing yet, or failed, with an optional next step.
|
|
4
|
+
Every view says it the same way, in the same place, at the same size. */
|
|
5
|
+
:scope {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-wrap: wrap;
|
|
8
|
+
align-items: center;
|
|
9
|
+
gap: var(--ui-space-2) var(--ui-space-4);
|
|
10
|
+
padding-block: var(--ui-space-4);
|
|
11
|
+
color: var(--ui-text-muted);
|
|
12
|
+
font-size: var(--ui-font-size-md);
|
|
13
|
+
line-height: var(--ui-line-height);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:scope[data-ui-status-message-state~="kind=error"] {
|
|
17
|
+
color: var(--ui-danger);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:scope[data-ui-status-message-state~="layout=panel"] {
|
|
21
|
+
padding: var(--ui-space-6);
|
|
22
|
+
border: 1px dashed var(--ui-border-default);
|
|
23
|
+
border-radius: var(--ui-radius-lg);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:scope[data-ui-status-message-state~="layout=fill"] {
|
|
27
|
+
flex: 1;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
justify-content: center;
|
|
30
|
+
min-block-size: 50vh;
|
|
31
|
+
text-align: center;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.copy {
|
|
35
|
+
display: flex;
|
|
36
|
+
flex: 1 1 12rem;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
gap: var(--ui-space-1);
|
|
39
|
+
min-inline-size: 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:scope[data-ui-status-message-state~="layout=fill"] .copy {
|
|
43
|
+
flex: none;
|
|
44
|
+
align-items: center;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.heading {
|
|
48
|
+
color: var(--ui-text-primary);
|
|
49
|
+
font-weight: var(--ui-font-semibold);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.action {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
flex-wrap: wrap;
|
|
55
|
+
gap: var(--ui-space-2);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.action:empty {
|
|
59
|
+
display: none;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
63
|
+
:scope[hidden] {
|
|
64
|
+
display: none;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
@scope ([data-component~="ui-status-message"]) to ([data-component]) {
|
|
68
|
+
/* The one way a view says it is loading, has nothing yet, or failed, with an optional next step.
|
|
69
|
+
Every view says it the same way, in the same place, at the same size. */
|
|
70
|
+
|
|
71
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
72
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* Generated by HTML Next 1.0.0-alpha.5. Do not edit. */
|
|
2
|
+
@scope ([data-component~="ui-text"]) to ([data-component], [data-slotted]) {
|
|
3
|
+
/* Running text, set on the type scale and in a tone that says what it is, so a view never styles
|
|
4
|
+
text of its own. The root is a paragraph unless as= names a span, div, small, strong, or label. */
|
|
5
|
+
:scope {
|
|
6
|
+
margin: 0;
|
|
7
|
+
min-inline-size: 0;
|
|
8
|
+
color: var(--ui-text-primary);
|
|
9
|
+
text-align: start;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
:scope[data-ui-text-state~="size=xs"] {
|
|
13
|
+
font-size: var(--ui-font-size-xs);
|
|
14
|
+
line-height: var(--ui-line-height);
|
|
15
|
+
}
|
|
16
|
+
:scope[data-ui-text-state~="size=sm"] {
|
|
17
|
+
font-size: var(--ui-font-size-sm);
|
|
18
|
+
line-height: var(--ui-line-height);
|
|
19
|
+
}
|
|
20
|
+
:scope[data-ui-text-state~="size=md"] {
|
|
21
|
+
font-size: var(--ui-font-size-md);
|
|
22
|
+
line-height: var(--ui-line-height);
|
|
23
|
+
}
|
|
24
|
+
:scope[data-ui-text-state~="size=lg"] {
|
|
25
|
+
font-size: var(--ui-font-size-lg);
|
|
26
|
+
line-height: var(--ui-line-height-relaxed);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:scope[data-ui-text-state~="tone=secondary"] {
|
|
30
|
+
color: var(--ui-text-secondary);
|
|
31
|
+
}
|
|
32
|
+
:scope[data-ui-text-state~="tone=muted"] {
|
|
33
|
+
color: var(--ui-text-muted);
|
|
34
|
+
}
|
|
35
|
+
:scope[data-ui-text-state~="tone=accent"] {
|
|
36
|
+
color: var(--ui-accent-active);
|
|
37
|
+
}
|
|
38
|
+
:scope[data-ui-text-state~="tone=danger"] {
|
|
39
|
+
color: var(--ui-danger);
|
|
40
|
+
}
|
|
41
|
+
:scope[data-ui-text-state~="tone=success"] {
|
|
42
|
+
color: var(--ui-success);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:scope[data-ui-text-state~="weight=normal"] {
|
|
46
|
+
font-weight: var(--ui-font-normal);
|
|
47
|
+
}
|
|
48
|
+
:scope[data-ui-text-state~="weight=medium"] {
|
|
49
|
+
font-weight: var(--ui-font-medium);
|
|
50
|
+
}
|
|
51
|
+
:scope[data-ui-text-state~="weight=semibold"] {
|
|
52
|
+
font-weight: var(--ui-font-semibold);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:scope[data-ui-text-state~="variant=eyebrow"] {
|
|
56
|
+
font-size: var(--ui-font-size-xs);
|
|
57
|
+
font-weight: var(--ui-font-semibold);
|
|
58
|
+
letter-spacing: 0.06em;
|
|
59
|
+
text-transform: uppercase;
|
|
60
|
+
}
|
|
61
|
+
:scope[data-ui-text-state~="variant=code"] {
|
|
62
|
+
font-family: var(--ui-font-family-mono);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
:scope[data-ui-text-state~="truncate"] {
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
text-overflow: ellipsis;
|
|
68
|
+
white-space: nowrap;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
:scope[data-ui-text-state~="align=center"] {
|
|
72
|
+
text-align: center;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
76
|
+
:scope[hidden] {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
@scope ([data-component~="ui-text"]) to ([data-component]) {
|
|
81
|
+
/* Running text, set on the type scale and in a tone that says what it is, so a view never styles
|
|
82
|
+
text of its own. The root is a paragraph unless as= names a span, div, small, strong, or label. */
|
|
83
|
+
|
|
84
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
85
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiBreadcrumbItemEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiBreadcrumbItemElement extends HTMLLIElement {
|
|
5
|
+
addEventListener<K extends keyof UiBreadcrumbItemEventMap>(type: K, listener: (this: UiBreadcrumbItemElement, event: UiBreadcrumbItemEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiBreadcrumbItemEventMap>(type: K, listener: (this: UiBreadcrumbItemElement, event: UiBreadcrumbItemEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiBreadcrumbItemProps {
|
|
9
|
+
current?: boolean | null;
|
|
10
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
11
|
+
children?: readonly (string | Node)[];
|
|
12
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createUiBreadcrumbItem(props?: UiBreadcrumbItemProps): UiBreadcrumbItemElement;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
|
|
3
|
+
import "../styles/ui-breadcrumb-item.css";
|
|
4
|
+
|
|
5
|
+
const definition = {...{"contract":{"tag":"ui-breadcrumb-item","props":{"current":{"type":"boolean","required":false,"target":{"attribute":"current"},"default":false}}},"template":{"kind":"element","name":"li","attributes":[{"kind":"attribute","name":"aria-current","expression":"{ true: 'page', false: null }[format('%s', current)]","expressionPlan":{"source":"{ true: 'page', false: null }[format('%s', current)]","ast":{"kind":"index","object":{"kind":"object","pairs":[{"key":"true","value":{"kind":"literal","value":"page"}},{"key":"false","value":{"kind":"literal","value":null}}]},"index":{"kind":"call","fn":"format","args":[{"kind":"literal","value":"%s"},{"kind":"id","name":"current"}]}},"dependencies":["current"]}}],"children":[{"kind":"element","name":"span","attributes":[{"kind":"literal","name":"class","value":"separator"},{"kind":"literal","name":"aria-hidden","value":"true"}],"children":[{"kind":"element","name":"ui-icon","attributes":[{"kind":"literal","name":"name","value":"chevron-right"}],"children":[]}]},{"kind":"element","name":"span","attributes":[{"kind":"literal","name":"class","value":"content"}],"children":[{"kind":"slot"}]}]},"declarations":[],"root":{"kind":"native","element":"li","choices":["li"]}},source:{file:import.meta.url},css:""};
|
|
6
|
+
|
|
7
|
+
export function createUiBreadcrumbItem(options = {}) {
|
|
8
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
9
|
+
const projected = [];
|
|
10
|
+
const element = document.createElement("li");
|
|
11
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
12
|
+
if (value === null || value === undefined || value === false) continue;
|
|
13
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
14
|
+
}
|
|
15
|
+
element.setAttribute("data-component", "ui-breadcrumb-item");
|
|
16
|
+
const element0 = document.createElement("span");
|
|
17
|
+
element0.setAttribute("class", "separator");
|
|
18
|
+
element0.setAttribute("aria-hidden", "true");
|
|
19
|
+
const element1 = document.createElement("ui-icon");
|
|
20
|
+
element1.setAttribute("name", "chevron-right");
|
|
21
|
+
element0.append(element1);
|
|
22
|
+
element.append(element0);
|
|
23
|
+
const element2 = document.createElement("span");
|
|
24
|
+
element2.setAttribute("class", "content");
|
|
25
|
+
if (children.length > 0) {
|
|
26
|
+
for (const child of children) {
|
|
27
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
28
|
+
projected.push([node, ""]);
|
|
29
|
+
element2.append(node);
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
}
|
|
33
|
+
element.append(element2);
|
|
34
|
+
manageComponentLifecycle(element, definition, { props: componentProps, projected,
|
|
35
|
+
});
|
|
36
|
+
return element;
|
|
37
|
+
}
|
|
38
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiBreadcrumbsEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiBreadcrumbsElement extends HTMLElement {
|
|
5
|
+
addEventListener<K extends keyof UiBreadcrumbsEventMap>(type: K, listener: (this: UiBreadcrumbsElement, event: UiBreadcrumbsEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiBreadcrumbsEventMap>(type: K, listener: (this: UiBreadcrumbsElement, event: UiBreadcrumbsEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiBreadcrumbsProps {
|
|
9
|
+
label?: string | null;
|
|
10
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
11
|
+
children?: readonly (string | Node)[];
|
|
12
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createUiBreadcrumbs(props?: UiBreadcrumbsProps): UiBreadcrumbsElement;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
|
|
3
|
+
import "../styles/ui-breadcrumbs.css";
|
|
4
|
+
|
|
5
|
+
export function createUiBreadcrumbs(options = {}) {
|
|
6
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
7
|
+
const projected = [];
|
|
8
|
+
const prop0 = componentProps["label"] === undefined ? "Breadcrumb" : componentProps["label"];
|
|
9
|
+
const element = document.createElement("nav");
|
|
10
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
11
|
+
if (value === null || value === undefined || value === false) continue;
|
|
12
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
13
|
+
}
|
|
14
|
+
const value0 = prop0;
|
|
15
|
+
if (value0 === null || value0 === undefined) element.removeAttribute("aria-label");
|
|
16
|
+
else element.setAttribute("aria-label", String(value0));
|
|
17
|
+
element.setAttribute("data-component", "ui-breadcrumbs");
|
|
18
|
+
const element0 = document.createElement("ol");
|
|
19
|
+
element0.setAttribute("role", "list");
|
|
20
|
+
if (children.length > 0) {
|
|
21
|
+
for (const child of children) {
|
|
22
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
23
|
+
projected.push([node, ""]);
|
|
24
|
+
element0.append(node);
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
}
|
|
28
|
+
element.append(element0);
|
|
29
|
+
manageGeneratedProps(element, [
|
|
30
|
+
{ name: "label", attribute: "data-label", value: componentProps["label"], default: "Breadcrumb", type: "string", required: false },
|
|
31
|
+
], (name, value) => {
|
|
32
|
+
if (name === "label") {
|
|
33
|
+
if (value === null || value === undefined) element.removeAttribute("aria-label");
|
|
34
|
+
else element.setAttribute("aria-label", String(value));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return element;
|
|
38
|
+
}
|
|
39
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiCardEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiCardElement extends HTMLDivElement {
|
|
5
|
+
addEventListener<K extends keyof UiCardEventMap>(type: K, listener: (this: UiCardElement, event: UiCardEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiCardEventMap>(type: K, listener: (this: UiCardElement, event: UiCardEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiCardProps {
|
|
9
|
+
padding?: "sm" | "md" | "lg" | null;
|
|
10
|
+
tone?: "neutral" | "danger" | null;
|
|
11
|
+
variant?: "outlined" | "subtle" | "elevated" | null;
|
|
12
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
13
|
+
children?: readonly (string | Node)[];
|
|
14
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
15
|
+
as?: "div" | "section" | "article" | "aside";
|
|
16
|
+
}
|
|
17
|
+
export declare function createUiCard(props?: UiCardProps): UiCardElement;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
|
|
3
|
+
import "../styles/ui-card.css";
|
|
4
|
+
|
|
5
|
+
export function createUiCard(options = {}) {
|
|
6
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
7
|
+
const projected = [];
|
|
8
|
+
const prop0 = componentProps["padding"] === undefined ? "md" : componentProps["padding"];
|
|
9
|
+
const prop1 = componentProps["tone"] === undefined ? "neutral" : componentProps["tone"];
|
|
10
|
+
const prop2 = componentProps["variant"] === undefined ? "outlined" : componentProps["variant"];
|
|
11
|
+
const element = document.createElement(as ?? "div");
|
|
12
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
13
|
+
if (value === null || value === undefined || value === false) continue;
|
|
14
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
15
|
+
}
|
|
16
|
+
element.setAttribute("data-component", "ui-card");
|
|
17
|
+
if (children.length > 0) {
|
|
18
|
+
for (const child of children) {
|
|
19
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
20
|
+
projected.push([node, ""]);
|
|
21
|
+
element.append(node);
|
|
22
|
+
}
|
|
23
|
+
} else {
|
|
24
|
+
}
|
|
25
|
+
manageGeneratedProps(element, [
|
|
26
|
+
{ name: "padding", attribute: "data-padding", value: componentProps["padding"], default: "md", type: ["sm","md","lg"], required: false },
|
|
27
|
+
{ name: "tone", attribute: "data-tone", value: componentProps["tone"], default: "neutral", type: ["neutral","danger"], required: false },
|
|
28
|
+
{ name: "variant", attribute: "data-variant", value: componentProps["variant"], default: "outlined", type: ["outlined","subtle","elevated"], required: false },
|
|
29
|
+
]);
|
|
30
|
+
return element;
|
|
31
|
+
}
|
|
32
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiCoverEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiCoverElement extends HTMLDivElement {
|
|
5
|
+
addEventListener<K extends keyof UiCoverEventMap>(type: K, listener: (this: UiCoverElement, event: UiCoverEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiCoverEventMap>(type: K, listener: (this: UiCoverElement, event: UiCoverEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiCoverProps {
|
|
9
|
+
size?: "screen" | "fill" | null;
|
|
10
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
11
|
+
children?: readonly (string | Node)[];
|
|
12
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createUiCover(props?: UiCoverProps): UiCoverElement;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
|
|
3
|
+
import "../styles/ui-cover.css";
|
|
4
|
+
|
|
5
|
+
export function createUiCover(options = {}) {
|
|
6
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
7
|
+
const projected = [];
|
|
8
|
+
const prop0 = componentProps["size"] === undefined ? "screen" : componentProps["size"];
|
|
9
|
+
const element = document.createElement("div");
|
|
10
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
11
|
+
if (value === null || value === undefined || value === false) continue;
|
|
12
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
13
|
+
}
|
|
14
|
+
element.setAttribute("data-component", "ui-cover");
|
|
15
|
+
if (children.length > 0) {
|
|
16
|
+
for (const child of children) {
|
|
17
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
18
|
+
projected.push([node, ""]);
|
|
19
|
+
element.append(node);
|
|
20
|
+
}
|
|
21
|
+
} else {
|
|
22
|
+
}
|
|
23
|
+
manageGeneratedProps(element, [
|
|
24
|
+
{ name: "size", attribute: "data-size", value: componentProps["size"], default: "screen", type: ["screen","fill"], required: false },
|
|
25
|
+
]);
|
|
26
|
+
return element;
|
|
27
|
+
}
|
|
28
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiDescriptionItemEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiDescriptionItemElement extends HTMLDivElement {
|
|
5
|
+
addEventListener<K extends keyof UiDescriptionItemEventMap>(type: K, listener: (this: UiDescriptionItemElement, event: UiDescriptionItemEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiDescriptionItemEventMap>(type: K, listener: (this: UiDescriptionItemElement, event: UiDescriptionItemEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiDescriptionItemProps {
|
|
9
|
+
term?: string | null;
|
|
10
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
11
|
+
children?: readonly (string | Node)[];
|
|
12
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createUiDescriptionItem(props?: UiDescriptionItemProps): UiDescriptionItemElement;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
|
|
3
|
+
import "../styles/ui-description-item.css";
|
|
4
|
+
|
|
5
|
+
export function createUiDescriptionItem(options = {}) {
|
|
6
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
7
|
+
const projected = [];
|
|
8
|
+
const prop0 = componentProps["term"] === undefined ? "" : componentProps["term"];
|
|
9
|
+
const element = document.createElement("div");
|
|
10
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
11
|
+
if (value === null || value === undefined || value === false) continue;
|
|
12
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
13
|
+
}
|
|
14
|
+
element.setAttribute("data-component", "ui-description-item");
|
|
15
|
+
const element0 = document.createElement("dt");
|
|
16
|
+
const element1 = document.createElement("template");
|
|
17
|
+
element1.textContent = prop0 == null ? "" : String(prop0);
|
|
18
|
+
element0.append(element1);
|
|
19
|
+
element.append(element0);
|
|
20
|
+
const element2 = document.createElement("dd");
|
|
21
|
+
if (children.length > 0) {
|
|
22
|
+
for (const child of children) {
|
|
23
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
24
|
+
projected.push([node, ""]);
|
|
25
|
+
element2.append(node);
|
|
26
|
+
}
|
|
27
|
+
} else {
|
|
28
|
+
}
|
|
29
|
+
element.append(element2);
|
|
30
|
+
manageGeneratedProps(element, [
|
|
31
|
+
{ name: "term", attribute: "data-term", value: componentProps["term"], default: "", type: "string", required: false },
|
|
32
|
+
], (name, value) => {
|
|
33
|
+
if (name === "term") {
|
|
34
|
+
element1.textContent = value == null ? "" : String(value);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return element;
|
|
38
|
+
}
|
|
39
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiDescriptionListEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiDescriptionListElement extends HTMLDListElement {
|
|
5
|
+
addEventListener<K extends keyof UiDescriptionListEventMap>(type: K, listener: (this: UiDescriptionListElement, event: UiDescriptionListEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiDescriptionListEventMap>(type: K, listener: (this: UiDescriptionListElement, event: UiDescriptionListEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiDescriptionListProps {
|
|
9
|
+
layout?: "rows" | "tiles" | null;
|
|
10
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
11
|
+
children?: readonly (string | Node)[];
|
|
12
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createUiDescriptionList(props?: UiDescriptionListProps): UiDescriptionListElement;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
|
|
3
|
+
import "../styles/ui-description-list.css";
|
|
4
|
+
|
|
5
|
+
export function createUiDescriptionList(options = {}) {
|
|
6
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
7
|
+
const projected = [];
|
|
8
|
+
const prop0 = componentProps["layout"] === undefined ? "rows" : componentProps["layout"];
|
|
9
|
+
const element = document.createElement("dl");
|
|
10
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
11
|
+
if (value === null || value === undefined || value === false) continue;
|
|
12
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
13
|
+
}
|
|
14
|
+
element.setAttribute("data-component", "ui-description-list");
|
|
15
|
+
if (children.length > 0) {
|
|
16
|
+
for (const child of children) {
|
|
17
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
18
|
+
projected.push([node, ""]);
|
|
19
|
+
element.append(node);
|
|
20
|
+
}
|
|
21
|
+
} else {
|
|
22
|
+
}
|
|
23
|
+
manageGeneratedProps(element, [
|
|
24
|
+
{ name: "layout", attribute: "data-layout", value: componentProps["layout"], default: "rows", type: ["rows","tiles"], required: false },
|
|
25
|
+
]);
|
|
26
|
+
return element;
|
|
27
|
+
}
|
|
28
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
export interface UiListEventMap {
|
|
3
|
+
}
|
|
4
|
+
export interface UiListElement extends HTMLUListElement {
|
|
5
|
+
addEventListener<K extends keyof UiListEventMap>(type: K, listener: (this: UiListElement, event: UiListEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
6
|
+
removeEventListener<K extends keyof UiListEventMap>(type: K, listener: (this: UiListElement, event: UiListEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
7
|
+
}
|
|
8
|
+
export interface UiListProps {
|
|
9
|
+
layout?: "rows" | "grid" | null;
|
|
10
|
+
attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
|
|
11
|
+
children?: readonly (string | Node)[];
|
|
12
|
+
slots?: Readonly<Record<string, readonly (string | Node)[]>>;
|
|
13
|
+
}
|
|
14
|
+
export declare function createUiList(props?: UiListProps): UiListElement;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.5 for Vanilla DOM. Do not edit.
|
|
2
|
+
import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
|
|
3
|
+
import "../styles/ui-list.css";
|
|
4
|
+
|
|
5
|
+
export function createUiList(options = {}) {
|
|
6
|
+
const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
|
|
7
|
+
const projected = [];
|
|
8
|
+
const prop0 = componentProps["layout"] === undefined ? "rows" : componentProps["layout"];
|
|
9
|
+
const element = document.createElement("ul");
|
|
10
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
11
|
+
if (value === null || value === undefined || value === false) continue;
|
|
12
|
+
element.setAttribute(name, value === true ? "" : String(value));
|
|
13
|
+
}
|
|
14
|
+
if (!element.hasAttribute("role")) element.setAttribute("role", "list");
|
|
15
|
+
element.setAttribute("data-component", "ui-list");
|
|
16
|
+
if (children.length > 0) {
|
|
17
|
+
for (const child of children) {
|
|
18
|
+
const node = typeof child === "string" ? document.createTextNode(child) : child;
|
|
19
|
+
projected.push([node, ""]);
|
|
20
|
+
element.append(node);
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
}
|
|
24
|
+
manageGeneratedProps(element, [
|
|
25
|
+
{ name: "layout", attribute: "data-layout", value: componentProps["layout"], default: "rows", type: ["rows","grid"], required: false },
|
|
26
|
+
]);
|
|
27
|
+
return element;
|
|
28
|
+
}
|
|
29
|
+
|