@nordcode/ui 1.1.5 → 1.1.7

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.
Files changed (73) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/out/bundle.css +150 -79
  3. package/out/bundle_configless.css +150 -79
  4. package/out/colors.css +53 -66
  5. package/out/complete.css +156 -85
  6. package/out/complete_configless.css +156 -85
  7. package/out/src/assets/fonts/DMMono-Regular.woff +0 -0
  8. package/out/src/assets/fonts/DMMono-Regular.woff2 +0 -0
  9. package/out/src/assets/fonts/fonts.css +7 -0
  10. package/out/src/assets/icons/ArrowRightSolid.svelte +1 -0
  11. package/out/src/assets/icons/arrow-right-solid.svg +1 -0
  12. package/out/src/assets/icons/favicon.png +0 -0
  13. package/out/src/assets/icons/favicon.svg +8 -0
  14. package/out/src/assets/logos/nordcode-logo-icon.svg +3 -0
  15. package/out/src/assets/logos/nordcode-logo.svg +17 -0
  16. package/out/src/modules/copyButtons/ts/copyButtons.ts +9 -0
  17. package/out/src/modules/dialogs/svelte/dialog.svelte +27 -0
  18. package/out/src/modules/dialogs/ts/LICENCE +171 -0
  19. package/out/src/modules/dialogs/ts/dialogs.ts +111 -0
  20. package/out/src/modules/notifications/js/notifications.js +294 -0
  21. package/out/src/modules/notifications/svelte/NotificationCenter.svelte +18 -0
  22. package/out/src/modules/notifications/svelte/NotificationTemplate.svelte +16 -0
  23. package/out/src/modules/sectionObserver/ts/sectionOberserver.ts +34 -0
  24. package/out/src/styles/bundle.css +7 -0
  25. package/out/src/styles/bundle_configless.css +5 -0
  26. package/out/src/styles/complete.css +5 -0
  27. package/out/src/styles/complete_configless.css +5 -0
  28. package/out/src/styles/components/alerts.css +20 -0
  29. package/out/src/styles/components/badges.css +14 -0
  30. package/out/src/styles/components/breadcrumbs.css +37 -0
  31. package/out/src/styles/components/bundle.css +13 -0
  32. package/out/src/styles/components/buttons.css +260 -0
  33. package/out/src/styles/components/card.css +55 -0
  34. package/out/src/styles/components/dialogs.css +138 -0
  35. package/out/src/styles/components/forms.css +41 -0
  36. package/out/src/styles/components/gallery.css +66 -0
  37. package/out/src/styles/components/icons.css +60 -0
  38. package/out/src/styles/components/inputs/base.css +249 -0
  39. package/out/src/styles/components/inputs/bundle.css +5 -0
  40. package/out/src/styles/components/inputs/fields.css +76 -0
  41. package/out/src/styles/components/inputs/segmented.css +114 -0
  42. package/out/src/styles/components/inputs/switch.css +42 -0
  43. package/out/src/styles/components/inputs/tag-select.css +41 -0
  44. package/out/src/styles/components/lists.css +40 -0
  45. package/out/src/styles/components/notifications.css +135 -0
  46. package/out/src/styles/components/tables.css +7 -0
  47. package/out/src/styles/config/bundle.css +2 -0
  48. package/out/src/styles/config/config.css +700 -0
  49. package/out/src/styles/config/extras.css +12 -0
  50. package/out/src/styles/exceptions/bundle.css +3 -0
  51. package/out/src/styles/exceptions/misc.css +21 -0
  52. package/out/src/styles/exceptions/spacings.css +15 -0
  53. package/out/src/styles/exceptions/typography.css +57 -0
  54. package/out/src/styles/theme/colors.css +165 -0
  55. package/out/src/styles/theme/colors_processed.css +87 -0
  56. package/out/src/styles/utils/base.css +415 -0
  57. package/out/src/styles/utils/bundle.css +6 -0
  58. package/out/src/styles/utils/easings.css +364 -0
  59. package/out/src/styles/utils/layouts.css +281 -0
  60. package/out/src/styles/utils/media.css +55 -0
  61. package/out/src/styles/utils/reset.css +145 -0
  62. package/out/src/styles/utils/theme.css +125 -0
  63. package/package.json +1 -1
  64. package/src/styles/components/icons.css +2 -2
  65. package/src/styles/components/inputs/base.css +1 -1
  66. package/src/styles/components/inputs/fields.css +2 -2
  67. package/src/styles/components/inputs/segmented.css +1 -1
  68. package/src/styles/components/inputs/tag-select.css +1 -1
  69. package/src/styles/exceptions/typography.css +15 -0
  70. package/src/styles/utils/base.css +104 -9
  71. package/src/styles/utils/layouts.css +3 -3
  72. package/src/styles/utils/reset.css +4 -6
  73. package/transform.js +11 -23
@@ -0,0 +1,60 @@
1
+ @layer components.icons {
2
+ :where(.nc-icon) {
3
+ --icon-size: 2ex;
4
+
5
+ display: block;
6
+ flex-shrink: 0;
7
+ inline-size: var(--icon-size);
8
+ block-size: var(--icon-size);
9
+
10
+ &[data-flip="true"] {
11
+ transform: scaleX(-1);
12
+ }
13
+
14
+ &[data-size="xs"] {
15
+ --icon-size: 1ex;
16
+ }
17
+
18
+ &[data-size="sm"] {
19
+ --icon-size: 1.5ex;
20
+ }
21
+
22
+ &[data-size="md"] {
23
+ --icon-size: 2ex;
24
+ }
25
+
26
+ &[data-size="lg"] {
27
+ --icon-size: 3ex;
28
+ }
29
+
30
+ &[data-size="xl"] {
31
+ --icon-size: 4ex;
32
+ }
33
+
34
+ &[data-size="inline"] {
35
+ --icon-size: 0.75lh;
36
+ }
37
+
38
+ &[data-size="button"] {
39
+ --icon-size: var(--button-height-base);
40
+ }
41
+
42
+ &[data-animation="spinning"] {
43
+ animation: spinning 1s infinite linear;
44
+ }
45
+ }
46
+
47
+ :where(button, .nc-button)>.nc-icon {
48
+ --icon-size: 2ex;
49
+ }
50
+
51
+ @keyframes spinning {
52
+ from {
53
+ transform: rotate(0deg);
54
+ }
55
+
56
+ to {
57
+ transform: rotate(360deg);
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,249 @@
1
+ @layer components.inputs {
2
+ :where(label:not([class]), .nc-input-label) {
3
+ font-family: var(--font-family-default);
4
+ letter-spacing: var(--tracking-tight);
5
+ font-weight: var(--font-weight-active);
6
+ color: var(--color-text-base);
7
+ display: inline-flex;
8
+ font-size: inherit;
9
+ gap: 0;
10
+ align-items: center;
11
+ }
12
+
13
+ :where(input[type="text"],
14
+ input[type="email"],
15
+ input[type="password"],
16
+ input[type="number"],
17
+ input[type="url"],
18
+ input[type="search"],
19
+ input[type="date"],
20
+ input[type="month"],
21
+ input[type="week"],
22
+ input[type="text"],
23
+ input[type="datetime"],
24
+ input[type="datetime-local"],
25
+ input[type="time"],
26
+ input[type="tel"],
27
+ input[type="color"],
28
+ input[type="file"],
29
+ input[type="checkbox"],
30
+ input[type="radio"],
31
+ textarea,
32
+ select,
33
+ .nc-input,
34
+ .nc-select,
35
+ .nc-textarea,
36
+ .nc-input-checkbox,
37
+ .nc-input-radio,
38
+ .nc-input-label,
39
+ .nc-input-color,
40
+ .nc-input-field,
41
+ .nc-input-error,
42
+ .nc-checkbox-wrapper,
43
+ .nc-input-switch,
44
+ .nc-radio-field,
45
+ .nc-checkbox-field) {
46
+ --_input-background: var(--input-background, var(--color-surface-subtle));
47
+ --_input-background-active: var(--input-background-active, var(--color-surface-base));
48
+ --_input-color: var(--input-color, var(--color-text-base));
49
+ --_input-border: var(--input-border,
50
+ var(--border-width-thin) solid var(--color-border-base));
51
+ --_input-border-radius: var(--input-border-radius, var(--border-radius-medium));
52
+
53
+ --_input-box-shadow: var(--input-box-shadow, var(--shadow-inset));
54
+ --_input-outline: var(--input-outline,
55
+ var(--border-width-medium) solid var(--color-brand-primary-base));
56
+ --_input-disabled-filter: var(--input-disabled-filter, contrast(0.72) opacity(0.72));
57
+
58
+ --_input-padding-block: var(--input-padding-block, 0.125lh);
59
+ --_input-padding-inline: var(--input-padding-inline, 1ch);
60
+ --_input-hover-background: var(--input-hover-background, var(--color-brand-primary-hover));
61
+ }
62
+
63
+ :where(input[type="text"],
64
+ input[type="email"],
65
+ input[type="password"],
66
+ input[type="number"],
67
+ input[type="url"],
68
+ input[type="search"],
69
+ input[type="date"],
70
+ input[type="month"],
71
+ input[type="week"],
72
+ input[type="text"],
73
+ input[type="datetime"],
74
+ input[type="datetime-local"],
75
+ input[type="time"],
76
+ input[type="tel"],
77
+ input[type="color"],
78
+ input[type="file"],
79
+ textarea,
80
+ select,
81
+ .nc-input) {
82
+ font: inherit;
83
+ letter-spacing: inherit;
84
+ word-spacing: inherit;
85
+ appearance: none;
86
+
87
+ color: var(--_input-color);
88
+ background-color: var(--_input-background);
89
+ border: var(--_input-border);
90
+ border-radius: var(--_input-border-radius);
91
+ block-size: var(--button-height-base);
92
+ padding-inline: var(--_input-padding-inline);
93
+ box-shadow: var(--_input-box-shadow);
94
+ inline-size: var(--input-inline-size, auto);
95
+ line-height: var(--line-height-base);
96
+
97
+ &:focus,
98
+ &:hover:focus {
99
+ --current-background: var(--_input-background-active);
100
+ outline: var(--_input-outline);
101
+ outline-offset: 0;
102
+ background-color: var(--_input-background-active);
103
+ }
104
+
105
+ &:disabled {
106
+ filter: var(--_input-disabled-filter);
107
+ cursor: not-allowed;
108
+ }
109
+
110
+ &:hover {
111
+ --current-background: var(--_input-hover-background);
112
+ background-color: var(--_input-hover-background);
113
+ }
114
+
115
+ &[required] {
116
+ border-inline-start-width: var(--border-width-thick);
117
+ }
118
+
119
+ &::placeholder {
120
+ color: var(--color-text-subtle);
121
+ }
122
+ }
123
+
124
+ :where(select:not([class]), .nc-select) {
125
+ padding-inline-end: 3.5ch;
126
+ background-image: var(--triangle-down-url);
127
+ background-position: right 1ch top 50%;
128
+ background-size: 1.5ch 1.25ch;
129
+ }
130
+
131
+ :where(textarea:not([class]), .nc-textarea) {
132
+ min-block-size: calc(5lh + 2 * var(--_input-padding-block));
133
+ max-block-size: 80svh;
134
+ min-inline-size: var(--input-inline-size, 100%);
135
+ max-inline-size: 100%;
136
+ padding-block: var(--_input-padding-block);
137
+
138
+ resize: block;
139
+ field-sizing: content;
140
+ }
141
+
142
+ :where(input[type="checkbox"]:not([class]),
143
+ input[type="radio"]:not([class]),
144
+ .nc-input-checkbox,
145
+ .nc-input-radio,
146
+ .nc-input-switch) {
147
+ inline-size: 1lh;
148
+ block-size: 1lh;
149
+ padding: 0;
150
+ appearance: none;
151
+ display: inline-flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ border: var(--_input-border);
155
+ --current-background: var(--_input-background);
156
+ background: var(--current-background);
157
+ transition: var(--transition-duration-short) background var(--ease-2);
158
+ box-shadow: var(--_input-box-shadow);
159
+ }
160
+
161
+ :where(input[type="checkbox"]:not([class]), .nc-input-checkbox) {
162
+ --_transition-duration: 0ms;
163
+ overflow: hidden;
164
+ border-radius: var(--_input-border-radius);
165
+
166
+ &:before {
167
+ content: "";
168
+ display: inline-flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ inline-size: 0.75lh;
172
+ block-size: 0.75lh;
173
+ background-color: var(--color-brand-primary-contrast);
174
+ transform: scale(0.8) translateY(2em);
175
+ transition: transform var(--ease-out-2) var(--transition-duration-short);
176
+ font-family: var(--font-family-sans);
177
+ --font-weight: var(--font-weight-active);
178
+ line-height: 1;
179
+ color: var(--_input-background);
180
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
181
+ }
182
+
183
+ &:checked {
184
+ --current-background: var(--color-brand-primary-base);
185
+
186
+ &:before {
187
+ transform: scale(1) translateY(0%);
188
+ }
189
+ }
190
+ }
191
+
192
+ :where(input[type="radio"], .nc-input-radio) {
193
+ border-radius: var(--border-radius-round);
194
+ overflow: hidden;
195
+
196
+ &:before {
197
+ content: "";
198
+ display: inline-flex;
199
+ block-size: 50%;
200
+ inline-size: 50%;
201
+ border-radius: var(--border-radius-round);
202
+ transform: scale(0.8) translateY(2em);
203
+ background-color: var(--color-brand-primary-contrast);
204
+ transition: transform var(--ease-out-2) var(--transition-duration-short);
205
+ }
206
+
207
+ &:checked {
208
+ --current-background: var(--color-brand-primary-base);
209
+
210
+ &:before {
211
+ transform: scale(1) translateY(0%);
212
+ }
213
+ }
214
+ }
215
+
216
+ :where(input[type="color"], .nc-input-color) {
217
+ aspect-ratio: 1;
218
+ inline-size: auto;
219
+ padding: calc(var(--button-height-base) / 12);
220
+ }
221
+
222
+ :where(input[type="date"], .nc-input-date) {
223
+ flex-flow: row nowrap;
224
+ }
225
+
226
+ :where(input[type="range"], .nc-input-range) {
227
+ &>.nc-hint {
228
+ margin-inline-start: auto;
229
+ }
230
+
231
+ &::-webkit-slider-thumb,
232
+ &::-moz-range-thumb {
233
+ appearance: none;
234
+ inline-size: calc(var(--button-height-base) * 0.7);
235
+ block-size: calc(var(--button-height-base) * 0.7);
236
+ border-radius: var(--_input-border-radius);
237
+ border: var(--_input-border);
238
+ border-color: var(--color-text-base);
239
+ background-color: var(--color-text-base);
240
+ box-shadow: var(--shadow-near);
241
+ cursor: pointer;
242
+
243
+ &:hover {
244
+ background-color: var(--color-brand-primary-base);
245
+ border-color: var(--color-brand-primary-base);
246
+ }
247
+ }
248
+ }
249
+ }
@@ -0,0 +1,5 @@
1
+ @import "./base.css";
2
+ @import "./fields.css";
3
+ @import "./segmented.css";
4
+ @import "./switch.css";
5
+ @import "./tag-select.css";
@@ -0,0 +1,76 @@
1
+ @layer components.input-fields {
2
+ :where(.nc-input-field) {
3
+ display: grid;
4
+ gap: 0.25lh;
5
+ grid-template-columns: minmax(0, 1fr);
6
+ inline-size: 100%;
7
+ min-inline-size: var(--input-field-min-inline-size);
8
+ max-inline-size: var(--input-field-max-inline-size);
9
+ place-items: start;
10
+
11
+ &>label,
12
+ &>.nc-stack {
13
+ gap: 0;
14
+ }
15
+
16
+ &>.nc-cluster {
17
+ gap: 1ch;
18
+ }
19
+ }
20
+
21
+ :where(.nc-input-error) {
22
+ --color-base: var(--color-status-danger-emphasis);
23
+ color: var(--color-base);
24
+ font-size: var(--font-size-small);
25
+
26
+ &:before {
27
+ content: "!";
28
+ font-family: var(--font-family-default);
29
+ letter-spacing: var(--tracking-tight);
30
+ font-weight: var(--font-weight-default);
31
+ display: inline-flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ background-color: var(--color-base);
35
+ color: var(--color-surface-subtle);
36
+ margin-inline-end: 1ch;
37
+ inline-size: 1em;
38
+ block-size: 1em;
39
+ flex-shrink: 0;
40
+ }
41
+ }
42
+
43
+ :where(.nc-checkbox-wrapper) {
44
+ display: grid;
45
+ grid-template:
46
+ "checkbox label" 1fr
47
+ / auto 1fr;
48
+ place-items: start;
49
+ gap: 0;
50
+
51
+ &>[data-label] {
52
+ grid-area: label;
53
+ padding-inline-start: 1ch;
54
+ }
55
+
56
+ & .nc-input-label {
57
+ min-block-size: var(--line-height-base);
58
+ }
59
+
60
+ &>[data-input] {
61
+ grid-area: checkbox;
62
+ }
63
+
64
+ &:hover:not(:has(input:checked)) input {
65
+ background: var(--_input-hover-background);
66
+ }
67
+ }
68
+
69
+ :where(.nc-radio-field, .nc-checkbox-field) {
70
+ gap: 0;
71
+
72
+ >*:not(:first-child) {
73
+ margin-block-start: 0.6lh;
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,114 @@
1
+ @layer components.inputs-segmented {
2
+ :where(.nc-segmented-control-group) {
3
+ --_segmented-control-border-radius: var(--segmented-control-border-radius,
4
+ var(--_input-border-radius));
5
+ --_segmented-control-checked-text-color: var(--segmented-control-checked-text-color,
6
+ var(--color-brand-primary-contrast));
7
+ --_segmented-control-checked-surface-color: var(--segmented-control-checked-surface-color,
8
+ var(--color-brand-primary-base));
9
+
10
+ container: segmented-control / inline-size;
11
+
12
+ --nc-legend-spacing: 0.25lh;
13
+ }
14
+
15
+ :where(.nc-segmented-control) {
16
+ display: grid;
17
+ grid-auto-rows: 1fr;
18
+ grid-auto-flow: row;
19
+
20
+ block-size: auto;
21
+ inline-size: 100%;
22
+ background: var(--_input-background);
23
+ box-shadow: var(--_input-box-shadow);
24
+ border-radius: var(--_segmented-control-border-radius);
25
+
26
+ &:focus-within {
27
+ outline: var(--_input-outline);
28
+ outline-offset: 0;
29
+ }
30
+
31
+ & input {
32
+ opacity: 0;
33
+ position: absolute;
34
+ }
35
+
36
+ & label {
37
+ display: flex;
38
+ padding-inline: var(--_input-padding-inline);
39
+ padding-block: var(--_input-padding-block);
40
+ min-block-size: var(--segmented-control-min-height, var(--button-height-base));
41
+ color: var(--_input-color);
42
+ border: var(--_input-border);
43
+ align-items: center;
44
+ justify-content: center;
45
+
46
+ >.nc-input-label {
47
+ color: inherit;
48
+ }
49
+
50
+ &:hover {
51
+ --current-background: var(--_input-hover-background);
52
+ background-color: var(--_input-hover-background);
53
+ }
54
+
55
+ &:first-child {
56
+ border-radius: var(--_segmented-control-border-radius) var(--_segmented-control-border-radius) 0 0;
57
+ }
58
+
59
+ &:last-child {
60
+ border-radius: 0 0 var(--_segmented-control-border-radius) var(--_segmented-control-border-radius);
61
+ }
62
+
63
+ &:not(:last-child) {
64
+ border-block-end: var(--border-width-thin) solid var(--color-border-muted);
65
+ }
66
+
67
+ &:not(:first-child) {
68
+ border-block-start: none;
69
+ }
70
+
71
+ &:has(input:checked) {
72
+ background: var(--_segmented-control-checked-surface-color);
73
+ color: var(--_segmented-control-checked-text-color);
74
+ box-shadow: var(--shadow-near);
75
+ }
76
+
77
+ &:focus-within {
78
+ outline: none;
79
+ }
80
+
81
+ &:has(input:disabled) {
82
+ filter: var(--_input-disabled-filter);
83
+ cursor: not-allowed;
84
+ }
85
+ }
86
+ }
87
+
88
+ @container segmented-control (min-width: 32rem) {
89
+ :where(.nc-segmented-control) {
90
+ grid-auto-columns: 1fr;
91
+ grid-auto-flow: column;
92
+
93
+ >label {
94
+ &:first-child {
95
+ border-radius: var(--_segmented-control-border-radius) 0 0 var(--_segmented-control-border-radius);
96
+ }
97
+
98
+ &:last-child {
99
+ border-radius: 0 var(--_segmented-control-border-radius) var(--_segmented-control-border-radius) 0;
100
+ }
101
+
102
+ &:not(:last-child) {
103
+ border-block-end: var(--_input-border);
104
+ border-inline-end: var(--border-width-thin) solid var(--color-border-muted);
105
+ }
106
+
107
+ &:not(:first-child) {
108
+ border-block-start: var(--_input-border);
109
+ border-inline-start: none;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,42 @@
1
+ @layer components.input-switch {
2
+ :where(.nc-input-switch) {
3
+ --_switch-width: var(--switch-width, calc(var(--line-height-base) * 2rem));
4
+ --_switch-height: var(--switch-height, calc(var(--_switch-width) / 2));
5
+ --_switch-color: var(--switch-color, var(--_input-background));
6
+ --_switch-color-checked: var(--switch-color-checked, var(--color-brand-primary-base));
7
+ --_thumb-margin: var(--thumb-margin, calc(var(--_switch-width) / 12));
8
+ --_thumb-color: var(--thumb-color, var(--_input-color));
9
+
10
+ vertical-align: var(--_thumb-margin);
11
+ inline-size: var(--_switch-width);
12
+ block-size: var(--_switch-height);
13
+ border-radius: var(--_input-border-radius);
14
+ --current-background: var(--_switch-color);
15
+ justify-content: flex-start;
16
+
17
+ &:before {
18
+ content: "";
19
+ display: block;
20
+ aspect-ratio: 1;
21
+ margin-block: var(--_thumb-margin);
22
+ transform: translateX(var(--_thumb-margin));
23
+ block-size: calc(100% - 2 * var(--_thumb-margin));
24
+ background-color: var(--_thumb-color);
25
+ border-radius: var(--_input-border-radius);
26
+ box-shadow: var(--shadow-near);
27
+ transition: transform, background-color;
28
+ transition-duration: var(--transition-duration-base);
29
+ transition-timing-function: var(--ease-2);
30
+ }
31
+
32
+ &:checked {
33
+ --current-background: var(--_switch-color-checked);
34
+ }
35
+
36
+ &:checked:before {
37
+ transform: translateX(
38
+ calc(var(--_switch-width) - var(--_switch-height) + var(--_thumb-margin))
39
+ );
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,41 @@
1
+ @layer components.inputs {
2
+ :where(.nc-tag-select-field) {
3
+ --_tag-select-checked-text-color: var(--tag-select-checked-text-color,
4
+ var(--color-brand-primary-contrast));
5
+ --_tag-select-checked-surface-color: var(--tag-select-checked-surface-color,
6
+ var(--color-brand-primary-base));
7
+ --_tag-select-border-radius: var(--tag-select-border-radius, var(--_input-border-radius));
8
+ --nc-legend-spacing: 0.25lh;
9
+
10
+ &:focus-within:has(:focus-visible) {
11
+ outline-offset: 1ch;
12
+ outline: var(--_input-outline);
13
+ border-radius: var(--_tag-select-border-radius);
14
+ }
15
+
16
+ & input {
17
+ opacity: 0;
18
+ position: absolute;
19
+ }
20
+
21
+ & label {
22
+ display: grid;
23
+
24
+ &:hover,
25
+ &:focus-within {
26
+ background-color: var(--_input-hover-background);
27
+ }
28
+
29
+ &:has(input:checked) {
30
+ background: var(--_tag-select-checked-surface-color);
31
+ color: var(--_tag-select-checked-text-color);
32
+ box-shadow: var(--shadow-near);
33
+ }
34
+
35
+ &:has(input:disabled) {
36
+ filter: var(--_input-disabled-filter);
37
+ cursor: not-allowed;
38
+ }
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,40 @@
1
+ @layer components.lists {
2
+ :where(.nc-meta-list) {
3
+ inline-size: 100%;
4
+ container: metalist / inline-size;
5
+ }
6
+
7
+ :where(.nc-meta-list-item) {
8
+ overflow-wrap: break-word;
9
+ max-inline-size: 100%;
10
+ hyphens: auto;
11
+ inline-size: 100%;
12
+
13
+ &:not(:last-child) {
14
+ margin-block-end: 1ch;
15
+ }
16
+ }
17
+
18
+ @container metalist (min-width: 20rem) {
19
+ :where(.nc-meta-list-item) {
20
+ inline-size: auto;
21
+
22
+ &:not(:last-child):after {
23
+ content: '';
24
+ border-right: var(--border-width-medium) solid var(--color-border-muted);
25
+ margin: 0 1ch;
26
+ transform: calc(var(--border-width-medium) / 2);
27
+ }
28
+ }
29
+ }
30
+
31
+ :where(.nc-list-reset) {
32
+ list-style: none;
33
+ padding: 0;
34
+ margin: 0;
35
+
36
+ & li {
37
+ margin: 0;
38
+ }
39
+ }
40
+ }