@inkra/react 0.6.0 → 0.9.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 (72) hide show
  1. package/README.md +166 -1
  2. package/dist/Button.js +1 -1
  3. package/dist/PencilIcon.d.ts +14 -1
  4. package/dist/PencilIcon.js +88 -52
  5. package/dist/PencilText.js +8 -0
  6. package/dist/form/Textarea.d.ts +4 -0
  7. package/dist/form/Textarea.js +14 -8
  8. package/dist/form/index.d.ts +1 -1
  9. package/dist/form/textareaSizing.d.ts +29 -0
  10. package/dist/form/textareaSizing.js +153 -0
  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 +15 -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 +6 -0
  18. package/dist/index.js +5 -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/inventory-grid/index.d.ts +35 -0
  28. package/dist/inventory-grid/index.js +215 -0
  29. package/dist/inventory-grid/model.d.ts +56 -0
  30. package/dist/inventory-grid/model.js +93 -0
  31. package/dist/inventory-grid/outline.d.ts +9 -0
  32. package/dist/inventory-grid/outline.js +54 -0
  33. package/dist/layout/GridBoard.d.ts +22 -0
  34. package/dist/layout/GridBoard.js +113 -0
  35. package/dist/layout/GridResizable.d.ts +31 -0
  36. package/dist/layout/GridResizable.js +35 -0
  37. package/dist/layout/index.d.ts +19 -4
  38. package/dist/layout/index.js +45 -9
  39. package/dist/layout/swipeNavigation.d.ts +15 -0
  40. package/dist/layout/swipeNavigation.js +121 -0
  41. package/dist/loading/index.d.ts +58 -0
  42. package/dist/loading/index.js +188 -0
  43. package/dist/loading/locales.d.ts +15 -0
  44. package/dist/loading/locales.js +34 -0
  45. package/dist/loading/model.d.ts +6 -0
  46. package/dist/loading/model.js +29 -0
  47. package/dist/masonry/index.d.ts +25 -0
  48. package/dist/masonry/index.js +227 -0
  49. package/dist/masonry/layout.d.ts +35 -0
  50. package/dist/masonry/layout.js +67 -0
  51. package/dist/number-ticker/RollingValue.d.ts +6 -0
  52. package/dist/number-ticker/RollingValue.js +10 -0
  53. package/dist/number-ticker/index.d.ts +4 -0
  54. package/dist/number-ticker/index.js +55 -7
  55. package/dist/number-ticker/rolling.d.ts +35 -0
  56. package/dist/number-ticker/rolling.js +87 -0
  57. package/dist/pagination/index.d.ts +17 -0
  58. package/dist/pagination/index.js +30 -6
  59. package/dist/styles/base.css +9 -1
  60. package/dist/styles/form.css +10 -0
  61. package/dist/styles/guide.css +202 -0
  62. package/dist/styles/image-viewer.css +20 -0
  63. package/dist/styles/infinite-scroll.css +171 -0
  64. package/dist/styles/inventory-grid.css +43 -0
  65. package/dist/styles/layout.css +85 -0
  66. package/dist/styles/loading.css +348 -0
  67. package/dist/styles/masonry.css +68 -0
  68. package/dist/styles/number-ticker.css +46 -0
  69. package/dist/styles/pagination.css +10 -0
  70. package/dist/styles.css +1162 -146
  71. package/dist/toast/manager.d.ts +4 -4
  72. package/package.json +33 -1
package/dist/styles.css CHANGED
@@ -373,6 +373,14 @@
373
373
  opacity: 0;
374
374
  }
375
375
 
376
+ .inkra-button[data-variant="ghost"] > .inkra-button__surface > .inkra-pencil-surface__border {
377
+ display: none;
378
+ }
379
+
380
+ .inkra-button[data-variant="ghost"] > .inkra-button__surface > .inkra-pencil-surface__content {
381
+ clip-path: none;
382
+ }
383
+
376
384
  .inkra-button[data-variant="ghost"]:hover:not(:disabled):not([aria-disabled="true"])
377
385
  .inkra-button__surface > .inkra-pencil-surface__ink,
378
386
  .inkra-button[data-variant="ghost"]:focus-visible
@@ -391,7 +399,7 @@
391
399
  .inkra-button[data-variant="ghost"]:focus-visible
392
400
  .inkra-button__surface[data-pencil-fallback="true"] {
393
401
  background: var(--inkra-surface-muted);
394
- border-color: var(--inkra-border);
402
+ border-color: transparent;
395
403
  }
396
404
 
397
405
  .inkra-button[data-variant="link"] .inkra-button__label {
@@ -867,6 +875,16 @@
867
875
  resize: none;
868
876
  }
869
877
 
878
+ /* Native rows establish the initial editor height; counters remain a separate row. */
879
+ .inkra-field-control-hit--textarea[data-row-sizing="true"] .inkra-field-control--textarea {
880
+ min-height: 0;
881
+ }
882
+
883
+ .inkra-field-control-hit--textarea[data-row-sizing="true"] .inkra-textarea {
884
+ flex: none;
885
+ min-height: 0;
886
+ }
887
+
870
888
  .inkra-textarea__footer {
871
889
  display: flex;
872
890
  align-items: center;
@@ -2458,176 +2476,969 @@
2458
2476
  color: var(--inkra-ink-muted);
2459
2477
  cursor: default;
2460
2478
  display: flex;
2461
- height: var(--inkra-control-xs);
2479
+ height: var(--inkra-control-xs);
2480
+ justify-content: center;
2481
+ }
2482
+
2483
+ .inkra-select__separator {
2484
+ color: var(--inkra-border);
2485
+ height: 8px;
2486
+ margin: 0 var(--inkra-space-2);
2487
+ }
2488
+
2489
+ .inkra-select__separator > .inkra-pencil-line {
2490
+ height: 8px;
2491
+ width: 100%;
2492
+ }
2493
+
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
+ }
2503
+ }
2504
+
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
+ }
2514
+ }
2515
+
2516
+ @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 {
2527
+ transition-duration: 0ms;
2528
+ }
2529
+ }
2530
+
2531
+ @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));
2562
+ }
2563
+ }
2564
+
2565
+ @media print {
2566
+ .inkra-select__content {
2567
+ animation: none;
2568
+ }
2569
+ }
2570
+
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; }
2649
+ }
2650
+
2651
+ .inkra-guide__spotlight,
2652
+ .inkra-guide__backdrop {
2653
+ inset: 0;
2654
+ pointer-events: none;
2655
+ position: fixed;
2656
+ z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0));
2657
+ }
2658
+
2659
+ .inkra-guide__backdrop {
2660
+ background: var(--inkra-overlay);
2661
+ }
2662
+
2663
+ .inkra-guide__spotlight {
2664
+ box-shadow: 0 0 0 100vmax var(--inkra-overlay);
2665
+ overflow: visible;
2666
+ }
2667
+
2668
+ .inkra-guide__spotlight > .inkra-pencil-surface__ink,
2669
+ .inkra-guide__spotlight > .inkra-pencil-surface__border {
2670
+ border-radius: var(--inkra-guide-highlight-radius, 8px);
2671
+ }
2672
+
2673
+ .inkra-guide__content {
2674
+ max-height: min(70dvh, var(--radix-popover-content-available-height, 70dvh));
2675
+ max-width: min(24rem, calc(100dvw - var(--inkra-space-6)));
2676
+ outline: 0;
2677
+ transform-origin: var(--radix-popover-content-transform-origin);
2678
+ width: min(22rem, calc(100dvw - var(--inkra-space-6)));
2679
+ z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0) + 1);
2680
+ }
2681
+
2682
+ .inkra-guide__content:focus-visible {
2683
+ outline: var(--inkra-focus-width) solid var(--inkra-focus);
2684
+ outline-offset: var(--inkra-focus-offset);
2685
+ }
2686
+
2687
+ .inkra-guide__skip-layer {
2688
+ inset: 0;
2689
+ pointer-events: none;
2690
+ position: fixed;
2691
+ z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0) + 2);
2692
+ }
2693
+
2694
+ .inkra-guide__skip {
2695
+ color: var(--inkra-ink-muted);
2696
+ opacity: .72;
2697
+ pointer-events: auto;
2698
+ position: absolute;
2699
+ }
2700
+
2701
+ .inkra-guide__skip:is(:hover, :focus-visible) {
2702
+ color: var(--inkra-ink);
2703
+ opacity: 1;
2704
+ }
2705
+
2706
+ .inkra-guide__skip[data-placement^="top"] {
2707
+ inset-block-start: max(var(--inkra-space-4), env(safe-area-inset-top));
2708
+ }
2709
+
2710
+ .inkra-guide__skip[data-placement^="bottom"] {
2711
+ inset-block-end: max(var(--inkra-space-4), env(safe-area-inset-bottom));
2712
+ }
2713
+
2714
+ .inkra-guide__skip[data-placement$="start"] {
2715
+ inset-inline-start: max(var(--inkra-space-4), env(safe-area-inset-left));
2716
+ }
2717
+
2718
+ .inkra-guide__skip[data-placement$="end"] {
2719
+ inset-inline-end: max(var(--inkra-space-4), env(safe-area-inset-right));
2720
+ }
2721
+
2722
+ .inkra-guide__surface {
2723
+ color: var(--inkra-ink);
2724
+ display: block;
2725
+ max-height: inherit;
2726
+ width: 100%;
2727
+ }
2728
+
2729
+ .inkra-guide__panel {
2730
+ box-sizing: border-box;
2731
+ display: grid;
2732
+ gap: var(--inkra-space-4);
2733
+ max-height: inherit;
2734
+ overflow: auto;
2735
+ overflow-wrap: anywhere;
2736
+ overscroll-behavior: contain;
2737
+ padding: var(--inkra-space-5);
2738
+ }
2739
+
2740
+ .inkra-guide__header,
2741
+ .inkra-guide__footer,
2742
+ .inkra-guide__navigation {
2743
+ align-items: center;
2744
+ display: flex;
2745
+ gap: var(--inkra-space-2);
2746
+ }
2747
+
2748
+ .inkra-guide__header {
2749
+ align-items: flex-start;
2750
+ }
2751
+
2752
+ .inkra-guide__heading {
2753
+ display: grid;
2754
+ flex: 1;
2755
+ gap: var(--inkra-space-1);
2756
+ min-width: 0;
2757
+ }
2758
+
2759
+ .inkra-guide__progress {
2760
+ color: var(--inkra-ink-subtle);
2761
+ font-family: var(--inkra-font-body);
2762
+ font-size: var(--inkra-text-sm);
2763
+ line-height: var(--inkra-line-ui);
2764
+ }
2765
+
2766
+ .inkra-guide__title {
2767
+ font-family: var(--inkra-font-display);
2768
+ font-size: var(--inkra-text-xl);
2769
+ font-weight: var(--inkra-weight-regular);
2770
+ line-height: var(--inkra-line-ui);
2771
+ margin: 0;
2772
+ }
2773
+
2774
+ .inkra-guide__description {
2775
+ color: var(--inkra-ink-muted);
2776
+ font-family: var(--inkra-font-body);
2777
+ font-size: var(--inkra-text-md);
2778
+ line-height: var(--inkra-line-body);
2779
+ }
2780
+
2781
+ .inkra-guide__close {
2782
+ flex: none;
2783
+ }
2784
+
2785
+ .inkra-guide__footer {
2786
+ flex-wrap: wrap;
2787
+ justify-content: space-between;
2788
+ }
2789
+
2790
+ .inkra-guide__footer > :empty {
2791
+ display: none;
2792
+ }
2793
+
2794
+ .inkra-guide__navigation {
2795
+ flex-wrap: wrap;
2796
+ justify-content: flex-end;
2797
+ margin-inline-start: auto;
2798
+ }
2799
+
2800
+ .inkra-guide__footer .inkra-button {
2801
+ max-width: 100%;
2802
+ }
2803
+
2804
+ @media (max-width: 30rem) {
2805
+ .inkra-guide__content {
2806
+ max-height: calc(100dvh - var(--inkra-space-4));
2807
+ max-width: calc(100dvw - var(--inkra-space-4));
2808
+ width: calc(100dvw - var(--inkra-space-4));
2809
+ }
2810
+
2811
+ .inkra-guide__panel {
2812
+ padding: var(--inkra-space-4);
2813
+ }
2814
+
2815
+ .inkra-guide__footer,
2816
+ .inkra-guide__navigation {
2817
+ width: 100%;
2818
+ }
2819
+
2820
+ .inkra-guide__footer > .inkra-button,
2821
+ .inkra-guide__navigation > .inkra-button {
2822
+ flex: 1 1 auto;
2823
+ }
2824
+ }
2825
+
2826
+ @media (prefers-reduced-motion: reduce) {
2827
+ .inkra-guide__content {
2828
+ animation: none !important;
2829
+ }
2830
+ }
2831
+
2832
+ @media (forced-colors: active) {
2833
+ .inkra-guide__backdrop {
2834
+ background: CanvasText;
2835
+ opacity: 0.25;
2836
+ }
2837
+
2838
+ .inkra-guide__spotlight {
2839
+ box-shadow: 0 0 0 100vmax color-mix(in srgb, CanvasText 25%, transparent);
2840
+ outline: 2px solid Highlight;
2841
+ }
2842
+
2843
+ .inkra-guide__surface {
2844
+ background: Canvas;
2845
+ border: 1px solid CanvasText;
2846
+ }
2847
+
2848
+ .inkra-guide__skip {
2849
+ color: ButtonText;
2850
+ opacity: 1;
2851
+ }
2852
+ }
2853
+
2854
+ .inkra-loading {
2855
+ box-sizing: border-box;
2856
+ color: var(--inkra-ink);
2857
+ font-family: var(--inkra-font-body);
2858
+ min-inline-size: 0;
2859
+ position: relative;
2860
+ }
2861
+
2862
+ .inkra-loading[data-mode="inline"] {
2863
+ align-items: center;
2864
+ display: inline-flex;
2865
+ inline-size: auto;
2866
+ max-inline-size: 100%;
2867
+ }
2868
+
2869
+ .inkra-loading[data-mode="region"] {
2870
+ column-gap: var(--inkra-space-2);
2871
+ display: grid;
2872
+ grid-template-columns: minmax(0, 1fr) minmax(0, 28rem) minmax(0, 1fr);
2873
+ grid-template-rows: auto minmax(0, 1fr) auto;
2874
+ inline-size: 100%;
2875
+ min-block-size: 12rem;
2876
+ overflow: hidden;
2877
+ }
2878
+
2879
+ .inkra-loading[data-mode="fullscreen"] {
2880
+ column-gap: var(--inkra-space-2);
2881
+ display: grid;
2882
+ grid-template-columns: minmax(0, 1fr) minmax(0, 28rem) minmax(0, 1fr);
2883
+ grid-template-rows: auto minmax(0, 1fr) auto;
2884
+ inset: 0;
2885
+ min-block-size: 100dvh;
2886
+ overflow: auto;
2887
+ overscroll-behavior: contain;
2888
+ 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));
2889
+ position: fixed;
2890
+ z-index: var(--inkra-z-modal, 30);
2891
+ }
2892
+
2893
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]):has(.inkra-loading__slot[data-slot="center"]) {
2894
+ grid-template-rows: auto auto minmax(0, 1fr) auto;
2895
+ }
2896
+
2897
+ .inkra-loading[data-mode="fullscreen"]:not([data-blocking]) { pointer-events: none; }
2898
+ .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; }
2899
+
2900
+ .inkra-loading__theme-anchor {
2901
+ block-size: 0;
2902
+ inline-size: 0;
2903
+ inset: 0 auto auto 0;
2904
+ pointer-events: none;
2905
+ position: fixed;
2906
+ }
2907
+
2908
+ .inkra-loading__sr-status {
2909
+ block-size: 1px;
2910
+ clip-path: inset(50%);
2911
+ inline-size: 1px;
2912
+ overflow: hidden;
2913
+ position: absolute;
2914
+ white-space: nowrap;
2915
+ }
2916
+
2917
+ .inkra-loading__background,
2918
+ .inkra-loading__veil {
2919
+ inset: 0;
2920
+ pointer-events: none;
2921
+ position: absolute;
2922
+ }
2923
+
2924
+ .inkra-loading[data-mode="fullscreen"] > :is(.inkra-loading__background, .inkra-loading__veil) {
2925
+ position: fixed;
2926
+ }
2927
+
2928
+ .inkra-loading__background { overflow: hidden; }
2929
+ .inkra-loading__background > :is(img, video, canvas, picture),
2930
+ .inkra-loading__background > picture > img {
2931
+ block-size: 100%;
2932
+ inline-size: 100%;
2933
+ object-fit: cover;
2934
+ }
2935
+
2936
+ .inkra-loading__veil {
2937
+ background: color-mix(in srgb, var(--inkra-paper) 86%, transparent);
2938
+ }
2939
+
2940
+ .inkra-loading[data-mode="inline"] .inkra-loading__background,
2941
+ .inkra-loading[data-mode="inline"] .inkra-loading__veil { display: none; }
2942
+
2943
+ .inkra-loading__layout {
2944
+ align-items: center;
2945
+ display: grid;
2946
+ grid-column: 1 / -1;
2947
+ grid-row: 2;
2948
+ inline-size: 100%;
2949
+ justify-items: center;
2950
+ min-block-size: 0;
2951
+ min-inline-size: 0;
2952
+ position: relative;
2953
+ z-index: 1;
2954
+ }
2955
+
2956
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]):has(.inkra-loading__slot[data-slot="center"]) .inkra-loading__layout {
2957
+ grid-row: 3;
2958
+ }
2959
+
2960
+ .inkra-loading__main {
2961
+ align-items: center;
2962
+ display: grid;
2963
+ gap: var(--inkra-space-4);
2964
+ inline-size: min(100%, 34rem);
2965
+ justify-items: center;
2966
+ min-inline-size: 0;
2967
+ padding: var(--inkra-space-4);
2968
+ text-align: center;
2969
+ }
2970
+
2971
+ .inkra-loading[data-mode="inline"] .inkra-loading__main {
2972
+ align-items: center;
2973
+ display: inline-flex;
2974
+ gap: var(--inkra-space-2);
2975
+ inline-size: auto;
2976
+ justify-items: initial;
2977
+ padding: 0;
2978
+ text-align: start;
2979
+ }
2980
+
2981
+ .inkra-loading[data-mode="inline"] .inkra-loading__copy { gap: 0; }
2982
+ .inkra-loading[data-mode="inline"] .inkra-loading__description,
2983
+ .inkra-loading[data-mode="inline"] .inkra-loading__tips,
2984
+ .inkra-loading[data-mode="inline"] .inkra-loading__stages { display: none; }
2985
+ .inkra-loading[data-mode="inline"] .inkra-loading__progress { inline-size: min(14rem, 45vw); }
2986
+ .inkra-loading[data-mode="inline"] .inkra-progress[data-shape="circular"] { inline-size: 32px; }
2987
+ .inkra-loading[data-mode="inline"] .inkra-progress__ring { --inkra-progress-diameter: 32px !important; }
2988
+
2989
+ .inkra-loading__logo {
2990
+ align-items: center;
2991
+ display: flex;
2992
+ justify-content: center;
2993
+ max-inline-size: 100%;
2994
+ }
2995
+
2996
+ .inkra-loading__logo > :is(img, svg) { block-size: auto; max-block-size: 7rem; max-inline-size: min(16rem, 100%); }
2997
+ .inkra-loading__copy { display: grid; gap: var(--inkra-space-2); max-inline-size: 100%; }
2998
+ .inkra-loading__title { font-size: var(--inkra-text-2xl); line-height: var(--inkra-line-tight); overflow-wrap: anywhere; }
2999
+ .inkra-loading__description { color: var(--inkra-ink-muted); font-size: var(--inkra-text-md); line-height: var(--inkra-line-body); overflow-wrap: anywhere; }
3000
+ .inkra-loading[data-mode="inline"] .inkra-loading__title { font-size: var(--inkra-text-md); line-height: var(--inkra-line-ui); }
3001
+
3002
+ .inkra-loading__progress { inline-size: min(100%, 28rem); }
3003
+ .inkra-loading__animation-progress {
3004
+ display: grid;
3005
+ gap: var(--inkra-space-2);
3006
+ inline-size: min(100%, 28rem);
3007
+ justify-items: center;
3008
+ }
3009
+ .inkra-loading[data-mode="inline"] .inkra-loading__animation-progress {
3010
+ align-items: center;
3011
+ display: inline-flex;
3012
+ inline-size: auto;
3013
+ }
3014
+ .inkra-loading__animation-label {
3015
+ line-height: var(--inkra-line-ui);
3016
+ overflow-wrap: anywhere;
3017
+ }
3018
+ .inkra-loading__animation {
3019
+ block-size: 48px;
3020
+ color: var(--inkra-accent-strong);
3021
+ flex: 0 0 auto;
3022
+ inline-size: 48px;
3023
+ position: relative;
3024
+ }
3025
+ .inkra-loading[data-mode="inline"] .inkra-loading__animation {
3026
+ block-size: 32px;
3027
+ inline-size: 32px;
3028
+ }
3029
+ .inkra-loading__animation-visual {
3030
+ block-size: 100%;
3031
+ display: block;
3032
+ inline-size: 100%;
3033
+ inset: 0;
3034
+ position: absolute;
3035
+ }
3036
+ .inkra-loading__animation-mark { position: absolute; }
3037
+
3038
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation {
3039
+ animation: inkra-loading-orbit 1100ms linear infinite;
3040
+ }
3041
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation-mark {
3042
+ block-size: 20.8333%;
3043
+ inline-size: 20.8333%;
3044
+ inset-block-start: 39.5833%;
3045
+ inset-inline-start: 39.5833%;
3046
+ transform: rotate(0deg) translateY(-175%);
3047
+ }
3048
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation-mark:nth-child(2) {
3049
+ opacity: .68;
3050
+ transform: rotate(120deg) translateY(-175%);
3051
+ }
3052
+ .inkra-loading[data-animation="orbit"] .inkra-loading__animation-mark:nth-child(3) {
3053
+ opacity: .4;
3054
+ transform: rotate(240deg) translateY(-175%);
3055
+ }
3056
+
3057
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation {
3058
+ display: block;
3059
+ }
3060
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation-mark {
3061
+ animation: inkra-loading-dot 900ms var(--inkra-ease) infinite;
3062
+ block-size: 20.8333%;
3063
+ inline-size: 20.8333%;
3064
+ inset-block-start: 39.5833%;
3065
+ inset-inline-start: 8.3333%;
3066
+ }
3067
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation-mark:nth-child(2) { animation-delay: 120ms; inset-inline-start: 39.5833%; }
3068
+ .inkra-loading[data-animation="dots"] .inkra-loading__animation-mark:nth-child(3) { animation-delay: 240ms; inset-inline-start: 70.8333%; }
3069
+
3070
+ .inkra-loading[data-animation="pulse"] .inkra-loading__animation-mark {
3071
+ animation: inkra-loading-pulse 1500ms var(--inkra-ease) infinite;
3072
+ inset: 12.5%;
3073
+ }
3074
+ .inkra-loading[data-animation="pulse"] .inkra-loading__animation-mark:nth-child(2) { animation-delay: 300ms; }
3075
+ .inkra-loading[data-animation="pulse"] .inkra-loading__animation-mark:nth-child(3) { animation-delay: 600ms; }
3076
+
3077
+ .inkra-loading[data-animation="trail"] .inkra-loading__animation-mark {
3078
+ animation: inkra-loading-trail 1050ms var(--inkra-ease) infinite;
3079
+ block-size: 12.5%;
3080
+ inline-size: 58.3333%;
3081
+ inset-block-start: 25%;
3082
+ inset-inline-start: 20.8333%;
3083
+ transform-origin: center;
3084
+ }
3085
+ .inkra-loading[data-animation="trail"] .inkra-loading__animation-mark:nth-child(2) {
3086
+ animation-delay: 140ms;
3087
+ inset-block-start: 43.75%;
3088
+ }
3089
+ .inkra-loading[data-animation="trail"] .inkra-loading__animation-mark:nth-child(3) {
3090
+ animation-delay: 280ms;
3091
+ inset-block-start: 62.5%;
3092
+ }
3093
+
3094
+ .inkra-loading__stages { display: grid; gap: var(--inkra-space-2); inline-size: min(100%, 28rem); text-align: start; }
3095
+ .inkra-loading__stage { align-items: start; display: grid; gap: var(--inkra-space-3); grid-template-columns: 36px minmax(0, 1fr); min-inline-size: 0; }
3096
+ .inkra-loading__stage-marker { align-items: center; block-size: 32px; display: flex; inline-size: 32px; justify-content: center; }
3097
+ .inkra-loading__stage[data-state="pending"] { color: var(--inkra-ink-muted); }
3098
+ .inkra-loading__stage[data-state="complete"] { color: var(--inkra-success-foreground); }
3099
+ .inkra-loading__stage[data-state="error"] { color: var(--inkra-danger-foreground); }
3100
+ .inkra-loading__stage-copy { display: grid; gap: var(--inkra-space-1); min-inline-size: 0; overflow-wrap: anywhere; }
3101
+ .inkra-loading__stage-description { color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); line-height: var(--inkra-line-body); }
3102
+
3103
+ .inkra-loading__tips { display: grid; gap: var(--inkra-space-2); inline-size: min(100%, 32rem); min-block-size: 2.5rem; place-items: center; }
3104
+ .inkra-loading__tip { line-height: var(--inkra-line-body); max-inline-size: 100%; overflow-wrap: anywhere; }
3105
+ .inkra-loading__tips[data-transition="fade"] .inkra-loading__tip { animation: inkra-loading-tip-fade var(--inkra-motion-normal) var(--inkra-ease) both; }
3106
+ .inkra-loading__tips[data-transition="slide"] .inkra-loading__tip { animation: inkra-loading-tip-slide var(--inkra-motion-normal) var(--inkra-ease) both; }
3107
+ .inkra-loading__tip-controls { align-items: center; display: flex; gap: var(--inkra-space-2); }
3108
+ .inkra-loading__tip-position { color: var(--inkra-ink-muted); font-variant-numeric: tabular-nums; min-inline-size: 4ch; }
3109
+
3110
+ .inkra-loading__content-layer { inline-size: 100%; min-inline-size: 0; }
3111
+ .inkra-loading__actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--inkra-space-2); justify-content: center; }
3112
+
3113
+ .inkra-loading__slot {
3114
+ max-block-size: calc(50dvh - var(--inkra-space-8));
3115
+ max-inline-size: 100%;
3116
+ min-inline-size: 0;
3117
+ overflow: auto;
3118
+ overflow-wrap: anywhere;
3119
+ pointer-events: auto;
3120
+ position: relative;
3121
+ z-index: 2;
3122
+ }
3123
+ .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); }
3124
+ .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); }
3125
+ .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); }
3126
+ .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); }
3127
+ .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); }
3128
+ .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); }
3129
+
3130
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]):has(.inkra-loading__slot[data-slot="center"]) .inkra-loading__slot[data-slot^="bottom-"] {
3131
+ grid-row: 4;
3132
+ }
3133
+
3134
+ .inkra-loading[data-mode="region"] .inkra-loading__slot[data-slot$="start"] { margin-inline-start: var(--inkra-space-4); }
3135
+ .inkra-loading[data-mode="region"] .inkra-loading__slot[data-slot$="end"] { margin-inline-end: var(--inkra-space-4); }
3136
+
3137
+ .inkra-loading[data-preset="scene-bottom"] .inkra-loading__layout { align-items: end; }
3138
+ .inkra-loading[data-preset="scene-bottom"] .inkra-loading__main { padding-block-end: max(var(--inkra-space-8), 10dvh); }
3139
+ .inkra-loading[data-preset="intel"] .inkra-loading__main { justify-items: start; margin-inline-start: 0; text-align: start; }
3140
+ .inkra-loading[data-preset="staged"] .inkra-loading__main { align-items: start; grid-template-columns: minmax(0, .8fr) minmax(14rem, 1.2fr); text-align: start; }
3141
+ .inkra-loading[data-preset="staged"] .inkra-loading__copy,
3142
+ .inkra-loading[data-preset="staged"] .inkra-loading__logo { justify-self: start; }
3143
+ .inkra-loading[data-preset="staged"] .inkra-loading__stages { grid-column: 2; grid-row: 1 / span 5; }
3144
+ .inkra-loading[data-preset="edge"] { align-items: start; min-block-size: auto; padding: 0; }
3145
+ .inkra-loading[data-preset="edge"] .inkra-loading__veil,
3146
+ .inkra-loading[data-preset="edge"] .inkra-loading__background { display: none; }
3147
+ .inkra-loading[data-preset="edge"] .inkra-loading__layout { justify-items: stretch; }
3148
+ .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; }
3149
+ .inkra-loading__edge-line { block-size: 8px; inset-block-end: 0; inset-inline: 0; pointer-events: none; position: absolute; }
3150
+
3151
+ .inkra-loading__skeleton { display: grid; gap: var(--inkra-space-3); inline-size: min(100%, 36rem); }
3152
+ .inkra-loading__skeleton-grid { display: grid; gap: var(--inkra-space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
3153
+
3154
+ @keyframes inkra-loading-tip-fade { from { opacity: 0; } to { opacity: 1; } }
3155
+ @keyframes inkra-loading-tip-slide { from { opacity: 0; transform: translateY(var(--inkra-space-2)); } to { opacity: 1; transform: translateY(0); } }
3156
+ @keyframes inkra-loading-orbit { to { transform: rotate(360deg); } }
3157
+ @keyframes inkra-loading-dot { 0%, 70%, 100% { opacity: .36; transform: translateY(0); } 35% { opacity: 1; transform: translateY(-45%); } }
3158
+ @keyframes inkra-loading-pulse { 0% { opacity: .9; transform: scale(.35); } 75%, 100% { opacity: 0; transform: scale(1); } }
3159
+ @keyframes inkra-loading-trail { 0%, 100% { opacity: .28; transform: scaleX(.45); } 50% { opacity: 1; transform: scaleX(1); } }
3160
+
3161
+ @media (max-width: 40rem), (max-height: 32rem) {
3162
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]) {
3163
+ display: flex;
3164
+ flex-direction: column;
3165
+ gap: var(--inkra-space-2);
3166
+ }
3167
+ .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)); }
3168
+ .inkra-loading:is([data-mode="region"], [data-mode="fullscreen"]) .inkra-loading__layout { flex: 1 0 auto; order: 4; }
3169
+ .inkra-loading__main { gap: var(--inkra-space-3); padding: var(--inkra-space-3); }
3170
+ .inkra-loading__title { font-size: var(--inkra-text-xl); }
3171
+ .inkra-loading[data-preset="staged"] .inkra-loading__main { grid-template-columns: minmax(0, 1fr); }
3172
+ .inkra-loading[data-preset="staged"] .inkra-loading__stages { grid-column: auto; grid-row: auto; }
3173
+ .inkra-loading__slot { flex: none; margin-block: 0 !important; max-block-size: none; max-inline-size: min(100%, 28rem); overflow: visible; }
3174
+ .inkra-loading__slot[data-slot="top-start"] { align-self: start; order: 1; }
3175
+ .inkra-loading__slot[data-slot="top-end"] { align-self: end; order: 2; }
3176
+ .inkra-loading__slot[data-slot="center"] { align-self: center; order: 3; }
3177
+ .inkra-loading__slot[data-slot="bottom-start"] { align-self: start; order: 5; }
3178
+ .inkra-loading__slot[data-slot="bottom-center"] { align-self: center; order: 6; }
3179
+ .inkra-loading__slot[data-slot="bottom-end"] { align-self: end; order: 7; }
3180
+ .inkra-loading__skeleton-grid { grid-template-columns: 1fr; }
3181
+ }
3182
+
3183
+ @media (prefers-reduced-motion: reduce) {
3184
+ .inkra-loading__tip,
3185
+ .inkra-loading__animation,
3186
+ .inkra-loading__animation * { animation: none !important; }
3187
+ }
3188
+
3189
+ @media (forced-colors: active) {
3190
+ .inkra-loading__veil { background: Canvas; opacity: .92; }
3191
+ .inkra-loading[data-blocking] { border: 1px solid CanvasText; }
3192
+ .inkra-loading__animation { color: CanvasText; }
3193
+ }
3194
+
3195
+ @media print {
3196
+ .inkra-loading[data-mode="fullscreen"] { min-block-size: auto; position: static; }
3197
+ .inkra-loading__background, .inkra-loading__veil { display: none; }
3198
+ .inkra-loading__tip,
3199
+ .inkra-loading__animation,
3200
+ .inkra-loading__animation * { animation: none !important; }
3201
+ }
3202
+
3203
+ .inkra-infinite-scroll {
3204
+ --inkra-infinite-scroll-pull-distance: 0px;
3205
+ --inkra-infinite-scroll-indicator-inline-offset: 0px;
3206
+ --inkra-infinite-scroll-indicator-block-offset: 0px;
3207
+ --inkra-infinite-scroll-indicator-viewport-inline-size: 100%;
3208
+ --inkra-infinite-scroll-indicator-viewport-block-size: 100%;
3209
+ position: relative;
3210
+ display: grid;
3211
+ grid-template-rows: auto minmax(min-content, 1fr) auto;
3212
+ max-inline-size: 100%;
3213
+ min-block-size: 0;
3214
+ min-inline-size: 0;
3215
+ overflow: auto;
3216
+ overscroll-behavior: contain;
3217
+ color: var(--inkra-ink);
3218
+ }
3219
+
3220
+ .inkra-infinite-scroll__body {
3221
+ display: grid;
3222
+ grid-template-columns: auto minmax(min-content, 1fr) auto;
3223
+ grid-row: 2;
3224
+ min-block-size: 0;
3225
+ min-inline-size: 0;
3226
+ transform: translate3d(0, 0, 0);
3227
+ transition: transform var(--inkra-motion-slow) cubic-bezier(0.22, 1.45, 0.36, 1);
3228
+ }
3229
+
3230
+ .inkra-infinite-scroll[data-pull-direction] > .inkra-infinite-scroll__body {
3231
+ transition: none;
3232
+ }
3233
+
3234
+ .inkra-infinite-scroll__content {
3235
+ grid-column: 2;
3236
+ grid-row: 1;
3237
+ min-block-size: 100%;
3238
+ min-inline-size: 100%;
3239
+ }
3240
+
3241
+ .inkra-infinite-scroll[data-pull-direction="top"] > .inkra-infinite-scroll__body {
3242
+ transform: translate3d(0, var(--inkra-infinite-scroll-pull-distance), 0);
3243
+ }
3244
+ .inkra-infinite-scroll[data-pull-direction="bottom"] > .inkra-infinite-scroll__body {
3245
+ transform: translate3d(0, calc(-1 * var(--inkra-infinite-scroll-pull-distance)), 0);
3246
+ }
3247
+ .inkra-infinite-scroll[data-pull-direction="left"] > .inkra-infinite-scroll__body {
3248
+ transform: translate3d(var(--inkra-infinite-scroll-pull-distance), 0, 0);
3249
+ }
3250
+ .inkra-infinite-scroll[data-pull-direction="right"] > .inkra-infinite-scroll__body {
3251
+ transform: translate3d(calc(-1 * var(--inkra-infinite-scroll-pull-distance)), 0, 0);
3252
+ }
3253
+
3254
+ .inkra-infinite-scroll__indicator {
3255
+ position: relative;
3256
+ display: none;
3257
+ min-block-size: 0;
3258
+ min-inline-size: 0;
3259
+ z-index: 1;
3260
+ }
3261
+ .inkra-infinite-scroll__indicator[data-active] { display: flex; }
3262
+ .inkra-infinite-scroll__indicator[data-direction="top"],
3263
+ .inkra-infinite-scroll__indicator[data-direction="bottom"] {
3264
+ inline-size: 100%;
3265
+ }
3266
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="top"],
3267
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="bottom"] {
3268
+ min-block-size: 52px;
3269
+ }
3270
+ .inkra-infinite-scroll__indicator[data-direction="left"],
3271
+ .inkra-infinite-scroll__indicator[data-direction="right"] {
3272
+ align-self: stretch;
3273
+ grid-row: 1;
3274
+ }
3275
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="left"],
3276
+ .inkra-infinite-scroll__indicator[data-visible][data-direction="right"] {
3277
+ min-inline-size: 112px;
3278
+ }
3279
+ .inkra-infinite-scroll__indicator[data-direction="top"] { grid-row: 1; }
3280
+ .inkra-infinite-scroll__indicator[data-direction="bottom"] { grid-row: 3; }
3281
+ .inkra-infinite-scroll__indicator[data-direction="left"] { grid-column: 1; }
3282
+ .inkra-infinite-scroll__indicator[data-direction="right"] { grid-column: 3; }
3283
+
3284
+ /* Pull feedback reveals inside the elastic gap, without changing scroll layout. */
3285
+ .inkra-infinite-scroll__indicator[data-pulling] {
3286
+ position: absolute;
3287
+ grid-area: auto;
3288
+ left: var(--inkra-pull-left, 0px);
3289
+ top: var(--inkra-pull-top, 0px);
3290
+ inline-size: var(--inkra-pull-width, 0px);
3291
+ block-size: var(--inkra-pull-height, 0px);
3292
+ min-inline-size: 0 !important;
3293
+ min-block-size: 0 !important;
3294
+ overflow: clip;
3295
+ pointer-events: none;
3296
+ }
3297
+ .inkra-infinite-scroll__indicator[data-pulling] .inkra-infinite-scroll__indicator-surface {
3298
+ padding: 0;
3299
+ max-inline-size: none;
3300
+ min-block-size: 0;
3301
+ }
3302
+ .inkra-infinite-scroll__indicator[data-pulling][data-direction="left"] .inkra-infinite-scroll__loading-label,
3303
+ .inkra-infinite-scroll__indicator[data-pulling][data-direction="right"] .inkra-infinite-scroll__loading-label {
3304
+ display: none;
3305
+ }
3306
+
3307
+ .inkra-infinite-scroll__indicator-surface {
3308
+ display: flex;
3309
+ align-items: center;
3310
+ justify-content: center;
3311
+ inline-size: 100%;
3312
+ min-inline-size: 0;
3313
+ padding: var(--inkra-space-1) var(--inkra-space-2);
3314
+ }
3315
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__indicator-surface,
3316
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__indicator-surface {
3317
+ min-block-size: 100%;
3318
+ max-inline-size: 144px;
3319
+ }
3320
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="top"] .inkra-infinite-scroll__indicator-surface {
3321
+ inline-size: var(--inkra-infinite-scroll-indicator-viewport-inline-size);
3322
+ transform: translate3d(var(--inkra-infinite-scroll-indicator-inline-offset), 0, 0);
3323
+ }
3324
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="bottom"] .inkra-infinite-scroll__indicator-surface {
3325
+ inline-size: var(--inkra-infinite-scroll-indicator-viewport-inline-size);
3326
+ transform: translate3d(var(--inkra-infinite-scroll-indicator-inline-offset), 0, 0);
3327
+ }
3328
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="left"] .inkra-infinite-scroll__indicator-surface {
3329
+ block-size: var(--inkra-infinite-scroll-indicator-viewport-block-size);
3330
+ min-block-size: 0;
3331
+ transform: translate3d(0, var(--inkra-infinite-scroll-indicator-block-offset), 0);
3332
+ }
3333
+ .inkra-infinite-scroll__indicator[data-status="loading"][data-direction="right"] .inkra-infinite-scroll__indicator-surface {
3334
+ block-size: var(--inkra-infinite-scroll-indicator-viewport-block-size);
3335
+ min-block-size: 0;
3336
+ transform: translate3d(0, var(--inkra-infinite-scroll-indicator-block-offset), 0);
3337
+ }
3338
+ .inkra-infinite-scroll__indicator-content {
3339
+ display: flex;
3340
+ align-items: center;
3341
+ justify-content: center;
3342
+ flex-wrap: wrap;
3343
+ gap: var(--inkra-space-2);
3344
+ inline-size: 100%;
3345
+ min-inline-size: 0;
3346
+ overflow-wrap: anywhere;
3347
+ text-align: center;
3348
+ }
3349
+ .inkra-infinite-scroll__indicator-content > .inkra-progress { max-inline-size: 240px; }
3350
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__indicator-content > .inkra-progress,
3351
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__indicator-content > .inkra-progress { min-inline-size: 96px; }
3352
+ .inkra-infinite-scroll__loading {
3353
+ display: flex;
3354
+ align-items: center;
2462
3355
  justify-content: center;
3356
+ gap: var(--inkra-space-2);
3357
+ min-inline-size: 0;
2463
3358
  }
3359
+ .inkra-infinite-scroll__loading > .inkra-progress { flex: 0 0 auto; }
3360
+ .inkra-infinite-scroll__loading-label { min-inline-size: 0; white-space: nowrap; }
3361
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__loading,
3362
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__loading { flex-wrap: wrap; }
3363
+ .inkra-infinite-scroll__indicator[data-direction="left"] .inkra-infinite-scroll__loading-label,
3364
+ .inkra-infinite-scroll__indicator[data-direction="right"] .inkra-infinite-scroll__loading-label { white-space: normal; }
2464
3365
 
2465
- .inkra-select__separator {
2466
- color: var(--inkra-border);
2467
- height: 8px;
2468
- margin: 0 var(--inkra-space-2);
3366
+ @media (prefers-reduced-motion: reduce) {
3367
+ .inkra-infinite-scroll__body { transition-duration: 0ms; }
2469
3368
  }
2470
3369
 
2471
- .inkra-select__separator > .inkra-pencil-line {
2472
- height: 8px;
2473
- width: 100%;
3370
+ @media print {
3371
+ .inkra-infinite-scroll { overflow: visible; }
3372
+ .inkra-infinite-scroll__body { transform: none !important; }
2474
3373
  }
2475
3374
 
2476
- @keyframes inkra-select-content-in {
2477
- from {
2478
- opacity: 0;
2479
- transform: translateY(var(--inkra-space-1)) scale(0.98);
2480
- }
2481
- to {
2482
- opacity: 1;
2483
- transform: translateY(0) scale(1);
2484
- }
3375
+ .inkra-masonry {
3376
+ box-sizing: border-box;
3377
+ display: grid;
3378
+ gap: var(--inkra-masonry-row-gap, 16px) var(--inkra-masonry-column-gap, 16px);
3379
+ grid-template-columns: repeat(var(--inkra-masonry-columns, 1), minmax(0, 1fr));
3380
+ inline-size: 100%;
3381
+ max-inline-size: 100%;
3382
+ min-inline-size: 0;
3383
+ overflow: clip;
3384
+ overflow-clip-margin: 1px;
3385
+ position: relative;
2485
3386
  }
2486
3387
 
2487
- @keyframes inkra-select-content-out {
2488
- from {
2489
- opacity: 1;
2490
- transform: translateY(0) scale(1);
2491
- }
2492
- to {
2493
- opacity: 0;
2494
- transform: translateY(var(--inkra-space-1)) scale(0.98);
2495
- }
3388
+ .inkra-masonry[data-mode="adaptive"] {
3389
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--inkra-masonry-min-column-width, 240px)), 1fr));
2496
3390
  }
2497
3391
 
2498
- @media (prefers-reduced-motion: reduce) {
2499
- .inkra-select__content,
2500
- .inkra-select__content[data-ending-style],
2501
- .inkra-select__content[data-state="closed"] {
2502
- animation: none;
2503
- }
2504
-
2505
- .inkra-select__trigger-icon,
2506
- .inkra-select__focus-ring,
2507
- .inkra-select-stepper__button .inkra-pencil-icon,
2508
- .inkra-select__item-surface > .inkra-pencil-surface__ink {
2509
- transition-duration: 0ms;
2510
- }
3392
+ .inkra-masonry[data-layout="ready"] {
3393
+ display: block;
2511
3394
  }
2512
3395
 
2513
- @media (forced-colors: active) {
2514
- .inkra-select__trigger:focus-visible {
2515
- outline: var(--inkra-focus-width) solid Highlight;
2516
- outline-offset: var(--inkra-focus-offset);
2517
- }
3396
+ .inkra-masonry__item {
3397
+ box-sizing: border-box;
3398
+ max-inline-size: 100%;
3399
+ min-inline-size: 0;
3400
+ }
2518
3401
 
2519
- .inkra-select__focus-ring {
2520
- display: none !important;
2521
- }
3402
+ .inkra-masonry[data-layout="ready"] > .inkra-masonry__item {
3403
+ inset-block-start: 0;
3404
+ left: 0;
3405
+ position: absolute;
3406
+ }
2522
3407
 
2523
- .inkra-select__trigger-surface,
2524
- .inkra-select__content-surface {
2525
- background: Canvas;
2526
- border: 1px solid CanvasText;
2527
- }
3408
+ .inkra-masonry[data-layout="ready"][data-animated] > .inkra-masonry__item {
3409
+ transition: transform var(--inkra-motion-normal, 180ms) var(--inkra-ease, ease);
3410
+ }
2528
3411
 
2529
- .inkra-select__trigger[data-invalid="true"] .inkra-select__trigger-surface {
2530
- border-color: Mark;
2531
- }
3412
+ .inkra-masonry__item > * {
3413
+ max-inline-size: 100%;
3414
+ }
2532
3415
 
2533
- .inkra-select__item[data-highlighted] .inkra-select__item-surface,
2534
- .inkra-select__item[data-selected] .inkra-select__item-surface,
2535
- .inkra-select__item[data-state="checked"] .inkra-select__item-surface {
2536
- background: Highlight;
2537
- color: HighlightText;
2538
- forced-color-adjust: none;
3416
+ @media (prefers-reduced-motion: reduce) {
3417
+ .inkra-masonry[data-layout="ready"][data-animated] > .inkra-masonry__item {
3418
+ transition-duration: 0ms;
2539
3419
  }
3420
+ }
2540
3421
 
2541
- .inkra-select__item:focus-visible {
2542
- outline: var(--inkra-focus-width) solid CanvasText;
2543
- outline-offset: calc(-1 * var(--inkra-focus-offset));
3422
+ @media (forced-colors: active) {
3423
+ .inkra-masonry[data-layout="ready"][data-animated] > .inkra-masonry__item {
3424
+ transition-duration: 0ms;
2544
3425
  }
2545
3426
  }
2546
3427
 
2547
3428
  @media print {
2548
- .inkra-select__content {
2549
- animation: none;
3429
+ .inkra-masonry,
3430
+ .inkra-masonry[data-layout="ready"] {
3431
+ block-size: auto !important;
3432
+ display: grid;
3433
+ overflow: visible;
2550
3434
  }
2551
- }
2552
3435
 
2553
- .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; }
2554
- .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; }
2555
- .inkra-tabs[data-size="lg"] { --inkra-tabs-font-size: 17px; --inkra-tabs-padding: var(--inkra-space-4); --inkra-tabs-icon-size: 24px; }
2556
- .inkra-tabs__list {
2557
- display: flex;
2558
- gap: var(--inkra-space-2);
2559
- max-width: 100%;
2560
- overflow-x: auto;
2561
- overflow-y: hidden;
2562
- scroll-padding-inline: var(--inkra-focus-offset);
2563
- }
2564
- .inkra-tabs__list[data-orientation="vertical"] { flex-direction: column; }
2565
- .inkra-tabs__list[data-divided] { gap: 24px; }
2566
- .inkra-tabs__divider { position: absolute; color: var(--inkra-ink-muted); opacity: 0.56; }
2567
- .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="vertical"] { inset-inline-start: -16px; top: 8px; width: 8px; height: calc(100% - 16px); }
2568
- .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="horizontal"] { inset-inline: 8px; top: -16px; width: calc(100% - 16px); height: 8px; }
2569
- .inkra-tabs__trigger:first-child > .inkra-tabs__divider { display: none; }
2570
- .inkra-tabs__list[data-align="center"] { justify-content: safe center; }
2571
- .inkra-tabs__list[data-align="end"] { justify-content: safe end; }
2572
- .inkra-tabs__list[data-full-width] { width: 100%; }
2573
- .inkra-tabs__list[data-full-width] > .inkra-tabs__trigger { flex: 1 0 0; }
2574
- .inkra-tabs__list[data-orientation="vertical"][data-full-width] > .inkra-tabs__trigger { flex: none; width: 100%; }
2575
- .inkra-tabs__trigger {
2576
- position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center;
2577
- min-height: var(--inkra-touch-target); min-width: var(--inkra-touch-target);
2578
- padding: var(--inkra-space-2) var(--inkra-tabs-padding); border: 0; gap: var(--inkra-space-2);
2579
- background: transparent; color: var(--inkra-ink-muted); font: inherit;
2580
- white-space: nowrap; cursor: pointer; border-radius: var(--inkra-radius-md);
2581
- font-size: var(--inkra-tabs-font-size); line-height: var(--inkra-line-ui);
2582
- }
2583
- .inkra-tabs[data-size="lg"] .inkra-tabs__trigger { min-height: 48px; }
2584
- .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; }
2585
- .inkra-tabs__icon > * { width: 100%; height: 100%; }
2586
- .inkra-tabs__trigger[data-state="active"] { color: var(--inkra-selection-foreground); }
2587
- .inkra-tabs__trigger:disabled { cursor: not-allowed; opacity: 0.55; }
2588
- .inkra-tabs__trigger:focus-visible { outline: 0; }
2589
- .inkra-pencil-surface.inkra-tabs__focus-ring {
2590
- --inkra-accent-strong: var(--inkra-focus);
2591
- position: absolute !important;
2592
- display: block !important;
2593
- inset: var(--inkra-focus-width);
2594
- pointer-events: none;
2595
- opacity: 0;
2596
- z-index: 2;
2597
- }
2598
- .inkra-tabs__trigger:focus-visible > .inkra-pencil-surface.inkra-tabs__focus-ring { opacity: 1; }
2599
- .inkra-tabs__content:focus-visible {
2600
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
2601
- outline-offset: calc(-1 * var(--inkra-focus-width));
2602
- }
2603
- .inkra-pencil-surface.inkra-tabs__selection { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
2604
- .inkra-tabs__trigger[data-state="active"] > .inkra-pencil-surface.inkra-tabs__selection { opacity: 1; }
2605
- .inkra-tabs__label { position: relative; }
2606
- .inkra-tabs__content { min-width: 0; }
2607
- .inkra-tabs__content[hidden] { display: none !important; }
2608
- .inkra-tabs__overflow { display: flex; align-items: center; min-width: 0; max-width: 100%; position: relative; }
2609
- .inkra-tabs__overflow > .inkra-tabs__list { flex: 1 1 auto; min-width: 0; }
2610
- .inkra-tabs__scroll-button, .inkra-tabs__more { flex: 0 0 44px; }
2611
- .inkra-tabs__overflow-icon { display: inline-flex; width: 32px; height: 32px; position: relative; pointer-events: none; }
2612
- .inkra-tabs__overflow-icon[data-down] { transform: rotate(90deg); }
2613
- .inkra-tabs__overflow-icon > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
2614
- .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: none; }
2615
- .inkra-tabs__overflow-icon > canvas:not([data-pencil-icon-ready]) { visibility: hidden; }
2616
- .inkra-tabs__list[data-overflow="menu"] { position: relative; overflow: hidden; }
2617
- .inkra-tabs__list[data-overflow="menu"][data-full-width] > .inkra-tabs__trigger { flex: 1 0 auto; }
2618
- .inkra-tabs__trigger[data-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; inset-inline-start: 0; top: 0; }
2619
- .inkra-tabs__list[data-overflow="buttons"] { scrollbar-width: none; }
2620
- .inkra-tabs__list[data-overflow="buttons"]::-webkit-scrollbar { display: none; }
2621
- @media (forced-colors: active) {
2622
- .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
2623
- .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2624
- .inkra-tabs__trigger:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
2625
- .inkra-pencil-surface.inkra-tabs__selection { display: none !important; }
2626
- .inkra-tabs__trigger[data-state="active"] { color: Highlight; outline: 2px solid Highlight; outline-offset: -2px; }
2627
- }
2628
- @media print {
2629
- .inkra-pencil-surface.inkra-tabs__selection, .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2630
- .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
3436
+ .inkra-masonry[data-layout="ready"] > .inkra-masonry__item {
3437
+ inline-size: auto !important;
3438
+ position: static;
3439
+ transform: none !important;
3440
+ transition: none;
3441
+ }
2631
3442
  }
2632
3443
 
2633
3444
  .inkra-tooltip__content {
@@ -3926,6 +4737,52 @@
3926
4737
  font-family: "Trip Map Hand", "HanziPen SC", "Hannotate SC", "Kaiti SC", "STKaiti", cursive;
3927
4738
  }
3928
4739
 
4740
+ .inkra-number-ticker__reels {
4741
+ display: inline-flex;
4742
+ align-items: baseline;
4743
+ unicode-bidi: isolate;
4744
+ line-height: var(--inkra-line-ui, 1.45);
4745
+ }
4746
+
4747
+ .inkra-number-ticker__column {
4748
+ display: inline-grid;
4749
+ flex: none;
4750
+ overflow: hidden;
4751
+ vertical-align: bottom;
4752
+ }
4753
+
4754
+ .inkra-number-ticker__column-inner {
4755
+ display: grid;
4756
+ min-width: 0;
4757
+ height: 1lh;
4758
+ overflow: hidden;
4759
+ }
4760
+
4761
+ .inkra-number-ticker__face {
4762
+ grid-area: 1 / 1;
4763
+ display: flex;
4764
+ justify-content: center;
4765
+ align-items: center;
4766
+ height: 1lh;
4767
+ white-space: pre;
4768
+ }
4769
+
4770
+ .inkra-number-ticker__column[data-digit] .inkra-number-ticker__face {
4771
+ width: 1ch;
4772
+ }
4773
+
4774
+ .inkra-number-ticker__face > .inkra-pencil-text {
4775
+ flex: none;
4776
+ }
4777
+
4778
+ @media (prefers-reduced-motion: reduce), print {
4779
+ .inkra-number-ticker__column { grid-template-columns: 1fr !important; }
4780
+ .inkra-number-ticker__column[data-digit] { width: 1ch !important; }
4781
+ .inkra-number-ticker__column[data-departing] { display: none; }
4782
+ .inkra-number-ticker__face[data-face="from"] { display: none; }
4783
+ .inkra-number-ticker__face[data-face="to"] { transform: none !important; opacity: 1 !important; }
4784
+ }
4785
+
3929
4786
  .inkra-number-ticker__prefix,
3930
4787
  .inkra-number-ticker__suffix {
3931
4788
  align-items: center;
@@ -5701,6 +6558,7 @@ div.inkra-choice-grid > .inkra-radio-group {
5701
6558
  }
5702
6559
 
5703
6560
  .inkra-image-viewer__body {
6561
+ position: relative;
5704
6562
  display: grid;
5705
6563
  flex: 1 1 auto;
5706
6564
  min-block-size: var(--inkra-touch-target);
@@ -5848,6 +6706,24 @@ div.inkra-choice-grid > .inkra-radio-group {
5848
6706
  padding: var(--inkra-focus-offset);
5849
6707
  position: relative;
5850
6708
  scrollbar-gutter: auto;
6709
+ pointer-events: auto;
6710
+ }
6711
+
6712
+ .inkra-image-viewer__floating-tools {
6713
+ position: absolute;
6714
+ inset-inline: max(var(--inkra-space-3), env(safe-area-inset-left)) max(var(--inkra-space-3), env(safe-area-inset-right));
6715
+ inset-block-start: max(var(--inkra-space-3), env(safe-area-inset-top));
6716
+ display: flex;
6717
+ justify-content: center;
6718
+ padding-inline: var(--inkra-touch-target);
6719
+ pointer-events: none;
6720
+ z-index: 6;
6721
+ }
6722
+
6723
+ .inkra-image-viewer__floating-tools[data-position="bottom"] {
6724
+ inset-block-start: auto;
6725
+ inset-block-end: max(var(--inkra-space-3), env(safe-area-inset-bottom));
6726
+ padding-inline: 0;
5851
6727
  }
5852
6728
 
5853
6729
  .inkra-image-viewer__video-navigation {
@@ -5967,6 +6843,7 @@ div.inkra-choice-grid > .inkra-radio-group {
5967
6843
  @media print {
5968
6844
  .inkra-image-viewer__close-control,
5969
6845
  .inkra-image-viewer__navigation,
6846
+ .inkra-image-viewer__floating-tools,
5970
6847
  .inkra-image-viewer__bottom { display: none; }
5971
6848
  }
5972
6849
 
@@ -6984,6 +7861,50 @@ div.inkra-choice-grid > .inkra-radio-group {
6984
7861
  .inkra-sortable__handle { display: none; }
6985
7862
  }
6986
7863
 
7864
+ .inkra-inventory-grid { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px; min-width: 0; max-width: 100%; color: var(--inkra-ink); }
7865
+ .inkra-inventory-grid__container { min-width: 0; max-width: 100%; }
7866
+ .inkra-inventory-grid__header { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 8px; padding-bottom: 8px; }
7867
+ .inkra-inventory-grid__scroll { max-width: 100%; overflow: auto; padding: 4px; }
7868
+ .inkra-inventory-grid__board { position: relative; isolation: isolate; direction: ltr; }
7869
+ .inkra-inventory-grid__lines { position: absolute; inset: 0; color: var(--inkra-border); pointer-events: none; }
7870
+ .inkra-inventory-grid__lines > canvas { position: absolute; }
7871
+ .inkra-inventory-grid__item, .inkra-inventory-grid__preview, .inkra-inventory-grid__cell, .inkra-inventory-grid__blocked { position: absolute; }
7872
+ .inkra-inventory-grid__item { outline: none; pointer-events: none; }
7873
+ .inkra-inventory-grid__cell { box-sizing: border-box; display: grid; place-items: center; pointer-events: auto; touch-action: none; cursor: grab; }
7874
+ .inkra-inventory-grid__shape { position: absolute; inset: 0 auto auto 0; pointer-events: none; color: var(--inkra-border-strong); }
7875
+ .inkra-inventory-grid__shape-fill, .inkra-inventory-grid__shape-wash { position: absolute; inset: 0; pointer-events: none; }
7876
+ .inkra-inventory-grid__shape-wash { opacity: .65; --inkra-selection-pigment: var(--inkra-accent-soft); }
7877
+ .inkra-inventory-grid__shape-fill[data-pencil-fallback] { background: var(--inkra-paper); border: 0; }
7878
+ .inkra-inventory-grid__shape-fill[data-pencil-fallback] + .inkra-inventory-grid__shape-fallback { display: block; }
7879
+ .inkra-inventory-grid__shape-edge { position: absolute; }
7880
+ .inkra-inventory-grid__shape-fallback { position: absolute; inset: 0; display: none; }
7881
+ .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; }
7882
+ .inkra-inventory-grid__item[data-selected] .inkra-inventory-grid__shape { color: var(--inkra-accent-strong); }
7883
+ .inkra-inventory-grid__item:focus-visible .inkra-inventory-grid__shape { color: var(--inkra-focus); --inkra-stroke-width: 2; }
7884
+ .inkra-inventory-grid__item[data-selected] .inkra-inventory-grid__shape-wash { opacity: 1; }
7885
+ .inkra-inventory-grid__item[data-dragging] { opacity: .28; }
7886
+ .inkra-inventory-grid__item[data-disabled] .inkra-inventory-grid__cell { cursor: default; touch-action: auto; }
7887
+ .inkra-inventory-grid__container[data-disabled], .inkra-inventory-grid[data-disabled] { opacity: .55; }
7888
+ .inkra-inventory-grid__preview { z-index: 2; pointer-events: none; color: var(--inkra-accent-strong); }
7889
+ .inkra-inventory-grid__preview[data-valid="false"] { color: var(--inkra-danger); }
7890
+ .inkra-inventory-grid__preview .inkra-inventory-grid__shape { color: inherit; --inkra-stroke-width: 2; }
7891
+ .inkra-inventory-grid__preview .inkra-inventory-grid__cell, .inkra-inventory-grid__overlay .inkra-inventory-grid__cell { pointer-events: none; }
7892
+ .inkra-inventory-grid__overlay { position: relative; opacity: .8; pointer-events: none; color: var(--inkra-ink); }
7893
+ .inkra-inventory-grid__blocked { display: grid; place-items: center; color: var(--inkra-ink-muted); pointer-events: none; }
7894
+ .inkra-inventory-grid__announcement { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
7895
+ @media (forced-colors: active) {
7896
+ .inkra-inventory-grid__board { border: 1px solid CanvasText; }
7897
+ .inkra-inventory-grid__shape-fill { background: Canvas; }
7898
+ .inkra-inventory-grid__shape-fallback { display: block; color: CanvasText; }
7899
+ .inkra-inventory-grid__shape-edge { display: none; }
7900
+ .inkra-inventory-grid__item:focus-visible .inkra-inventory-grid__shape-fallback,
7901
+ .inkra-inventory-grid__preview .inkra-inventory-grid__shape-fallback { color: Highlight; stroke-width: 3px; }
7902
+ }
7903
+ @media print {
7904
+ .inkra-inventory-grid__shape-fallback { display: block; }
7905
+ .inkra-inventory-grid__shape-edge { display: none; }
7906
+ }
7907
+
6987
7908
  .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); }
6988
7909
  .inkra-sparkline__svg { display: block; inline-size: min(100%, 100%); block-size: auto; overflow: visible; outline: none; position: relative; z-index: 1; }
6989
7910
  .inkra-sparkline__pencil { position: absolute; inset: 0 auto auto 0; inline-size: 100%; block-size: auto; aspect-ratio: 180 / 56; pointer-events: none; z-index: 2; opacity: 0; }
@@ -9763,6 +10684,16 @@ svg.leaflet-image-layer.leaflet-interactive path {
9763
10684
  .inkra-time-picker__error { margin: 0; color: var(--inkra-danger); font-size: var(--inkra-text-sm); }
9764
10685
 
9765
10686
  .inkra-pagination { min-inline-size: 0; max-inline-size: 100%; color: var(--inkra-ink); }
10687
+ .inkra-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: var(--inkra-space-2); }
10688
+ .inkra-pagination[data-align="start"] { justify-content: flex-start; }
10689
+ .inkra-pagination[data-align="center"] { justify-content: center; }
10690
+ .inkra-pagination[data-align="end"] { justify-content: flex-end; }
10691
+ .inkra-pagination__size { flex: 0 1 auto; min-inline-size: 0; max-inline-size: 100%; }
10692
+ .inkra-pagination__size .inkra-select__trigger { max-inline-size: 100%; }
10693
+ .inkra-pagination__list { min-inline-size: 0; }
10694
+ .inkra-pagination[data-wrap="true"] .inkra-pagination__list { flex-wrap: wrap; }
10695
+ .inkra-pagination[data-wrap="true"][data-align="center"] .inkra-pagination__list { justify-content: center; }
10696
+ .inkra-pagination[data-wrap="true"][data-align="end"] .inkra-pagination__list { justify-content: flex-end; }
9766
10697
  .inkra-pagination__list { box-sizing: border-box; display: flex; flex-wrap: nowrap; align-items: center; gap: var(--inkra-space-1); max-inline-size: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: 8px; list-style: none; padding: 8px; margin: 0; }
9767
10698
  .inkra-pagination__list > li { display: flex; flex: 0 0 auto; }
9768
10699
  .inkra-pagination__summary { align-items: center; box-sizing: border-box; font-variant-numeric: tabular-nums; justify-content: center; max-inline-size: 100%; min-block-size: var(--inkra-touch-target); min-inline-size: 0; overflow-wrap: anywhere; padding-inline: var(--inkra-space-2); text-align: center; white-space: normal; }
@@ -10049,6 +10980,8 @@ button.inkra-steps__control { cursor: pointer; }
10049
10980
  .inkra-layout,
10050
10981
  .inkra-layout__body,
10051
10982
  .inkra-layout__header,
10983
+ .inkra-layout__header-sidebar,
10984
+ .inkra-layout__header-content,
10052
10985
  .inkra-layout__sidebar,
10053
10986
  .inkra-layout__content,
10054
10987
  .inkra-layout__footer {
@@ -10082,6 +11015,33 @@ button.inkra-steps__control { cursor: pointer; }
10082
11015
  .inkra-layout__body { display: flex; flex: 1; align-items: stretch; }
10083
11016
  .inkra-layout__header,
10084
11017
  .inkra-layout__footer { position: relative; flex: none; }
11018
+ .inkra-layout__header[data-shared-sidebar] { display: flex; align-items: stretch; }
11019
+ .inkra-layout__header-sidebar,
11020
+ .inkra-layout__header-content {
11021
+ display: flex;
11022
+ align-items: center;
11023
+ padding: var(--inkra-layout-header-padding, 20px);
11024
+ overflow-wrap: anywhere;
11025
+ }
11026
+ .inkra-layout__header-sidebar {
11027
+ position: relative;
11028
+ flex: 0 0 min(var(--inkra-layout-shared-sidebar-width, 240px), 100%);
11029
+ max-width: 100%;
11030
+ }
11031
+ .inkra-layout__header-content { flex: 1; }
11032
+ .inkra-layout__header-content > * { min-width: 0; }
11033
+ .inkra-layout__header-sidebar-divider[data-orientation="vertical"] {
11034
+ position: absolute;
11035
+ inset-block-start: 50%;
11036
+ inset-inline-end: 0;
11037
+ height: min(32px, max(0px, calc(100% - 2 * var(--inkra-layout-header-padding, 20px))));
11038
+ color: var(--inkra-ink-muted);
11039
+ opacity: 0.56;
11040
+ transform: translate(50%, -50%);
11041
+ }
11042
+ .inkra-layout__header-sidebar-divider[data-orientation="vertical"]:dir(rtl) { transform: translate(-50%, -50%); }
11043
+ .inkra-layout__header-sidebar[hidden],
11044
+ .inkra-layout__sidebar[hidden] { display: none; }
10085
11045
  .inkra-layout__sidebar {
10086
11046
  position: relative;
10087
11047
  flex: 0 0 min(var(--inkra-layout-sidebar-width, 240px), 100%);
@@ -10100,6 +11060,9 @@ button.inkra-steps__control { cursor: pointer; }
10100
11060
  }
10101
11061
  .inkra-layout__sidebar-divider-mobile { display: none; }
10102
11062
  @container inkra-layout (max-width: 639px) {
11063
+ .inkra-layout[data-collapse-at="sm"] > .inkra-layout__header[data-shared-sidebar] { flex-direction: column; }
11064
+ .inkra-layout[data-collapse-at="sm"] > .inkra-layout__header > .inkra-layout__header-sidebar { flex-basis: auto; width: 100%; }
11065
+ .inkra-layout[data-collapse-at="sm"] > .inkra-layout__header > .inkra-layout__header-sidebar > .inkra-layout__header-sidebar-divider { display: none !important; }
10103
11066
  .inkra-layout[data-collapse-at="sm"] > .inkra-layout__body { flex-direction: column; }
10104
11067
  .inkra-layout[data-collapse-at="sm"] > .inkra-layout__body > .inkra-layout__sidebar { flex-basis: auto; width: 100%; }
10105
11068
  .inkra-layout[data-collapse-at="sm"] > .inkra-layout__body > .inkra-layout__sidebar > .inkra-layout__sidebar-divider { display: none; }
@@ -10108,6 +11071,9 @@ button.inkra-steps__control { cursor: pointer; }
10108
11071
  }
10109
11072
  }
10110
11073
  @container inkra-layout (max-width: 767px) {
11074
+ .inkra-layout[data-collapse-at="md"] > .inkra-layout__header[data-shared-sidebar] { flex-direction: column; }
11075
+ .inkra-layout[data-collapse-at="md"] > .inkra-layout__header > .inkra-layout__header-sidebar { flex-basis: auto; width: 100%; }
11076
+ .inkra-layout[data-collapse-at="md"] > .inkra-layout__header > .inkra-layout__header-sidebar > .inkra-layout__header-sidebar-divider { display: none !important; }
10111
11077
  .inkra-layout[data-collapse-at="md"] > .inkra-layout__body { flex-direction: column; }
10112
11078
  .inkra-layout[data-collapse-at="md"] > .inkra-layout__body > .inkra-layout__sidebar { flex-basis: auto; width: 100%; }
10113
11079
  .inkra-layout[data-collapse-at="md"] > .inkra-layout__body > .inkra-layout__sidebar > .inkra-layout__sidebar-divider { display: none; }
@@ -10115,3 +11081,53 @@ button.inkra-steps__control { cursor: pointer; }
10115
11081
  display: block; position: absolute; bottom: -4px; inset-inline: 0; width: 100%;
10116
11082
  }
10117
11083
  }
11084
+ @media (forced-colors: active), print {
11085
+ .inkra-layout__header-sidebar-divider[data-orientation="vertical"] { opacity: 1; }
11086
+ }
11087
+ .inkra-grid-resizable,
11088
+ .inkra-grid-resizable > .inkra-resizable,
11089
+ .inkra-grid-resizable .inkra-resizable__panel > .inkra-resizable {
11090
+ block-size: 100%;
11091
+ min-inline-size: 0;
11092
+ min-block-size: 0;
11093
+ }
11094
+ .inkra-grid-resizable__cell {
11095
+ box-sizing: border-box;
11096
+ block-size: 100%;
11097
+ min-inline-size: 0;
11098
+ overflow: auto;
11099
+ }
11100
+ .inkra-grid-board { min-inline-size: 0; inline-size: 100%; }
11101
+ .inkra-grid-board__canvas { position: relative; min-inline-size: 0; }
11102
+ .inkra-grid-board__item { position: absolute; transition: transform var(--inkra-motion-fast) var(--inkra-ease); }
11103
+ .inkra-grid-board__item.resizing,
11104
+ .inkra-grid-board__item.react-draggable-dragging { transition: none; z-index: 2; }
11105
+ .inkra-grid-board__surface { box-sizing: border-box; display: flex; flex-direction: column; block-size: 100%; min-inline-size: 0; }
11106
+ .inkra-grid-board__surface > .inkra-pencil-surface__content { display: flex; flex-direction: column; block-size: 100%; min-block-size: 0; }
11107
+ .inkra-grid-board__header { display: flex; flex-shrink: 0; align-items: center; gap: 8px; min-block-size: 44px; padding-inline: 12px 4px; }
11108
+ .inkra-grid-board__title { flex: 1; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
11109
+ .inkra-grid-board__content { padding: 4px 12px 24px; min-block-size: 0; overflow: auto; flex: 1; }
11110
+ .inkra-grid-board__move,
11111
+ .inkra-grid-board__resize {
11112
+ appearance: none; border: 0; background: transparent; color: var(--inkra-ink-muted);
11113
+ display: inline-flex; align-items: center; justify-content: center;
11114
+ inline-size: 44px; block-size: 44px; padding: 0; flex: 0 0 44px;
11115
+ }
11116
+ .inkra-grid-board__move { cursor: grab; touch-action: none; position: relative; }
11117
+ .inkra-grid-board__resize { position: absolute; right: 0; bottom: 0; cursor: se-resize; touch-action: none; z-index: 1; }
11118
+ .inkra-grid-board__move:hover,
11119
+ .inkra-grid-board__resize:hover { color: var(--inkra-accent-strong); }
11120
+ .inkra-grid-board__move:focus-visible,
11121
+ .inkra-grid-board__resize:focus-visible { outline: none; }
11122
+ .inkra-grid-board__focus { position: absolute; inset: 4px; opacity: 0; pointer-events: none; }
11123
+ .inkra-grid-board__move:focus-visible .inkra-grid-board__focus,
11124
+ .inkra-grid-board__resize:focus-visible .inkra-grid-board__focus { opacity: 1; }
11125
+ .inkra-grid-board__item.react-resizable-hide > .inkra-grid-board__resize { display: none; }
11126
+ .inkra-grid-board[data-stacked] .inkra-grid-board__canvas { display: grid; gap: var(--inkra-grid-board-gap); }
11127
+ .inkra-grid-board[data-stacked] .inkra-grid-board__item { position: relative !important; transform: none !important; top: auto !important; left: auto !important; width: 100% !important; height: auto !important; min-block-size: 160px; }
11128
+ .inkra-grid-board[data-stacked] .inkra-grid-board__resize { display: none; }
11129
+ @media (prefers-reduced-motion: reduce) { .inkra-grid-board__item { transition: none; } }
11130
+ @media (forced-colors: active) {
11131
+ .inkra-grid-board__focus { display: none; }
11132
+ .inkra-grid-board__move:focus-visible, .inkra-grid-board__resize:focus-visible { outline: 2px solid Highlight; outline-offset: -4px; }
11133
+ }