@lmfaole/basics 0.3.0 → 0.5.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/LICENSE +21 -0
- package/README.md +78 -350
- package/basic-components/basic-accordion/README.md +53 -0
- package/{components → basic-components}/basic-accordion/index.d.ts +5 -5
- package/basic-components/basic-accordion/index.js +413 -0
- package/basic-components/basic-alert/README.md +48 -0
- package/basic-components/basic-alert/index.d.ts +53 -0
- package/basic-components/basic-alert/index.js +189 -0
- package/basic-components/basic-alert/register.js +3 -0
- package/basic-components/basic-carousel/README.md +108 -0
- package/basic-components/basic-carousel/index.d.ts +73 -0
- package/basic-components/basic-carousel/index.js +255 -0
- package/basic-components/basic-carousel/register.js +3 -0
- package/basic-components/basic-dialog/README.md +57 -0
- package/basic-components/basic-popover/README.md +56 -0
- package/basic-components/basic-summary-table/README.md +93 -0
- package/{components → basic-components}/basic-summary-table/index.js +188 -42
- package/basic-components/basic-table/README.md +89 -0
- package/{components → basic-components}/basic-table/index.js +203 -145
- package/basic-components/basic-tabs/README.md +63 -0
- package/basic-components/basic-tabs/register.d.ts +1 -0
- package/basic-components/basic-toast/README.md +62 -0
- package/basic-components/basic-toast/index.d.ts +68 -0
- package/basic-components/basic-toast/index.js +690 -0
- package/basic-components/basic-toast/register.d.ts +1 -0
- package/basic-components/basic-toast/register.js +3 -0
- package/basic-components/basic-toc/README.md +43 -0
- package/basic-components/basic-toc/register.d.ts +1 -0
- package/basic-styling/components/basic-accordion.css +99 -0
- package/basic-styling/components/basic-alert.css +27 -0
- package/basic-styling/components/basic-carousel.css +183 -0
- package/basic-styling/components/basic-dialog.css +41 -0
- package/basic-styling/components/basic-popover.css +52 -0
- package/basic-styling/components/basic-summary-table.css +98 -0
- package/basic-styling/components/basic-table.css +66 -0
- package/basic-styling/components/basic-tabs.css +61 -0
- package/basic-styling/components/basic-toast.css +102 -0
- package/basic-styling/components/basic-toc.css +30 -0
- package/basic-styling/components.css +11 -0
- package/basic-styling/forms.css +55 -0
- package/basic-styling/global.css +62 -0
- package/basic-styling/index.css +2 -0
- package/basic-styling/interaction.css +90 -0
- package/basic-styling/tokens/base.css +19 -0
- package/basic-styling/tokens/palette.css +229 -0
- package/basic-styling/tokens/palette.tokens.json +1787 -0
- package/index.d.ts +10 -7
- package/index.js +10 -7
- package/package.json +61 -76
- package/components/basic-accordion/index.js +0 -387
- package/readme.mdx +0 -6
- /package/{components → basic-components}/basic-accordion/register.d.ts +0 -0
- /package/{components → basic-components}/basic-accordion/register.js +0 -0
- /package/{components/basic-dialog → basic-components/basic-alert}/register.d.ts +0 -0
- /package/{components/basic-popover → basic-components/basic-carousel}/register.d.ts +0 -0
- /package/{components → basic-components}/basic-dialog/index.d.ts +0 -0
- /package/{components → basic-components}/basic-dialog/index.js +0 -0
- /package/{components/basic-summary-table → basic-components/basic-dialog}/register.d.ts +0 -0
- /package/{components → basic-components}/basic-dialog/register.js +0 -0
- /package/{components → basic-components}/basic-popover/index.d.ts +0 -0
- /package/{components → basic-components}/basic-popover/index.js +0 -0
- /package/{components/basic-table → basic-components/basic-popover}/register.d.ts +0 -0
- /package/{components → basic-components}/basic-popover/register.js +0 -0
- /package/{components → basic-components}/basic-summary-table/index.d.ts +0 -0
- /package/{components/basic-tabs → basic-components/basic-summary-table}/register.d.ts +0 -0
- /package/{components → basic-components}/basic-summary-table/register.js +0 -0
- /package/{components → basic-components}/basic-table/index.d.ts +0 -0
- /package/{components/basic-toc → basic-components/basic-table}/register.d.ts +0 -0
- /package/{components → basic-components}/basic-table/register.js +0 -0
- /package/{components → basic-components}/basic-tabs/index.d.ts +0 -0
- /package/{components → basic-components}/basic-tabs/index.js +0 -0
- /package/{components → basic-components}/basic-tabs/register.js +0 -0
- /package/{components → basic-components}/basic-toc/index.d.ts +0 -0
- /package/{components → basic-components}/basic-toc/index.js +0 -0
- /package/{components → basic-components}/basic-toc/register.js +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# `basic-toc`
|
|
2
|
+
|
|
3
|
+
Generated table-of-contents navigation from the nearest `<main>`.
|
|
4
|
+
|
|
5
|
+
## Register
|
|
6
|
+
|
|
7
|
+
```js
|
|
8
|
+
import "@lmfaole/basics/basic-components/basic-toc/register";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<basic-toc data-title="Innhold">
|
|
15
|
+
<nav aria-label="Innhold" data-page-toc-nav></nav>
|
|
16
|
+
</basic-toc>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Prop | Description | Type | Default | Options |
|
|
22
|
+
| --- | --- | --- | --- | --- |
|
|
23
|
+
| `data-title` | Accessible label applied to the generated nav. | string | `Innhold` | any string |
|
|
24
|
+
| `data-heading-selector` | Selector used to collect headings from the nearest `<main>`. | CSS selector | `h1, h2, h3, h4, h5, h6` | any CSS selector |
|
|
25
|
+
|
|
26
|
+
## Markup Hooks
|
|
27
|
+
|
|
28
|
+
| Hook | Description | Type | Default | Options |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
| `data-page-toc-nav` | Container where the generated outline links are rendered. | descendant element attribute | required | present on one descendant element |
|
|
31
|
+
|
|
32
|
+
## Behavior
|
|
33
|
+
|
|
34
|
+
- Generates missing heading ids automatically
|
|
35
|
+
- Gives duplicate headings unique fragment ids
|
|
36
|
+
- Ignores hidden headings
|
|
37
|
+
- Rebuilds the outline when matching headings are added or changed
|
|
38
|
+
|
|
39
|
+
## Markup Contract
|
|
40
|
+
|
|
41
|
+
- Render the element inside the same `<main>` that contains the content it should index
|
|
42
|
+
- Provide a descendant element with `data-page-toc-nav` for the generated links
|
|
43
|
+
- Keep layout and styling outside the package
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
basic-accordion {
|
|
2
|
+
--basic-accordion-padding: var(--basic-panel-padding);
|
|
3
|
+
display: grid;
|
|
4
|
+
gap: 0;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
basic-accordion > details {
|
|
8
|
+
margin: 0;
|
|
9
|
+
border-inline: var(--basic-border-width) solid var(--basic-color-border);
|
|
10
|
+
background: var(--basic-color-surface);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
basic-accordion > details > summary {
|
|
14
|
+
--basic-interaction-border-rest: transparent;
|
|
15
|
+
--basic-interaction-border-hover: transparent;
|
|
16
|
+
--basic-interaction-border-active: transparent;
|
|
17
|
+
--basic-interaction-border-selected: transparent;
|
|
18
|
+
list-style: none;
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: space-between;
|
|
22
|
+
padding: var(--basic-control-padding-block) var(--basic-control-padding-inline);
|
|
23
|
+
color: inherit;
|
|
24
|
+
font-weight: 600;
|
|
25
|
+
text-align: left;
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
background: transparent;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
basic-accordion > details > summary::-webkit-details-marker {
|
|
31
|
+
display: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
basic-accordion > details > summary::after {
|
|
35
|
+
content: "+";
|
|
36
|
+
flex: none;
|
|
37
|
+
color: var(--basic-color-text-muted);
|
|
38
|
+
font-size: var(--basic-font-size-title);
|
|
39
|
+
line-height: 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
basic-accordion > details:first-child {
|
|
43
|
+
border-block-start: var(--basic-border-width) solid var(--basic-color-border);
|
|
44
|
+
border-start-start-radius: var(--basic-radius);
|
|
45
|
+
border-start-end-radius: var(--basic-radius);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
basic-accordion > details:first-child > summary {
|
|
49
|
+
border-start-start-radius: var(--basic-radius);
|
|
50
|
+
border-start-end-radius: var(--basic-radius);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
basic-accordion > details + details {
|
|
54
|
+
border-block-start: var(--basic-border-width) solid var(--basic-color-border);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
basic-accordion > details:last-child {
|
|
58
|
+
border-block-end: var(--basic-border-width) solid var(--basic-color-border);
|
|
59
|
+
border-end-start-radius: var(--basic-radius);
|
|
60
|
+
border-end-end-radius: var(--basic-radius);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
basic-accordion > details:last-child:not([open]) > summary {
|
|
64
|
+
border-end-start-radius: var(--basic-radius);
|
|
65
|
+
border-end-end-radius: var(--basic-radius);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
basic-accordion > details[open] > summary {
|
|
69
|
+
border-block-end: var(--basic-border-width) solid var(--basic-color-border-selected);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
basic-accordion > details[open] > summary::after {
|
|
73
|
+
content: "-";
|
|
74
|
+
color: inherit;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
basic-accordion > details[open] {
|
|
78
|
+
padding-block-end: var(--basic-accordion-padding);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
basic-accordion > details[open] > summary + :where(*) {
|
|
82
|
+
margin-block-start: var(--basic-accordion-padding);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
basic-accordion > details > :where(:not(summary)) {
|
|
86
|
+
margin-block: 0;
|
|
87
|
+
margin-inline: var(--basic-accordion-padding);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
basic-accordion > details > :not(summary) + :not(summary) {
|
|
91
|
+
margin-block-start: var(--basic-flow-space);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
basic-accordion > details[data-disabled] > summary,
|
|
95
|
+
basic-accordion > details[disabled] > summary,
|
|
96
|
+
basic-accordion > details[aria-disabled="true"] > summary {
|
|
97
|
+
color: var(--basic-color-text-muted);
|
|
98
|
+
cursor: default;
|
|
99
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
basic-alert {
|
|
2
|
+
display: block;
|
|
3
|
+
padding: var(--basic-panel-padding);
|
|
4
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
5
|
+
border-radius: var(--basic-radius);
|
|
6
|
+
background: var(--basic-color-surface-muted);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
basic-alert > :where(*) {
|
|
10
|
+
margin-block: 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
basic-alert > :where(* + *) {
|
|
14
|
+
margin-block-start: var(--basic-flow-space);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
basic-alert [data-alert-close] {
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
padding: var(--basic-control-padding-block) var(--basic-control-padding-inline);
|
|
22
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
23
|
+
border-radius: var(--basic-radius-pill);
|
|
24
|
+
background: var(--basic-color-surface);
|
|
25
|
+
color: inherit;
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
basic-carousel {
|
|
2
|
+
--basic-carousel-gap: var(--basic-space-4);
|
|
3
|
+
--basic-carousel-controls-gap: var(--basic-space-3);
|
|
4
|
+
--basic-carousel-button-size: 2.75rem;
|
|
5
|
+
--basic-carousel-marker-size: 1.75rem;
|
|
6
|
+
--basic-carousel-item-width: 90%;
|
|
7
|
+
--basic-carousel-track-padding: var(--basic-space-1);
|
|
8
|
+
--basic-carousel-snap-align: center;
|
|
9
|
+
display: block;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
basic-carousel[data-basic-carousel-snapping="start"] {
|
|
13
|
+
--basic-carousel-snap-align: start;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
basic-carousel[data-basic-carousel-snapping="end"] {
|
|
17
|
+
--basic-carousel-snap-align: end;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
basic-carousel [data-carousel-track] {
|
|
21
|
+
display: flex;
|
|
22
|
+
align-items: stretch;
|
|
23
|
+
gap: var(--basic-carousel-gap);
|
|
24
|
+
min-inline-size: 0;
|
|
25
|
+
margin: 0;
|
|
26
|
+
padding: var(--basic-carousel-track-padding);
|
|
27
|
+
overflow-x: auto;
|
|
28
|
+
overscroll-behavior-inline: contain;
|
|
29
|
+
scroll-behavior: smooth;
|
|
30
|
+
scroll-snap-type: x mandatory;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
basic-carousel :is(ol, ul)[data-carousel-track] {
|
|
34
|
+
list-style: none;
|
|
35
|
+
padding-inline-start: var(--basic-carousel-track-padding);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
basic-carousel [data-carousel-track] > * {
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
flex: 0 0 var(--basic-carousel-item-width);
|
|
41
|
+
inline-size: var(--basic-carousel-item-width);
|
|
42
|
+
min-inline-size: 0;
|
|
43
|
+
padding: var(--basic-panel-padding);
|
|
44
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
45
|
+
border-radius: var(--basic-radius);
|
|
46
|
+
background: var(--basic-color-surface);
|
|
47
|
+
scroll-snap-align: var(--basic-carousel-snap-align);
|
|
48
|
+
scroll-snap-stop: always;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
basic-carousel [data-carousel-track] > * > :where(*) {
|
|
52
|
+
margin-block: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
basic-carousel [data-carousel-track] > * > :where(* + *) {
|
|
56
|
+
margin-block-start: var(--basic-flow-space);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
basic-carousel [data-carousel-track] > * > p:first-child {
|
|
60
|
+
color: var(--basic-color-text-muted);
|
|
61
|
+
font-size: 0.875rem;
|
|
62
|
+
font-weight: 700;
|
|
63
|
+
letter-spacing: 0.06em;
|
|
64
|
+
text-transform: uppercase;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
basic-carousel [data-carousel-track] > * > a {
|
|
68
|
+
color: inherit;
|
|
69
|
+
font-weight: 600;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@supports (scroll-marker-group: after) {
|
|
73
|
+
basic-carousel {
|
|
74
|
+
display: grid;
|
|
75
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
76
|
+
grid-template-rows: minmax(0, auto) auto;
|
|
77
|
+
gap: var(--basic-carousel-controls-gap);
|
|
78
|
+
align-items: start;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
basic-carousel:is([data-basic-carousel-controls="markers"], [data-basic-carousel-controls="none"]) {
|
|
82
|
+
grid-template-columns: minmax(0, 1fr);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
basic-carousel [data-carousel-track] {
|
|
86
|
+
grid-column: 1 / -1;
|
|
87
|
+
grid-row: 1;
|
|
88
|
+
scroll-marker-group: after;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
basic-carousel:is([data-basic-carousel-controls="markers"], [data-basic-carousel-controls="none"]) [data-carousel-track] {
|
|
92
|
+
grid-column: 1;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
basic-carousel:is([data-basic-carousel-controls="arrows"], [data-basic-carousel-controls="none"]) [data-carousel-track] {
|
|
96
|
+
scroll-marker-group: none;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
basic-carousel [data-carousel-track]::scroll-button(inline-start),
|
|
100
|
+
basic-carousel [data-carousel-track]::scroll-button(inline-end) {
|
|
101
|
+
display: inline-flex;
|
|
102
|
+
align-items: center;
|
|
103
|
+
align-self: center;
|
|
104
|
+
justify-content: center;
|
|
105
|
+
inline-size: var(--basic-carousel-button-size);
|
|
106
|
+
block-size: var(--basic-carousel-button-size);
|
|
107
|
+
margin: 0;
|
|
108
|
+
padding: 0;
|
|
109
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
110
|
+
border-radius: var(--basic-radius-pill);
|
|
111
|
+
background: var(--basic-color-surface);
|
|
112
|
+
color: inherit;
|
|
113
|
+
cursor: pointer;
|
|
114
|
+
grid-row: 2;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
basic-carousel:is([data-basic-carousel-controls="markers"], [data-basic-carousel-controls="none"]) [data-carousel-track]::scroll-button(inline-start),
|
|
118
|
+
basic-carousel:is([data-basic-carousel-controls="markers"], [data-basic-carousel-controls="none"]) [data-carousel-track]::scroll-button(inline-end) {
|
|
119
|
+
display: none;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
basic-carousel [data-carousel-track]::scroll-button(inline-start) {
|
|
123
|
+
content: "<" / "Previous slide";
|
|
124
|
+
grid-column: 1;
|
|
125
|
+
justify-self: end;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
basic-carousel [data-carousel-track]::scroll-button(inline-end) {
|
|
129
|
+
content: ">" / "Next slide";
|
|
130
|
+
grid-column: 3;
|
|
131
|
+
justify-self: start;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
basic-carousel [data-carousel-track]::scroll-button(*):disabled {
|
|
135
|
+
opacity: 0.45;
|
|
136
|
+
cursor: not-allowed;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
basic-carousel [data-carousel-track]::scroll-marker-group {
|
|
140
|
+
display: flex;
|
|
141
|
+
flex-wrap: nowrap;
|
|
142
|
+
align-items: center;
|
|
143
|
+
align-self: center;
|
|
144
|
+
justify-content: center;
|
|
145
|
+
gap: var(--basic-space-2);
|
|
146
|
+
min-block-size: var(--basic-carousel-button-size);
|
|
147
|
+
grid-column: 2;
|
|
148
|
+
grid-row: 2;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
basic-carousel[data-basic-carousel-controls="markers"] [data-carousel-track]::scroll-marker-group {
|
|
152
|
+
grid-column: 1;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
basic-carousel:is([data-basic-carousel-controls="arrows"], [data-basic-carousel-controls="none"]) [data-carousel-track]::scroll-marker-group {
|
|
156
|
+
display: none;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
basic-carousel [data-carousel-track] > *::scroll-marker {
|
|
160
|
+
content: attr(data-basic-carousel-marker) / attr(data-basic-carousel-marker-label);
|
|
161
|
+
display: inline-flex;
|
|
162
|
+
align-items: center;
|
|
163
|
+
justify-content: center;
|
|
164
|
+
min-inline-size: var(--basic-carousel-marker-size);
|
|
165
|
+
block-size: var(--basic-carousel-marker-size);
|
|
166
|
+
padding-inline: var(--basic-space-2);
|
|
167
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
168
|
+
border-radius: var(--basic-radius-pill);
|
|
169
|
+
background: var(--basic-color-surface);
|
|
170
|
+
color: inherit;
|
|
171
|
+
font-size: 0.875rem;
|
|
172
|
+
font-weight: 600;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
basic-carousel:is([data-basic-carousel-controls="arrows"], [data-basic-carousel-controls="none"]) [data-carousel-track] > *::scroll-marker {
|
|
176
|
+
content: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
basic-carousel [data-carousel-track] > *::scroll-marker:target-current {
|
|
180
|
+
border-color: var(--basic-color-border-selected);
|
|
181
|
+
background: var(--basic-color-surface-selected);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
basic-dialog {
|
|
2
|
+
--basic-dialog-control-gap: var(--basic-space-2);
|
|
3
|
+
--basic-dialog-panel-gap: var(--basic-flow-space);
|
|
4
|
+
--basic-dialog-panel-padding: var(--basic-panel-padding);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
basic-dialog [data-dialog-open],
|
|
8
|
+
basic-dialog [data-dialog-close] {
|
|
9
|
+
display: inline-flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
gap: var(--basic-dialog-control-gap);
|
|
13
|
+
padding: var(--basic-control-padding-block) var(--basic-control-padding-inline);
|
|
14
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
15
|
+
border-radius: var(--basic-radius-pill);
|
|
16
|
+
background: var(--basic-color-surface);
|
|
17
|
+
color: inherit;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
basic-dialog [data-dialog-panel] {
|
|
22
|
+
width: min(var(--basic-dialog-width, 32rem), var(--basic-dialog-max-width, calc(100vw - 2rem)));
|
|
23
|
+
max-width: var(--basic-dialog-max-width, calc(100vw - 2rem));
|
|
24
|
+
padding: var(--basic-dialog-panel-padding);
|
|
25
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
26
|
+
border-radius: var(--basic-radius);
|
|
27
|
+
background: var(--basic-color-surface);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
basic-dialog [data-dialog-panel] > :where(*) {
|
|
31
|
+
margin-block: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
basic-dialog [data-dialog-panel] > :where(* + *) {
|
|
35
|
+
margin-block-start: var(--basic-dialog-panel-gap);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
basic-dialog [data-dialog-title] {
|
|
39
|
+
font-size: var(--basic-font-size-title);
|
|
40
|
+
line-height: 1.2;
|
|
41
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
basic-popover {
|
|
2
|
+
--basic-popover-control-gap: var(--basic-space-2);
|
|
3
|
+
--basic-popover-panel-gap: var(--basic-flow-space);
|
|
4
|
+
--basic-popover-panel-padding: var(--basic-panel-padding);
|
|
5
|
+
display: inline-block;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
basic-popover [data-popover-open],
|
|
9
|
+
basic-popover [data-popover-close] {
|
|
10
|
+
--basic-interaction-surface-selected: var(--basic-color-surface-muted);
|
|
11
|
+
--basic-interaction-border-selected: var(--basic-color-border);
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
gap: var(--basic-popover-control-gap);
|
|
16
|
+
padding: var(--basic-control-padding-block) var(--basic-control-padding-inline);
|
|
17
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
18
|
+
border-radius: var(--basic-radius-pill);
|
|
19
|
+
background: var(--basic-color-surface);
|
|
20
|
+
color: inherit;
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
basic-popover [data-popover-panel] {
|
|
25
|
+
width: min(var(--basic-popover-width, 20rem), var(--basic-popover-max-width, calc(100vw - 2rem)));
|
|
26
|
+
max-width: var(--basic-popover-max-width, calc(100vw - 2rem));
|
|
27
|
+
padding: var(--basic-popover-panel-padding);
|
|
28
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
29
|
+
border-radius: var(--basic-radius);
|
|
30
|
+
background: var(--basic-color-surface);
|
|
31
|
+
color: inherit;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
basic-popover [data-popover-panel] > :where(*) {
|
|
35
|
+
margin-block: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
basic-popover [data-popover-panel] > :where(* + *) {
|
|
39
|
+
margin-block-start: var(--basic-popover-panel-gap);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
basic-popover [data-popover-panel] label {
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
gap: var(--basic-space-2);
|
|
46
|
+
color: var(--basic-color-text-muted);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
basic-popover [data-popover-title] {
|
|
50
|
+
font-size: var(--basic-font-size-title);
|
|
51
|
+
line-height: 1.2;
|
|
52
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
basic-summary-table {
|
|
2
|
+
--basic-summary-table-caption-gap: var(--basic-flow-space);
|
|
3
|
+
--basic-summary-table-cell-padding-block: var(--basic-space-3);
|
|
4
|
+
--basic-summary-table-cell-padding-inline: var(--basic-space-4);
|
|
5
|
+
--basic-summary-table-row-background-zebra: color-mix(
|
|
6
|
+
in oklch,
|
|
7
|
+
var(--basic-color-surface-muted) 48%,
|
|
8
|
+
var(--basic-color-surface)
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
display: block;
|
|
12
|
+
overflow-x: auto;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
basic-summary-table table {
|
|
16
|
+
width: 100%;
|
|
17
|
+
min-width: var(--basic-summary-table-min-width, 32rem);
|
|
18
|
+
border-collapse: collapse;
|
|
19
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
20
|
+
background: var(--basic-color-surface);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
basic-summary-table caption {
|
|
24
|
+
margin-bottom: var(--basic-summary-table-caption-gap);
|
|
25
|
+
color: var(--basic-color-text);
|
|
26
|
+
font-weight: 700;
|
|
27
|
+
text-align: left;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
basic-summary-table tr {
|
|
31
|
+
text-align: right;
|
|
32
|
+
|
|
33
|
+
*:first-child {
|
|
34
|
+
text-align: left;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
basic-summary-table th,
|
|
39
|
+
basic-summary-table td {
|
|
40
|
+
padding: var(--basic-summary-table-cell-padding-block) var(--basic-summary-table-cell-padding-inline);
|
|
41
|
+
border: 0 solid var(--basic-color-border);
|
|
42
|
+
vertical-align: top;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
basic-summary-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) th,
|
|
46
|
+
basic-summary-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) td {
|
|
47
|
+
border-block-end-width: var(--basic-border-width);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
basic-summary-table:is([data-separators="columns"], [data-separators="both"]) tr > :is(th, td):not(:last-child) {
|
|
51
|
+
border-inline-end-width: var(--basic-border-width);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
basic-summary-table td {
|
|
55
|
+
font-variant-numeric: tabular-nums;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
basic-summary-table thead th {
|
|
59
|
+
background: var(--basic-color-surface-muted);
|
|
60
|
+
font-weight: 700;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
basic-summary-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) tbody tr:last-child th,
|
|
64
|
+
basic-summary-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) tbody tr:last-child td {
|
|
65
|
+
border-block-end-width: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
basic-summary-table tbody th {
|
|
69
|
+
font-weight: 600;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
basic-summary-table[data-zebra] tbody tr:nth-child(even) > :is(th, td) {
|
|
73
|
+
background: var(--basic-summary-table-row-background-zebra);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
basic-summary-table tbody td {
|
|
77
|
+
color: var(--basic-color-text-muted);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
basic-summary-table tfoot th,
|
|
81
|
+
basic-summary-table tfoot td {
|
|
82
|
+
border-block-end: 0;
|
|
83
|
+
background: var(--basic-color-surface-muted);
|
|
84
|
+
font-weight: 700;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
basic-summary-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) tfoot th,
|
|
88
|
+
basic-summary-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) tfoot td {
|
|
89
|
+
border-block-start: calc(var(--basic-border-width) * 2) solid var(--basic-color-border);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
basic-summary-table tfoot td[data-summary-empty] {
|
|
93
|
+
color: var(--basic-color-text-muted);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
basic-summary-table tfoot td[data-summary-total] {
|
|
97
|
+
color: inherit;
|
|
98
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
basic-table {
|
|
2
|
+
--basic-table-caption-gap: var(--basic-flow-space);
|
|
3
|
+
--basic-table-cell-padding-block: var(--basic-space-3);
|
|
4
|
+
--basic-table-cell-padding-inline: var(--basic-space-4);
|
|
5
|
+
--basic-table-row-background-zebra: color-mix(
|
|
6
|
+
in oklch,
|
|
7
|
+
var(--basic-color-surface-muted) 48%,
|
|
8
|
+
var(--basic-color-surface)
|
|
9
|
+
);
|
|
10
|
+
display: block;
|
|
11
|
+
overflow-x: auto;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
basic-table table {
|
|
15
|
+
width: 100%;
|
|
16
|
+
min-width: var(--basic-table-min-width, 32rem);
|
|
17
|
+
border-collapse: collapse;
|
|
18
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
19
|
+
background: var(--basic-color-surface);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
basic-table caption {
|
|
23
|
+
margin-bottom: var(--basic-table-caption-gap);
|
|
24
|
+
color: var(--basic-color-text);
|
|
25
|
+
font-weight: 700;
|
|
26
|
+
text-align: left;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
basic-table th,
|
|
30
|
+
basic-table td {
|
|
31
|
+
padding: var(--basic-table-cell-padding-block) var(--basic-table-cell-padding-inline);
|
|
32
|
+
border: 0 solid var(--basic-color-border);
|
|
33
|
+
vertical-align: top;
|
|
34
|
+
text-align: left;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
basic-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) th,
|
|
38
|
+
basic-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) td {
|
|
39
|
+
border-block-end-width: var(--basic-border-width);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
basic-table:is([data-separators="columns"], [data-separators="both"]) tr > :is(th, td):not(:last-child) {
|
|
43
|
+
border-inline-end-width: var(--basic-border-width);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
basic-table thead th {
|
|
47
|
+
background: var(--basic-color-surface-muted);
|
|
48
|
+
font-weight: 700;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
basic-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) tbody tr:last-child th,
|
|
52
|
+
basic-table:is(:not([data-separators]), [data-separators="rows"], [data-separators="both"]) tbody tr:last-child td {
|
|
53
|
+
border-block-end-width: 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
basic-table tbody th {
|
|
57
|
+
font-weight: 600;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
basic-table[data-zebra] tbody tr:nth-child(even) > :is(th, td) {
|
|
61
|
+
background: var(--basic-table-row-background-zebra);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
basic-table tbody td {
|
|
65
|
+
color: var(--basic-color-text-muted);
|
|
66
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
basic-tabs {
|
|
2
|
+
--basic-tabs-list-gap: var(--basic-space-1);
|
|
3
|
+
--basic-tabs-list-padding-inline: var(--basic-space-2);
|
|
4
|
+
--basic-tabs-list-padding-block-start: var(--basic-space-2);
|
|
5
|
+
--basic-tabs-panel-padding: var(--basic-panel-padding);
|
|
6
|
+
--basic-tabs-panel-background: var(--basic-color-surface-selected);
|
|
7
|
+
--basic-tabs-panel-border: var(--basic-color-border-selected);
|
|
8
|
+
display: grid;
|
|
9
|
+
gap: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
basic-tabs [data-tabs-list] {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-wrap: wrap;
|
|
15
|
+
align-items: flex-end;
|
|
16
|
+
gap: var(--basic-tabs-list-gap);
|
|
17
|
+
padding-inline: var(--basic-tabs-list-padding-inline);
|
|
18
|
+
padding-block-start: var(--basic-tabs-list-padding-block-start);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
basic-tabs [data-tab] {
|
|
22
|
+
--basic-interaction-text-rest: var(--basic-color-text-muted);
|
|
23
|
+
--basic-interaction-text-hover: var(--basic-color-text);
|
|
24
|
+
--basic-interaction-text-active: var(--basic-color-text);
|
|
25
|
+
--basic-interaction-text-selected: var(--basic-color-text);
|
|
26
|
+
display: inline-flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
margin: 0;
|
|
30
|
+
padding: var(--basic-control-padding-block) var(--basic-control-padding-inline);
|
|
31
|
+
border: var(--basic-border-width) solid var(--basic-color-border);
|
|
32
|
+
border-radius: var(--basic-radius) var(--basic-radius) 0 0;
|
|
33
|
+
background: transparent;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
position: relative;
|
|
36
|
+
z-index: 1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
basic-tabs [data-tab][aria-selected="true"] {
|
|
40
|
+
border-bottom-color: var(--basic-tabs-panel-background);
|
|
41
|
+
font-weight: 600;
|
|
42
|
+
z-index: 2;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
basic-tabs [data-tab-panel] {
|
|
46
|
+
margin-block-start: calc(var(--basic-border-width) * -1);
|
|
47
|
+
padding: var(--basic-tabs-panel-padding);
|
|
48
|
+
border: var(--basic-border-width) solid var(--basic-tabs-panel-border);
|
|
49
|
+
border-radius: var(--basic-radius);
|
|
50
|
+
background: var(--basic-tabs-panel-background);
|
|
51
|
+
position: relative;
|
|
52
|
+
z-index: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
basic-tabs [data-tab-panel] > :where(*) {
|
|
56
|
+
margin-block: 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
basic-tabs [data-tab-panel] > :where(* + *) {
|
|
60
|
+
margin-block-start: var(--basic-flow-space);
|
|
61
|
+
}
|