@inkra/react 0.8.0 → 0.10.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 +137 -2
- package/THIRD_PARTY_NOTICES.md +9 -0
- package/Xiaolai-OFL.txt +94 -0
- package/dist/PencilIcon.d.ts +14 -1
- package/dist/PencilIcon.js +88 -52
- package/dist/PencilText.js +4 -1
- package/dist/assets/ui-hand-xiaolai-extended.woff2 +0 -0
- package/dist/assets/ui-hand-xiaolai.woff2 +0 -0
- package/dist/assets/xiaolai.css +17 -0
- package/dist/form/EditablePencilText.js +4 -2
- package/dist/guide/index.d.ts +77 -0
- package/dist/guide/index.js +379 -0
- package/dist/i18n/catalog.d.ts +1 -1
- package/dist/i18n/catalog.js +8 -0
- package/dist/image-viewer/index.d.ts +2 -0
- package/dist/image-viewer/index.js +28 -28
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/infinite-scroll/gesture.d.ts +19 -0
- package/dist/infinite-scroll/gesture.js +218 -0
- package/dist/infinite-scroll/index.d.ts +55 -0
- package/dist/infinite-scroll/index.js +543 -0
- package/dist/infinite-scroll/model.d.ts +33 -0
- package/dist/infinite-scroll/model.js +168 -0
- package/dist/internal/iconFill.d.ts +16 -0
- package/dist/internal/iconFill.js +275 -0
- package/dist/internal/surfaceRenderer.d.ts +4 -4
- package/dist/internal/surfaceRenderer.js +2 -2
- package/dist/internal/textRenderer.d.ts +1 -1
- package/dist/internal/textRenderer.js +23 -11
- package/dist/inventory-grid/index.js +13 -3
- package/dist/inventory-grid/outline.d.ts +9 -0
- package/dist/inventory-grid/outline.js +54 -0
- package/dist/loading/index.d.ts +58 -0
- package/dist/loading/index.js +188 -0
- package/dist/loading/locales.d.ts +15 -0
- package/dist/loading/locales.js +34 -0
- package/dist/loading/model.d.ts +6 -0
- package/dist/loading/model.js +29 -0
- package/dist/masonry/index.d.ts +25 -0
- package/dist/masonry/index.js +227 -0
- package/dist/masonry/layout.d.ts +35 -0
- package/dist/masonry/layout.js +67 -0
- package/dist/number-ticker/RollingValue.d.ts +6 -0
- package/dist/number-ticker/RollingValue.js +10 -0
- package/dist/number-ticker/index.d.ts +4 -0
- package/dist/number-ticker/index.js +55 -7
- package/dist/number-ticker/rolling.d.ts +35 -0
- package/dist/number-ticker/rolling.js +87 -0
- package/dist/selection/CircularSwitchVisual.d.ts +8 -0
- package/dist/selection/CircularSwitchVisual.js +82 -0
- package/dist/selection/Switch.d.ts +7 -0
- package/dist/selection/Switch.js +15 -3
- package/dist/slider/circular.d.ts +35 -0
- package/dist/slider/circular.js +196 -0
- package/dist/slider/circularMath.d.ts +10 -0
- package/dist/slider/circularMath.js +34 -0
- package/dist/slider/index.d.ts +5 -0
- package/dist/slider/index.js +5 -3
- package/dist/styles/base.css +4 -2
- package/dist/styles/breadcrumb.css +1 -1
- package/dist/styles/guide.css +202 -0
- package/dist/styles/image-viewer.css +20 -0
- package/dist/styles/infinite-scroll.css +171 -0
- package/dist/styles/inventory-grid.css +20 -8
- package/dist/styles/loading.css +348 -0
- package/dist/styles/markdown.css +1 -1
- package/dist/styles/masonry.css +68 -0
- package/dist/styles/number-ticker.css +47 -1
- package/dist/styles/selection.css +50 -0
- package/dist/styles/slider.css +65 -0
- package/dist/styles/slot.css +1 -1
- package/dist/styles.css +1180 -192
- package/dist/toast/manager.d.ts +4 -4
- package/dist/tokens.css +13 -10
- package/package.json +28 -2
|
@@ -25,7 +25,53 @@
|
|
|
25
25
|
|
|
26
26
|
.inkra-number-ticker__native-value {
|
|
27
27
|
font: inherit;
|
|
28
|
-
font-family:
|
|
28
|
+
font-family: var(--inkra-font-hand);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.inkra-number-ticker__reels {
|
|
32
|
+
display: inline-flex;
|
|
33
|
+
align-items: baseline;
|
|
34
|
+
unicode-bidi: isolate;
|
|
35
|
+
line-height: var(--inkra-line-ui, 1.45);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.inkra-number-ticker__column {
|
|
39
|
+
display: inline-grid;
|
|
40
|
+
flex: none;
|
|
41
|
+
overflow: hidden;
|
|
42
|
+
vertical-align: bottom;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.inkra-number-ticker__column-inner {
|
|
46
|
+
display: grid;
|
|
47
|
+
min-width: 0;
|
|
48
|
+
height: 1lh;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.inkra-number-ticker__face {
|
|
53
|
+
grid-area: 1 / 1;
|
|
54
|
+
display: flex;
|
|
55
|
+
justify-content: center;
|
|
56
|
+
align-items: center;
|
|
57
|
+
height: 1lh;
|
|
58
|
+
white-space: pre;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.inkra-number-ticker__column[data-digit] .inkra-number-ticker__face {
|
|
62
|
+
width: 1ch;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.inkra-number-ticker__face > .inkra-pencil-text {
|
|
66
|
+
flex: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@media (prefers-reduced-motion: reduce), print {
|
|
70
|
+
.inkra-number-ticker__column { grid-template-columns: 1fr !important; }
|
|
71
|
+
.inkra-number-ticker__column[data-digit] { width: 1ch !important; }
|
|
72
|
+
.inkra-number-ticker__column[data-departing] { display: none; }
|
|
73
|
+
.inkra-number-ticker__face[data-face="from"] { display: none; }
|
|
74
|
+
.inkra-number-ticker__face[data-face="to"] { transform: none !important; opacity: 1 !important; }
|
|
29
75
|
}
|
|
30
76
|
|
|
31
77
|
.inkra-number-ticker__prefix,
|
|
@@ -262,3 +262,53 @@
|
|
|
262
262
|
outline-offset: var(--inkra-focus-offset);
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
|
+
|
|
266
|
+
/* Circular switches retain the native checkbox while sharing the dial's pencil geometry. */
|
|
267
|
+
.inkra-switch--circular {
|
|
268
|
+
grid-template-columns: minmax(0, 1fr);
|
|
269
|
+
justify-items: center;
|
|
270
|
+
align-content: start;
|
|
271
|
+
width: var(--inkra-circular-switch-diameter);
|
|
272
|
+
gap: 2px;
|
|
273
|
+
}
|
|
274
|
+
.inkra-switch--circular > .inkra-selection-control__input {
|
|
275
|
+
width: var(--inkra-circular-switch-diameter);
|
|
276
|
+
height: var(--inkra-circular-switch-diameter);
|
|
277
|
+
inset: 0 auto auto 0;
|
|
278
|
+
touch-action: manipulation;
|
|
279
|
+
}
|
|
280
|
+
.inkra-switch--circular > .inkra-selection-control__copy { width: 100%; text-align: center; }
|
|
281
|
+
.inkra-switch[data-readonly="true"] { cursor: default; }
|
|
282
|
+
.inkra-switch__circular { display: flex; align-items: center; justify-content: center; position: relative; width: var(--inkra-circular-switch-diameter); height: var(--inkra-circular-switch-diameter); pointer-events: none; user-select: none; }
|
|
283
|
+
.inkra-switch__circular-arc { position: absolute; inset: 16px; transform: rotate(225deg); }
|
|
284
|
+
.inkra-switch__circular-track, .inkra-switch__circular-range { position: absolute; inset: 0; }
|
|
285
|
+
.inkra-switch__circular-track { color: var(--inkra-ink-muted); opacity: .3; }
|
|
286
|
+
.inkra-switch__circular-range { color: var(--inkra-accent-strong); }
|
|
287
|
+
.inkra-switch__circular .inkra-progress__ring { color: inherit; }
|
|
288
|
+
.inkra-switch__circular .inkra-progress__ring,
|
|
289
|
+
.inkra-switch__circular .inkra-progress__ring-rotation,
|
|
290
|
+
.inkra-switch__circular .inkra-progress__ring-direction,
|
|
291
|
+
.inkra-switch__circular .inkra-progress__ring-ink,
|
|
292
|
+
.inkra-switch__circular .inkra-progress__ring-fallback { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
|
|
293
|
+
.inkra-switch__circular .inkra-progress__ring-ink { visibility: hidden; }
|
|
294
|
+
.inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] { visibility: visible; }
|
|
295
|
+
.inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: hidden; }
|
|
296
|
+
.inkra-switch__circular-center { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 5px; box-sizing: border-box; width: var(--inkra-circular-switch-center-width); max-height: var(--inkra-circular-switch-center-height); min-width: 0; overflow: hidden; pointer-events: none; text-align: center; }
|
|
297
|
+
.inkra-switch__circular-icon { display: flex; align-items: center; justify-content: center; flex: none; width: min(var(--inkra-circular-switch-icon-size), 100%); height: var(--inkra-circular-switch-icon-size); }
|
|
298
|
+
.inkra-switch__circular-icon > * { max-width: 100%; max-height: 100%; }
|
|
299
|
+
.inkra-switch__circular-content { width: 100%; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
|
|
300
|
+
.inkra-switch__circular-content > * { max-width: 100%; }
|
|
301
|
+
.inkra-switch__circular-value { display: block; white-space: nowrap; max-width: 100%; text-align: center; font-size: var(--inkra-circular-switch-value-size); line-height: var(--inkra-circular-switch-value-line); }
|
|
302
|
+
.inkra-switch__circular-focus { --inkra-ink: var(--inkra-focus); --inkra-accent-strong: var(--inkra-focus); position: absolute !important; inset: 10px; opacity: 0; pointer-events: none; border-radius: 50%; }
|
|
303
|
+
.inkra-switch--circular:has(.inkra-selection-control__input:focus-visible) .inkra-switch__circular-focus { opacity: 1; }
|
|
304
|
+
@media (forced-colors: active) {
|
|
305
|
+
.inkra-switch--circular > .inkra-selection-control__input { position: absolute; opacity: 0; z-index: 2; }
|
|
306
|
+
.inkra-switch__circular-track { color: GrayText; opacity: 1; }
|
|
307
|
+
.inkra-switch__circular-range { color: Highlight; }
|
|
308
|
+
.inkra-switch--circular:has(.inkra-selection-control__input:focus-visible) .inkra-switch__circular { outline: var(--inkra-focus-width) solid Highlight; outline-offset: -10px; border-radius: 50%; }
|
|
309
|
+
.inkra-switch__circular-focus { display: none !important; }
|
|
310
|
+
}
|
|
311
|
+
@media (forced-colors: active), print {
|
|
312
|
+
.inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] { visibility: hidden; }
|
|
313
|
+
.inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: visible; }
|
|
314
|
+
}
|
package/dist/styles/slider.css
CHANGED
|
@@ -98,6 +98,17 @@
|
|
|
98
98
|
width: var(--inkra-slider-thumb-size);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
/* Radix insets its measured hit target by half a thumb at each endpoint.
|
|
102
|
+
Translate the whole target back so its visual center follows the track;
|
|
103
|
+
percentages use the actual thumb box and preserve its 44px hit area. */
|
|
104
|
+
.inkra-slider[data-thumb-alignment="edge"] .inkra-slider__thumb {
|
|
105
|
+
translate: var(--inkra-slider-thumb-offset) 0;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.inkra-slider[data-thumb-alignment="edge"][data-orientation="vertical"] .inkra-slider__thumb {
|
|
109
|
+
translate: 0 var(--inkra-slider-thumb-offset);
|
|
110
|
+
}
|
|
111
|
+
|
|
101
112
|
.inkra-slider__thumb:focus-visible {
|
|
102
113
|
outline: none;
|
|
103
114
|
}
|
|
@@ -143,3 +154,57 @@
|
|
|
143
154
|
display: none !important;
|
|
144
155
|
}
|
|
145
156
|
}
|
|
157
|
+
|
|
158
|
+
.inkra-circular-slider {
|
|
159
|
+
box-sizing: border-box;
|
|
160
|
+
color: var(--inkra-ink);
|
|
161
|
+
cursor: pointer;
|
|
162
|
+
display: inline-flex;
|
|
163
|
+
flex: none;
|
|
164
|
+
align-items: center;
|
|
165
|
+
justify-content: center;
|
|
166
|
+
width: var(--inkra-circular-slider-diameter);
|
|
167
|
+
height: var(--inkra-circular-slider-diameter);
|
|
168
|
+
position: relative;
|
|
169
|
+
touch-action: none;
|
|
170
|
+
user-select: none;
|
|
171
|
+
vertical-align: middle;
|
|
172
|
+
outline: none;
|
|
173
|
+
}
|
|
174
|
+
.inkra-circular-slider[data-disabled] { cursor: not-allowed; opacity: .55; }
|
|
175
|
+
.inkra-circular-slider[data-readonly] { cursor: default; }
|
|
176
|
+
.inkra-circular-slider__arc { position: absolute; inset: 16px; pointer-events: none; }
|
|
177
|
+
.inkra-circular-slider__track, .inkra-circular-slider__range { position: absolute; inset: 0; }
|
|
178
|
+
.inkra-circular-slider__track { color: var(--inkra-ink-muted); opacity: .3; }
|
|
179
|
+
.inkra-circular-slider__range { color: var(--inkra-accent-strong); }
|
|
180
|
+
/* ProgressRing shares the stable pencil texture; these scoped rules also support slider-only styles. */
|
|
181
|
+
.inkra-circular-slider .inkra-progress__ring { color: inherit; }
|
|
182
|
+
.inkra-circular-slider .inkra-progress__ring,
|
|
183
|
+
.inkra-circular-slider .inkra-progress__ring-rotation,
|
|
184
|
+
.inkra-circular-slider .inkra-progress__ring-direction,
|
|
185
|
+
.inkra-circular-slider .inkra-progress__ring-ink,
|
|
186
|
+
.inkra-circular-slider .inkra-progress__ring-fallback { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
|
|
187
|
+
.inkra-circular-slider .inkra-progress__ring-ink { visibility: hidden; }
|
|
188
|
+
.inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] { visibility: visible; }
|
|
189
|
+
.inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: hidden; }
|
|
190
|
+
.inkra-circular-slider__center { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 5px; box-sizing: border-box; width: var(--inkra-circular-slider-center-width); max-height: var(--inkra-circular-slider-center-height); min-width: 0; overflow: hidden; pointer-events: none; text-align: center; }
|
|
191
|
+
.inkra-circular-slider__center-icon { display: flex; align-items: center; justify-content: center; flex: none; width: min(var(--inkra-circular-slider-center-icon-size), 100%); height: var(--inkra-circular-slider-center-icon-size); }
|
|
192
|
+
.inkra-circular-slider__center-icon > * { max-width: 100%; max-height: 100%; }
|
|
193
|
+
.inkra-circular-slider__center-content { width: 100%; min-width: 0; max-width: 100%; max-height: var(--inkra-circular-slider-center-height); overflow-wrap: anywhere; }
|
|
194
|
+
.inkra-circular-slider__center-content > * { max-width: 100%; }
|
|
195
|
+
.inkra-circular-slider__value { display: block; white-space: nowrap; max-width: 100%; pointer-events: none; text-align: center; font-size: var(--inkra-circular-slider-center-font-size); line-height: var(--inkra-circular-slider-center-line-height); }
|
|
196
|
+
.inkra-circular-slider__thumb { position: absolute; transform: translate(-50%, -50%); width: var(--inkra-touch-target); height: var(--inkra-touch-target); display: flex; align-items: center; justify-content: center; pointer-events: none; }
|
|
197
|
+
.inkra-circular-slider__thumb-surface { display: block !important; width: var(--inkra-circular-slider-thumb-size); height: var(--inkra-circular-slider-thumb-size); border-radius: 50%; }
|
|
198
|
+
.inkra-circular-slider__focus-ring { --inkra-ink: var(--inkra-focus); position: absolute !important; inset: -4px; opacity: 0; pointer-events: none; }
|
|
199
|
+
.inkra-circular-slider:focus-visible .inkra-circular-slider__focus-ring { opacity: 1; }
|
|
200
|
+
@media (forced-colors: active) {
|
|
201
|
+
.inkra-circular-slider__track { color: GrayText; opacity: 1; }
|
|
202
|
+
.inkra-circular-slider__range { color: Highlight; }
|
|
203
|
+
.inkra-circular-slider__thumb-surface { border: 2px solid ButtonText; background: Canvas; }
|
|
204
|
+
.inkra-circular-slider:focus-visible .inkra-circular-slider__thumb-surface { outline: var(--inkra-focus-width) solid Highlight; outline-offset: var(--inkra-focus-offset); }
|
|
205
|
+
.inkra-circular-slider__focus-ring { display: none !important; }
|
|
206
|
+
}
|
|
207
|
+
@media (forced-colors: active), print {
|
|
208
|
+
.inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] { visibility: hidden; }
|
|
209
|
+
.inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: visible; }
|
|
210
|
+
}
|
package/dist/styles/slot.css
CHANGED
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
.inkra-slot__empty-mark {
|
|
66
66
|
color: var(--inkra-ink-muted);
|
|
67
|
-
font-family:
|
|
67
|
+
font-family: var(--inkra-font-hand);
|
|
68
68
|
font-size: calc(var(--inkra-slot-size) * 0.4);
|
|
69
69
|
line-height: 1;
|
|
70
70
|
}
|