@keepkit/ui 0.15.0 → 0.17.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/README.md +52 -2
- package/dist/index.d.ts +459 -40
- package/dist/index.js +872 -174
- package/dist/index.js.map +1 -1
- package/dist/styles/base.css +5 -0
- package/dist/styles/collection.css +180 -8
- package/package.json +2 -2
package/dist/styles/base.css
CHANGED
|
@@ -66,6 +66,11 @@
|
|
|
66
66
|
outline-offset: 2px;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"]:focus-visible {
|
|
70
|
+
outline: 2px solid var(--keep-ring);
|
|
71
|
+
outline-offset: 3px;
|
|
72
|
+
}
|
|
73
|
+
|
|
69
74
|
:where(.keep-theme, [data-keep-theme]) :is(button, a) {
|
|
70
75
|
min-height: var(--keep-button-size);
|
|
71
76
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
:where(.keep-theme, [data-keep-theme]) [data-keepkit="collection"] {
|
|
2
2
|
display: grid;
|
|
3
|
+
container-name: keepkit-collection;
|
|
4
|
+
container-type: inline-size;
|
|
3
5
|
gap: calc(var(--keep-card-gap) * 1.5);
|
|
4
6
|
color: var(--keep-foreground);
|
|
5
7
|
}
|
|
@@ -21,7 +23,12 @@
|
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
:where(.keep-theme, [data-keep-theme])
|
|
24
|
-
:is(
|
|
26
|
+
:is(
|
|
27
|
+
[data-keepkit="layout"],
|
|
28
|
+
[data-keepkit="list"] > ul,
|
|
29
|
+
[data-keepkit="list"] > [data-layout],
|
|
30
|
+
[data-keepkit="skeleton-list"]
|
|
31
|
+
) {
|
|
25
32
|
display: grid;
|
|
26
33
|
grid-template-columns: repeat(var(--keep-list-columns), minmax(0, 1fr));
|
|
27
34
|
gap: var(--keep-list-gap);
|
|
@@ -33,6 +40,11 @@
|
|
|
33
40
|
list-style: none;
|
|
34
41
|
}
|
|
35
42
|
|
|
43
|
+
:where(.keep-theme, [data-keep-theme]) :is([data-keepkit="layout"], [data-keepkit="list"]) {
|
|
44
|
+
container-name: keepkit-layout;
|
|
45
|
+
container-type: inline-size;
|
|
46
|
+
}
|
|
47
|
+
|
|
36
48
|
:where(.keep-theme, [data-keep-theme])
|
|
37
49
|
:is(
|
|
38
50
|
[data-keepkit="layout"][data-layout="grid"],
|
|
@@ -52,6 +64,27 @@
|
|
|
52
64
|
--keep-list-gap: 0.5rem;
|
|
53
65
|
}
|
|
54
66
|
|
|
67
|
+
:where(.keep-theme, [data-keep-theme])
|
|
68
|
+
:is(
|
|
69
|
+
[data-keepkit="layout"][data-layout="auto"],
|
|
70
|
+
[data-keepkit="list"] > ul[data-layout="auto"],
|
|
71
|
+
[data-keepkit="list"] > [data-layout="auto"]
|
|
72
|
+
) {
|
|
73
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--keep-auto-column-min, 16rem)), 1fr));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@container keepkit-layout (max-width: 31.999rem) {
|
|
77
|
+
:where([data-layout="auto"]) {
|
|
78
|
+
--keep-auto-column-min: 100%;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@container keepkit-layout (min-width: 48rem) {
|
|
83
|
+
:where([data-layout="auto"]) {
|
|
84
|
+
--keep-auto-column-min: 15rem;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
55
88
|
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] {
|
|
56
89
|
display: grid;
|
|
57
90
|
position: relative;
|
|
@@ -69,6 +102,53 @@
|
|
|
69
102
|
transform 160ms ease;
|
|
70
103
|
}
|
|
71
104
|
|
|
105
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"]:has(> [data-keep-card-part="media"]) {
|
|
106
|
+
grid-template-columns: var(--keep-thumbnail-size) minmax(0, 1fr);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
:where(.keep-theme, [data-keep-theme]) [data-keep-card-part="media"] {
|
|
110
|
+
grid-row: 1 / span 2;
|
|
111
|
+
width: var(--keep-thumbnail-size);
|
|
112
|
+
height: var(--keep-thumbnail-size);
|
|
113
|
+
overflow: hidden;
|
|
114
|
+
border-radius: calc(var(--keep-radius) - 2px);
|
|
115
|
+
background: var(--keep-muted);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
:where(.keep-theme, [data-keep-theme]) [data-keep-card-part="media"] > :is(img, [data-keep-card-fallback]) {
|
|
119
|
+
display: grid;
|
|
120
|
+
place-items: center;
|
|
121
|
+
width: 100%;
|
|
122
|
+
height: 100%;
|
|
123
|
+
object-fit: cover;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
:where(.keep-theme, [data-keep-theme]) [data-keep-card-fallback] {
|
|
127
|
+
overflow: hidden;
|
|
128
|
+
color: var(--keep-muted-foreground);
|
|
129
|
+
font-weight: 700;
|
|
130
|
+
text-overflow: ellipsis;
|
|
131
|
+
white-space: nowrap;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
:where(.keep-theme, [data-keep-theme]) [data-keep-card-part="content"],
|
|
135
|
+
:where(.keep-theme, [data-keep-theme]) [data-keep-card-part="actions"] {
|
|
136
|
+
display: grid;
|
|
137
|
+
gap: var(--keep-card-gap);
|
|
138
|
+
min-width: 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
:where(.keep-theme, [data-keep-theme])
|
|
142
|
+
[data-keepkit="card"]:has(> [data-keep-card-part="media"])
|
|
143
|
+
> :is([data-keep-card-part="content"], [data-keep-card-part="actions"]) {
|
|
144
|
+
grid-column: 2;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
:where(.keep-theme, [data-keep-theme]) [data-keep-card-part="actions"] {
|
|
148
|
+
align-items: center;
|
|
149
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), max-content));
|
|
150
|
+
}
|
|
151
|
+
|
|
72
152
|
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"]:hover {
|
|
73
153
|
border-color: color-mix(in srgb, var(--keep-primary) 32%, var(--keep-border));
|
|
74
154
|
box-shadow:
|
|
@@ -93,36 +173,39 @@
|
|
|
93
173
|
grid-column: 2;
|
|
94
174
|
}
|
|
95
175
|
|
|
96
|
-
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] h3 {
|
|
176
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] :is(h2, h3, h4, h5, h6)[data-keep-card-part="title"] {
|
|
97
177
|
margin: 0;
|
|
98
178
|
padding-inline-end: calc(var(--keep-button-size) + var(--keep-card-gap));
|
|
99
179
|
font-size: var(--keep-title-size);
|
|
100
180
|
line-height: 1.35;
|
|
101
181
|
}
|
|
102
182
|
|
|
103
|
-
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"]
|
|
183
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] [data-keep-card-part="title"] a {
|
|
104
184
|
color: inherit;
|
|
105
185
|
text-decoration-color: color-mix(in srgb, currentColor 25%, transparent);
|
|
106
186
|
text-underline-offset: 0.2em;
|
|
107
187
|
}
|
|
108
188
|
|
|
109
|
-
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"]
|
|
189
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] [data-keep-card-part="title"] a:hover {
|
|
110
190
|
color: var(--keep-primary);
|
|
111
191
|
text-decoration-color: currentColor;
|
|
112
192
|
}
|
|
113
193
|
|
|
114
|
-
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] > [data-keepkit="button"] {
|
|
194
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] [data-keep-card-part="actions"] > [data-keepkit="button"] {
|
|
115
195
|
position: absolute;
|
|
116
196
|
top: var(--keep-card-gap);
|
|
117
197
|
right: var(--keep-card-gap);
|
|
118
198
|
}
|
|
119
199
|
|
|
120
|
-
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"]
|
|
200
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card"] [data-card-meta] {
|
|
121
201
|
color: var(--keep-muted-foreground);
|
|
122
202
|
font-size: 0.8125rem;
|
|
123
203
|
}
|
|
124
204
|
|
|
125
|
-
:where(.keep-theme, [data-keep-theme])
|
|
205
|
+
:where(.keep-theme, [data-keep-theme])
|
|
206
|
+
[data-keepkit="card"]
|
|
207
|
+
[data-keep-card-part="actions"]
|
|
208
|
+
> [data-keep-action="remove-item"] {
|
|
126
209
|
justify-self: start;
|
|
127
210
|
border-color: color-mix(in srgb, var(--keep-destructive) 28%, var(--keep-border));
|
|
128
211
|
background: transparent;
|
|
@@ -130,7 +213,7 @@
|
|
|
130
213
|
}
|
|
131
214
|
|
|
132
215
|
:where(.keep-theme, [data-keep-theme])
|
|
133
|
-
[data-
|
|
216
|
+
[data-keep-card-part="actions"]:has(> [data-keepkit="button"])
|
|
134
217
|
> [data-keep-action="remove-item"] {
|
|
135
218
|
display: none;
|
|
136
219
|
}
|
|
@@ -177,6 +260,95 @@
|
|
|
177
260
|
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--keep-border) 70%, transparent);
|
|
178
261
|
}
|
|
179
262
|
|
|
263
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="loading-label"] {
|
|
264
|
+
position: absolute;
|
|
265
|
+
width: 1px;
|
|
266
|
+
height: 1px;
|
|
267
|
+
overflow: hidden;
|
|
268
|
+
clip: rect(0 0 0 0);
|
|
269
|
+
clip-path: inset(50%);
|
|
270
|
+
white-space: nowrap;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] {
|
|
274
|
+
display: grid;
|
|
275
|
+
grid-template-columns: var(--keep-skeleton-media-size, var(--keep-thumbnail-size)) minmax(0, 1fr);
|
|
276
|
+
grid-template-rows: repeat(3, min-content);
|
|
277
|
+
gap: var(--keep-card-gap);
|
|
278
|
+
min-height: calc(var(--keep-thumbnail-size) + 2 * var(--keep-card-padding));
|
|
279
|
+
border: 1px solid var(--keep-border);
|
|
280
|
+
border-radius: var(--keep-radius);
|
|
281
|
+
padding: var(--keep-card-padding);
|
|
282
|
+
background: var(--keep-card);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] [data-skeleton-part] {
|
|
286
|
+
height: 0.75rem;
|
|
287
|
+
border-radius: 999px;
|
|
288
|
+
background: color-mix(in srgb, var(--keep-muted) 78%, var(--keep-border));
|
|
289
|
+
animation: keepkit-skeleton-pulse 1.4s ease-in-out infinite;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] [data-skeleton-part="media"] {
|
|
293
|
+
grid-row: 1 / span 3;
|
|
294
|
+
width: var(--keep-skeleton-media-size, var(--keep-thumbnail-size));
|
|
295
|
+
height: var(--keep-skeleton-media-size, var(--keep-thumbnail-size));
|
|
296
|
+
border-radius: calc(var(--keep-radius) - 2px);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] [data-skeleton-part="title"] {
|
|
300
|
+
width: var(--keep-skeleton-title-width, 78%);
|
|
301
|
+
height: 1rem;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] [data-skeleton-part="meta"] {
|
|
305
|
+
width: 48%;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] [data-skeleton-part="tag"] {
|
|
309
|
+
display: inline-block;
|
|
310
|
+
grid-row: 3;
|
|
311
|
+
width: var(--keep-skeleton-tag-width, 4rem);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"][data-layout="grid"],
|
|
315
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"][data-layout="auto"] {
|
|
316
|
+
--keep-skeleton-media-size: 100%;
|
|
317
|
+
--keep-skeleton-title-width: 88%;
|
|
318
|
+
grid-template-columns: 1fr 1fr;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"][data-layout="grid"] [data-skeleton-part="media"],
|
|
322
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"][data-layout="auto"] [data-skeleton-part="media"] {
|
|
323
|
+
grid-column: 1 / -1;
|
|
324
|
+
grid-row: 1;
|
|
325
|
+
height: auto;
|
|
326
|
+
aspect-ratio: 16 / 9;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"][data-layout="compact"] {
|
|
330
|
+
--keep-skeleton-media-size: 2.75rem;
|
|
331
|
+
--keep-skeleton-title-width: 64%;
|
|
332
|
+
--keep-skeleton-tag-width: 3rem;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
@keyframes keepkit-skeleton-pulse {
|
|
336
|
+
0%,
|
|
337
|
+
100% {
|
|
338
|
+
opacity: 0.55;
|
|
339
|
+
}
|
|
340
|
+
50% {
|
|
341
|
+
opacity: 1;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
@media (prefers-reduced-motion: reduce) {
|
|
346
|
+
:where(.keep-theme, [data-keep-theme]) [data-keepkit="card-skeleton"] [data-skeleton-part] {
|
|
347
|
+
animation: none;
|
|
348
|
+
background: var(--keep-muted);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
180
352
|
:where(.keep-theme, [data-keep-theme]) [data-keepkit="pagination"] {
|
|
181
353
|
display: flex;
|
|
182
354
|
flex-wrap: wrap;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keepkit/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Headless, accessible React UI components for KeepKit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"react": ">=18"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@keepkit/core": "0.
|
|
57
|
+
"@keepkit/core": "0.17.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@testing-library/react": "^16.3.3",
|