@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.
Files changed (76) hide show
  1. package/README.md +137 -2
  2. package/THIRD_PARTY_NOTICES.md +9 -0
  3. package/Xiaolai-OFL.txt +94 -0
  4. package/dist/PencilIcon.d.ts +14 -1
  5. package/dist/PencilIcon.js +88 -52
  6. package/dist/PencilText.js +4 -1
  7. package/dist/assets/ui-hand-xiaolai-extended.woff2 +0 -0
  8. package/dist/assets/ui-hand-xiaolai.woff2 +0 -0
  9. package/dist/assets/xiaolai.css +17 -0
  10. package/dist/form/EditablePencilText.js +4 -2
  11. package/dist/guide/index.d.ts +77 -0
  12. package/dist/guide/index.js +379 -0
  13. package/dist/i18n/catalog.d.ts +1 -1
  14. package/dist/i18n/catalog.js +8 -0
  15. package/dist/image-viewer/index.d.ts +2 -0
  16. package/dist/image-viewer/index.js +28 -28
  17. package/dist/index.d.ts +4 -0
  18. package/dist/index.js +4 -0
  19. package/dist/infinite-scroll/gesture.d.ts +19 -0
  20. package/dist/infinite-scroll/gesture.js +218 -0
  21. package/dist/infinite-scroll/index.d.ts +55 -0
  22. package/dist/infinite-scroll/index.js +543 -0
  23. package/dist/infinite-scroll/model.d.ts +33 -0
  24. package/dist/infinite-scroll/model.js +168 -0
  25. package/dist/internal/iconFill.d.ts +16 -0
  26. package/dist/internal/iconFill.js +275 -0
  27. package/dist/internal/surfaceRenderer.d.ts +4 -4
  28. package/dist/internal/surfaceRenderer.js +2 -2
  29. package/dist/internal/textRenderer.d.ts +1 -1
  30. package/dist/internal/textRenderer.js +23 -11
  31. package/dist/inventory-grid/index.js +13 -3
  32. package/dist/inventory-grid/outline.d.ts +9 -0
  33. package/dist/inventory-grid/outline.js +54 -0
  34. package/dist/loading/index.d.ts +58 -0
  35. package/dist/loading/index.js +188 -0
  36. package/dist/loading/locales.d.ts +15 -0
  37. package/dist/loading/locales.js +34 -0
  38. package/dist/loading/model.d.ts +6 -0
  39. package/dist/loading/model.js +29 -0
  40. package/dist/masonry/index.d.ts +25 -0
  41. package/dist/masonry/index.js +227 -0
  42. package/dist/masonry/layout.d.ts +35 -0
  43. package/dist/masonry/layout.js +67 -0
  44. package/dist/number-ticker/RollingValue.d.ts +6 -0
  45. package/dist/number-ticker/RollingValue.js +10 -0
  46. package/dist/number-ticker/index.d.ts +4 -0
  47. package/dist/number-ticker/index.js +55 -7
  48. package/dist/number-ticker/rolling.d.ts +35 -0
  49. package/dist/number-ticker/rolling.js +87 -0
  50. package/dist/selection/CircularSwitchVisual.d.ts +8 -0
  51. package/dist/selection/CircularSwitchVisual.js +82 -0
  52. package/dist/selection/Switch.d.ts +7 -0
  53. package/dist/selection/Switch.js +15 -3
  54. package/dist/slider/circular.d.ts +35 -0
  55. package/dist/slider/circular.js +196 -0
  56. package/dist/slider/circularMath.d.ts +10 -0
  57. package/dist/slider/circularMath.js +34 -0
  58. package/dist/slider/index.d.ts +5 -0
  59. package/dist/slider/index.js +5 -3
  60. package/dist/styles/base.css +4 -2
  61. package/dist/styles/breadcrumb.css +1 -1
  62. package/dist/styles/guide.css +202 -0
  63. package/dist/styles/image-viewer.css +20 -0
  64. package/dist/styles/infinite-scroll.css +171 -0
  65. package/dist/styles/inventory-grid.css +20 -8
  66. package/dist/styles/loading.css +348 -0
  67. package/dist/styles/markdown.css +1 -1
  68. package/dist/styles/masonry.css +68 -0
  69. package/dist/styles/number-ticker.css +47 -1
  70. package/dist/styles/selection.css +50 -0
  71. package/dist/styles/slider.css +65 -0
  72. package/dist/styles/slot.css +1 -1
  73. package/dist/styles.css +1180 -192
  74. package/dist/toast/manager.d.ts +4 -4
  75. package/dist/tokens.css +13 -10
  76. package/package.json +28 -2
package/dist/styles.css CHANGED
@@ -1,5 +1,7 @@
1
1
  @import "./tokens.css";
2
2
 
3
+ @import "./assets/xiaolai.css";
4
+
3
5
  @font-face {
4
6
  font-family: "Trip Map Hand";
5
7
  font-style: normal;
@@ -129,13 +131,13 @@
129
131
  .inkra-pencil-text__source {
130
132
  color: inherit;
131
133
  font: inherit;
132
- font-family: "Trip Map Hand", "HanziPen SC", "Hannotate SC", "Kaiti SC", "STKaiti", cursive;
133
134
  font-kerning: none;
134
135
  font-variant-ligatures: none;
135
136
  letter-spacing: 0;
136
137
  }
137
138
 
138
139
  .inkra-pencil-text {
140
+ font-family: var(--inkra-font-hand);
139
141
  display: inline-block;
140
142
  max-width: 100%;
141
143
  min-width: 0;
@@ -216,7 +218,7 @@
216
218
  color: var(--inkra-on-accent, var(--inkra-accent-strong));
217
219
  cursor: pointer;
218
220
  display: inline-flex;
219
- font-family: "Trip Map Hand", "HanziPen SC", "Hannotate SC", "Kaiti SC", "STKaiti", cursive;
221
+ font-family: var(--inkra-font-hand);
220
222
  font-weight: var(--inkra-weight-regular);
221
223
  justify-content: center;
222
224
  letter-spacing: var(--inkra-letter-spacing);
@@ -1412,6 +1414,17 @@
1412
1414
  width: var(--inkra-slider-thumb-size);
1413
1415
  }
1414
1416
 
1417
+ /* Radix insets its measured hit target by half a thumb at each endpoint.
1418
+ Translate the whole target back so its visual center follows the track;
1419
+ percentages use the actual thumb box and preserve its 44px hit area. */
1420
+ .inkra-slider[data-thumb-alignment="edge"] .inkra-slider__thumb {
1421
+ translate: var(--inkra-slider-thumb-offset) 0;
1422
+ }
1423
+
1424
+ .inkra-slider[data-thumb-alignment="edge"][data-orientation="vertical"] .inkra-slider__thumb {
1425
+ translate: 0 var(--inkra-slider-thumb-offset);
1426
+ }
1427
+
1415
1428
  .inkra-slider__thumb:focus-visible {
1416
1429
  outline: none;
1417
1430
  }
@@ -1458,6 +1471,60 @@
1458
1471
  }
1459
1472
  }
1460
1473
 
1474
+ .inkra-circular-slider {
1475
+ box-sizing: border-box;
1476
+ color: var(--inkra-ink);
1477
+ cursor: pointer;
1478
+ display: inline-flex;
1479
+ flex: none;
1480
+ align-items: center;
1481
+ justify-content: center;
1482
+ width: var(--inkra-circular-slider-diameter);
1483
+ height: var(--inkra-circular-slider-diameter);
1484
+ position: relative;
1485
+ touch-action: none;
1486
+ user-select: none;
1487
+ vertical-align: middle;
1488
+ outline: none;
1489
+ }
1490
+ .inkra-circular-slider[data-disabled] { cursor: not-allowed; opacity: .55; }
1491
+ .inkra-circular-slider[data-readonly] { cursor: default; }
1492
+ .inkra-circular-slider__arc { position: absolute; inset: 16px; pointer-events: none; }
1493
+ .inkra-circular-slider__track, .inkra-circular-slider__range { position: absolute; inset: 0; }
1494
+ .inkra-circular-slider__track { color: var(--inkra-ink-muted); opacity: .3; }
1495
+ .inkra-circular-slider__range { color: var(--inkra-accent-strong); }
1496
+ /* ProgressRing shares the stable pencil texture; these scoped rules also support slider-only styles. */
1497
+ .inkra-circular-slider .inkra-progress__ring { color: inherit; }
1498
+ .inkra-circular-slider .inkra-progress__ring,
1499
+ .inkra-circular-slider .inkra-progress__ring-rotation,
1500
+ .inkra-circular-slider .inkra-progress__ring-direction,
1501
+ .inkra-circular-slider .inkra-progress__ring-ink,
1502
+ .inkra-circular-slider .inkra-progress__ring-fallback { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
1503
+ .inkra-circular-slider .inkra-progress__ring-ink { visibility: hidden; }
1504
+ .inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] { visibility: visible; }
1505
+ .inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: hidden; }
1506
+ .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; }
1507
+ .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); }
1508
+ .inkra-circular-slider__center-icon > * { max-width: 100%; max-height: 100%; }
1509
+ .inkra-circular-slider__center-content { width: 100%; min-width: 0; max-width: 100%; max-height: var(--inkra-circular-slider-center-height); overflow-wrap: anywhere; }
1510
+ .inkra-circular-slider__center-content > * { max-width: 100%; }
1511
+ .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); }
1512
+ .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; }
1513
+ .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%; }
1514
+ .inkra-circular-slider__focus-ring { --inkra-ink: var(--inkra-focus); position: absolute !important; inset: -4px; opacity: 0; pointer-events: none; }
1515
+ .inkra-circular-slider:focus-visible .inkra-circular-slider__focus-ring { opacity: 1; }
1516
+ @media (forced-colors: active) {
1517
+ .inkra-circular-slider__track { color: GrayText; opacity: 1; }
1518
+ .inkra-circular-slider__range { color: Highlight; }
1519
+ .inkra-circular-slider__thumb-surface { border: 2px solid ButtonText; background: Canvas; }
1520
+ .inkra-circular-slider:focus-visible .inkra-circular-slider__thumb-surface { outline: var(--inkra-focus-width) solid Highlight; outline-offset: var(--inkra-focus-offset); }
1521
+ .inkra-circular-slider__focus-ring { display: none !important; }
1522
+ }
1523
+ @media (forced-colors: active), print {
1524
+ .inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] { visibility: hidden; }
1525
+ .inkra-circular-slider .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: visible; }
1526
+ }
1527
+
1461
1528
  .inkra-selection-control {
1462
1529
  align-items: center;
1463
1530
  color: var(--inkra-ink);
@@ -1723,6 +1790,56 @@
1723
1790
  }
1724
1791
  }
1725
1792
 
1793
+ /* Circular switches retain the native checkbox while sharing the dial's pencil geometry. */
1794
+ .inkra-switch--circular {
1795
+ grid-template-columns: minmax(0, 1fr);
1796
+ justify-items: center;
1797
+ align-content: start;
1798
+ width: var(--inkra-circular-switch-diameter);
1799
+ gap: 2px;
1800
+ }
1801
+ .inkra-switch--circular > .inkra-selection-control__input {
1802
+ width: var(--inkra-circular-switch-diameter);
1803
+ height: var(--inkra-circular-switch-diameter);
1804
+ inset: 0 auto auto 0;
1805
+ touch-action: manipulation;
1806
+ }
1807
+ .inkra-switch--circular > .inkra-selection-control__copy { width: 100%; text-align: center; }
1808
+ .inkra-switch[data-readonly="true"] { cursor: default; }
1809
+ .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; }
1810
+ .inkra-switch__circular-arc { position: absolute; inset: 16px; transform: rotate(225deg); }
1811
+ .inkra-switch__circular-track, .inkra-switch__circular-range { position: absolute; inset: 0; }
1812
+ .inkra-switch__circular-track { color: var(--inkra-ink-muted); opacity: .3; }
1813
+ .inkra-switch__circular-range { color: var(--inkra-accent-strong); }
1814
+ .inkra-switch__circular .inkra-progress__ring { color: inherit; }
1815
+ .inkra-switch__circular .inkra-progress__ring,
1816
+ .inkra-switch__circular .inkra-progress__ring-rotation,
1817
+ .inkra-switch__circular .inkra-progress__ring-direction,
1818
+ .inkra-switch__circular .inkra-progress__ring-ink,
1819
+ .inkra-switch__circular .inkra-progress__ring-fallback { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
1820
+ .inkra-switch__circular .inkra-progress__ring-ink { visibility: hidden; }
1821
+ .inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] { visibility: visible; }
1822
+ .inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: hidden; }
1823
+ .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; }
1824
+ .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); }
1825
+ .inkra-switch__circular-icon > * { max-width: 100%; max-height: 100%; }
1826
+ .inkra-switch__circular-content { width: 100%; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
1827
+ .inkra-switch__circular-content > * { max-width: 100%; }
1828
+ .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); }
1829
+ .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%; }
1830
+ .inkra-switch--circular:has(.inkra-selection-control__input:focus-visible) .inkra-switch__circular-focus { opacity: 1; }
1831
+ @media (forced-colors: active) {
1832
+ .inkra-switch--circular > .inkra-selection-control__input { position: absolute; opacity: 0; z-index: 2; }
1833
+ .inkra-switch__circular-track { color: GrayText; opacity: 1; }
1834
+ .inkra-switch__circular-range { color: Highlight; }
1835
+ .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%; }
1836
+ .inkra-switch__circular-focus { display: none !important; }
1837
+ }
1838
+ @media (forced-colors: active), print {
1839
+ .inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] { visibility: hidden; }
1840
+ .inkra-switch__circular .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: visible; }
1841
+ }
1842
+
1726
1843
  .inkra-portal-theme-bridge {
1727
1844
  display: contents;
1728
1845
  font-family: var(--inkra-font-body);
@@ -2436,216 +2553,1009 @@
2436
2553
  flex: 1 1 auto;
2437
2554
  min-width: 0;
2438
2555
  }
2439
-
2440
- .inkra-select__item-surface > .inkra-pencil-surface__ink {
2441
- opacity: 0;
2442
- transition: opacity var(--inkra-motion-fast) var(--inkra-ease);
2556
+
2557
+ .inkra-select__item-surface > .inkra-pencil-surface__ink {
2558
+ opacity: 0;
2559
+ transition: opacity var(--inkra-motion-fast) var(--inkra-ease);
2560
+ }
2561
+
2562
+ .inkra-select__item[data-highlighted] .inkra-select__item-surface,
2563
+ .inkra-select__item[data-selected] .inkra-select__item-surface,
2564
+ .inkra-select__item[data-state="checked"] .inkra-select__item-surface {
2565
+ color: var(--inkra-selection-foreground);
2566
+ }
2567
+
2568
+ .inkra-select__item[data-highlighted] .inkra-select__item-surface > .inkra-pencil-surface__ink,
2569
+ .inkra-select__item[data-selected] .inkra-select__item-surface > .inkra-pencil-surface__ink,
2570
+ .inkra-select__item[data-state="checked"] .inkra-select__item-surface > .inkra-pencil-surface__ink {
2571
+ opacity: 1;
2572
+ }
2573
+
2574
+ .inkra-select__item[data-disabled] {
2575
+ cursor: not-allowed;
2576
+ opacity: 0.5;
2577
+ }
2578
+
2579
+ .inkra-select__item-indicator {
2580
+ align-items: center;
2581
+ display: inline-flex;
2582
+ height: var(--inkra-icon-sm);
2583
+ inset-inline-end: var(--inkra-space-3);
2584
+ justify-content: center;
2585
+ position: absolute;
2586
+ top: 50%;
2587
+ transform: translateY(-50%);
2588
+ width: var(--inkra-icon-sm);
2589
+ }
2590
+
2591
+ .inkra-select__scroll-button {
2592
+ align-items: center;
2593
+ color: var(--inkra-ink-muted);
2594
+ cursor: default;
2595
+ display: flex;
2596
+ height: var(--inkra-control-xs);
2597
+ justify-content: center;
2598
+ }
2599
+
2600
+ .inkra-select__separator {
2601
+ color: var(--inkra-border);
2602
+ height: 8px;
2603
+ margin: 0 var(--inkra-space-2);
2604
+ }
2605
+
2606
+ .inkra-select__separator > .inkra-pencil-line {
2607
+ height: 8px;
2608
+ width: 100%;
2609
+ }
2610
+
2611
+ @keyframes inkra-select-content-in {
2612
+ from {
2613
+ opacity: 0;
2614
+ transform: translateY(var(--inkra-space-1)) scale(0.98);
2615
+ }
2616
+ to {
2617
+ opacity: 1;
2618
+ transform: translateY(0) scale(1);
2619
+ }
2620
+ }
2621
+
2622
+ @keyframes inkra-select-content-out {
2623
+ from {
2624
+ opacity: 1;
2625
+ transform: translateY(0) scale(1);
2626
+ }
2627
+ to {
2628
+ opacity: 0;
2629
+ transform: translateY(var(--inkra-space-1)) scale(0.98);
2630
+ }
2631
+ }
2632
+
2633
+ @media (prefers-reduced-motion: reduce) {
2634
+ .inkra-select__content,
2635
+ .inkra-select__content[data-ending-style],
2636
+ .inkra-select__content[data-state="closed"] {
2637
+ animation: none;
2638
+ }
2639
+
2640
+ .inkra-select__trigger-icon,
2641
+ .inkra-select__focus-ring,
2642
+ .inkra-select-stepper__button .inkra-pencil-icon,
2643
+ .inkra-select__item-surface > .inkra-pencil-surface__ink {
2644
+ transition-duration: 0ms;
2645
+ }
2646
+ }
2647
+
2648
+ @media (forced-colors: active) {
2649
+ .inkra-select__trigger:focus-visible {
2650
+ outline: var(--inkra-focus-width) solid Highlight;
2651
+ outline-offset: var(--inkra-focus-offset);
2652
+ }
2653
+
2654
+ .inkra-select__focus-ring {
2655
+ display: none !important;
2656
+ }
2657
+
2658
+ .inkra-select__trigger-surface,
2659
+ .inkra-select__content-surface {
2660
+ background: Canvas;
2661
+ border: 1px solid CanvasText;
2662
+ }
2663
+
2664
+ .inkra-select__trigger[data-invalid="true"] .inkra-select__trigger-surface {
2665
+ border-color: Mark;
2666
+ }
2667
+
2668
+ .inkra-select__item[data-highlighted] .inkra-select__item-surface,
2669
+ .inkra-select__item[data-selected] .inkra-select__item-surface,
2670
+ .inkra-select__item[data-state="checked"] .inkra-select__item-surface {
2671
+ background: Highlight;
2672
+ color: HighlightText;
2673
+ forced-color-adjust: none;
2674
+ }
2675
+
2676
+ .inkra-select__item:focus-visible {
2677
+ outline: var(--inkra-focus-width) solid CanvasText;
2678
+ outline-offset: calc(-1 * var(--inkra-focus-offset));
2679
+ }
2680
+ }
2681
+
2682
+ @media print {
2683
+ .inkra-select__content {
2684
+ animation: none;
2685
+ }
2686
+ }
2687
+
2688
+ .inkra-tabs { min-width: 0; --inkra-tabs-font-size: var(--inkra-text-md); --inkra-tabs-padding: var(--inkra-space-3); --inkra-tabs-icon-size: 20px; }
2689
+ .inkra-tabs[data-size="sm"] { --inkra-tabs-font-size: var(--inkra-text-sm); --inkra-tabs-padding: var(--inkra-space-2); --inkra-tabs-icon-size: 16px; }
2690
+ .inkra-tabs[data-size="lg"] { --inkra-tabs-font-size: 17px; --inkra-tabs-padding: var(--inkra-space-4); --inkra-tabs-icon-size: 24px; }
2691
+ .inkra-tabs__list {
2692
+ display: flex;
2693
+ gap: var(--inkra-space-2);
2694
+ max-width: 100%;
2695
+ overflow-x: auto;
2696
+ overflow-y: hidden;
2697
+ scroll-padding-inline: var(--inkra-focus-offset);
2698
+ }
2699
+ .inkra-tabs__list[data-orientation="vertical"] { flex-direction: column; }
2700
+ .inkra-tabs__list[data-divided] { gap: 24px; }
2701
+ .inkra-tabs__divider { position: absolute; color: var(--inkra-ink-muted); opacity: 0.56; }
2702
+ .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="vertical"] { inset-inline-start: -16px; top: 8px; width: 8px; height: calc(100% - 16px); }
2703
+ .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="horizontal"] { inset-inline: 8px; top: -16px; width: calc(100% - 16px); height: 8px; }
2704
+ .inkra-tabs__trigger:first-child > .inkra-tabs__divider { display: none; }
2705
+ .inkra-tabs__list[data-align="center"] { justify-content: safe center; }
2706
+ .inkra-tabs__list[data-align="end"] { justify-content: safe end; }
2707
+ .inkra-tabs__list[data-full-width] { width: 100%; }
2708
+ .inkra-tabs__list[data-full-width] > .inkra-tabs__trigger { flex: 1 0 0; }
2709
+ .inkra-tabs__list[data-orientation="vertical"][data-full-width] > .inkra-tabs__trigger { flex: none; width: 100%; }
2710
+ .inkra-tabs__trigger {
2711
+ position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center;
2712
+ min-height: var(--inkra-touch-target); min-width: var(--inkra-touch-target);
2713
+ padding: var(--inkra-space-2) var(--inkra-tabs-padding); border: 0; gap: var(--inkra-space-2);
2714
+ background: transparent; color: var(--inkra-ink-muted); font: inherit;
2715
+ white-space: nowrap; cursor: pointer; border-radius: var(--inkra-radius-md);
2716
+ font-size: var(--inkra-tabs-font-size); line-height: var(--inkra-line-ui);
2717
+ }
2718
+ .inkra-tabs[data-size="lg"] .inkra-tabs__trigger { min-height: 48px; }
2719
+ .inkra-tabs__icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--inkra-tabs-icon-size); height: var(--inkra-tabs-icon-size); flex: none; pointer-events: none; }
2720
+ .inkra-tabs__icon > * { width: 100%; height: 100%; }
2721
+ .inkra-tabs__trigger[data-state="active"] { color: var(--inkra-selection-foreground); }
2722
+ .inkra-tabs__trigger:disabled { cursor: not-allowed; opacity: 0.55; }
2723
+ .inkra-tabs__trigger:focus-visible { outline: 0; }
2724
+ .inkra-pencil-surface.inkra-tabs__focus-ring {
2725
+ --inkra-accent-strong: var(--inkra-focus);
2726
+ position: absolute !important;
2727
+ display: block !important;
2728
+ inset: var(--inkra-focus-width);
2729
+ pointer-events: none;
2730
+ opacity: 0;
2731
+ z-index: 2;
2732
+ }
2733
+ .inkra-tabs__trigger:focus-visible > .inkra-pencil-surface.inkra-tabs__focus-ring { opacity: 1; }
2734
+ .inkra-tabs__content:focus-visible {
2735
+ outline: var(--inkra-focus-width) solid var(--inkra-focus);
2736
+ outline-offset: calc(-1 * var(--inkra-focus-width));
2737
+ }
2738
+ .inkra-pencil-surface.inkra-tabs__selection { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
2739
+ .inkra-tabs__trigger[data-state="active"] > .inkra-pencil-surface.inkra-tabs__selection { opacity: 1; }
2740
+ .inkra-tabs__label { position: relative; }
2741
+ .inkra-tabs__content { min-width: 0; }
2742
+ .inkra-tabs__content[hidden] { display: none !important; }
2743
+ .inkra-tabs__overflow { display: flex; align-items: center; min-width: 0; max-width: 100%; position: relative; }
2744
+ .inkra-tabs__overflow > .inkra-tabs__list { flex: 1 1 auto; min-width: 0; }
2745
+ .inkra-tabs__scroll-button, .inkra-tabs__more { flex: 0 0 44px; }
2746
+ .inkra-tabs__overflow-icon { display: inline-flex; width: 32px; height: 32px; position: relative; pointer-events: none; }
2747
+ .inkra-tabs__overflow-icon[data-down] { transform: rotate(90deg); }
2748
+ .inkra-tabs__overflow-icon > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
2749
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: none; }
2750
+ .inkra-tabs__overflow-icon > canvas:not([data-pencil-icon-ready]) { visibility: hidden; }
2751
+ .inkra-tabs__list[data-overflow="menu"] { position: relative; overflow: hidden; }
2752
+ .inkra-tabs__list[data-overflow="menu"][data-full-width] > .inkra-tabs__trigger { flex: 1 0 auto; }
2753
+ .inkra-tabs__trigger[data-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; inset-inline-start: 0; top: 0; }
2754
+ .inkra-tabs__list[data-overflow="buttons"] { scrollbar-width: none; }
2755
+ .inkra-tabs__list[data-overflow="buttons"]::-webkit-scrollbar { display: none; }
2756
+ @media (forced-colors: active) {
2757
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
2758
+ .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2759
+ .inkra-tabs__trigger:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
2760
+ .inkra-pencil-surface.inkra-tabs__selection { display: none !important; }
2761
+ .inkra-tabs__trigger[data-state="active"] { color: Highlight; outline: 2px solid Highlight; outline-offset: -2px; }
2762
+ }
2763
+ @media print {
2764
+ .inkra-pencil-surface.inkra-tabs__selection, .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2765
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
2766
+ }
2767
+
2768
+ .inkra-guide__spotlight,
2769
+ .inkra-guide__backdrop {
2770
+ inset: 0;
2771
+ pointer-events: none;
2772
+ position: fixed;
2773
+ z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0));
2774
+ }
2775
+
2776
+ .inkra-guide__backdrop {
2777
+ background: var(--inkra-overlay);
2778
+ }
2779
+
2780
+ .inkra-guide__spotlight {
2781
+ box-shadow: 0 0 0 100vmax var(--inkra-overlay);
2782
+ overflow: visible;
2783
+ }
2784
+
2785
+ .inkra-guide__spotlight > .inkra-pencil-surface__ink,
2786
+ .inkra-guide__spotlight > .inkra-pencil-surface__border {
2787
+ border-radius: var(--inkra-guide-highlight-radius, 8px);
2788
+ }
2789
+
2790
+ .inkra-guide__content {
2791
+ max-height: min(70dvh, var(--radix-popover-content-available-height, 70dvh));
2792
+ max-width: min(24rem, calc(100dvw - var(--inkra-space-6)));
2793
+ outline: 0;
2794
+ transform-origin: var(--radix-popover-content-transform-origin);
2795
+ width: min(22rem, calc(100dvw - var(--inkra-space-6)));
2796
+ z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0) + 1);
2797
+ }
2798
+
2799
+ .inkra-guide__content:focus-visible {
2800
+ outline: var(--inkra-focus-width) solid var(--inkra-focus);
2801
+ outline-offset: var(--inkra-focus-offset);
2802
+ }
2803
+
2804
+ .inkra-guide__skip-layer {
2805
+ inset: 0;
2806
+ pointer-events: none;
2807
+ position: fixed;
2808
+ z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0) + 2);
2809
+ }
2810
+
2811
+ .inkra-guide__skip {
2812
+ color: var(--inkra-ink-muted);
2813
+ opacity: .72;
2814
+ pointer-events: auto;
2815
+ position: absolute;
2816
+ }
2817
+
2818
+ .inkra-guide__skip:is(:hover, :focus-visible) {
2819
+ color: var(--inkra-ink);
2820
+ opacity: 1;
2821
+ }
2822
+
2823
+ .inkra-guide__skip[data-placement^="top"] {
2824
+ inset-block-start: max(var(--inkra-space-4), env(safe-area-inset-top));
2825
+ }
2826
+
2827
+ .inkra-guide__skip[data-placement^="bottom"] {
2828
+ inset-block-end: max(var(--inkra-space-4), env(safe-area-inset-bottom));
2829
+ }
2830
+
2831
+ .inkra-guide__skip[data-placement$="start"] {
2832
+ inset-inline-start: max(var(--inkra-space-4), env(safe-area-inset-left));
2833
+ }
2834
+
2835
+ .inkra-guide__skip[data-placement$="end"] {
2836
+ inset-inline-end: max(var(--inkra-space-4), env(safe-area-inset-right));
2837
+ }
2838
+
2839
+ .inkra-guide__surface {
2840
+ color: var(--inkra-ink);
2841
+ display: block;
2842
+ max-height: inherit;
2843
+ width: 100%;
2844
+ }
2845
+
2846
+ .inkra-guide__panel {
2847
+ box-sizing: border-box;
2848
+ display: grid;
2849
+ gap: var(--inkra-space-4);
2850
+ max-height: inherit;
2851
+ overflow: auto;
2852
+ overflow-wrap: anywhere;
2853
+ overscroll-behavior: contain;
2854
+ padding: var(--inkra-space-5);
2855
+ }
2856
+
2857
+ .inkra-guide__header,
2858
+ .inkra-guide__footer,
2859
+ .inkra-guide__navigation {
2860
+ align-items: center;
2861
+ display: flex;
2862
+ gap: var(--inkra-space-2);
2863
+ }
2864
+
2865
+ .inkra-guide__header {
2866
+ align-items: flex-start;
2867
+ }
2868
+
2869
+ .inkra-guide__heading {
2870
+ display: grid;
2871
+ flex: 1;
2872
+ gap: var(--inkra-space-1);
2873
+ min-width: 0;
2874
+ }
2875
+
2876
+ .inkra-guide__progress {
2877
+ color: var(--inkra-ink-subtle);
2878
+ font-family: var(--inkra-font-body);
2879
+ font-size: var(--inkra-text-sm);
2880
+ line-height: var(--inkra-line-ui);
2881
+ }
2882
+
2883
+ .inkra-guide__title {
2884
+ font-family: var(--inkra-font-display);
2885
+ font-size: var(--inkra-text-xl);
2886
+ font-weight: var(--inkra-weight-regular);
2887
+ line-height: var(--inkra-line-ui);
2888
+ margin: 0;
2889
+ }
2890
+
2891
+ .inkra-guide__description {
2892
+ color: var(--inkra-ink-muted);
2893
+ font-family: var(--inkra-font-body);
2894
+ font-size: var(--inkra-text-md);
2895
+ line-height: var(--inkra-line-body);
2896
+ }
2897
+
2898
+ .inkra-guide__close {
2899
+ flex: none;
2900
+ }
2901
+
2902
+ .inkra-guide__footer {
2903
+ flex-wrap: wrap;
2904
+ justify-content: space-between;
2905
+ }
2906
+
2907
+ .inkra-guide__footer > :empty {
2908
+ display: none;
2909
+ }
2910
+
2911
+ .inkra-guide__navigation {
2912
+ flex-wrap: wrap;
2913
+ justify-content: flex-end;
2914
+ margin-inline-start: auto;
2915
+ }
2916
+
2917
+ .inkra-guide__footer .inkra-button {
2918
+ max-width: 100%;
2919
+ }
2920
+
2921
+ @media (max-width: 30rem) {
2922
+ .inkra-guide__content {
2923
+ max-height: calc(100dvh - var(--inkra-space-4));
2924
+ max-width: calc(100dvw - var(--inkra-space-4));
2925
+ width: calc(100dvw - var(--inkra-space-4));
2926
+ }
2927
+
2928
+ .inkra-guide__panel {
2929
+ padding: var(--inkra-space-4);
2930
+ }
2931
+
2932
+ .inkra-guide__footer,
2933
+ .inkra-guide__navigation {
2934
+ width: 100%;
2935
+ }
2936
+
2937
+ .inkra-guide__footer > .inkra-button,
2938
+ .inkra-guide__navigation > .inkra-button {
2939
+ flex: 1 1 auto;
2940
+ }
2941
+ }
2942
+
2943
+ @media (prefers-reduced-motion: reduce) {
2944
+ .inkra-guide__content {
2945
+ animation: none !important;
2946
+ }
2947
+ }
2948
+
2949
+ @media (forced-colors: active) {
2950
+ .inkra-guide__backdrop {
2951
+ background: CanvasText;
2952
+ opacity: 0.25;
2953
+ }
2954
+
2955
+ .inkra-guide__spotlight {
2956
+ box-shadow: 0 0 0 100vmax color-mix(in srgb, CanvasText 25%, transparent);
2957
+ outline: 2px solid Highlight;
2958
+ }
2959
+
2960
+ .inkra-guide__surface {
2961
+ background: Canvas;
2962
+ border: 1px solid CanvasText;
2963
+ }
2964
+
2965
+ .inkra-guide__skip {
2966
+ color: ButtonText;
2967
+ opacity: 1;
2968
+ }
2969
+ }
2970
+
2971
+ .inkra-loading {
2972
+ box-sizing: border-box;
2973
+ color: var(--inkra-ink);
2974
+ font-family: var(--inkra-font-body);
2975
+ min-inline-size: 0;
2976
+ position: relative;
2977
+ }
2978
+
2979
+ .inkra-loading[data-mode="inline"] {
2980
+ align-items: center;
2981
+ display: inline-flex;
2982
+ inline-size: auto;
2983
+ max-inline-size: 100%;
2984
+ }
2985
+
2986
+ .inkra-loading[data-mode="region"] {
2987
+ column-gap: var(--inkra-space-2);
2988
+ display: grid;
2989
+ grid-template-columns: minmax(0, 1fr) minmax(0, 28rem) minmax(0, 1fr);
2990
+ grid-template-rows: auto minmax(0, 1fr) auto;
2991
+ inline-size: 100%;
2992
+ min-block-size: 12rem;
2993
+ overflow: hidden;
2994
+ }
2995
+
2996
+ .inkra-loading[data-mode="fullscreen"] {
2997
+ column-gap: var(--inkra-space-2);
2998
+ display: grid;
2999
+ grid-template-columns: minmax(0, 1fr) minmax(0, 28rem) minmax(0, 1fr);
3000
+ grid-template-rows: auto minmax(0, 1fr) auto;
3001
+ inset: 0;
3002
+ min-block-size: 100dvh;
3003
+ overflow: auto;
3004
+ overscroll-behavior: contain;
3005
+ padding: max(var(--inkra-space-4), env(safe-area-inset-top)) max(var(--inkra-space-4), env(safe-area-inset-right)) max(var(--inkra-space-4), env(safe-area-inset-bottom)) max(var(--inkra-space-4), env(safe-area-inset-left));
3006
+ position: fixed;
3007
+ z-index: var(--inkra-z-modal, 30);
3008
+ }
3009
+
3010
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]):has(.inkra-loading__slot[data-slot="center"]) {
3011
+ grid-template-rows: auto auto minmax(0, 1fr) auto;
3012
+ }
3013
+
3014
+ .inkra-loading[data-mode="fullscreen"]:not([data-blocking]) { pointer-events: none; }
3015
+ .inkra-loading[data-mode="fullscreen"]:not([data-blocking]) :is(.inkra-loading__actions, .inkra-loading__tip-controls, .inkra-loading__slot, .inkra-loading__content-layer) { pointer-events: auto; }
3016
+
3017
+ .inkra-loading__theme-anchor {
3018
+ block-size: 0;
3019
+ inline-size: 0;
3020
+ inset: 0 auto auto 0;
3021
+ pointer-events: none;
3022
+ position: fixed;
3023
+ }
3024
+
3025
+ .inkra-loading__sr-status {
3026
+ block-size: 1px;
3027
+ clip-path: inset(50%);
3028
+ inline-size: 1px;
3029
+ overflow: hidden;
3030
+ position: absolute;
3031
+ white-space: nowrap;
3032
+ }
3033
+
3034
+ .inkra-loading__background,
3035
+ .inkra-loading__veil {
3036
+ inset: 0;
3037
+ pointer-events: none;
3038
+ position: absolute;
3039
+ }
3040
+
3041
+ .inkra-loading[data-mode="fullscreen"] > :is(.inkra-loading__background, .inkra-loading__veil) {
3042
+ position: fixed;
3043
+ }
3044
+
3045
+ .inkra-loading__background { overflow: hidden; }
3046
+ .inkra-loading__background > :is(img, video, canvas, picture),
3047
+ .inkra-loading__background > picture > img {
3048
+ block-size: 100%;
3049
+ inline-size: 100%;
3050
+ object-fit: cover;
3051
+ }
3052
+
3053
+ .inkra-loading__veil {
3054
+ background: color-mix(in srgb, var(--inkra-paper) 86%, transparent);
3055
+ }
3056
+
3057
+ .inkra-loading[data-mode="inline"] .inkra-loading__background,
3058
+ .inkra-loading[data-mode="inline"] .inkra-loading__veil { display: none; }
3059
+
3060
+ .inkra-loading__layout {
3061
+ align-items: center;
3062
+ display: grid;
3063
+ grid-column: 1 / -1;
3064
+ grid-row: 2;
3065
+ inline-size: 100%;
3066
+ justify-items: center;
3067
+ min-block-size: 0;
3068
+ min-inline-size: 0;
3069
+ position: relative;
3070
+ z-index: 1;
3071
+ }
3072
+
3073
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]):has(.inkra-loading__slot[data-slot="center"]) .inkra-loading__layout {
3074
+ grid-row: 3;
3075
+ }
3076
+
3077
+ .inkra-loading__main {
3078
+ align-items: center;
3079
+ display: grid;
3080
+ gap: var(--inkra-space-4);
3081
+ inline-size: min(100%, 34rem);
3082
+ justify-items: center;
3083
+ min-inline-size: 0;
3084
+ padding: var(--inkra-space-4);
3085
+ text-align: center;
3086
+ }
3087
+
3088
+ .inkra-loading[data-mode="inline"] .inkra-loading__main {
3089
+ align-items: center;
3090
+ display: inline-flex;
3091
+ gap: var(--inkra-space-2);
3092
+ inline-size: auto;
3093
+ justify-items: initial;
3094
+ padding: 0;
3095
+ text-align: start;
3096
+ }
3097
+
3098
+ .inkra-loading[data-mode="inline"] .inkra-loading__copy { gap: 0; }
3099
+ .inkra-loading[data-mode="inline"] .inkra-loading__description,
3100
+ .inkra-loading[data-mode="inline"] .inkra-loading__tips,
3101
+ .inkra-loading[data-mode="inline"] .inkra-loading__stages { display: none; }
3102
+ .inkra-loading[data-mode="inline"] .inkra-loading__progress { inline-size: min(14rem, 45vw); }
3103
+ .inkra-loading[data-mode="inline"] .inkra-progress[data-shape="circular"] { inline-size: 32px; }
3104
+ .inkra-loading[data-mode="inline"] .inkra-progress__ring { --inkra-progress-diameter: 32px !important; }
3105
+
3106
+ .inkra-loading__logo {
3107
+ align-items: center;
3108
+ display: flex;
3109
+ justify-content: center;
3110
+ max-inline-size: 100%;
3111
+ }
3112
+
3113
+ .inkra-loading__logo > :is(img, svg) { block-size: auto; max-block-size: 7rem; max-inline-size: min(16rem, 100%); }
3114
+ .inkra-loading__copy { display: grid; gap: var(--inkra-space-2); max-inline-size: 100%; }
3115
+ .inkra-loading__title { font-size: var(--inkra-text-2xl); line-height: var(--inkra-line-tight); overflow-wrap: anywhere; }
3116
+ .inkra-loading__description { color: var(--inkra-ink-muted); font-size: var(--inkra-text-md); line-height: var(--inkra-line-body); overflow-wrap: anywhere; }
3117
+ .inkra-loading[data-mode="inline"] .inkra-loading__title { font-size: var(--inkra-text-md); line-height: var(--inkra-line-ui); }
3118
+
3119
+ .inkra-loading__progress { inline-size: min(100%, 28rem); }
3120
+ .inkra-loading__animation-progress {
3121
+ display: grid;
3122
+ gap: var(--inkra-space-2);
3123
+ inline-size: min(100%, 28rem);
3124
+ justify-items: center;
3125
+ }
3126
+ .inkra-loading[data-mode="inline"] .inkra-loading__animation-progress {
3127
+ align-items: center;
3128
+ display: inline-flex;
3129
+ inline-size: auto;
3130
+ }
3131
+ .inkra-loading__animation-label {
3132
+ line-height: var(--inkra-line-ui);
3133
+ overflow-wrap: anywhere;
3134
+ }
3135
+ .inkra-loading__animation {
3136
+ block-size: 48px;
3137
+ color: var(--inkra-accent-strong);
3138
+ flex: 0 0 auto;
3139
+ inline-size: 48px;
3140
+ position: relative;
3141
+ }
3142
+ .inkra-loading[data-mode="inline"] .inkra-loading__animation {
3143
+ block-size: 32px;
3144
+ inline-size: 32px;
3145
+ }
3146
+ .inkra-loading__animation-visual {
3147
+ block-size: 100%;
3148
+ display: block;
3149
+ inline-size: 100%;
3150
+ inset: 0;
3151
+ position: absolute;
3152
+ }
3153
+ .inkra-loading__animation-mark { position: absolute; }
3154
+
3155
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation {
3156
+ animation: inkra-loading-orbit 1100ms linear infinite;
3157
+ }
3158
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation-mark {
3159
+ block-size: 20.8333%;
3160
+ inline-size: 20.8333%;
3161
+ inset-block-start: 39.5833%;
3162
+ inset-inline-start: 39.5833%;
3163
+ transform: rotate(0deg) translateY(-175%);
3164
+ }
3165
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation-mark:nth-child(2) {
3166
+ opacity: .68;
3167
+ transform: rotate(120deg) translateY(-175%);
3168
+ }
3169
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation-mark:nth-child(3) {
3170
+ opacity: .4;
3171
+ transform: rotate(240deg) translateY(-175%);
3172
+ }
3173
+
3174
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation {
3175
+ display: block;
3176
+ }
3177
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation-mark {
3178
+ animation: inkra-loading-dot 900ms var(--inkra-ease) infinite;
3179
+ block-size: 20.8333%;
3180
+ inline-size: 20.8333%;
3181
+ inset-block-start: 39.5833%;
3182
+ inset-inline-start: 8.3333%;
3183
+ }
3184
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation-mark:nth-child(2) { animation-delay: 120ms; inset-inline-start: 39.5833%; }
3185
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation-mark:nth-child(3) { animation-delay: 240ms; inset-inline-start: 70.8333%; }
3186
+
3187
+ .inkra-loading[data-animation="pulse"] .inkra-loading__animation-mark {
3188
+ animation: inkra-loading-pulse 1500ms var(--inkra-ease) infinite;
3189
+ inset: 12.5%;
3190
+ }
3191
+ .inkra-loading[data-animation="pulse"] .inkra-loading__animation-mark:nth-child(2) { animation-delay: 300ms; }
3192
+ .inkra-loading[data-animation="pulse"] .inkra-loading__animation-mark:nth-child(3) { animation-delay: 600ms; }
3193
+
3194
+ .inkra-loading[data-animation="trail"] .inkra-loading__animation-mark {
3195
+ animation: inkra-loading-trail 1050ms var(--inkra-ease) infinite;
3196
+ block-size: 12.5%;
3197
+ inline-size: 58.3333%;
3198
+ inset-block-start: 25%;
3199
+ inset-inline-start: 20.8333%;
3200
+ transform-origin: center;
3201
+ }
3202
+ .inkra-loading[data-animation="trail"] .inkra-loading__animation-mark:nth-child(2) {
3203
+ animation-delay: 140ms;
3204
+ inset-block-start: 43.75%;
3205
+ }
3206
+ .inkra-loading[data-animation="trail"] .inkra-loading__animation-mark:nth-child(3) {
3207
+ animation-delay: 280ms;
3208
+ inset-block-start: 62.5%;
3209
+ }
3210
+
3211
+ .inkra-loading__stages { display: grid; gap: var(--inkra-space-2); inline-size: min(100%, 28rem); text-align: start; }
3212
+ .inkra-loading__stage { align-items: start; display: grid; gap: var(--inkra-space-3); grid-template-columns: 36px minmax(0, 1fr); min-inline-size: 0; }
3213
+ .inkra-loading__stage-marker { align-items: center; block-size: 32px; display: flex; inline-size: 32px; justify-content: center; }
3214
+ .inkra-loading__stage[data-state="pending"] { color: var(--inkra-ink-muted); }
3215
+ .inkra-loading__stage[data-state="complete"] { color: var(--inkra-success-foreground); }
3216
+ .inkra-loading__stage[data-state="error"] { color: var(--inkra-danger-foreground); }
3217
+ .inkra-loading__stage-copy { display: grid; gap: var(--inkra-space-1); min-inline-size: 0; overflow-wrap: anywhere; }
3218
+ .inkra-loading__stage-description { color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); line-height: var(--inkra-line-body); }
3219
+
3220
+ .inkra-loading__tips { display: grid; gap: var(--inkra-space-2); inline-size: min(100%, 32rem); min-block-size: 2.5rem; place-items: center; }
3221
+ .inkra-loading__tip { line-height: var(--inkra-line-body); max-inline-size: 100%; overflow-wrap: anywhere; }
3222
+ .inkra-loading__tips[data-transition="fade"] .inkra-loading__tip { animation: inkra-loading-tip-fade var(--inkra-motion-normal) var(--inkra-ease) both; }
3223
+ .inkra-loading__tips[data-transition="slide"] .inkra-loading__tip { animation: inkra-loading-tip-slide var(--inkra-motion-normal) var(--inkra-ease) both; }
3224
+ .inkra-loading__tip-controls { align-items: center; display: flex; gap: var(--inkra-space-2); }
3225
+ .inkra-loading__tip-position { color: var(--inkra-ink-muted); font-variant-numeric: tabular-nums; min-inline-size: 4ch; }
3226
+
3227
+ .inkra-loading__content-layer { inline-size: 100%; min-inline-size: 0; }
3228
+ .inkra-loading__actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--inkra-space-2); justify-content: center; }
3229
+
3230
+ .inkra-loading__slot {
3231
+ max-block-size: calc(50dvh - var(--inkra-space-8));
3232
+ max-inline-size: 100%;
3233
+ min-inline-size: 0;
3234
+ overflow: auto;
3235
+ overflow-wrap: anywhere;
3236
+ pointer-events: auto;
3237
+ position: relative;
3238
+ z-index: 2;
3239
+ }
3240
+ .inkra-loading__slot[data-slot="top-start"] { align-self: start; grid-column: 1; grid-row: 1; justify-self: start; margin-block-end: var(--inkra-space-4); }
3241
+ .inkra-loading__slot[data-slot="top-end"] { align-self: start; grid-column: 3; grid-row: 1; justify-self: end; margin-block-end: var(--inkra-space-4); }
3242
+ .inkra-loading__slot[data-slot="center"] { align-self: center; grid-column: 2; grid-row: 2; justify-self: center; margin-block-end: var(--inkra-space-4); }
3243
+ .inkra-loading__slot[data-slot="bottom-start"] { align-self: end; grid-column: 1; grid-row: 3; justify-self: start; margin-block-start: var(--inkra-space-4); }
3244
+ .inkra-loading__slot[data-slot="bottom-center"] { align-self: end; grid-column: 2; grid-row: 3; justify-self: center; margin-block-start: var(--inkra-space-4); }
3245
+ .inkra-loading__slot[data-slot="bottom-end"] { align-self: end; grid-column: 3; grid-row: 3; justify-self: end; margin-block-start: var(--inkra-space-4); }
3246
+
3247
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]):has(.inkra-loading__slot[data-slot="center"]) .inkra-loading__slot[data-slot^="bottom-"] {
3248
+ grid-row: 4;
3249
+ }
3250
+
3251
+ .inkra-loading[data-mode="region"] .inkra-loading__slot[data-slot$="start"] { margin-inline-start: var(--inkra-space-4); }
3252
+ .inkra-loading[data-mode="region"] .inkra-loading__slot[data-slot$="end"] { margin-inline-end: var(--inkra-space-4); }
3253
+
3254
+ .inkra-loading[data-preset="scene-bottom"] .inkra-loading__layout { align-items: end; }
3255
+ .inkra-loading[data-preset="scene-bottom"] .inkra-loading__main { padding-block-end: max(var(--inkra-space-8), 10dvh); }
3256
+ .inkra-loading[data-preset="intel"] .inkra-loading__main { justify-items: start; margin-inline-start: 0; text-align: start; }
3257
+ .inkra-loading[data-preset="staged"] .inkra-loading__main { align-items: start; grid-template-columns: minmax(0, .8fr) minmax(14rem, 1.2fr); text-align: start; }
3258
+ .inkra-loading[data-preset="staged"] .inkra-loading__copy,
3259
+ .inkra-loading[data-preset="staged"] .inkra-loading__logo { justify-self: start; }
3260
+ .inkra-loading[data-preset="staged"] .inkra-loading__stages { grid-column: 2; grid-row: 1 / span 5; }
3261
+ .inkra-loading[data-preset="edge"] { align-items: start; min-block-size: auto; padding: 0; }
3262
+ .inkra-loading[data-preset="edge"] .inkra-loading__veil,
3263
+ .inkra-loading[data-preset="edge"] .inkra-loading__background { display: none; }
3264
+ .inkra-loading[data-preset="edge"] .inkra-loading__layout { justify-items: stretch; }
3265
+ .inkra-loading[data-preset="edge"] .inkra-loading__main { align-items: center; display: flex; inline-size: 100%; justify-content: space-between; padding: var(--inkra-space-2) var(--inkra-space-4); text-align: start; }
3266
+ .inkra-loading__edge-line { block-size: 8px; inset-block-end: 0; inset-inline: 0; pointer-events: none; position: absolute; }
3267
+
3268
+ .inkra-loading__skeleton { display: grid; gap: var(--inkra-space-3); inline-size: min(100%, 36rem); }
3269
+ .inkra-loading__skeleton-grid { display: grid; gap: var(--inkra-space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
3270
+
3271
+ @keyframes inkra-loading-tip-fade { from { opacity: 0; } to { opacity: 1; } }
3272
+ @keyframes inkra-loading-tip-slide { from { opacity: 0; transform: translateY(var(--inkra-space-2)); } to { opacity: 1; transform: translateY(0); } }
3273
+ @keyframes inkra-loading-orbit { to { transform: rotate(360deg); } }
3274
+ @keyframes inkra-loading-dot { 0%, 70%, 100% { opacity: .36; transform: translateY(0); } 35% { opacity: 1; transform: translateY(-45%); } }
3275
+ @keyframes inkra-loading-pulse { 0% { opacity: .9; transform: scale(.35); } 75%, 100% { opacity: 0; transform: scale(1); } }
3276
+ @keyframes inkra-loading-trail { 0%, 100% { opacity: .28; transform: scaleX(.45); } 50% { opacity: 1; transform: scaleX(1); } }
3277
+
3278
+ @media (max-width: 40rem), (max-height: 32rem) {
3279
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]) {
3280
+ display: flex;
3281
+ flex-direction: column;
3282
+ gap: var(--inkra-space-2);
3283
+ }
3284
+ .inkra-loading[data-mode="fullscreen"] { padding: max(var(--inkra-space-2), env(safe-area-inset-top)) max(var(--inkra-space-2), env(safe-area-inset-right)) max(var(--inkra-space-2), env(safe-area-inset-bottom)) max(var(--inkra-space-2), env(safe-area-inset-left)); }
3285
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]) .inkra-loading__layout { flex: 1 0 auto; order: 4; }
3286
+ .inkra-loading__main { gap: var(--inkra-space-3); padding: var(--inkra-space-3); }
3287
+ .inkra-loading__title { font-size: var(--inkra-text-xl); }
3288
+ .inkra-loading[data-preset="staged"] .inkra-loading__main { grid-template-columns: minmax(0, 1fr); }
3289
+ .inkra-loading[data-preset="staged"] .inkra-loading__stages { grid-column: auto; grid-row: auto; }
3290
+ .inkra-loading__slot { flex: none; margin-block: 0 !important; max-block-size: none; max-inline-size: min(100%, 28rem); overflow: visible; }
3291
+ .inkra-loading__slot[data-slot="top-start"] { align-self: start; order: 1; }
3292
+ .inkra-loading__slot[data-slot="top-end"] { align-self: end; order: 2; }
3293
+ .inkra-loading__slot[data-slot="center"] { align-self: center; order: 3; }
3294
+ .inkra-loading__slot[data-slot="bottom-start"] { align-self: start; order: 5; }
3295
+ .inkra-loading__slot[data-slot="bottom-center"] { align-self: center; order: 6; }
3296
+ .inkra-loading__slot[data-slot="bottom-end"] { align-self: end; order: 7; }
3297
+ .inkra-loading__skeleton-grid { grid-template-columns: 1fr; }
3298
+ }
3299
+
3300
+ @media (prefers-reduced-motion: reduce) {
3301
+ .inkra-loading__tip,
3302
+ .inkra-loading__animation,
3303
+ .inkra-loading__animation * { animation: none !important; }
3304
+ }
3305
+
3306
+ @media (forced-colors: active) {
3307
+ .inkra-loading__veil { background: Canvas; opacity: .92; }
3308
+ .inkra-loading[data-blocking] { border: 1px solid CanvasText; }
3309
+ .inkra-loading__animation { color: CanvasText; }
3310
+ }
3311
+
3312
+ @media print {
3313
+ .inkra-loading[data-mode="fullscreen"] { min-block-size: auto; position: static; }
3314
+ .inkra-loading__background, .inkra-loading__veil { display: none; }
3315
+ .inkra-loading__tip,
3316
+ .inkra-loading__animation,
3317
+ .inkra-loading__animation * { animation: none !important; }
3318
+ }
3319
+
3320
+ .inkra-infinite-scroll {
3321
+ --inkra-infinite-scroll-pull-distance: 0px;
3322
+ --inkra-infinite-scroll-indicator-inline-offset: 0px;
3323
+ --inkra-infinite-scroll-indicator-block-offset: 0px;
3324
+ --inkra-infinite-scroll-indicator-viewport-inline-size: 100%;
3325
+ --inkra-infinite-scroll-indicator-viewport-block-size: 100%;
3326
+ position: relative;
3327
+ display: grid;
3328
+ grid-template-rows: auto minmax(min-content, 1fr) auto;
3329
+ max-inline-size: 100%;
3330
+ min-block-size: 0;
3331
+ min-inline-size: 0;
3332
+ overflow: auto;
3333
+ overscroll-behavior: contain;
3334
+ color: var(--inkra-ink);
3335
+ }
3336
+
3337
+ .inkra-infinite-scroll__body {
3338
+ display: grid;
3339
+ grid-template-columns: auto minmax(min-content, 1fr) auto;
3340
+ grid-row: 2;
3341
+ min-block-size: 0;
3342
+ min-inline-size: 0;
3343
+ transform: translate3d(0, 0, 0);
3344
+ transition: transform var(--inkra-motion-slow) cubic-bezier(0.22, 1.45, 0.36, 1);
3345
+ }
3346
+
3347
+ .inkra-infinite-scroll[data-pull-direction] > .inkra-infinite-scroll__body {
3348
+ transition: none;
3349
+ }
3350
+
3351
+ .inkra-infinite-scroll__content {
3352
+ grid-column: 2;
3353
+ grid-row: 1;
3354
+ min-block-size: 100%;
3355
+ min-inline-size: 100%;
3356
+ }
3357
+
3358
+ .inkra-infinite-scroll[data-pull-direction="top"] > .inkra-infinite-scroll__body {
3359
+ transform: translate3d(0, var(--inkra-infinite-scroll-pull-distance), 0);
3360
+ }
3361
+ .inkra-infinite-scroll[data-pull-direction="bottom"] > .inkra-infinite-scroll__body {
3362
+ transform: translate3d(0, calc(-1 * var(--inkra-infinite-scroll-pull-distance)), 0);
3363
+ }
3364
+ .inkra-infinite-scroll[data-pull-direction="left"] > .inkra-infinite-scroll__body {
3365
+ transform: translate3d(var(--inkra-infinite-scroll-pull-distance), 0, 0);
3366
+ }
3367
+ .inkra-infinite-scroll[data-pull-direction="right"] > .inkra-infinite-scroll__body {
3368
+ transform: translate3d(calc(-1 * var(--inkra-infinite-scroll-pull-distance)), 0, 0);
3369
+ }
3370
+
3371
+ .inkra-infinite-scroll__indicator {
3372
+ position: relative;
3373
+ display: none;
3374
+ min-block-size: 0;
3375
+ min-inline-size: 0;
3376
+ z-index: 1;
3377
+ }
3378
+ .inkra-infinite-scroll__indicator[data-active] { display: flex; }
3379
+ .inkra-infinite-scroll__indicator[data-direction="top"],
3380
+ .inkra-infinite-scroll__indicator[data-direction="bottom"] {
3381
+ inline-size: 100%;
3382
+ }
3383
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="top"],
3384
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="bottom"] {
3385
+ min-block-size: 52px;
3386
+ }
3387
+ .inkra-infinite-scroll__indicator[data-direction="left"],
3388
+ .inkra-infinite-scroll__indicator[data-direction="right"] {
3389
+ align-self: stretch;
3390
+ grid-row: 1;
3391
+ }
3392
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="left"],
3393
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="right"] {
3394
+ min-inline-size: 112px;
3395
+ }
3396
+ .inkra-infinite-scroll__indicator[data-direction="top"] { grid-row: 1; }
3397
+ .inkra-infinite-scroll__indicator[data-direction="bottom"] { grid-row: 3; }
3398
+ .inkra-infinite-scroll__indicator[data-direction="left"] { grid-column: 1; }
3399
+ .inkra-infinite-scroll__indicator[data-direction="right"] { grid-column: 3; }
3400
+
3401
+ /* Pull feedback reveals inside the elastic gap, without changing scroll layout. */
3402
+ .inkra-infinite-scroll__indicator[data-pulling] {
3403
+ position: absolute;
3404
+ grid-area: auto;
3405
+ left: var(--inkra-pull-left, 0px);
3406
+ top: var(--inkra-pull-top, 0px);
3407
+ inline-size: var(--inkra-pull-width, 0px);
3408
+ block-size: var(--inkra-pull-height, 0px);
3409
+ min-inline-size: 0 !important;
3410
+ min-block-size: 0 !important;
3411
+ overflow: clip;
3412
+ pointer-events: none;
3413
+ }
3414
+ .inkra-infinite-scroll__indicator[data-pulling] .inkra-infinite-scroll__indicator-surface {
3415
+ padding: 0;
3416
+ max-inline-size: none;
3417
+ min-block-size: 0;
3418
+ }
3419
+ .inkra-infinite-scroll__indicator[data-pulling][data-direction="left"] .inkra-infinite-scroll__loading-label,
3420
+ .inkra-infinite-scroll__indicator[data-pulling][data-direction="right"] .inkra-infinite-scroll__loading-label {
3421
+ display: none;
3422
+ }
3423
+
3424
+ .inkra-infinite-scroll__indicator-surface {
3425
+ display: flex;
3426
+ align-items: center;
3427
+ justify-content: center;
3428
+ inline-size: 100%;
3429
+ min-inline-size: 0;
3430
+ padding: var(--inkra-space-1) var(--inkra-space-2);
3431
+ }
3432
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__indicator-surface,
3433
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__indicator-surface {
3434
+ min-block-size: 100%;
3435
+ max-inline-size: 144px;
3436
+ }
3437
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="top"] .inkra-infinite-scroll__indicator-surface {
3438
+ inline-size: var(--inkra-infinite-scroll-indicator-viewport-inline-size);
3439
+ transform: translate3d(var(--inkra-infinite-scroll-indicator-inline-offset), 0, 0);
3440
+ }
3441
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="bottom"] .inkra-infinite-scroll__indicator-surface {
3442
+ inline-size: var(--inkra-infinite-scroll-indicator-viewport-inline-size);
3443
+ transform: translate3d(var(--inkra-infinite-scroll-indicator-inline-offset), 0, 0);
3444
+ }
3445
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="left"] .inkra-infinite-scroll__indicator-surface {
3446
+ block-size: var(--inkra-infinite-scroll-indicator-viewport-block-size);
3447
+ min-block-size: 0;
3448
+ transform: translate3d(0, var(--inkra-infinite-scroll-indicator-block-offset), 0);
3449
+ }
3450
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="right"] .inkra-infinite-scroll__indicator-surface {
3451
+ block-size: var(--inkra-infinite-scroll-indicator-viewport-block-size);
3452
+ min-block-size: 0;
3453
+ transform: translate3d(0, var(--inkra-infinite-scroll-indicator-block-offset), 0);
3454
+ }
3455
+ .inkra-infinite-scroll__indicator-content {
3456
+ display: flex;
3457
+ align-items: center;
3458
+ justify-content: center;
3459
+ flex-wrap: wrap;
3460
+ gap: var(--inkra-space-2);
3461
+ inline-size: 100%;
3462
+ min-inline-size: 0;
3463
+ overflow-wrap: anywhere;
3464
+ text-align: center;
3465
+ }
3466
+ .inkra-infinite-scroll__indicator-content > .inkra-progress { max-inline-size: 240px; }
3467
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__indicator-content > .inkra-progress,
3468
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__indicator-content > .inkra-progress { min-inline-size: 96px; }
3469
+ .inkra-infinite-scroll__loading {
3470
+ display: flex;
3471
+ align-items: center;
3472
+ justify-content: center;
3473
+ gap: var(--inkra-space-2);
3474
+ min-inline-size: 0;
2443
3475
  }
3476
+ .inkra-infinite-scroll__loading > .inkra-progress { flex: 0 0 auto; }
3477
+ .inkra-infinite-scroll__loading-label { min-inline-size: 0; white-space: nowrap; }
3478
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__loading,
3479
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__loading { flex-wrap: wrap; }
3480
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__loading-label,
3481
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__loading-label { white-space: normal; }
2444
3482
 
2445
- .inkra-select__item[data-highlighted] .inkra-select__item-surface,
2446
- .inkra-select__item[data-selected] .inkra-select__item-surface,
2447
- .inkra-select__item[data-state="checked"] .inkra-select__item-surface {
2448
- color: var(--inkra-selection-foreground);
3483
+ @media (prefers-reduced-motion: reduce) {
3484
+ .inkra-infinite-scroll__body { transition-duration: 0ms; }
2449
3485
  }
2450
3486
 
2451
- .inkra-select__item[data-highlighted] .inkra-select__item-surface > .inkra-pencil-surface__ink,
2452
- .inkra-select__item[data-selected] .inkra-select__item-surface > .inkra-pencil-surface__ink,
2453
- .inkra-select__item[data-state="checked"] .inkra-select__item-surface > .inkra-pencil-surface__ink {
2454
- opacity: 1;
3487
+ @media print {
3488
+ .inkra-infinite-scroll { overflow: visible; }
3489
+ .inkra-infinite-scroll__body { transform: none !important; }
2455
3490
  }
2456
3491
 
2457
- .inkra-select__item[data-disabled] {
2458
- cursor: not-allowed;
2459
- opacity: 0.5;
3492
+ .inkra-masonry {
3493
+ box-sizing: border-box;
3494
+ display: grid;
3495
+ gap: var(--inkra-masonry-row-gap, 16px) var(--inkra-masonry-column-gap, 16px);
3496
+ grid-template-columns: repeat(var(--inkra-masonry-columns, 1), minmax(0, 1fr));
3497
+ inline-size: 100%;
3498
+ max-inline-size: 100%;
3499
+ min-inline-size: 0;
3500
+ overflow: clip;
3501
+ overflow-clip-margin: 1px;
3502
+ position: relative;
2460
3503
  }
2461
3504
 
2462
- .inkra-select__item-indicator {
2463
- align-items: center;
2464
- display: inline-flex;
2465
- height: var(--inkra-icon-sm);
2466
- inset-inline-end: var(--inkra-space-3);
2467
- justify-content: center;
2468
- position: absolute;
2469
- top: 50%;
2470
- transform: translateY(-50%);
2471
- width: var(--inkra-icon-sm);
3505
+ .inkra-masonry[data-mode="adaptive"] {
3506
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--inkra-masonry-min-column-width, 240px)), 1fr));
2472
3507
  }
2473
3508
 
2474
- .inkra-select__scroll-button {
2475
- align-items: center;
2476
- color: var(--inkra-ink-muted);
2477
- cursor: default;
2478
- display: flex;
2479
- height: var(--inkra-control-xs);
2480
- justify-content: center;
3509
+ .inkra-masonry[data-layout="ready"] {
3510
+ display: block;
2481
3511
  }
2482
3512
 
2483
- .inkra-select__separator {
2484
- color: var(--inkra-border);
2485
- height: 8px;
2486
- margin: 0 var(--inkra-space-2);
3513
+ .inkra-masonry__item {
3514
+ box-sizing: border-box;
3515
+ max-inline-size: 100%;
3516
+ min-inline-size: 0;
2487
3517
  }
2488
3518
 
2489
- .inkra-select__separator > .inkra-pencil-line {
2490
- height: 8px;
2491
- width: 100%;
3519
+ .inkra-masonry[data-layout="ready"] > .inkra-masonry__item {
3520
+ inset-block-start: 0;
3521
+ left: 0;
3522
+ position: absolute;
2492
3523
  }
2493
3524
 
2494
- @keyframes inkra-select-content-in {
2495
- from {
2496
- opacity: 0;
2497
- transform: translateY(var(--inkra-space-1)) scale(0.98);
2498
- }
2499
- to {
2500
- opacity: 1;
2501
- transform: translateY(0) scale(1);
2502
- }
3525
+ .inkra-masonry[data-layout="ready"][data-animated] > .inkra-masonry__item {
3526
+ transition: transform var(--inkra-motion-normal, 180ms) var(--inkra-ease, ease);
2503
3527
  }
2504
3528
 
2505
- @keyframes inkra-select-content-out {
2506
- from {
2507
- opacity: 1;
2508
- transform: translateY(0) scale(1);
2509
- }
2510
- to {
2511
- opacity: 0;
2512
- transform: translateY(var(--inkra-space-1)) scale(0.98);
2513
- }
3529
+ .inkra-masonry__item > * {
3530
+ max-inline-size: 100%;
2514
3531
  }
2515
3532
 
2516
3533
  @media (prefers-reduced-motion: reduce) {
2517
- .inkra-select__content,
2518
- .inkra-select__content[data-ending-style],
2519
- .inkra-select__content[data-state="closed"] {
2520
- animation: none;
2521
- }
2522
-
2523
- .inkra-select__trigger-icon,
2524
- .inkra-select__focus-ring,
2525
- .inkra-select-stepper__button .inkra-pencil-icon,
2526
- .inkra-select__item-surface > .inkra-pencil-surface__ink {
3534
+ .inkra-masonry[data-layout="ready"][data-animated] > .inkra-masonry__item {
2527
3535
  transition-duration: 0ms;
2528
3536
  }
2529
3537
  }
2530
3538
 
2531
3539
  @media (forced-colors: active) {
2532
- .inkra-select__trigger:focus-visible {
2533
- outline: var(--inkra-focus-width) solid Highlight;
2534
- outline-offset: var(--inkra-focus-offset);
2535
- }
2536
-
2537
- .inkra-select__focus-ring {
2538
- display: none !important;
2539
- }
2540
-
2541
- .inkra-select__trigger-surface,
2542
- .inkra-select__content-surface {
2543
- background: Canvas;
2544
- border: 1px solid CanvasText;
2545
- }
2546
-
2547
- .inkra-select__trigger[data-invalid="true"] .inkra-select__trigger-surface {
2548
- border-color: Mark;
2549
- }
2550
-
2551
- .inkra-select__item[data-highlighted] .inkra-select__item-surface,
2552
- .inkra-select__item[data-selected] .inkra-select__item-surface,
2553
- .inkra-select__item[data-state="checked"] .inkra-select__item-surface {
2554
- background: Highlight;
2555
- color: HighlightText;
2556
- forced-color-adjust: none;
2557
- }
2558
-
2559
- .inkra-select__item:focus-visible {
2560
- outline: var(--inkra-focus-width) solid CanvasText;
2561
- outline-offset: calc(-1 * var(--inkra-focus-offset));
3540
+ .inkra-masonry[data-layout="ready"][data-animated] > .inkra-masonry__item {
3541
+ transition-duration: 0ms;
2562
3542
  }
2563
3543
  }
2564
3544
 
2565
3545
  @media print {
2566
- .inkra-select__content {
2567
- animation: none;
3546
+ .inkra-masonry,
3547
+ .inkra-masonry[data-layout="ready"] {
3548
+ block-size: auto !important;
3549
+ display: grid;
3550
+ overflow: visible;
2568
3551
  }
2569
- }
2570
3552
 
2571
- .inkra-tabs { min-width: 0; --inkra-tabs-font-size: var(--inkra-text-md); --inkra-tabs-padding: var(--inkra-space-3); --inkra-tabs-icon-size: 20px; }
2572
- .inkra-tabs[data-size="sm"] { --inkra-tabs-font-size: var(--inkra-text-sm); --inkra-tabs-padding: var(--inkra-space-2); --inkra-tabs-icon-size: 16px; }
2573
- .inkra-tabs[data-size="lg"] { --inkra-tabs-font-size: 17px; --inkra-tabs-padding: var(--inkra-space-4); --inkra-tabs-icon-size: 24px; }
2574
- .inkra-tabs__list {
2575
- display: flex;
2576
- gap: var(--inkra-space-2);
2577
- max-width: 100%;
2578
- overflow-x: auto;
2579
- overflow-y: hidden;
2580
- scroll-padding-inline: var(--inkra-focus-offset);
2581
- }
2582
- .inkra-tabs__list[data-orientation="vertical"] { flex-direction: column; }
2583
- .inkra-tabs__list[data-divided] { gap: 24px; }
2584
- .inkra-tabs__divider { position: absolute; color: var(--inkra-ink-muted); opacity: 0.56; }
2585
- .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="vertical"] { inset-inline-start: -16px; top: 8px; width: 8px; height: calc(100% - 16px); }
2586
- .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="horizontal"] { inset-inline: 8px; top: -16px; width: calc(100% - 16px); height: 8px; }
2587
- .inkra-tabs__trigger:first-child > .inkra-tabs__divider { display: none; }
2588
- .inkra-tabs__list[data-align="center"] { justify-content: safe center; }
2589
- .inkra-tabs__list[data-align="end"] { justify-content: safe end; }
2590
- .inkra-tabs__list[data-full-width] { width: 100%; }
2591
- .inkra-tabs__list[data-full-width] > .inkra-tabs__trigger { flex: 1 0 0; }
2592
- .inkra-tabs__list[data-orientation="vertical"][data-full-width] > .inkra-tabs__trigger { flex: none; width: 100%; }
2593
- .inkra-tabs__trigger {
2594
- position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center;
2595
- min-height: var(--inkra-touch-target); min-width: var(--inkra-touch-target);
2596
- padding: var(--inkra-space-2) var(--inkra-tabs-padding); border: 0; gap: var(--inkra-space-2);
2597
- background: transparent; color: var(--inkra-ink-muted); font: inherit;
2598
- white-space: nowrap; cursor: pointer; border-radius: var(--inkra-radius-md);
2599
- font-size: var(--inkra-tabs-font-size); line-height: var(--inkra-line-ui);
2600
- }
2601
- .inkra-tabs[data-size="lg"] .inkra-tabs__trigger { min-height: 48px; }
2602
- .inkra-tabs__icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--inkra-tabs-icon-size); height: var(--inkra-tabs-icon-size); flex: none; pointer-events: none; }
2603
- .inkra-tabs__icon > * { width: 100%; height: 100%; }
2604
- .inkra-tabs__trigger[data-state="active"] { color: var(--inkra-selection-foreground); }
2605
- .inkra-tabs__trigger:disabled { cursor: not-allowed; opacity: 0.55; }
2606
- .inkra-tabs__trigger:focus-visible { outline: 0; }
2607
- .inkra-pencil-surface.inkra-tabs__focus-ring {
2608
- --inkra-accent-strong: var(--inkra-focus);
2609
- position: absolute !important;
2610
- display: block !important;
2611
- inset: var(--inkra-focus-width);
2612
- pointer-events: none;
2613
- opacity: 0;
2614
- z-index: 2;
2615
- }
2616
- .inkra-tabs__trigger:focus-visible > .inkra-pencil-surface.inkra-tabs__focus-ring { opacity: 1; }
2617
- .inkra-tabs__content:focus-visible {
2618
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
2619
- outline-offset: calc(-1 * var(--inkra-focus-width));
2620
- }
2621
- .inkra-pencil-surface.inkra-tabs__selection { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
2622
- .inkra-tabs__trigger[data-state="active"] > .inkra-pencil-surface.inkra-tabs__selection { opacity: 1; }
2623
- .inkra-tabs__label { position: relative; }
2624
- .inkra-tabs__content { min-width: 0; }
2625
- .inkra-tabs__content[hidden] { display: none !important; }
2626
- .inkra-tabs__overflow { display: flex; align-items: center; min-width: 0; max-width: 100%; position: relative; }
2627
- .inkra-tabs__overflow > .inkra-tabs__list { flex: 1 1 auto; min-width: 0; }
2628
- .inkra-tabs__scroll-button, .inkra-tabs__more { flex: 0 0 44px; }
2629
- .inkra-tabs__overflow-icon { display: inline-flex; width: 32px; height: 32px; position: relative; pointer-events: none; }
2630
- .inkra-tabs__overflow-icon[data-down] { transform: rotate(90deg); }
2631
- .inkra-tabs__overflow-icon > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
2632
- .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: none; }
2633
- .inkra-tabs__overflow-icon > canvas:not([data-pencil-icon-ready]) { visibility: hidden; }
2634
- .inkra-tabs__list[data-overflow="menu"] { position: relative; overflow: hidden; }
2635
- .inkra-tabs__list[data-overflow="menu"][data-full-width] > .inkra-tabs__trigger { flex: 1 0 auto; }
2636
- .inkra-tabs__trigger[data-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; inset-inline-start: 0; top: 0; }
2637
- .inkra-tabs__list[data-overflow="buttons"] { scrollbar-width: none; }
2638
- .inkra-tabs__list[data-overflow="buttons"]::-webkit-scrollbar { display: none; }
2639
- @media (forced-colors: active) {
2640
- .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
2641
- .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2642
- .inkra-tabs__trigger:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
2643
- .inkra-pencil-surface.inkra-tabs__selection { display: none !important; }
2644
- .inkra-tabs__trigger[data-state="active"] { color: Highlight; outline: 2px solid Highlight; outline-offset: -2px; }
2645
- }
2646
- @media print {
2647
- .inkra-pencil-surface.inkra-tabs__selection, .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2648
- .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
3553
+ .inkra-masonry[data-layout="ready"] > .inkra-masonry__item {
3554
+ inline-size: auto !important;
3555
+ position: static;
3556
+ transform: none !important;
3557
+ transition: none;
3558
+ }
2649
3559
  }
2650
3560
 
2651
3561
  .inkra-tooltip__content {
@@ -3476,7 +4386,7 @@
3476
4386
 
3477
4387
  .inkra-slot__empty-mark {
3478
4388
  color: var(--inkra-ink-muted);
3479
- font-family: "Trip Map Hand", "HanziPen SC", "Hannotate SC", "Kaiti SC", "STKaiti", cursive;
4389
+ font-family: var(--inkra-font-hand);
3480
4390
  font-size: calc(var(--inkra-slot-size) * 0.4);
3481
4391
  line-height: 1;
3482
4392
  }
@@ -3941,7 +4851,53 @@
3941
4851
 
3942
4852
  .inkra-number-ticker__native-value {
3943
4853
  font: inherit;
3944
- font-family: "Trip Map Hand", "HanziPen SC", "Hannotate SC", "Kaiti SC", "STKaiti", cursive;
4854
+ font-family: var(--inkra-font-hand);
4855
+ }
4856
+
4857
+ .inkra-number-ticker__reels {
4858
+ display: inline-flex;
4859
+ align-items: baseline;
4860
+ unicode-bidi: isolate;
4861
+ line-height: var(--inkra-line-ui, 1.45);
4862
+ }
4863
+
4864
+ .inkra-number-ticker__column {
4865
+ display: inline-grid;
4866
+ flex: none;
4867
+ overflow: hidden;
4868
+ vertical-align: bottom;
4869
+ }
4870
+
4871
+ .inkra-number-ticker__column-inner {
4872
+ display: grid;
4873
+ min-width: 0;
4874
+ height: 1lh;
4875
+ overflow: hidden;
4876
+ }
4877
+
4878
+ .inkra-number-ticker__face {
4879
+ grid-area: 1 / 1;
4880
+ display: flex;
4881
+ justify-content: center;
4882
+ align-items: center;
4883
+ height: 1lh;
4884
+ white-space: pre;
4885
+ }
4886
+
4887
+ .inkra-number-ticker__column[data-digit] .inkra-number-ticker__face {
4888
+ width: 1ch;
4889
+ }
4890
+
4891
+ .inkra-number-ticker__face > .inkra-pencil-text {
4892
+ flex: none;
4893
+ }
4894
+
4895
+ @media (prefers-reduced-motion: reduce), print {
4896
+ .inkra-number-ticker__column { grid-template-columns: 1fr !important; }
4897
+ .inkra-number-ticker__column[data-digit] { width: 1ch !important; }
4898
+ .inkra-number-ticker__column[data-departing] { display: none; }
4899
+ .inkra-number-ticker__face[data-face="from"] { display: none; }
4900
+ .inkra-number-ticker__face[data-face="to"] { transform: none !important; opacity: 1 !important; }
3945
4901
  }
3946
4902
 
3947
4903
  .inkra-number-ticker__prefix,
@@ -5719,6 +6675,7 @@ div.inkra-choice-grid > .inkra-radio-group {
5719
6675
  }
5720
6676
 
5721
6677
  .inkra-image-viewer__body {
6678
+ position: relative;
5722
6679
  display: grid;
5723
6680
  flex: 1 1 auto;
5724
6681
  min-block-size: var(--inkra-touch-target);
@@ -5866,6 +6823,24 @@ div.inkra-choice-grid > .inkra-radio-group {
5866
6823
  padding: var(--inkra-focus-offset);
5867
6824
  position: relative;
5868
6825
  scrollbar-gutter: auto;
6826
+ pointer-events: auto;
6827
+ }
6828
+
6829
+ .inkra-image-viewer__floating-tools {
6830
+ position: absolute;
6831
+ inset-inline: max(var(--inkra-space-3), env(safe-area-inset-left)) max(var(--inkra-space-3), env(safe-area-inset-right));
6832
+ inset-block-start: max(var(--inkra-space-3), env(safe-area-inset-top));
6833
+ display: flex;
6834
+ justify-content: center;
6835
+ padding-inline: var(--inkra-touch-target);
6836
+ pointer-events: none;
6837
+ z-index: 6;
6838
+ }
6839
+
6840
+ .inkra-image-viewer__floating-tools[data-position="bottom"] {
6841
+ inset-block-start: auto;
6842
+ inset-block-end: max(var(--inkra-space-3), env(safe-area-inset-bottom));
6843
+ padding-inline: 0;
5869
6844
  }
5870
6845
 
5871
6846
  .inkra-image-viewer__video-navigation {
@@ -5985,6 +6960,7 @@ div.inkra-choice-grid > .inkra-radio-group {
5985
6960
  @media print {
5986
6961
  .inkra-image-viewer__close-control,
5987
6962
  .inkra-image-viewer__navigation,
6963
+ .inkra-image-viewer__floating-tools,
5988
6964
  .inkra-image-viewer__bottom { display: none; }
5989
6965
  }
5990
6966
 
@@ -7012,26 +7988,38 @@ div.inkra-choice-grid > .inkra-radio-group {
7012
7988
  .inkra-inventory-grid__item, .inkra-inventory-grid__preview, .inkra-inventory-grid__cell, .inkra-inventory-grid__blocked { position: absolute; }
7013
7989
  .inkra-inventory-grid__item { outline: none; pointer-events: none; }
7014
7990
  .inkra-inventory-grid__cell { box-sizing: border-box; display: grid; place-items: center; pointer-events: auto; touch-action: none; cursor: grab; }
7015
- .inkra-inventory-grid__cell-surface { position: absolute; inset: 2px; pointer-events: none; }
7991
+ .inkra-inventory-grid__shape { position: absolute; inset: 0 auto auto 0; pointer-events: none; color: var(--inkra-border-strong); }
7992
+ .inkra-inventory-grid__shape-fill, .inkra-inventory-grid__shape-wash { position: absolute; inset: 0; pointer-events: none; }
7993
+ .inkra-inventory-grid__shape-wash { opacity: .65; --inkra-selection-pigment: var(--inkra-accent-soft); }
7994
+ .inkra-inventory-grid__shape-fill[data-pencil-fallback] { background: var(--inkra-paper); border: 0; }
7995
+ .inkra-inventory-grid__shape-fill[data-pencil-fallback] + .inkra-inventory-grid__shape-fallback { display: block; }
7996
+ .inkra-inventory-grid__shape-edge { position: absolute; }
7997
+ .inkra-inventory-grid__shape-fallback { position: absolute; inset: 0; display: none; }
7016
7998
  .inkra-inventory-grid__item-content { position: relative; z-index: 1; padding: 4px; max-width: 100%; max-height: 100%; overflow: hidden; pointer-events: none; font-size: 13px; overflow-wrap: anywhere; text-align: center; }
7017
- .inkra-inventory-grid__item[data-selected] .inkra-inventory-grid__cell-surface { color: var(--inkra-accent-strong); }
7018
- .inkra-inventory-grid__cell-focus { position: absolute; inset: 3px; pointer-events: none; opacity: 0; color: var(--inkra-focus); }
7019
- .inkra-inventory-grid__item:focus-visible .inkra-inventory-grid__cell-focus { opacity: 1; }
7999
+ .inkra-inventory-grid__item[data-selected] .inkra-inventory-grid__shape { color: var(--inkra-accent-strong); }
8000
+ .inkra-inventory-grid__item:focus-visible .inkra-inventory-grid__shape { color: var(--inkra-focus); --inkra-stroke-width: 2; }
8001
+ .inkra-inventory-grid__item[data-selected] .inkra-inventory-grid__shape-wash { opacity: 1; }
7020
8002
  .inkra-inventory-grid__item[data-dragging] { opacity: .28; }
7021
8003
  .inkra-inventory-grid__item[data-disabled] .inkra-inventory-grid__cell { cursor: default; touch-action: auto; }
7022
8004
  .inkra-inventory-grid__container[data-disabled], .inkra-inventory-grid[data-disabled] { opacity: .55; }
7023
8005
  .inkra-inventory-grid__preview { z-index: 2; pointer-events: none; color: var(--inkra-accent-strong); }
7024
8006
  .inkra-inventory-grid__preview[data-valid="false"] { color: var(--inkra-danger); }
7025
- .inkra-inventory-grid__preview[data-valid="false"] .inkra-inventory-grid__cell { outline: 2px solid var(--inkra-danger); outline-offset: -4px; }
8007
+ .inkra-inventory-grid__preview .inkra-inventory-grid__shape { color: inherit; --inkra-stroke-width: 2; }
7026
8008
  .inkra-inventory-grid__preview .inkra-inventory-grid__cell, .inkra-inventory-grid__overlay .inkra-inventory-grid__cell { pointer-events: none; }
7027
8009
  .inkra-inventory-grid__overlay { position: relative; opacity: .8; pointer-events: none; color: var(--inkra-ink); }
7028
8010
  .inkra-inventory-grid__blocked { display: grid; place-items: center; color: var(--inkra-ink-muted); pointer-events: none; }
7029
8011
  .inkra-inventory-grid__announcement { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
7030
8012
  @media (forced-colors: active) {
7031
8013
  .inkra-inventory-grid__board { border: 1px solid CanvasText; }
7032
- .inkra-inventory-grid__cell { border: 1px solid CanvasText; background: Canvas; }
7033
- .inkra-inventory-grid__item:focus-visible .inkra-inventory-grid__cell { outline: 2px solid Highlight; outline-offset: -3px; }
7034
- .inkra-inventory-grid__preview .inkra-inventory-grid__cell { border: 3px solid Highlight; }
8014
+ .inkra-inventory-grid__shape-fill { background: Canvas; }
8015
+ .inkra-inventory-grid__shape-fallback { display: block; color: CanvasText; }
8016
+ .inkra-inventory-grid__shape-edge { display: none; }
8017
+ .inkra-inventory-grid__item:focus-visible .inkra-inventory-grid__shape-fallback,
8018
+ .inkra-inventory-grid__preview .inkra-inventory-grid__shape-fallback { color: Highlight; stroke-width: 3px; }
8019
+ }
8020
+ @media print {
8021
+ .inkra-inventory-grid__shape-fallback { display: block; }
8022
+ .inkra-inventory-grid__shape-edge { display: none; }
7035
8023
  }
7036
8024
 
7037
8025
  .inkra-sparkline { position: relative; display: inline-grid; gap: var(--inkra-space-1, 4px); max-inline-size: 100%; color: var(--inkra-ink); font-size: var(--inkra-text-sm); }
@@ -7964,7 +8952,7 @@ div.inkra-choice-grid > .inkra-radio-group {
7964
8952
  .inkra-markdown__code-surface {
7965
8953
  background: transparent;
7966
8954
  color: var(--inkra-ink);
7967
- font-family: "Trip Map Hand", var(--inkra-font-hand);
8955
+ font-family: var(--inkra-font-hand);
7968
8956
  font-size: var(--inkra-text-md);
7969
8957
  font-weight: var(--inkra-weight-regular);
7970
8958
  line-height: 1.8;
@@ -8829,7 +9817,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
8829
9817
  align-items: center;
8830
9818
  box-sizing: border-box;
8831
9819
  display: inline-flex;
8832
- font-family: "Trip Map Hand", "HanziPen SC", "Hannotate SC", "Kaiti SC", "STKaiti", cursive;
9820
+ font-family: var(--inkra-font-hand);
8833
9821
  font-size: var(--inkra-breadcrumb-item-font-size);
8834
9822
  gap: var(--inkra-breadcrumb-item-gap);
8835
9823
  justify-content: center;