@inkra/react 0.2.0 → 0.4.3

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 (246) hide show
  1. package/README.md +101 -7
  2. package/dist/Button.js +3 -2
  3. package/dist/PencilIcon.d.ts +10 -0
  4. package/dist/PencilIcon.js +83 -39
  5. package/dist/PencilLine.js +9 -1
  6. package/dist/PencilText.js +15 -9
  7. package/dist/accordion/Accordion.js +65 -5
  8. package/dist/alert-dialog/index.d.ts +1 -1
  9. package/dist/alert-dialog/index.js +18 -6
  10. package/dist/audio-player/index.d.ts +2 -0
  11. package/dist/audio-player/index.js +126 -31
  12. package/dist/calendar/index.d.ts +4 -1
  13. package/dist/calendar/index.js +31 -12
  14. package/dist/carousel/index.js +13 -6
  15. package/dist/choice-grid/index.d.ts +6 -1
  16. package/dist/choice-grid/index.js +61 -33
  17. package/dist/color-picker/GradientEditor.d.ts +39 -0
  18. package/dist/color-picker/GradientEditor.js +63 -0
  19. package/dist/color-picker/gradient.d.ts +25 -0
  20. package/dist/color-picker/gradient.js +60 -0
  21. package/dist/color-picker/index.d.ts +27 -7
  22. package/dist/color-picker/index.js +134 -32
  23. package/dist/color-swatch/index.d.ts +10 -0
  24. package/dist/color-swatch/index.js +9 -0
  25. package/dist/command/index.d.ts +24 -2
  26. package/dist/command/index.js +29 -6
  27. package/dist/content/index.d.ts +5 -0
  28. package/dist/content/index.js +12 -3
  29. package/dist/context-menu/index.d.ts +2 -2
  30. package/dist/context-menu/index.js +4 -3
  31. package/dist/data-table/index.d.ts +7 -1
  32. package/dist/data-table/index.js +64 -16
  33. package/dist/data-table/model.d.ts +2 -0
  34. package/dist/data-table/model.js +7 -0
  35. package/dist/date-picker/index.d.ts +2 -0
  36. package/dist/date-picker/index.js +10 -9
  37. package/dist/day-agenda/index.d.ts +6 -1
  38. package/dist/day-agenda/index.js +46 -21
  39. package/dist/day-agenda/layout.js +65 -9
  40. package/dist/display/ProgressRing.js +7 -3
  41. package/dist/display/index.d.ts +4 -1
  42. package/dist/display/index.js +3 -2
  43. package/dist/dockable-panel/index.js +5 -5
  44. package/dist/drawer/index.d.ts +1 -1
  45. package/dist/drawer/index.js +9 -6
  46. package/dist/dropdown-menu/index.d.ts +1 -1
  47. package/dist/dropdown-menu/index.js +3 -2
  48. package/dist/editable/index.d.ts +24 -2
  49. package/dist/editable/index.js +142 -37
  50. package/dist/empty/illustrations.d.ts +8 -0
  51. package/dist/empty/illustrations.js +78 -0
  52. package/dist/empty/index.d.ts +6 -1
  53. package/dist/empty/index.js +11 -3
  54. package/dist/flip/index.js +28 -8
  55. package/dist/form/EditablePencilText.js +34 -0
  56. package/dist/form/Field.js +11 -10
  57. package/dist/form/Input.js +1 -1
  58. package/dist/form/Textarea.d.ts +3 -1
  59. package/dist/form/Textarea.js +6 -4
  60. package/dist/hotkey/index.d.ts +1 -0
  61. package/dist/hotkey/index.js +6 -4
  62. package/dist/hover-card/index.js +1 -1
  63. package/dist/image-cropper/index.js +4 -2
  64. package/dist/image-viewer/VideoResource.d.ts +21 -0
  65. package/dist/image-viewer/VideoResource.js +194 -0
  66. package/dist/image-viewer/index.d.ts +14 -0
  67. package/dist/image-viewer/index.js +118 -65
  68. package/dist/image-viewer/lucideGeometry.d.ts +3 -0
  69. package/dist/image-viewer/lucideGeometry.js +19 -0
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.js +2 -0
  72. package/dist/input-number/index.d.ts +6 -0
  73. package/dist/input-number/index.js +131 -15
  74. package/dist/input-number/model.d.ts +13 -0
  75. package/dist/input-number/model.js +50 -0
  76. package/dist/internal/cache.d.ts +4 -0
  77. package/dist/internal/cache.js +18 -1
  78. package/dist/internal/iconGeometry.d.ts +2 -0
  79. package/dist/internal/iconGeometry.js +32 -0
  80. package/dist/internal/renderTokens.d.ts +4 -0
  81. package/dist/internal/renderTokens.js +4 -0
  82. package/dist/internal/stroke.d.ts +7 -0
  83. package/dist/internal/stroke.js +63 -7
  84. package/dist/internal/surfaceBudget.d.ts +20 -0
  85. package/dist/internal/surfaceBudget.js +69 -0
  86. package/dist/internal/surfaceRenderer.js +87 -28
  87. package/dist/internal/surfaceVisibility.d.ts +3 -0
  88. package/dist/internal/surfaceVisibility.js +60 -0
  89. package/dist/internal/textRenderer.d.ts +2 -0
  90. package/dist/internal/textRenderer.js +3 -3
  91. package/dist/internal/usePencilSurface.js +17 -1
  92. package/dist/internal/wash.js +4 -3
  93. package/dist/journey-map/terrain.js +10 -5
  94. package/dist/layout/index.js +1 -1
  95. package/dist/log/index.js +29 -22
  96. package/dist/markdown/CodeBlock.d.ts +19 -0
  97. package/dist/markdown/CodeBlock.js +86 -0
  98. package/dist/markdown/Deletion.d.ts +2 -0
  99. package/dist/markdown/Deletion.js +69 -0
  100. package/dist/markdown/icons.d.ts +14 -0
  101. package/dist/markdown/icons.js +16 -0
  102. package/dist/markdown/index.d.ts +17 -0
  103. package/dist/markdown/index.js +175 -0
  104. package/dist/node-graph/index.d.ts +2 -0
  105. package/dist/node-graph/index.js +49 -25
  106. package/dist/number-ticker/index.d.ts +11 -9
  107. package/dist/number-ticker/index.js +14 -11
  108. package/dist/number-ticker/model.d.ts +38 -5
  109. package/dist/number-ticker/model.js +139 -10
  110. package/dist/number-ticker/precision.d.ts +7 -0
  111. package/dist/number-ticker/precision.js +141 -0
  112. package/dist/overflow-list/index.js +5 -2
  113. package/dist/overlay/Overlay.d.ts +1 -1
  114. package/dist/overlay/Overlay.js +5 -3
  115. package/dist/overlay/Popover.d.ts +1 -1
  116. package/dist/overlay/Popover.js +6 -5
  117. package/dist/overlay/themeBridge.d.ts +12 -1
  118. package/dist/overlay/themeBridge.js +41 -3
  119. package/dist/pagination/index.d.ts +10 -1
  120. package/dist/pagination/index.js +6 -4
  121. package/dist/pan-zoom/index.d.ts +2 -0
  122. package/dist/pan-zoom/index.js +7 -6
  123. package/dist/pencil.d.ts +1 -0
  124. package/dist/pencil.js +4 -4
  125. package/dist/radar/index.d.ts +4 -0
  126. package/dist/radar/index.js +41 -21
  127. package/dist/rating/index.d.ts +4 -0
  128. package/dist/rating/index.js +128 -24
  129. package/dist/resizable/index.js +1 -1
  130. package/dist/scroll-area/index.d.ts +1 -1
  131. package/dist/scroll-area/index.js +5 -2
  132. package/dist/select/MultipleSelect.js +5 -4
  133. package/dist/select/SearchableSelect.js +61 -6
  134. package/dist/select/Select.d.ts +1 -0
  135. package/dist/select/Select.js +3 -1
  136. package/dist/select/StepperSelect.d.ts +29 -0
  137. package/dist/select/StepperSelect.js +119 -0
  138. package/dist/select/index.d.ts +2 -0
  139. package/dist/select/index.js +1 -0
  140. package/dist/select/stepperModel.d.ts +7 -0
  141. package/dist/select/stepperModel.js +29 -0
  142. package/dist/selection/Checkbox.js +4 -3
  143. package/dist/selection/RadioGroup.js +29 -13
  144. package/dist/selection/Switch.js +4 -3
  145. package/dist/selection/useNativeChecked.d.ts +2 -1
  146. package/dist/selection/useNativeChecked.js +26 -8
  147. package/dist/slider/index.js +50 -6
  148. package/dist/sortable/index.js +15 -6
  149. package/dist/sparkline/index.js +17 -2
  150. package/dist/sparkline/model.js +11 -4
  151. package/dist/styles/accordion.css +228 -0
  152. package/dist/styles/alert-dialog.css +139 -0
  153. package/dist/styles/audio-player.css +22 -0
  154. package/dist/styles/base.css +638 -0
  155. package/dist/styles/breadcrumb.css +7 -0
  156. package/dist/styles/calendar.css +62 -0
  157. package/dist/styles/carousel.css +173 -0
  158. package/dist/styles/choice-grid.css +226 -0
  159. package/dist/styles/color-picker.css +281 -0
  160. package/dist/styles/color-swatch.css +47 -0
  161. package/dist/styles/command.css +52 -0
  162. package/dist/styles/content.css +79 -0
  163. package/dist/styles/context-menu.css +35 -0
  164. package/dist/styles/data-table.css +31 -0
  165. package/dist/styles/date-picker.css +107 -0
  166. package/dist/styles/day-agenda.css +30 -0
  167. package/dist/styles/display.css +304 -0
  168. package/dist/styles/dockable-panel.css +110 -0
  169. package/dist/styles/drawer.css +133 -0
  170. package/dist/styles/dropdown-menu.css +68 -0
  171. package/dist/styles/editable.css +145 -0
  172. package/dist/styles/empty.css +108 -0
  173. package/dist/styles/flip.css +101 -0
  174. package/dist/styles/form.css +634 -0
  175. package/dist/styles/heatmap.css +256 -0
  176. package/dist/styles/hotkey.css +189 -0
  177. package/dist/styles/hover-card.css +27 -0
  178. package/dist/styles/image-cropper.css +205 -0
  179. package/dist/styles/image-viewer.css +422 -0
  180. package/dist/styles/input-number.css +21 -0
  181. package/dist/styles/journey-map.css +19 -0
  182. package/dist/styles/keypad.css +92 -0
  183. package/dist/styles/layout.css +72 -0
  184. package/dist/styles/leaflet.css +661 -0
  185. package/dist/styles/log.css +203 -0
  186. package/dist/styles/markdown.css +379 -0
  187. package/dist/styles/node-graph.css +142 -0
  188. package/dist/styles/number-ticker.css +83 -0
  189. package/dist/styles/overflow-list.css +51 -0
  190. package/dist/styles/overlay.css +284 -0
  191. package/dist/styles/pagination.css +21 -0
  192. package/dist/styles/pan-zoom.css +136 -0
  193. package/dist/styles/radar.css +1 -0
  194. package/dist/styles/rating.css +121 -0
  195. package/dist/styles/resizable.css +108 -0
  196. package/dist/styles/scroll-area.css +122 -0
  197. package/dist/styles/select.css +557 -0
  198. package/dist/styles/selection.css +264 -0
  199. package/dist/styles/slider.css +145 -0
  200. package/dist/styles/slot.css +109 -0
  201. package/dist/styles/sortable.css +159 -0
  202. package/dist/styles/sparkline.css +24 -0
  203. package/dist/styles/steps.css +27 -0
  204. package/dist/styles/tabs.css +79 -0
  205. package/dist/styles/tag-input.css +213 -0
  206. package/dist/styles/time-picker.css +66 -0
  207. package/dist/styles/timeline.css +24 -0
  208. package/dist/styles/toast.css +160 -0
  209. package/dist/styles/toggle-group.css +107 -0
  210. package/dist/styles/tooltip.css +78 -0
  211. package/dist/styles/transfer.css +148 -0
  212. package/dist/styles/tree-select.css +131 -0
  213. package/dist/styles/tree.css +59 -0
  214. package/dist/styles/typewriter.css +62 -0
  215. package/dist/styles/upload.css +60 -0
  216. package/dist/styles/virtual-list.css +112 -0
  217. package/dist/styles.css +2241 -443
  218. package/dist/tabs/index.d.ts +9 -0
  219. package/dist/tabs/index.js +66 -16
  220. package/dist/tabs/useOverflow.d.ts +20 -0
  221. package/dist/tabs/useOverflow.js +145 -0
  222. package/dist/tag-input/index.d.ts +7 -2
  223. package/dist/tag-input/index.js +70 -26
  224. package/dist/time-picker/index.js +38 -20
  225. package/dist/toast/index.d.ts +19 -11
  226. package/dist/toast/index.js +48 -8
  227. package/dist/toast/manager.d.ts +42 -0
  228. package/dist/toast/manager.js +85 -0
  229. package/dist/toast/useToastNavigation.d.ts +3 -0
  230. package/dist/toast/useToastNavigation.js +75 -0
  231. package/dist/tokens.css +4 -0
  232. package/dist/tooltip/Tooltip.d.ts +1 -1
  233. package/dist/tooltip/Tooltip.js +6 -5
  234. package/dist/transfer/index.d.ts +5 -0
  235. package/dist/transfer/index.js +93 -29
  236. package/dist/transfer/model.d.ts +4 -0
  237. package/dist/transfer/model.js +37 -11
  238. package/dist/tree/index.d.ts +5 -1
  239. package/dist/tree/index.js +5 -5
  240. package/dist/tree-select/index.js +67 -30
  241. package/dist/tree-select/model.d.ts +11 -5
  242. package/dist/tree-select/model.js +111 -83
  243. package/dist/typewriter/index.js +10 -10
  244. package/dist/upload/index.js +30 -16
  245. package/dist/virtual-list/index.js +10 -7
  246. package/package.json +416 -5
package/dist/styles.css CHANGED
@@ -800,7 +800,8 @@
800
800
  z-index: 3;
801
801
  left: 0;
802
802
  top: 0;
803
- display: block;
803
+ /* Inactive canvases may retain geometry from a previous size or direction. */
804
+ display: none;
804
805
  width: 100%;
805
806
  height: 100%;
806
807
  opacity: 0;
@@ -808,6 +809,7 @@
808
809
  }
809
810
 
810
811
  .inkra-field-control-hit[data-pencil-editable-ready="true"] .inkra-editable-text {
812
+ display: block;
811
813
  opacity: 1;
812
814
  }
813
815
 
@@ -876,6 +878,46 @@
876
878
  z-index: 3;
877
879
  }
878
880
 
881
+ .inkra-field-control-hit--textarea[data-end-action="true"] .inkra-field-control--textarea {
882
+ display: grid !important;
883
+ grid-template-columns: minmax(0, 1fr) auto;
884
+ }
885
+
886
+ .inkra-textarea__end-action {
887
+ position: relative;
888
+ z-index: 3;
889
+ display: flex;
890
+ align-self: start;
891
+ align-items: center;
892
+ min-block-size: var(--inkra-touch-target);
893
+ }
894
+
895
+ .inkra-field-control-hit--textarea[data-end-action="true"] .inkra-textarea__footer {
896
+ grid-column: 1 / -1;
897
+ }
898
+
899
+ .inkra-textarea__underline {
900
+ position: absolute !important;
901
+ inset-inline: 0;
902
+ inset-block-end: -4px;
903
+ inline-size: 100%;
904
+ pointer-events: none;
905
+ }
906
+
907
+ .inkra-field-control-hit--textarea[data-invalid="true"] .inkra-textarea__underline {
908
+ color: var(--inkra-danger);
909
+ }
910
+
911
+ .inkra-field-control-hit--textarea[data-variant="underline"] .inkra-input__action-wash {
912
+ inset: 4px;
913
+ border-radius: 3px;
914
+ }
915
+
916
+ .inkra-field-control-hit--textarea[data-variant="underline"] .inkra-input__action-divider {
917
+ inset-block-start: 8px;
918
+ block-size: calc(100% - 16px);
919
+ }
920
+
879
921
  .inkra-textarea__count {
880
922
  display: flex;
881
923
  align-items: center;
@@ -1195,7 +1237,8 @@
1195
1237
  color: ButtonText;
1196
1238
  }
1197
1239
 
1198
- .inkra-input-root[data-variant="underline"] .inkra-field-control {
1240
+ .inkra-input-root[data-variant="underline"] .inkra-field-control,
1241
+ .inkra-field-control-hit--textarea[data-variant="underline"] .inkra-field-control {
1199
1242
  border: 0;
1200
1243
  }
1201
1244
 
@@ -1247,6 +1290,10 @@
1247
1290
  gap: 0;
1248
1291
  }
1249
1292
 
1293
+ .inkra-input-number__controls .inkra-button {
1294
+ touch-action: none;
1295
+ }
1296
+
1250
1297
  .inkra-slider {
1251
1298
  --inkra-slider-track-size: 8px;
1252
1299
  --inkra-slider-thumb-size: 24px;
@@ -1449,11 +1496,23 @@
1449
1496
  line-height: var(--inkra-line-ui);
1450
1497
  }
1451
1498
 
1452
- .inkra-selection-control:has(.inkra-selection-control__input:focus-visible) .inkra-selection-control__mark,
1453
- .inkra-selection-control:has(.inkra-selection-control__input:focus-visible) .inkra-switch__track,
1454
- .inkra-selection-control:has(.inkra-selection-control__input:focus-visible) .inkra-radio-group__segment {
1455
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
1456
- outline-offset: var(--inkra-focus-offset);
1499
+ .inkra-selection-control__focus-ring {
1500
+ --inkra-accent-strong: var(--inkra-focus);
1501
+
1502
+ inset: calc(-1 * var(--inkra-focus-offset));
1503
+ opacity: 0;
1504
+ pointer-events: none;
1505
+ position: absolute !important;
1506
+ z-index: 3;
1507
+ }
1508
+
1509
+ .inkra-selection-control__focus-ring--inset {
1510
+ inset: var(--inkra-focus-width);
1511
+ }
1512
+
1513
+ .inkra-selection-control:has(.inkra-selection-control__input:focus-visible)
1514
+ .inkra-selection-control__focus-ring {
1515
+ opacity: 1;
1457
1516
  }
1458
1517
 
1459
1518
  .inkra-selection-control[data-disabled="true"] {
@@ -1501,6 +1560,7 @@
1501
1560
 
1502
1561
  .inkra-radio-group__mark {
1503
1562
  color: var(--inkra-ink);
1563
+ position: relative;
1504
1564
  }
1505
1565
 
1506
1566
  .inkra-radio-group__icon {
@@ -1534,10 +1594,6 @@
1534
1594
  margin: 0;
1535
1595
  }
1536
1596
 
1537
- .inkra-radio-group__frame .inkra-selection-control:has(.inkra-selection-control__input:focus-visible) .inkra-radio-group__segment {
1538
- outline-offset: calc(-1 * var(--inkra-focus-width));
1539
- }
1540
-
1541
1597
  .inkra-radio-group__segment {
1542
1598
  align-items: center;
1543
1599
  color: var(--inkra-ink);
@@ -1588,7 +1644,7 @@
1588
1644
  display: inline-flex;
1589
1645
  height: 32px;
1590
1646
  justify-content: flex-start;
1591
- overflow: hidden;
1647
+ overflow: visible;
1592
1648
  padding-inline: 4px;
1593
1649
  width: 52px;
1594
1650
  }
@@ -1602,6 +1658,11 @@
1602
1658
  transition: transform var(--inkra-motion-fast) var(--inkra-ease);
1603
1659
  }
1604
1660
 
1661
+ .inkra-switch__track > .inkra-pencil-surface__ink {
1662
+ border-radius: inherit;
1663
+ overflow: hidden;
1664
+ }
1665
+
1605
1666
  .inkra-switch[data-checked="true"] .inkra-switch__thumb {
1606
1667
  --inkra-switch-thumb-shift: 20px;
1607
1668
 
@@ -1613,6 +1674,7 @@
1613
1674
  }
1614
1675
 
1615
1676
  @media (prefers-reduced-motion: reduce) {
1677
+ .inkra-selection-control__focus-ring,
1616
1678
  .inkra-radio-segment__surface,
1617
1679
  .inkra-switch__thumb {
1618
1680
  transition: none;
@@ -1630,11 +1692,17 @@
1630
1692
  z-index: auto;
1631
1693
  }
1632
1694
 
1633
- .inkra-selection-control__mark,
1634
- .inkra-switch__track,
1635
- .inkra-radio-segment__surface {
1695
+ .inkra-selection-control .inkra-selection-control__mark,
1696
+ .inkra-selection-control .inkra-switch__track,
1697
+ .inkra-selection-control .inkra-radio-segment__surface,
1698
+ .inkra-selection-control .inkra-selection-control__focus-ring {
1636
1699
  display: none;
1637
1700
  }
1701
+
1702
+ .inkra-selection-control__input:focus-visible {
1703
+ outline: var(--inkra-focus-width) solid Highlight;
1704
+ outline-offset: var(--inkra-focus-offset);
1705
+ }
1638
1706
  }
1639
1707
 
1640
1708
  .inkra-portal-theme-bridge {
@@ -1643,7 +1711,7 @@
1643
1711
  }
1644
1712
 
1645
1713
  .inkra-overlay__backdrop {
1646
- animation: inkra-overlay-backdrop-in var(--inkra-motion-normal) var(--inkra-ease);
1714
+ animation: inkra-overlay-backdrop-in var(--inkra-motion-normal) var(--inkra-ease) both;
1647
1715
  background: var(--inkra-overlay);
1648
1716
  inset: 0;
1649
1717
  position: fixed;
@@ -1651,13 +1719,13 @@
1651
1719
  }
1652
1720
 
1653
1721
  .inkra-overlay__backdrop[data-state="closed"] {
1654
- animation: inkra-overlay-backdrop-out var(--inkra-motion-normal) var(--inkra-ease);
1722
+ animation: inkra-overlay-backdrop-out var(--inkra-motion-normal) var(--inkra-ease) both;
1655
1723
  }
1656
1724
 
1657
1725
  .inkra-overlay__content {
1658
- animation: inkra-overlay-content-in var(--inkra-motion-normal) var(--inkra-ease);
1726
+ animation: inkra-overlay-content-in var(--inkra-motion-normal) var(--inkra-ease) both;
1659
1727
  inset-block-start: 50%;
1660
- inset-inline-start: 50%;
1728
+ left: 50%;
1661
1729
  max-height: min(80vh, calc(100dvh - var(--inkra-space-8)));
1662
1730
  outline: 0;
1663
1731
  position: fixed;
@@ -1667,7 +1735,8 @@
1667
1735
  }
1668
1736
 
1669
1737
  .inkra-overlay__content[data-state="closed"] {
1670
- animation: inkra-overlay-content-out var(--inkra-motion-normal) var(--inkra-ease);
1738
+ animation: inkra-overlay-content-out var(--inkra-motion-normal) var(--inkra-ease) both;
1739
+ pointer-events: none;
1671
1740
  }
1672
1741
 
1673
1742
  .inkra-overlay__content:focus-visible,
@@ -1765,9 +1834,9 @@
1765
1834
  }
1766
1835
 
1767
1836
  .inkra-popover__content {
1768
- animation: inkra-popover-content-in var(--inkra-motion-normal) var(--inkra-ease);
1769
- max-height: min(70vh, var(--radix-popover-content-available-height, 70vh));
1770
- max-width: min(24rem, calc(100vw - var(--inkra-space-8)));
1837
+ animation: inkra-popover-content-in var(--inkra-motion-normal) var(--inkra-ease) both;
1838
+ max-height: min(70dvh, var(--radix-popover-content-available-height, 70dvh));
1839
+ max-width: min(24rem, var(--radix-popover-content-available-width, calc(100dvw - var(--inkra-space-6))));
1771
1840
  outline: 0;
1772
1841
  transform-origin: var(--radix-popover-content-transform-origin);
1773
1842
  width: max-content;
@@ -1775,7 +1844,8 @@
1775
1844
  }
1776
1845
 
1777
1846
  .inkra-popover__content[data-state="closed"] {
1778
- animation: inkra-popover-content-out var(--inkra-motion-normal) var(--inkra-ease);
1847
+ animation: inkra-popover-content-out var(--inkra-motion-normal) var(--inkra-ease) both;
1848
+ pointer-events: none;
1779
1849
  }
1780
1850
 
1781
1851
  .inkra-popover__surface {
@@ -1783,6 +1853,7 @@
1783
1853
  display: block;
1784
1854
  max-height: inherit;
1785
1855
  max-width: inherit;
1856
+ min-width: 0;
1786
1857
  }
1787
1858
 
1788
1859
  .inkra-popover__content-body {
@@ -1790,11 +1861,18 @@
1790
1861
  max-height: inherit;
1791
1862
  max-width: inherit;
1792
1863
  overflow: auto;
1864
+ overflow-wrap: anywhere;
1793
1865
  overscroll-behavior: contain;
1794
1866
  padding: var(--inkra-space-4);
1795
1867
  scrollbar-gutter: stable;
1796
1868
  }
1797
1869
 
1870
+ .inkra-popover__title,
1871
+ .inkra-popover__description {
1872
+ max-width: 100%;
1873
+ overflow-wrap: anywhere;
1874
+ }
1875
+
1798
1876
  .inkra-popover__arrow {
1799
1877
  color: var(--inkra-paper);
1800
1878
  fill: currentcolor;
@@ -1871,7 +1949,7 @@
1871
1949
  .inkra-overlay__backdrop,
1872
1950
  .inkra-overlay__content,
1873
1951
  .inkra-popover__content {
1874
- animation: none;
1952
+ animation: none !important;
1875
1953
  }
1876
1954
  }
1877
1955
 
@@ -1903,7 +1981,7 @@
1903
1981
 
1904
1982
  .inkra-overlay__content,
1905
1983
  .inkra-popover__content {
1906
- animation: none;
1984
+ animation: none !important;
1907
1985
  max-height: none;
1908
1986
  max-width: none;
1909
1987
  position: static;
@@ -1912,11 +1990,48 @@
1912
1990
  }
1913
1991
  }
1914
1992
 
1915
- .inkra-search-select { width: 100%; min-width: 0; }
1916
- .inkra-search-select__anchor { display: flex; align-items: center; gap: 4px; min-width: 0; }
1917
- .inkra-search-select__anchor > .inkra-input-root,
1918
- .inkra-search-select__trigger { flex: 1; min-width: 0; }
1919
- .inkra-search-select__anchor > button:not(.inkra-search-select__trigger) { flex: none; }
1993
+ .inkra-search-select {
1994
+ --inkra-search-select-control-height: var(--inkra-control-md);
1995
+ --inkra-field-control-height: var(--inkra-search-select-control-height);
1996
+
1997
+ min-height: var(--inkra-touch-target);
1998
+ min-width: 0;
1999
+ width: 100%;
2000
+ }
2001
+ .inkra-search-select[data-size="sm"] { --inkra-search-select-control-height: var(--inkra-control-sm); }
2002
+ .inkra-search-select[data-size="lg"] { --inkra-search-select-control-height: var(--inkra-control-lg); }
2003
+ .inkra-search-select__anchor {
2004
+ align-items: center;
2005
+ block-size: var(--inkra-search-select-control-height);
2006
+ display: flex;
2007
+ gap: 0;
2008
+ min-width: 0;
2009
+ overflow: visible;
2010
+ width: 100%;
2011
+ }
2012
+ .inkra-search-select__input,
2013
+ .inkra-search-select__trigger { flex: 1 1 auto; min-width: 0; width: auto; }
2014
+ .inkra-search-select__input .inkra-search-select__input-control > .inkra-pencil-surface__ink,
2015
+ .inkra-search-select__input .inkra-search-select__input-control > .inkra-pencil-surface__border { display: none; }
2016
+ .inkra-search-select__anchor > .inkra-input__end-action { flex: 0 0 auto; }
2017
+ .inkra-search-select__anchor > .inkra-input__end-action:has(.inkra-search-select__clear:not([data-visible])) {
2018
+ pointer-events: none;
2019
+ }
2020
+ .inkra-search-select__anchor > .inkra-input__end-action:has(.inkra-search-select__clear:not([data-visible]))
2021
+ > :is(.inkra-input__action-divider, .inkra-input__action-wash) { display: none; }
2022
+ .inkra-search-select__clear:not([data-visible]) { visibility: hidden; }
2023
+ .inkra-search-select__trigger .inkra-button__content,
2024
+ .inkra-search-select__trigger .inkra-button__label,
2025
+ .inkra-search-select__trigger .inkra-button__label > span { min-width: 0; width: 100%; }
2026
+ .inkra-search-select__trigger .inkra-button__label > span { gap: var(--inkra-space-2); }
2027
+ .inkra-search-select__trigger .inkra-pencil-text { flex: 1 1 auto; min-width: 0; text-align: start; }
2028
+ .inkra-search-select__trigger .inkra-pencil-icon { flex: none; }
2029
+ .inkra-search-select__control:focus-within > .inkra-pencil-surface__ink,
2030
+ .inkra-search-select__control:focus-within > .inkra-pencil-surface__border {
2031
+ filter: contrast(1.28) saturate(1.08);
2032
+ }
2033
+ .inkra-search-select[data-disabled] .inkra-search-select__control { opacity: 0.55; }
2034
+ .inkra-search-select[data-disabled] :is(.inkra-input-root, .inkra-button) { opacity: 1; }
1920
2035
  .inkra-search-select__summary { display: block; margin-top: 8px; font-size: var(--inkra-text-sm); }
1921
2036
  .inkra-search-select__positioner { width: var(--anchor-width); max-width: calc(100vw - 16px); }
1922
2037
  .inkra-search-select__popup { outline: 0; width: 100%; }
@@ -1927,6 +2042,95 @@
1927
2042
  .inkra-search-select__popup [data-highlighted] .inkra-select__item-surface { color: var(--inkra-selection-foreground); }
1928
2043
  .inkra-search-select__popup [data-disabled] { opacity: 0.5; }
1929
2044
 
2045
+ .inkra-select-stepper {
2046
+ inline-size: 20rem;
2047
+ max-inline-size: 100%;
2048
+ vertical-align: middle;
2049
+ }
2050
+
2051
+ .inkra-select-stepper[data-full-width="true"] {
2052
+ display: flex;
2053
+ inline-size: 100%;
2054
+ }
2055
+
2056
+ .inkra-select-stepper .inkra-select-stepper__control,
2057
+ .inkra-select-stepper .inkra-select-stepper__control > .inkra-pencil-surface__content {
2058
+ flex-wrap: nowrap;
2059
+ gap: 0;
2060
+ padding-inline: 0;
2061
+ }
2062
+
2063
+ .inkra-select-stepper__control {
2064
+ outline: 0;
2065
+ }
2066
+
2067
+ .inkra-select-stepper__value {
2068
+ align-items: center;
2069
+ appearance: none;
2070
+ align-self: stretch;
2071
+ background: transparent;
2072
+ border: 0;
2073
+ box-sizing: border-box;
2074
+ color: var(--inkra-ink);
2075
+ cursor: default;
2076
+ display: flex;
2077
+ flex: 1 1 auto;
2078
+ font-family: var(--inkra-font-body);
2079
+ font-size: var(--inkra-field-control-font-size);
2080
+ justify-content: center;
2081
+ line-height: var(--inkra-line-ui);
2082
+ min-inline-size: 0;
2083
+ overflow: hidden;
2084
+ padding-inline: var(--inkra-field-control-padding);
2085
+ text-align: center;
2086
+ }
2087
+
2088
+ .inkra-select-stepper__value:focus-visible {
2089
+ outline: 0;
2090
+ }
2091
+
2092
+ .inkra-select-stepper__value[data-placeholder="true"] {
2093
+ color: var(--inkra-ink-subtle);
2094
+ }
2095
+
2096
+ .inkra-select-stepper__value .inkra-pencil-text {
2097
+ max-inline-size: 100%;
2098
+ }
2099
+
2100
+ .inkra-select-stepper__button .inkra-pencil-icon {
2101
+ transition: transform var(--inkra-motion-fast) var(--inkra-ease);
2102
+ }
2103
+
2104
+ .inkra-select-stepper:dir(rtl) .inkra-select-stepper__button .inkra-pencil-icon {
2105
+ transform: scaleX(-1);
2106
+ }
2107
+
2108
+ .inkra-select-stepper__native {
2109
+ block-size: 1px;
2110
+ clip-path: inset(50%);
2111
+ inline-size: 1px;
2112
+ inset: 50%;
2113
+ overflow: hidden;
2114
+ position: absolute;
2115
+ white-space: nowrap;
2116
+ }
2117
+
2118
+ @media (forced-colors: active) {
2119
+ .inkra-search-select__control {
2120
+ background: Canvas;
2121
+ border: 1px solid CanvasText;
2122
+ }
2123
+
2124
+ .inkra-search-select[data-invalid] .inkra-search-select__control {
2125
+ border-color: Mark;
2126
+ }
2127
+
2128
+ .inkra-select-stepper__value:focus-visible {
2129
+ outline: var(--inkra-focus-width) solid Highlight;
2130
+ outline-offset: calc(-1 * var(--inkra-focus-width));
2131
+ }
2132
+ }
2133
+
1930
2134
  .inkra-select__trigger {
1931
2135
  --inkra-select-height: var(--inkra-control-md);
1932
2136
  --inkra-select-font-size: var(--inkra-text-md);
@@ -2298,6 +2502,7 @@
2298
2502
 
2299
2503
  .inkra-select__trigger-icon,
2300
2504
  .inkra-select__focus-ring,
2505
+ .inkra-select-stepper__button .inkra-pencil-icon,
2301
2506
  .inkra-select__item-surface > .inkra-pencil-surface__ink {
2302
2507
  transition-duration: 0ms;
2303
2508
  }
@@ -2346,7 +2551,14 @@
2346
2551
  .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; }
2347
2552
  .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; }
2348
2553
  .inkra-tabs[data-size="lg"] { --inkra-tabs-font-size: 17px; --inkra-tabs-padding: var(--inkra-space-4); --inkra-tabs-icon-size: 24px; }
2349
- .inkra-tabs__list { display: flex; gap: var(--inkra-space-2); max-width: 100%; overflow-x: auto; }
2554
+ .inkra-tabs__list {
2555
+ display: flex;
2556
+ gap: var(--inkra-space-2);
2557
+ max-width: 100%;
2558
+ overflow-x: auto;
2559
+ overflow-y: hidden;
2560
+ scroll-padding-inline: var(--inkra-focus-offset);
2561
+ }
2350
2562
  .inkra-tabs__list[data-orientation="vertical"] { flex-direction: column; }
2351
2563
  .inkra-tabs__list[data-divided] { gap: 24px; }
2352
2564
  .inkra-tabs__divider { position: absolute; color: var(--inkra-ink-muted); opacity: 0.56; }
@@ -2372,49 +2584,70 @@
2372
2584
  .inkra-tabs__trigger[data-state="active"] { color: var(--inkra-selection-foreground); }
2373
2585
  .inkra-tabs__trigger:disabled { cursor: not-allowed; opacity: 0.55; }
2374
2586
  .inkra-tabs__trigger:focus-visible { outline: 0; }
2375
- .inkra-tabs__focus-ring {
2587
+ .inkra-pencil-surface.inkra-tabs__focus-ring {
2376
2588
  --inkra-accent-strong: var(--inkra-focus);
2377
2589
  position: absolute !important;
2378
2590
  display: block !important;
2379
- inset: 0;
2591
+ inset: var(--inkra-focus-width);
2380
2592
  pointer-events: none;
2381
2593
  opacity: 0;
2382
2594
  z-index: 2;
2383
2595
  }
2384
- .inkra-tabs__trigger:focus-visible > .inkra-tabs__focus-ring { opacity: 1; }
2596
+ .inkra-tabs__trigger:focus-visible > .inkra-pencil-surface.inkra-tabs__focus-ring { opacity: 1; }
2385
2597
  .inkra-tabs__content:focus-visible {
2386
2598
  outline: var(--inkra-focus-width) solid var(--inkra-focus);
2387
2599
  outline-offset: calc(-1 * var(--inkra-focus-width));
2388
2600
  }
2389
- .inkra-tabs__selection { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
2390
- .inkra-tabs__trigger[data-state="active"] > .inkra-tabs__selection { opacity: 1; }
2601
+ .inkra-pencil-surface.inkra-tabs__selection { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
2602
+ .inkra-tabs__trigger[data-state="active"] > .inkra-pencil-surface.inkra-tabs__selection { opacity: 1; }
2391
2603
  .inkra-tabs__label { position: relative; }
2392
2604
  .inkra-tabs__content { min-width: 0; }
2393
2605
  .inkra-tabs__content[hidden] { display: none !important; }
2606
+ .inkra-tabs__overflow { display: flex; align-items: center; min-width: 0; max-width: 100%; position: relative; }
2607
+ .inkra-tabs__overflow > .inkra-tabs__list { flex: 1 1 auto; min-width: 0; }
2608
+ .inkra-tabs__scroll-button, .inkra-tabs__more { flex: 0 0 44px; }
2609
+ .inkra-tabs__overflow-icon { display: inline-flex; width: 32px; height: 32px; position: relative; pointer-events: none; }
2610
+ .inkra-tabs__overflow-icon[data-down] { transform: rotate(90deg); }
2611
+ .inkra-tabs__overflow-icon > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
2612
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: none; }
2613
+ .inkra-tabs__overflow-icon > canvas:not([data-pencil-icon-ready]) { visibility: hidden; }
2614
+ .inkra-tabs__list[data-overflow="menu"] { position: relative; overflow: hidden; }
2615
+ .inkra-tabs__list[data-overflow="menu"][data-full-width] > .inkra-tabs__trigger { flex: 1 0 auto; }
2616
+ .inkra-tabs__trigger[data-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; inset-inline-start: 0; top: 0; }
2617
+ .inkra-tabs__list[data-overflow="buttons"] { scrollbar-width: none; }
2618
+ .inkra-tabs__list[data-overflow="buttons"]::-webkit-scrollbar { display: none; }
2394
2619
  @media (forced-colors: active) {
2395
- .inkra-tabs__focus-ring { display: none !important; }
2620
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
2621
+ .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2396
2622
  .inkra-tabs__trigger:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
2397
- .inkra-tabs__selection { display: none; }
2623
+ .inkra-pencil-surface.inkra-tabs__selection { display: none !important; }
2398
2624
  .inkra-tabs__trigger[data-state="active"] { color: Highlight; outline: 2px solid Highlight; outline-offset: -2px; }
2399
2625
  }
2400
- @media print { .inkra-tabs__selection, .inkra-tabs__focus-ring { display: none !important; } }
2626
+ @media print {
2627
+ .inkra-pencil-surface.inkra-tabs__selection, .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
2628
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
2629
+ }
2401
2630
 
2402
2631
  .inkra-tooltip__content {
2403
- animation: inkra-tooltip-content-in var(--inkra-motion-fast) var(--inkra-ease);
2404
- max-width: min(20rem, calc(100vw - var(--inkra-space-4)));
2632
+ animation: inkra-tooltip-content-in var(--inkra-motion-fast) var(--inkra-ease) both;
2633
+ max-height: min(50dvh, var(--radix-tooltip-content-available-height, 50dvh));
2634
+ max-width: min(20rem, var(--radix-tooltip-content-available-width, calc(100dvw - var(--inkra-space-4))));
2405
2635
  outline: 0;
2406
2636
  transform-origin: var(--radix-tooltip-content-transform-origin);
2407
2637
  z-index: calc(var(--inkra-z-tooltip, 40) + var(--inkra-floating-layer-offset, 0));
2408
2638
  }
2409
2639
 
2410
2640
  .inkra-tooltip__content[data-state="closed"] {
2411
- animation: inkra-tooltip-content-out var(--inkra-motion-fast) var(--inkra-ease);
2641
+ animation: inkra-tooltip-content-out var(--inkra-motion-fast) var(--inkra-ease) both;
2642
+ pointer-events: none;
2412
2643
  }
2413
2644
 
2414
2645
  .inkra-tooltip__surface {
2415
2646
  color: var(--inkra-ink);
2416
2647
  display: block;
2648
+ max-height: inherit;
2417
2649
  max-width: inherit;
2650
+ min-width: 0;
2418
2651
  }
2419
2652
 
2420
2653
  .inkra-tooltip__content-body {
@@ -2422,9 +2655,13 @@
2422
2655
  font-family: var(--inkra-font-body);
2423
2656
  font-size: var(--inkra-text-sm);
2424
2657
  line-height: var(--inkra-line-ui);
2658
+ max-height: inherit;
2425
2659
  max-width: inherit;
2660
+ overflow: auto;
2426
2661
  overflow-wrap: anywhere;
2662
+ overscroll-behavior: contain;
2427
2663
  padding: var(--inkra-space-2) var(--inkra-space-3);
2664
+ scrollbar-gutter: stable;
2428
2665
  user-select: text;
2429
2666
  }
2430
2667
 
@@ -2452,7 +2689,7 @@
2452
2689
 
2453
2690
  @media (prefers-reduced-motion: reduce) {
2454
2691
  .inkra-tooltip__content {
2455
- animation: none;
2692
+ animation: none !important;
2456
2693
  }
2457
2694
  }
2458
2695
 
@@ -2534,7 +2771,7 @@
2534
2771
  --inkra-accent-strong: var(--inkra-focus);
2535
2772
 
2536
2773
  display: block !important;
2537
- inset: calc(-1 * var(--inkra-focus-offset));
2774
+ inset: var(--inkra-focus-width);
2538
2775
  opacity: 0;
2539
2776
  pointer-events: none;
2540
2777
  position: absolute !important;
@@ -2581,7 +2818,8 @@
2581
2818
  }
2582
2819
 
2583
2820
  .inkra-accordion__content[data-state="closed"] {
2584
- animation: inkra-accordion-content-up var(--inkra-motion-normal) var(--inkra-ease);
2821
+ animation: inkra-accordion-content-up var(--inkra-motion-normal) var(--inkra-ease) both;
2822
+ height: 0;
2585
2823
  }
2586
2824
 
2587
2825
  .inkra-accordion__content-body {
@@ -2593,6 +2831,29 @@
2593
2831
  padding: var(--inkra-space-2) var(--inkra-space-3) var(--inkra-space-4);
2594
2832
  }
2595
2833
 
2834
+ .inkra-accordion__content[data-state="open"] > .inkra-accordion__content-body {
2835
+ animation: inkra-accordion-body-in var(--inkra-motion-normal) var(--inkra-ease);
2836
+ }
2837
+
2838
+ .inkra-accordion__content[data-state="closed"] > .inkra-accordion__content-body {
2839
+ animation: inkra-accordion-body-out var(--inkra-motion-normal) var(--inkra-ease) both;
2840
+ pointer-events: none;
2841
+ }
2842
+
2843
+ .inkra-accordion__content-body.inkra-accordion__content[data-state="closed"] {
2844
+ padding: 0;
2845
+ }
2846
+
2847
+ @keyframes inkra-accordion-body-in {
2848
+ from { opacity: 0; transform: translateY(calc(-1 * var(--inkra-space-1))); }
2849
+ to { opacity: 1; transform: translateY(0); }
2850
+ }
2851
+
2852
+ @keyframes inkra-accordion-body-out {
2853
+ from { opacity: 1; transform: translateY(0); }
2854
+ to { opacity: 0; transform: translateY(calc(-1 * var(--inkra-space-1))); }
2855
+ }
2856
+
2596
2857
  .inkra-accordion__divider {
2597
2858
  color: var(--inkra-border);
2598
2859
  inset-block-end: -4px;
@@ -2633,10 +2894,13 @@
2633
2894
 
2634
2895
  .inkra-accordion[data-orientation="horizontal"] .inkra-accordion__content[data-state="closed"] {
2635
2896
  animation-name: inkra-accordion-content-close-horizontal;
2897
+ height: auto;
2898
+ width: 0;
2636
2899
  }
2637
2900
 
2638
2901
  @media (prefers-reduced-motion: reduce) {
2639
- .inkra-accordion__content {
2902
+ .inkra-accordion__content,
2903
+ .inkra-accordion__content-body {
2640
2904
  animation: none !important;
2641
2905
  }
2642
2906
 
@@ -2647,13 +2911,13 @@
2647
2911
  }
2648
2912
 
2649
2913
  @media (forced-colors: active) {
2650
- .inkra-accordion__focus-ring {
2914
+ .inkra-pencil-surface.inkra-accordion__focus-ring {
2651
2915
  display: none !important;
2652
2916
  }
2653
2917
 
2654
2918
  .inkra-accordion__trigger:focus-visible {
2655
2919
  outline: var(--inkra-focus-width) solid Highlight;
2656
- outline-offset: var(--inkra-focus-offset);
2920
+ outline-offset: calc(-1 * var(--inkra-focus-width));
2657
2921
  }
2658
2922
 
2659
2923
  .inkra-accordion__trigger-icon::before {
@@ -2666,8 +2930,9 @@
2666
2930
  }
2667
2931
 
2668
2932
  @media print {
2669
- .inkra-accordion__content {
2670
- animation: none;
2933
+ .inkra-accordion__content,
2934
+ .inkra-accordion__content-body {
2935
+ animation: none !important;
2671
2936
  }
2672
2937
  }
2673
2938
 
@@ -2711,11 +2976,24 @@
2711
2976
  }
2712
2977
 
2713
2978
  .inkra-skeleton {
2979
+ --inkra-selection-pigment: var(--inkra-ink-muted);
2714
2980
  block-size: 16px;
2715
2981
  inline-size: 100%;
2716
2982
  max-inline-size: 100%;
2717
2983
  min-inline-size: 8px;
2718
2984
  }
2985
+ .inkra-skeleton[data-pencil-fallback="true"] {
2986
+ background: color-mix(in srgb, var(--inkra-ink-muted) 18%, transparent);
2987
+ border: 0;
2988
+ }
2989
+ .inkra-skeleton[data-animation="pulse"] { animation: inkra-skeleton-pulse calc(var(--inkra-motion-slow) * 4) var(--inkra-ease) infinite; }
2990
+ @keyframes inkra-skeleton-pulse {
2991
+ 0%, 100% { opacity: 1; }
2992
+ 50% { opacity: .45; }
2993
+ }
2994
+ @media (prefers-reduced-motion: reduce), (forced-colors: active), print {
2995
+ .inkra-skeleton[data-animation="pulse"] { animation: none; }
2996
+ }
2719
2997
 
2720
2998
  .inkra-progress {
2721
2999
  display: grid;
@@ -2943,11 +3221,18 @@
2943
3221
  .inkra-progress__segment-outline { border: 1px solid CanvasText; }
2944
3222
  .inkra-progress__segment-fill { background: Highlight; border: 0; }
2945
3223
 
2946
- .inkra-skeleton {
2947
- outline: 1px solid CanvasText;
3224
+ .inkra-skeleton.inkra-pencil-surface {
3225
+ background: CanvasText;
3226
+ border: 0;
3227
+ forced-color-adjust: none;
3228
+ opacity: .18;
2948
3229
  }
2949
3230
  }
2950
3231
 
3232
+ @media print {
3233
+ .inkra-skeleton.inkra-pencil-surface { background: color-mix(in srgb, currentColor 18%, transparent); border: 0; }
3234
+ }
3235
+
2951
3236
  @media print {
2952
3237
  .inkra-progress__ring-ink[data-ready="true"] { visibility: hidden; }
2953
3238
  .inkra-progress__ring-ink[data-ready="true"] + .inkra-progress__ring-fallback { visibility: visible; }
@@ -2989,6 +3274,8 @@
2989
3274
  .inkra-alert__icon { display: inline-flex; width: 20px; height: 20px; flex: none; }
2990
3275
  .inkra-alert__icon > * { width: 100%; height: 100%; }
2991
3276
  .inkra-alert__body { display: grid; gap: var(--inkra-space-2); min-width: 0; overflow-wrap: anywhere; }
3277
+ .inkra-alert:has(> .inkra-alert__close) .inkra-alert__body { flex: 1; }
3278
+ .inkra-alert__close { flex: none; align-self: flex-start; }
2992
3279
  .inkra-alert__title { margin: 0; font-size: 17px; line-height: var(--inkra-line-ui); }
2993
3280
  .inkra-alert__description { font-size: var(--inkra-text-md); line-height: var(--inkra-line-body); }
2994
3281
  .inkra-avatar { position: relative; display: inline-flex; width: 44px; height: 44px; flex: none; isolation: isolate; }
@@ -3034,20 +3321,73 @@
3034
3321
  .inkra-table tr[data-selected] { outline: 1px solid Highlight; }
3035
3322
  }
3036
3323
 
3037
- .inkra-menu { min-width: 180px; max-width: min(320px, calc(100vw - 16px)); outline: 0; z-index: calc(40 + var(--inkra-floating-layer-offset, 0)); }
3038
- .inkra-menu__paper { padding: 4px; max-height: var(--radix-dropdown-menu-content-available-height); overflow-y: auto; }
3324
+ .inkra-menu {
3325
+ --inkra-menu-enter-x: 0px;
3326
+ --inkra-menu-enter-y: var(--inkra-space-1);
3327
+ min-width: min(180px, var(--radix-dropdown-menu-content-available-width, calc(100vw - 16px)));
3328
+ max-width: min(320px, var(--radix-dropdown-menu-content-available-width, calc(100vw - 16px)), calc(100vw - 16px));
3329
+ outline: 0;
3330
+ transform-origin: var(--radix-dropdown-menu-content-transform-origin);
3331
+ z-index: calc(40 + var(--inkra-floating-layer-offset, 0));
3332
+ }
3333
+ .inkra-menu[data-side="top"] { --inkra-menu-enter-y: calc(-1 * var(--inkra-space-1)); }
3334
+ .inkra-menu[data-side="left"] { --inkra-menu-enter-x: calc(-1 * var(--inkra-space-1)); --inkra-menu-enter-y: 0px; }
3335
+ .inkra-menu[data-side="right"] { --inkra-menu-enter-x: var(--inkra-space-1); --inkra-menu-enter-y: 0px; }
3336
+ .inkra-menu[data-state="open"] { animation: inkra-menu-enter var(--inkra-motion-normal) var(--inkra-ease) both; }
3337
+ .inkra-menu[data-state="closed"] { animation: inkra-menu-exit var(--inkra-motion-fast) var(--inkra-ease) both; pointer-events: none; }
3338
+ .inkra-menu__paper {
3339
+ box-sizing: border-box;
3340
+ max-height: min(var(--radix-dropdown-menu-content-available-height, calc(100dvh - 16px)), calc(100dvh - 16px));
3341
+ max-width: 100%;
3342
+ overflow-x: hidden;
3343
+ overflow-y: auto;
3344
+ overscroll-behavior: contain;
3345
+ padding: 4px;
3346
+ scrollbar-gutter: stable;
3347
+ }
3039
3348
  .inkra-menu__item { position: relative; display: flex; align-items: center; gap: 8px; padding: 8px 12px; min-height: 44px; box-sizing: border-box; color: var(--inkra-ink); outline: 0; cursor: default; font-family: var(--inkra-font-body); font-size: var(--inkra-text-md); line-height: var(--inkra-line-ui); }
3040
3349
  .inkra-menu__item[data-destructive] { color: var(--inkra-danger-foreground); }
3041
3350
  .inkra-menu__item[data-disabled] { opacity: 0.5; pointer-events: none; }
3042
- .inkra-menu__highlight { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
3351
+ .inkra-menu__highlight { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity var(--inkra-motion-fast) var(--inkra-ease); }
3043
3352
  .inkra-menu__item[data-highlighted] > .inkra-menu__highlight { opacity: 1; }
3044
3353
  .inkra-menu__icon { display: inline-flex; width: 16px; height: 16px; flex: none; position: relative; }
3045
- .inkra-menu__label { position: relative; min-width: 0; overflow-wrap: anywhere; }
3354
+ .inkra-menu__label { flex: 1 1 auto; position: relative; min-width: 0; overflow-wrap: anywhere; }
3355
+ .inkra-menu__label > .inkra-pencil-text { min-width: 0; overflow-wrap: anywhere; width: 100%; }
3046
3356
  .inkra-menu__group-label { padding: 8px 12px; color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); }
3047
3357
  .inkra-menu__separator { height: 8px; }
3358
+
3359
+ @keyframes inkra-menu-enter {
3360
+ from { opacity: 0; transform: translate(var(--inkra-menu-enter-x), var(--inkra-menu-enter-y)); }
3361
+ to { opacity: 1; transform: translate(0, 0); }
3362
+ }
3363
+
3364
+ @keyframes inkra-menu-exit {
3365
+ from { opacity: 1; transform: translate(0, 0); }
3366
+ to { opacity: 0; transform: translate(var(--inkra-menu-enter-x), var(--inkra-menu-enter-y)); }
3367
+ }
3368
+
3369
+ @media (prefers-reduced-motion: reduce) {
3370
+ .inkra-menu { animation: none !important; }
3371
+ .inkra-menu__highlight { transition: none; }
3372
+ }
3373
+
3374
+ @media print {
3375
+ .inkra-menu { animation: none !important; }
3376
+ }
3048
3377
  @media (forced-colors: active) {
3049
3378
  .inkra-menu { border: 1px solid CanvasText; background: Canvas; }
3050
- .inkra-menu__item[data-highlighted] { outline: 2px solid Highlight; outline-offset: -2px; }
3379
+ .inkra-menu__highlight { display: none !important; }
3380
+ .inkra-menu__item[data-highlighted] {
3381
+ background: Highlight;
3382
+ color: HighlightText;
3383
+ forced-color-adjust: none;
3384
+ outline: 2px solid Highlight;
3385
+ outline-offset: -2px;
3386
+ }
3387
+ .inkra-menu__item[data-disabled] { color: GrayText; opacity: 1; }
3388
+ .inkra-menu__icon .inkra-pencil-icon { display: none !important; }
3389
+ .inkra-menu__item[data-state="checked"] .inkra-menu__icon::after { content: "✓"; }
3390
+ .inkra-menu__item[data-state="indeterminate"] .inkra-menu__icon::after { content: "—"; }
3051
3391
  }
3052
3392
 
3053
3393
  .inkra-slot {
@@ -3161,15 +3501,22 @@
3161
3501
  }
3162
3502
 
3163
3503
  .inkra-log {
3504
+ box-sizing: border-box;
3164
3505
  color: var(--inkra-ink);
3506
+ container-type: inline-size;
3165
3507
  display: grid;
3166
- grid-template-rows: minmax(0, 1fr);
3508
+ grid-template-columns: minmax(0, 1fr);
3509
+ grid-template-rows: minmax(var(--inkra-touch-target), 1fr);
3510
+ inline-size: 100%;
3167
3511
  min-block-size: 12rem;
3168
3512
  min-inline-size: 0;
3169
- overflow: hidden;
3513
+ overflow-x: hidden;
3514
+ overflow-y: auto;
3170
3515
  }
3171
3516
 
3172
- .inkra-log[data-toolbar="true"] { grid-template-rows: auto minmax(0, 1fr); }
3517
+ .inkra-log[data-toolbar="true"] { grid-template-rows: auto minmax(var(--inkra-touch-target), 1fr); }
3518
+ .inkra-log:has(> .inkra-log__latest) { grid-template-rows: minmax(var(--inkra-touch-target), 1fr) auto; }
3519
+ .inkra-log[data-toolbar="true"]:has(> .inkra-log__latest) { grid-template-rows: auto minmax(var(--inkra-touch-target), 1fr) auto; }
3173
3520
 
3174
3521
  .inkra-log__toolbar {
3175
3522
  align-items: center;
@@ -3177,6 +3524,8 @@
3177
3524
  flex-wrap: wrap;
3178
3525
  gap: var(--inkra-space-2);
3179
3526
  justify-content: space-between;
3527
+ max-inline-size: 100%;
3528
+ min-inline-size: 0;
3180
3529
  padding: var(--inkra-space-2) var(--inkra-space-3);
3181
3530
  position: relative;
3182
3531
  }
@@ -3200,26 +3549,49 @@
3200
3549
  min-inline-size: 0;
3201
3550
  }
3202
3551
 
3552
+ .inkra-log__filters > .inkra-button { flex: none; max-inline-size: 100%; }
3553
+
3203
3554
  .inkra-log__filters .inkra-button[data-tone="info"] { color: var(--inkra-info-foreground); }
3204
3555
  .inkra-log__filters .inkra-button[data-tone="success"] { color: var(--inkra-success-foreground); }
3205
3556
  .inkra-log__filters .inkra-button[data-tone="warning"] { color: var(--inkra-warning-foreground); }
3206
3557
  .inkra-log__filters .inkra-button[data-tone="danger"] { color: var(--inkra-danger-foreground); }
3207
3558
  .inkra-log__follow-control { flex: none; }
3208
3559
 
3209
- .inkra-log__viewport {
3210
- min-block-size: 0;
3211
- outline: 0;
3212
- overflow: auto;
3213
- overscroll-behavior: contain;
3214
- padding: var(--inkra-space-2) var(--inkra-space-3) var(--inkra-space-4);
3215
- scrollbar-gutter: stable;
3216
- }
3560
+ .inkra-log__viewport-frame {
3561
+ max-inline-size: 100%;
3562
+ min-block-size: var(--inkra-touch-target);
3563
+ min-inline-size: 0;
3564
+ position: relative;
3565
+ }
3566
+
3567
+ .inkra-log__focus-ring {
3568
+ --inkra-accent-strong: var(--inkra-focus);
3569
+ inset: var(--inkra-focus-width);
3570
+ opacity: 0;
3571
+ pointer-events: none;
3572
+ position: absolute !important;
3573
+ z-index: 3;
3574
+ }
3575
+
3576
+ .inkra-log__viewport {
3577
+ block-size: 100%;
3578
+ box-sizing: border-box;
3579
+ min-block-size: 0;
3580
+ max-inline-size: 100%;
3581
+ min-inline-size: 0;
3582
+ outline: 0;
3583
+ overflow: auto;
3584
+ overscroll-behavior: contain;
3585
+ padding: var(--inkra-space-2) var(--inkra-space-3) var(--inkra-space-4);
3586
+ scrollbar-gutter: stable;
3587
+ }
3217
3588
 
3218
3589
  .inkra-log__viewport:focus-visible {
3219
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
3220
- outline-offset: calc(-1 * var(--inkra-focus-width));
3590
+ outline: 0;
3221
3591
  }
3222
3592
 
3593
+ .inkra-log__viewport-frame:has(.inkra-log__viewport:focus-visible) > .inkra-log__focus-ring { opacity: 1; }
3594
+
3223
3595
  .inkra-log__list {
3224
3596
  display: grid;
3225
3597
  list-style: none;
@@ -3290,20 +3662,44 @@
3290
3662
  .inkra-log__latest {
3291
3663
  align-items: center;
3292
3664
  display: flex;
3293
- inset-block-end: var(--inkra-space-3);
3294
- inset-inline-end: var(--inkra-space-3);
3295
- position: absolute;
3665
+ justify-content: flex-end;
3666
+ max-inline-size: 100%;
3667
+ min-inline-size: 0;
3668
+ padding: var(--inkra-space-2) var(--inkra-space-3);
3669
+ position: relative;
3296
3670
  z-index: 2;
3297
3671
  }
3298
3672
 
3299
- @media (max-width: 36rem) {
3673
+ .inkra-log__latest-divider {
3674
+ color: var(--inkra-border);
3675
+ inset-block-start: -4px;
3676
+ inset-inline: 0;
3677
+ position: absolute;
3678
+ }
3679
+
3680
+ @container (max-width: 36rem) {
3300
3681
  .inkra-log__toolbar { align-items: stretch; }
3301
3682
  .inkra-log__filters { flex-basis: 100%; overflow-x: auto; flex-wrap: nowrap; padding-block-end: var(--inkra-space-1); }
3302
- .inkra-log__follow-control { margin-inline-start: auto; }
3683
+ .inkra-log__filters > .inkra-button .inkra-button__surface { height: auto; max-inline-size: 100%; min-height: var(--inkra-button-visual-height); padding-block: var(--inkra-space-2); }
3684
+ .inkra-log__filters > .inkra-button .inkra-button__content,
3685
+ .inkra-log__filters > .inkra-button .inkra-button__label,
3686
+ .inkra-log__filters > .inkra-button .inkra-pencil-text,
3687
+ .inkra-log__filters > .inkra-button .inkra-pencil-text__source { max-inline-size: 100%; min-inline-size: 0; white-space: normal; overflow-wrap: anywhere; }
3688
+ .inkra-log__follow-control { inline-size: 100%; margin-inline-start: 0; }
3689
+ .inkra-log__follow-control .inkra-button__surface { height: auto; inline-size: 100%; max-inline-size: 100%; min-height: var(--inkra-button-visual-height); padding-block: var(--inkra-space-2); }
3690
+ .inkra-log__follow-control .inkra-button__content,
3691
+ .inkra-log__follow-control .inkra-button__label,
3692
+ .inkra-log__follow-control .inkra-pencil-text__source { min-inline-size: 0; white-space: normal; overflow-wrap: anywhere; }
3693
+ .inkra-log__latest .inkra-button { inline-size: 100%; }
3694
+ .inkra-log__latest .inkra-button__surface { height: auto; inline-size: 100%; max-inline-size: 100%; min-height: var(--inkra-button-visual-height); padding-block: var(--inkra-space-2); }
3695
+ .inkra-log__latest .inkra-button__content,
3696
+ .inkra-log__latest .inkra-button__label,
3697
+ .inkra-log__latest .inkra-pencil-text__source { min-inline-size: 0; white-space: normal; overflow-wrap: anywhere; }
3303
3698
  }
3304
3699
 
3305
3700
  @media (forced-colors: active) {
3306
- .inkra-log__viewport:focus-visible { outline-color: Highlight; }
3701
+ .inkra-pencil-surface.inkra-log__focus-ring { display: none !important; }
3702
+ .inkra-log__viewport:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
3307
3703
  .inkra-log__icon,
3308
3704
  .inkra-log__level { color: CanvasText; }
3309
3705
  }
@@ -3361,6 +3757,7 @@
3361
3757
  .inkra-hotkey-input {
3362
3758
  --inkra-hotkey-input-height: var(--inkra-control-md);
3363
3759
 
3760
+ position: relative;
3364
3761
  display: grid;
3365
3762
  inline-size: 20rem;
3366
3763
  max-inline-size: 100%;
@@ -3380,17 +3777,25 @@
3380
3777
  box-sizing: border-box;
3381
3778
  inline-size: 100%;
3382
3779
  min-inline-size: 0;
3383
- min-block-size: max(var(--inkra-hotkey-input-height), var(--inkra-touch-target));
3780
+ block-size: var(--inkra-hotkey-input-height);
3781
+ min-block-size: var(--inkra-hotkey-input-height);
3384
3782
  align-items: center;
3783
+ margin-block: max(0px, calc((var(--inkra-touch-target) - var(--inkra-hotkey-input-height)) / 2));
3784
+ }
3785
+
3786
+ .inkra-hotkey-input__control > .inkra-pencil-surface__content {
3787
+ overflow: visible;
3788
+ clip-path: none;
3385
3789
  }
3386
3790
 
3387
3791
  .inkra-hotkey-input__native {
3388
3792
  position: absolute;
3389
3793
  z-index: 2;
3390
- inset: 0;
3794
+ inset-inline: 0;
3795
+ inset-block: min(0px, calc((var(--inkra-hotkey-input-height) - var(--inkra-touch-target)) / 2));
3391
3796
  box-sizing: border-box;
3392
3797
  inline-size: 100%;
3393
- block-size: 100%;
3798
+ block-size: auto;
3394
3799
  border: 0;
3395
3800
  outline: 0;
3396
3801
  background: transparent;
@@ -3414,19 +3819,45 @@
3414
3819
  }
3415
3820
 
3416
3821
  .inkra-hotkey-input:has(.inkra-hotkey-input__clear) .inkra-hotkey-input__value {
3417
- padding-inline-end: calc(var(--inkra-touch-target) + var(--inkra-space-2));
3822
+ padding-inline-end: calc(max(var(--inkra-touch-target), var(--inkra-hotkey-input-height)) + var(--inkra-space-2));
3418
3823
  }
3419
3824
 
3420
3825
  .inkra-hotkey-input__placeholder { color: var(--inkra-ink-subtle); }
3421
3826
 
3827
+ .inkra-hotkey-input__recording {
3828
+ color: var(--inkra-accent-strong);
3829
+ }
3830
+
3831
+ .inkra-hotkey-input__focus-ring {
3832
+ position: absolute !important;
3833
+ z-index: 4;
3834
+ inset: 2px;
3835
+ opacity: 0;
3836
+ pointer-events: none;
3837
+ transition: opacity var(--inkra-motion-fast) var(--inkra-ease);
3838
+ }
3839
+
3840
+ .inkra-hotkey-input[data-recording="true"] .inkra-hotkey-input__focus-ring { opacity: 1; }
3841
+
3842
+ .inkra-hotkey-input__status {
3843
+ position: absolute;
3844
+ inline-size: 1px;
3845
+ block-size: 1px;
3846
+ padding: 0;
3847
+ margin: -1px;
3848
+ overflow: hidden;
3849
+ clip: rect(0, 0, 0, 0);
3850
+ white-space: nowrap;
3851
+ }
3852
+
3422
3853
  .inkra-hotkey-input__clear {
3423
3854
  position: absolute;
3424
3855
  z-index: 3;
3425
- inset-block: 0;
3856
+ inset-block: min(0px, calc((var(--inkra-hotkey-input-height) - var(--inkra-touch-target)) / 2));
3426
3857
  inset-inline-end: 0;
3427
3858
  display: inline-flex;
3428
- inline-size: var(--inkra-touch-target);
3429
- block-size: 100%;
3859
+ inline-size: max(var(--inkra-touch-target), var(--inkra-hotkey-input-height));
3860
+ block-size: auto;
3430
3861
  align-items: center;
3431
3862
  justify-content: center;
3432
3863
  border: 0;
@@ -3454,6 +3885,10 @@
3454
3885
  .inkra-hotkey-input__message { color: Mark; }
3455
3886
  }
3456
3887
 
3888
+ @media (prefers-reduced-motion: reduce) {
3889
+ .inkra-hotkey-input__focus-ring { transition: none; }
3890
+ }
3891
+
3457
3892
  @media print {
3458
3893
  .inkra-hotkey__key,
3459
3894
  .inkra-hotkey-input__control { border: 1px solid currentColor; }
@@ -3491,7 +3926,12 @@
3491
3926
 
3492
3927
  .inkra-number-ticker__prefix,
3493
3928
  .inkra-number-ticker__suffix {
3929
+ align-items: center;
3930
+ align-self: center;
3494
3931
  color: var(--inkra-ink-muted);
3932
+ display: inline-flex;
3933
+ flex: none;
3934
+ gap: var(--inkra-space-1, 4px);
3495
3935
  min-width: 0;
3496
3936
  }
3497
3937
 
@@ -3538,7 +3978,7 @@
3538
3978
  }
3539
3979
  }
3540
3980
 
3541
- .inkra-audio-player { box-sizing: border-box; color: var(--inkra-ink); display: grid; gap: var(--inkra-space-3); min-inline-size: 0; padding: var(--inkra-space-4); width: min(100%, 42rem); }
3981
+ .inkra-audio-player { box-sizing: border-box; color: var(--inkra-ink); container-type: inline-size; display: grid; gap: var(--inkra-space-3); min-inline-size: 0; padding: var(--inkra-space-4); width: min(100%, 42rem); }
3542
3982
  .inkra-audio-player > audio { height: 1px; opacity: 0; position: absolute; width: 1px; }
3543
3983
  .inkra-audio-player__controls { align-items: center; display: flex; flex-wrap: wrap; gap: var(--inkra-space-2); min-inline-size: 0; }
3544
3984
  .inkra-audio-player__seek { flex: 1 1 12rem; min-inline-size: 8rem; }
@@ -3546,12 +3986,13 @@
3546
3986
  .inkra-audio-player__seek .inkra-slider, .inkra-audio-player__volume .inkra-slider { min-inline-size: 0; width: 100%; }
3547
3987
  .inkra-audio-player__seek .inkra-slider { --inkra-slider-track-size: 28px; }
3548
3988
  .inkra-audio-player__volume .inkra-slider { --inkra-slider-track-size: 24px; }
3549
- .inkra-audio-player__settings { align-items: center; display: flex; flex: 0 1 auto; gap: var(--inkra-space-2); min-inline-size: 0; }
3550
- .inkra-audio-player__time { color: var(--inkra-ink-muted); font-variant-numeric: tabular-nums; min-inline-size: 7rem; text-align: center; }
3989
+ .inkra-audio-player__settings { align-items: center; display: flex; flex: 0 1 auto; flex-wrap: wrap; gap: var(--inkra-space-2); min-inline-size: 0; }
3990
+ .inkra-audio-player__time { color: var(--inkra-ink-muted); font-variant-numeric: tabular-nums; min-inline-size: 7rem; max-inline-size: 100%; overflow-wrap: anywhere; text-align: center; }
3551
3991
  .inkra-audio-player__settings > .inkra-select__trigger { flex: none; min-width: 5.5rem; }
3552
3992
  .inkra-audio-player__message { color: var(--inkra-ink-muted); margin: 0; }
3553
3993
  .inkra-audio-player__sr-only { block-size: 1px; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; position: absolute; white-space: nowrap; inline-size: 1px; }
3554
- @media (max-width: 40rem) { .inkra-audio-player__controls { align-items: stretch; } .inkra-audio-player__time { flex: 1 0 100%; order: 4; text-align: start; } .inkra-audio-player__seek { flex-basis: 10rem; } .inkra-audio-player__settings { flex: 1 1 100%; order: 5; } .inkra-audio-player__volume { flex: 1 1 8rem; } }
3994
+ @container (max-width: 40rem) { .inkra-audio-player__controls { align-items: stretch; } .inkra-audio-player__time { flex: 1 0 100%; min-inline-size: 0; order: 4; text-align: start; } .inkra-audio-player__seek { flex-basis: 10rem; } .inkra-audio-player__settings { flex: 1 1 100%; order: 5; } .inkra-audio-player__volume { flex: 1 1 8rem; } }
3995
+ @container (max-width: 20rem) { .inkra-audio-player__controls { display: grid; grid-template-columns: var(--inkra-touch-target) minmax(0, 1fr); } .inkra-audio-player__seek { min-inline-size: 0; } .inkra-audio-player__time, .inkra-audio-player__settings { grid-column: 1 / -1; } .inkra-audio-player__settings { display: grid; grid-template-columns: var(--inkra-touch-target) minmax(0, 1fr); width: 100%; } .inkra-audio-player__volume { min-inline-size: 0; } .inkra-audio-player__settings > .inkra-select__trigger { grid-column: 1 / -1; min-width: 0; width: 100%; } }
3555
3996
  @media (forced-colors: active) {
3556
3997
  .inkra-audio-player__controls { color: ButtonText; }
3557
3998
  .inkra-audio-player__time, .inkra-audio-player__message { color: CanvasText; }
@@ -3562,8 +4003,6 @@
3562
4003
 
3563
4004
  .inkra-carousel {
3564
4005
  --inkra-carousel-gap: 16px;
3565
- --inkra-carousel-visible: var(--inkra-carousel-visible-base, 1);
3566
-
3567
4006
  container-type: inline-size;
3568
4007
  display: grid;
3569
4008
  gap: var(--inkra-space-3);
@@ -3572,7 +4011,19 @@
3572
4011
  position: relative;
3573
4012
  }
3574
4013
 
4014
+ .inkra-carousel__focus-ring {
4015
+ --inkra-accent-strong: var(--inkra-focus);
4016
+ inset: var(--inkra-focus-width);
4017
+ opacity: 0;
4018
+ pointer-events: none;
4019
+ position: absolute !important;
4020
+ z-index: 3;
4021
+ }
4022
+ .inkra-carousel:focus-visible { outline: 0; }
4023
+ .inkra-carousel:focus-visible > .inkra-carousel__focus-ring { opacity: 1; }
4024
+
3575
4025
  .inkra-carousel__viewport {
4026
+ --inkra-carousel-visible: var(--inkra-carousel-visible-base, 1);
3576
4027
  cursor: grab;
3577
4028
  min-inline-size: 0;
3578
4029
  overflow: hidden;
@@ -3583,8 +4034,8 @@
3583
4034
  .inkra-carousel[data-disabled] .inkra-carousel__viewport { cursor: default; }
3584
4035
 
3585
4036
  .inkra-carousel__container {
4037
+ column-gap: var(--inkra-carousel-gap);
3586
4038
  display: flex;
3587
- margin-inline-end: calc(-1 * var(--inkra-carousel-gap));
3588
4039
  min-inline-size: 0;
3589
4040
  }
3590
4041
 
@@ -3592,7 +4043,6 @@
3592
4043
  box-sizing: border-box;
3593
4044
  flex: 0 0 calc((100% - (var(--inkra-carousel-visible) - 1) * var(--inkra-carousel-gap)) / var(--inkra-carousel-visible));
3594
4045
  min-inline-size: 0;
3595
- padding-inline-end: var(--inkra-carousel-gap);
3596
4046
  position: relative;
3597
4047
  }
3598
4048
 
@@ -3650,15 +4100,21 @@
3650
4100
  pointer-events: none;
3651
4101
  }
3652
4102
 
4103
+ .inkra-carousel__page-focus {
4104
+ --inkra-accent-strong: var(--inkra-focus);
4105
+ block-size: calc(var(--inkra-touch-target) - 4px);
4106
+ inline-size: calc(var(--inkra-touch-target) - 4px);
4107
+ opacity: 0;
4108
+ pointer-events: none;
4109
+ position: absolute !important;
4110
+ }
4111
+
3653
4112
  .inkra-carousel__page[aria-current="true"] .inkra-carousel__page-mark {
3654
4113
  block-size: 14px;
3655
4114
  inline-size: 14px;
3656
4115
  }
3657
4116
 
3658
- .inkra-carousel__page:focus-visible .inkra-carousel__page-mark {
3659
- --inkra-border: var(--inkra-focus);
3660
- --inkra-border-strong: var(--inkra-focus);
3661
- }
4117
+ .inkra-carousel__page:focus-visible .inkra-carousel__page-focus { opacity: 1; }
3662
4118
 
3663
4119
  .inkra-carousel__empty {
3664
4120
  align-items: center;
@@ -3683,18 +4139,18 @@
3683
4139
  }
3684
4140
 
3685
4141
  @container (min-width: 30rem) {
3686
- .inkra-carousel { --inkra-carousel-visible: var(--inkra-carousel-visible-sm, var(--inkra-carousel-visible-base, 1)); }
4142
+ .inkra-carousel__viewport { --inkra-carousel-visible: var(--inkra-carousel-visible-sm, var(--inkra-carousel-visible-base, 1)); }
3687
4143
  }
3688
4144
 
3689
4145
  @container (min-width: 48rem) {
3690
- .inkra-carousel { --inkra-carousel-visible: var(--inkra-carousel-visible-md, var(--inkra-carousel-visible-sm, var(--inkra-carousel-visible-base, 1))); }
4146
+ .inkra-carousel__viewport { --inkra-carousel-visible: var(--inkra-carousel-visible-md, var(--inkra-carousel-visible-sm, var(--inkra-carousel-visible-base, 1))); }
3691
4147
  }
3692
4148
 
3693
4149
  @container (min-width: 64rem) {
3694
- .inkra-carousel { --inkra-carousel-visible: var(--inkra-carousel-visible-lg, var(--inkra-carousel-visible-md, var(--inkra-carousel-visible-sm, var(--inkra-carousel-visible-base, 1)))); }
4150
+ .inkra-carousel__viewport { --inkra-carousel-visible: var(--inkra-carousel-visible-lg, var(--inkra-carousel-visible-md, var(--inkra-carousel-visible-sm, var(--inkra-carousel-visible-base, 1)))); }
3695
4151
  }
3696
4152
 
3697
- @media (max-width: 390px) {
4153
+ @container (max-width: 390px) {
3698
4154
  .inkra-carousel__toolbar { align-items: flex-start; flex-wrap: wrap; }
3699
4155
  .inkra-carousel__pagination { order: 3; flex-basis: 100%; }
3700
4156
  }
@@ -3704,21 +4160,25 @@
3704
4160
  }
3705
4161
 
3706
4162
  @media (forced-colors: active) {
4163
+ .inkra-pencil-surface.inkra-carousel__focus-ring,
4164
+ .inkra-pencil-surface.inkra-carousel__page-focus { display: none !important; }
4165
+ .inkra-carousel:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
3707
4166
  .inkra-carousel__page-mark { background: Canvas; border: 1px solid ButtonText; }
3708
4167
  .inkra-carousel__page[aria-current="true"] .inkra-carousel__page-mark { background: Highlight; border-color: Highlight; forced-color-adjust: none; }
3709
- .inkra-carousel__page:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: var(--inkra-focus-offset); }
4168
+ .inkra-carousel__page:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
3710
4169
  }
3711
4170
 
3712
4171
  @media print {
3713
4172
  .inkra-carousel__toolbar { display: none; }
3714
4173
  .inkra-carousel__viewport { overflow: visible; }
3715
- .inkra-carousel__container { flex-wrap: wrap; gap: var(--inkra-carousel-gap); margin: 0; }
3716
- .inkra-carousel__slide { flex-basis: auto; padding: 0; }
4174
+ .inkra-carousel__container { flex-wrap: wrap; gap: var(--inkra-carousel-gap); }
4175
+ .inkra-carousel__slide { flex-basis: auto; }
3717
4176
  }
3718
4177
 
3719
4178
  .inkra-choice-grid {
3720
4179
  border: 0;
3721
4180
  color: var(--inkra-ink);
4181
+ container-type: inline-size;
3722
4182
  margin: 0;
3723
4183
  max-inline-size: 100%;
3724
4184
  min-inline-size: 0;
@@ -3759,6 +4219,7 @@ div.inkra-choice-grid > .inkra-radio-group {
3759
4219
  }
3760
4220
 
3761
4221
  .inkra-choice-grid__selection,
4222
+ .inkra-choice-grid__focus,
3762
4223
  .inkra-choice-grid__outline {
3763
4224
  inset: 0;
3764
4225
  pointer-events: none;
@@ -3770,6 +4231,13 @@ div.inkra-choice-grid > .inkra-radio-group {
3770
4231
  z-index: 0;
3771
4232
  }
3772
4233
 
4234
+ .inkra-choice-grid__focus {
4235
+ --inkra-accent-strong: var(--inkra-focus);
4236
+ inset: calc(-1 * var(--inkra-focus-offset));
4237
+ opacity: 0;
4238
+ z-index: 3;
4239
+ }
4240
+
3773
4241
  .inkra-choice-grid__outline { z-index: 2; }
3774
4242
 
3775
4243
  .inkra-choice-grid__option:has(.inkra-selection-control__input:checked) .inkra-choice-grid__selection {
@@ -3856,6 +4324,10 @@ div.inkra-choice-grid > .inkra-radio-group {
3856
4324
  overflow-wrap: anywhere;
3857
4325
  }
3858
4326
 
4327
+ .inkra-choice-grid__control .inkra-selection-control__focus-ring {
4328
+ display: none !important;
4329
+ }
4330
+
3859
4331
  .inkra-choice-grid__messages {
3860
4332
  display: grid;
3861
4333
  gap: var(--inkra-space-1);
@@ -3877,8 +4349,11 @@ div.inkra-choice-grid > .inkra-radio-group {
3877
4349
  }
3878
4350
 
3879
4351
  .inkra-choice-grid__option:has(.inkra-selection-control__input:focus-visible) {
3880
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
3881
- outline-offset: var(--inkra-focus-offset);
4352
+ outline: none;
4353
+ }
4354
+
4355
+ .inkra-choice-grid__option:has(.inkra-selection-control__input:focus-visible) .inkra-choice-grid__focus {
4356
+ opacity: 1;
3882
4357
  }
3883
4358
 
3884
4359
  .inkra-choice-grid__option:has(.inkra-selection-control__input:focus-visible) .inkra-selection-control__mark {
@@ -3892,6 +4367,13 @@ div.inkra-choice-grid > .inkra-radio-group {
3892
4367
  }
3893
4368
  }
3894
4369
 
4370
+ @container (max-width: 640px) {
4371
+ .inkra-choice-grid[data-columns] .inkra-radio-group__items,
4372
+ .inkra-choice-grid[data-columns] .inkra-choice-grid__items {
4373
+ grid-template-columns: minmax(0, 1fr);
4374
+ }
4375
+ }
4376
+
3895
4377
  @media (forced-colors: active) {
3896
4378
  .inkra-choice-grid__option {
3897
4379
  border: 1px solid CanvasText;
@@ -3903,12 +4385,70 @@ div.inkra-choice-grid > .inkra-radio-group {
3903
4385
  outline-offset: -3px;
3904
4386
  }
3905
4387
 
3906
- .inkra-choice-grid__selection,
3907
- .inkra-choice-grid__outline {
4388
+ .inkra-choice-grid__option:has(.inkra-selection-control__input:focus-visible) {
4389
+ outline: var(--inkra-focus-width) solid Highlight;
4390
+ outline-offset: var(--inkra-focus-offset);
4391
+ }
4392
+
4393
+ .inkra-choice-grid__option > .inkra-choice-grid__selection,
4394
+ .inkra-choice-grid__option > .inkra-choice-grid__focus,
4395
+ .inkra-choice-grid__option > .inkra-choice-grid__outline {
3908
4396
  display: none;
3909
4397
  }
4398
+
4399
+ .inkra-choice-grid__control > .inkra-selection-control__input:focus-visible {
4400
+ outline: none;
4401
+ }
4402
+ }
4403
+
4404
+
4405
+ .inkra-color-swatch {
4406
+ flex: none;
4407
+ }
4408
+
4409
+ .inkra-color-swatch__background {
4410
+ display: block;
4411
+ inline-size: 100%;
4412
+ block-size: 100%;
4413
+ border-radius: 3px;
4414
+ forced-color-adjust: none;
4415
+ }
4416
+
4417
+ .inkra-color-swatch__pigment,
4418
+ .inkra-color-swatch__wash {
4419
+ display: block;
4420
+ inline-size: 28px;
4421
+ block-size: 28px;
4422
+ pointer-events: none;
4423
+ }
4424
+
4425
+ .inkra-color-swatch[data-swatch-size="sm"] .inkra-color-swatch__pigment,
4426
+ .inkra-color-swatch[data-swatch-size="sm"] .inkra-color-swatch__wash {
4427
+ inline-size: 20px;
4428
+ block-size: 20px;
4429
+ }
4430
+
4431
+ .inkra-color-swatch[data-swatch-size="lg"] .inkra-color-swatch__pigment,
4432
+ .inkra-color-swatch[data-swatch-size="lg"] .inkra-color-swatch__wash {
4433
+ inline-size: 32px;
4434
+ block-size: 32px;
4435
+ }
4436
+
4437
+ .inkra-color-swatch__wash[data-pencil-fallback="true"] {
4438
+ background: currentColor;
4439
+ border: 0;
3910
4440
  }
3911
4441
 
4442
+ @media (forced-colors: active) {
4443
+ .inkra-color-swatch__pigment {
4444
+ background: currentColor;
4445
+ forced-color-adjust: none;
4446
+ }
4447
+ .inkra-color-swatch[aria-pressed="true"] {
4448
+ outline: 2px solid Highlight;
4449
+ outline-offset: -3px;
4450
+ }
4451
+ }
3912
4452
 
3913
4453
  .inkra-color-picker {
3914
4454
  box-sizing: border-box;
@@ -3917,7 +4457,7 @@ div.inkra-choice-grid > .inkra-radio-group {
3917
4457
  min-inline-size: 0;
3918
4458
  inline-size: min(100%, 28rem);
3919
4459
  margin: 0;
3920
- padding: var(--inkra-space-4);
4460
+ padding: 0;
3921
4461
  border: 0;
3922
4462
  color: var(--inkra-ink);
3923
4463
  font-family: var(--inkra-font-body);
@@ -3929,25 +4469,71 @@ div.inkra-choice-grid > .inkra-radio-group {
3929
4469
  }
3930
4470
 
3931
4471
  .inkra-color-picker__legend {
3932
- padding: 0;
4472
+ padding: 0 0 var(--inkra-space-2);
3933
4473
  color: var(--inkra-ink);
3934
- font-size: var(--inkra-text-lg);
4474
+ font-size: var(--inkra-text-md);
4475
+ }
4476
+
4477
+ .inkra-color-picker__editor {
4478
+ display: grid;
4479
+ gap: var(--inkra-space-3);
4480
+ min-inline-size: 0;
4481
+ }
4482
+
4483
+ .inkra-color-picker__gradient {
4484
+ display: grid;
4485
+ gap: var(--inkra-space-3);
4486
+ min-inline-size: 0;
4487
+ inline-size: 100%;
4488
+ }
4489
+ .inkra-color-picker__types { max-inline-size: 100%; }
4490
+ .inkra-color-picker__gradient-preview {
4491
+ position: relative;
4492
+ isolation: isolate;
4493
+ block-size: 88px;
4494
+ inline-size: 100%;
4495
+ forced-color-adjust: none;
4496
+ }
4497
+ .inkra-color-picker__stop-toolbar,
4498
+ .inkra-color-picker__stops,
4499
+ .inkra-color-picker__stop-actions,
4500
+ .inkra-color-picker__radial-options {
4501
+ display: flex;
4502
+ flex-wrap: wrap;
4503
+ align-items: center;
4504
+ gap: var(--inkra-space-2);
4505
+ min-inline-size: 0;
4506
+ }
4507
+ .inkra-color-picker__stop-toolbar { justify-content: space-between; }
4508
+ .inkra-color-picker__stop-actions { gap: 0; }
4509
+ .inkra-color-picker__stop { display: grid; justify-items: center; font-size: var(--inkra-text-sm); }
4510
+ .inkra-color-picker__stop-position {
4511
+ display: grid;
4512
+ grid-template-columns: minmax(0, 6rem) minmax(0, 1fr);
4513
+ align-items: end;
4514
+ gap: var(--inkra-space-3);
4515
+ }
4516
+ .inkra-color-picker__geometry {
4517
+ display: grid;
4518
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 6rem), 1fr));
4519
+ gap: var(--inkra-space-3);
3935
4520
  }
4521
+ .inkra-color-picker__gradient .inkra-input-root { inline-size: 100%; }
4522
+ .inkra-color-picker__radial-options > * { max-inline-size: 100%; }
3936
4523
 
3937
4524
  .inkra-color-picker__main {
3938
4525
  display: grid;
3939
4526
  grid-template-columns: var(--inkra-control-lg) minmax(0, 1fr);
3940
4527
  gap: var(--inkra-space-3);
3941
- align-items: start;
4528
+ align-items: center;
3942
4529
  min-width: 0;
3943
4530
  }
3944
4531
 
3945
- .inkra-color-picker__palette,
3946
- .inkra-color-picker__preset {
4532
+ .inkra-color-picker__palette {
3947
4533
  position: relative;
3948
4534
  isolation: isolate;
3949
4535
  display: block;
3950
- overflow: hidden;
4536
+ overflow: visible;
3951
4537
  box-sizing: border-box;
3952
4538
  flex: none;
3953
4539
  padding: 0;
@@ -3977,20 +4563,26 @@ div.inkra-choice-grid > .inkra-radio-group {
3977
4563
  background-size: 12px 12px;
3978
4564
  }
3979
4565
 
3980
- .inkra-color-picker__current,
3981
- .inkra-color-picker__preset-color {
4566
+ .inkra-color-picker__current {
3982
4567
  position: absolute;
3983
4568
  z-index: -1;
3984
4569
  inset: 3px;
3985
4570
  }
3986
4571
 
3987
4572
  .inkra-color-picker__palette-outline,
3988
- .inkra-color-picker__preset-outline {
4573
+ .inkra-color-picker__focus {
3989
4574
  position: absolute !important;
3990
4575
  inset: 0;
3991
4576
  pointer-events: none;
3992
4577
  }
3993
4578
 
4579
+ .inkra-color-picker__focus {
4580
+ --inkra-accent-strong: var(--inkra-focus);
4581
+ inset: calc(-1 * var(--inkra-focus-offset));
4582
+ opacity: 0;
4583
+ z-index: 2;
4584
+ }
4585
+
3994
4586
  .inkra-color-picker__native {
3995
4587
  position: absolute;
3996
4588
  z-index: 1;
@@ -4003,10 +4595,8 @@ div.inkra-choice-grid > .inkra-radio-group {
4003
4595
  opacity: 0;
4004
4596
  }
4005
4597
 
4006
- .inkra-color-picker__palette:focus-within,
4007
- .inkra-color-picker__preset:focus-visible {
4008
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
4009
- outline-offset: var(--inkra-focus-offset);
4598
+ .inkra-color-picker__palette:focus-within .inkra-color-picker__focus {
4599
+ opacity: 1;
4010
4600
  }
4011
4601
 
4012
4602
  .inkra-color-picker__value-field {
@@ -4059,17 +4649,14 @@ div.inkra-choice-grid > .inkra-radio-group {
4059
4649
  }
4060
4650
 
4061
4651
  .inkra-color-picker__presets {
4062
- display: grid;
4063
- grid-template-columns: repeat(auto-fill, minmax(44px, 1fr));
4652
+ display: flex;
4653
+ flex-wrap: wrap;
4064
4654
  gap: var(--inkra-space-2);
4065
4655
  min-width: 0;
4066
4656
  }
4067
4657
 
4068
4658
  .inkra-color-picker__preset {
4069
- width: 100%;
4070
4659
  min-width: var(--inkra-touch-target);
4071
- height: var(--inkra-touch-target);
4072
- cursor: pointer;
4073
4660
  }
4074
4661
 
4075
4662
  .inkra-color-picker__preset:disabled,
@@ -4077,27 +4664,72 @@ div.inkra-choice-grid > .inkra-radio-group {
4077
4664
  cursor: not-allowed;
4078
4665
  }
4079
4666
 
4080
- @media (max-width: 360px) {
4081
- .inkra-color-picker {
4082
- padding: var(--inkra-space-3);
4083
- }
4667
+ .inkra-color-picker__trigger-content {
4668
+ display: flex;
4669
+ align-items: center;
4670
+ gap: var(--inkra-space-2);
4671
+ }
4084
4672
 
4085
- .inkra-color-picker__main {
4086
- grid-template-columns: 1fr;
4087
- }
4673
+ .inkra-color-picker__preview {
4674
+ position: relative;
4675
+ isolation: isolate;
4676
+ flex: none;
4677
+ inline-size: 28px;
4678
+ block-size: 28px;
4679
+ }
4680
+
4681
+ .inkra-color-picker__trigger {
4682
+ justify-self: start;
4683
+ max-inline-size: 100%;
4684
+ }
4685
+
4686
+ .inkra-color-picker__popover {
4687
+ inline-size: min(22rem, calc(100vw - 24px));
4688
+ max-inline-size: var(--radix-popover-content-available-width);
4689
+ }
4690
+
4691
+ .inkra-color-picker__editor[data-presentation="compact"] {
4692
+ display: flex;
4693
+ flex-wrap: wrap;
4694
+ align-items: center;
4695
+ column-gap: var(--inkra-space-4);
4696
+ }
4697
+
4698
+ .inkra-color-picker__editor[data-presentation="compact"] .inkra-color-picker__main {
4699
+ flex: 1 1 12rem;
4700
+ }
4701
+
4702
+ .inkra-color-picker__editor[data-presentation="compact"] .inkra-color-picker__alpha {
4703
+ flex: 1 1 8rem;
4704
+ }
4705
+
4706
+ .inkra-color-picker__editor[data-presentation="compact"] .inkra-color-picker__presets {
4707
+ flex-basis: 100%;
4708
+ }
4709
+
4710
+ .inkra-color-picker__editor[data-presentation="compact"] .inkra-color-picker__divider {
4711
+ display: none;
4088
4712
  }
4089
4713
 
4090
4714
  @media (forced-colors: active) {
4091
- .inkra-color-picker__palette,
4092
- .inkra-color-picker__preset {
4715
+ .inkra-color-picker__palette {
4093
4716
  border: 1px solid ButtonText;
4094
4717
  forced-color-adjust: none;
4095
4718
  }
4096
4719
 
4097
- .inkra-color-picker__palette:focus-within,
4098
- .inkra-color-picker__preset:focus-visible {
4720
+ .inkra-color-picker__palette:focus-within {
4721
+ outline: var(--inkra-focus-width) solid Highlight;
4722
+ outline-offset: var(--inkra-focus-offset);
4099
4723
  outline-color: Highlight;
4100
4724
  }
4725
+
4726
+ .inkra-color-picker__focus {
4727
+ display: none !important;
4728
+ }
4729
+
4730
+ .inkra-color-picker__preview {
4731
+ forced-color-adjust: none;
4732
+ }
4101
4733
  }
4102
4734
 
4103
4735
  .inkra-context-menu__anchor {
@@ -4120,7 +4752,8 @@ div.inkra-choice-grid > .inkra-radio-group {
4120
4752
  }
4121
4753
 
4122
4754
  .inkra-context-menu__sub-content {
4123
- max-block-size: var(--radix-dropdown-menu-content-available-height);
4755
+ max-block-size: var(--radix-dropdown-menu-content-available-height, calc(100dvh - 16px));
4756
+ max-inline-size: min(320px, var(--radix-dropdown-menu-content-available-width, calc(100vw - 16px)), calc(100vw - 16px));
4124
4757
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
4125
4758
  }
4126
4759
 
@@ -4247,51 +4880,150 @@ div.inkra-choice-grid > .inkra-radio-group {
4247
4880
  }
4248
4881
 
4249
4882
  .inkra-editable {
4883
+ --inkra-editable-control-height: var(--inkra-control-md);
4884
+
4885
+ display: inline-grid;
4886
+ inline-size: min(100%, 30rem);
4887
+ min-inline-size: 0;
4250
4888
  color: var(--inkra-ink);
4251
- display: inline-flex;
4252
- flex-direction: column;
4889
+ vertical-align: middle;
4890
+ }
4891
+
4892
+ .inkra-editable[data-size="sm"] { --inkra-editable-control-height: var(--inkra-control-sm); }
4893
+ .inkra-editable[data-size="lg"] { --inkra-editable-control-height: var(--inkra-control-lg); }
4894
+
4895
+ .inkra-editable__frame {
4896
+ display: grid;
4897
+ min-inline-size: 0;
4898
+ align-items: start;
4253
4899
  gap: var(--inkra-space-2);
4254
- max-inline-size: 100%;
4900
+ min-block-size: max(var(--inkra-editable-control-height), var(--inkra-touch-target));
4901
+ }
4902
+
4903
+ .inkra-editable__display-shell {
4904
+ position: relative;
4905
+ display: grid;
4255
4906
  min-inline-size: 0;
4256
- vertical-align: middle;
4907
+ min-block-size: max(var(--inkra-editable-control-height), var(--inkra-touch-target));
4908
+ align-items: center;
4909
+ }
4910
+
4911
+ .inkra-editable__focus-ring {
4912
+ position: absolute !important;
4913
+ inset-inline: 0;
4914
+ inset-block: 50% auto;
4915
+ block-size: var(--inkra-editable-control-height);
4916
+ transform: translateY(-50%);
4917
+ opacity: 0;
4918
+ pointer-events: none;
4919
+ transition: opacity var(--inkra-motion-fast) var(--inkra-ease);
4920
+ }
4921
+
4922
+ .inkra-editable__display-shell:has(:focus-visible) .inkra-editable__focus-ring {
4923
+ opacity: 1;
4257
4924
  }
4258
4925
 
4259
4926
  .inkra-editable__display {
4927
+ position: relative;
4928
+ z-index: 1;
4929
+ display: flex;
4930
+ min-inline-size: 0;
4931
+ box-sizing: border-box;
4932
+ inline-size: 100%;
4933
+ min-block-size: max(var(--inkra-editable-control-height), var(--inkra-touch-target));
4260
4934
  align-items: center;
4261
- border-radius: var(--inkra-radius-sm);
4262
- cursor: text;
4263
- display: inline-flex;
4264
- min-block-size: var(--inkra-touch-target);
4265
- min-inline-size: 2.75rem;
4935
+ padding: 0 var(--inkra-space-3);
4936
+ border: 0;
4266
4937
  outline: 0;
4938
+ background: transparent;
4939
+ color: inherit;
4940
+ font: inherit;
4941
+ cursor: text;
4267
4942
  overflow-wrap: anywhere;
4268
- padding-inline: var(--inkra-space-2);
4269
- position: relative;
4270
4943
  text-align: start;
4271
- transition: background-color var(--inkra-motion-fast) var(--inkra-ease), outline-color var(--inkra-motion-fast) var(--inkra-ease);
4272
4944
  }
4273
4945
 
4274
- .inkra-editable__display:hover { background: color-mix(in srgb, var(--inkra-accent-soft) 12%, transparent); }
4275
- .inkra-editable__display:focus-visible { outline: var(--inkra-focus-width) solid var(--inkra-focus); outline-offset: var(--inkra-focus-offset); }
4276
- .inkra-editable__display[aria-disabled="true"] { cursor: default; opacity: .62; }
4946
+ .inkra-editable[data-multiline="true"] .inkra-editable__display {
4947
+ block-size: auto;
4948
+ min-block-size: var(--inkra-editable-control-height);
4949
+ align-items: flex-start;
4950
+ padding-block: var(--inkra-space-2);
4951
+ white-space: pre-wrap;
4952
+ }
4953
+
4954
+ .inkra-editable[data-disabled="true"] .inkra-editable__display,
4955
+ .inkra-editable[data-readonly="true"] .inkra-editable__display {
4956
+ cursor: default;
4957
+ }
4277
4958
 
4278
- .inkra-editable__editor { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--inkra-space-2); min-inline-size: min(100%, 15rem); }
4279
- .inkra-editable__editor > :first-child { flex: 1 1 12rem; min-inline-size: 0; }
4280
- .inkra-editable__actions { display: inline-flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--inkra-space-2); min-block-size: var(--inkra-touch-target); align-items: center; }
4281
- .inkra-editable__error { color: var(--inkra-danger); font-size: var(--inkra-text-sm); inline-size: 100%; }
4959
+ .inkra-editable[data-disabled="true"] .inkra-editable__display-shell {
4960
+ opacity: .62;
4961
+ }
4282
4962
 
4283
- @media (max-width: 30rem) {
4284
- .inkra-editable__editor { align-items: stretch; flex-direction: column; }
4285
- .inkra-editable__editor > :first-child, .inkra-editable__actions { inline-size: 100%; }
4963
+ .inkra-editable__editor {
4964
+ display: grid;
4965
+ min-inline-size: 0;
4966
+ min-block-size: max(var(--inkra-editable-control-height), var(--inkra-touch-target));
4967
+ align-content: center;
4968
+ gap: var(--inkra-space-2);
4969
+ }
4970
+
4971
+ .inkra-editable__editor > :first-child {
4972
+ inline-size: 100%;
4973
+ min-inline-size: 0;
4974
+ }
4975
+
4976
+ .inkra-editable__actions {
4977
+ display: inline-grid;
4978
+ flex: none;
4979
+ min-block-size: max(var(--inkra-editable-control-height), var(--inkra-touch-target));
4980
+ grid-template-columns: repeat(2, var(--inkra-touch-target));
4981
+ align-items: center;
4982
+ }
4983
+
4984
+ .inkra-editable__action {
4985
+ inline-size: var(--inkra-touch-target);
4986
+ block-size: var(--inkra-touch-target);
4987
+ }
4988
+
4989
+ .inkra-editable__custom-trigger {
4990
+ position: absolute;
4991
+ inline-size: 1px;
4992
+ block-size: 1px;
4993
+ overflow: hidden;
4994
+ clip-path: inset(50%);
4995
+ white-space: nowrap;
4996
+ }
4997
+
4998
+ .inkra-editable__select-row,
4999
+ .inkra-editable__custom-row {
5000
+ display: grid;
5001
+ grid-template-columns: minmax(0, 1fr) auto;
5002
+ align-items: start;
5003
+ gap: var(--inkra-space-1);
5004
+ min-inline-size: 0;
5005
+ }
5006
+
5007
+ .inkra-editable__error {
5008
+ inline-size: 100%;
5009
+ color: var(--inkra-danger-foreground, var(--inkra-danger));
5010
+ font-size: var(--inkra-text-sm);
5011
+ }
5012
+
5013
+ @media (prefers-reduced-motion: reduce) {
5014
+ .inkra-editable__focus-ring { transition: none; }
4286
5015
  }
4287
5016
 
4288
- @media (prefers-reduced-motion: reduce) { .inkra-editable__display { transition: none; } }
4289
5017
  @media (forced-colors: active) {
4290
- .inkra-editable__display:hover { background: transparent; }
4291
- .inkra-editable__display:focus-visible { outline: 2px solid Highlight; }
4292
- .inkra-editable__error { color: CanvasText; }
5018
+ .inkra-editable__display-shell:has(:focus-visible) { outline: 2px solid Highlight; outline-offset: -2px; }
5019
+ .inkra-editable__focus-ring { display: none; }
5020
+ .inkra-editable__error { color: Mark; }
5021
+ }
5022
+
5023
+ @media print {
5024
+ .inkra-editable__actions,
5025
+ .inkra-editable__focus-ring { display: none; }
4293
5026
  }
4294
- @media print { .inkra-editable__display { background: transparent; } }
4295
5027
 
4296
5028
  .inkra-tilt {
4297
5029
  --inkra-tilt-response: 120ms;
@@ -4887,40 +5619,91 @@ div.inkra-choice-grid > .inkra-radio-group {
4887
5619
  }
4888
5620
 
4889
5621
  .inkra-image-viewer.inkra-overlay__content {
4890
- height: min(52rem, calc(100dvh - var(--inkra-space-8)));
4891
- max-height: calc(100dvh - var(--inkra-space-8));
4892
- width: min(72rem, calc(100vw - var(--inkra-space-8)));
5622
+ animation: inkra-image-viewer-in var(--inkra-motion-normal) var(--inkra-ease) both;
5623
+ height: 100dvh;
5624
+ inset: 0;
5625
+ left: 0;
5626
+ max-height: none;
5627
+ max-width: none;
5628
+ transform: none;
5629
+ width: 100dvw;
4893
5630
  }
4894
5631
 
4895
- .inkra-image-viewer .inkra-overlay__surface,
4896
- .inkra-image-viewer .inkra-overlay__content-body {
4897
- height: 100%;
5632
+ .inkra-image-viewer.inkra-overlay__content[data-state="closed"] {
5633
+ animation: inkra-image-viewer-out var(--inkra-motion-normal) var(--inkra-ease) both;
4898
5634
  }
4899
5635
 
4900
- .inkra-image-viewer__description {
5636
+ .inkra-image-viewer > .inkra-overlay__surface {
5637
+ border-radius: 0;
5638
+ block-size: 0;
5639
+ inline-size: 0;
5640
+ inset: 0;
5641
+ max-height: none;
5642
+ overflow: visible;
4901
5643
  position: absolute;
4902
- width: 1px;
4903
- height: 1px;
5644
+ }
5645
+
5646
+ .inkra-image-viewer > .inkra-overlay__surface { background: var(--inkra-paper); }
5647
+
5648
+ .inkra-image-viewer > .inkra-overlay__surface > .inkra-pencil-surface__ink { display: none !important; }
5649
+
5650
+ .inkra-image-viewer > .inkra-overlay__surface > .inkra-overlay__content-body {
5651
+ background: var(--inkra-paper);
5652
+ display: flex;
5653
+ flex-direction: column;
5654
+ height: 100dvh;
5655
+ inset: 0;
5656
+ max-height: none;
5657
+ overflow: hidden;
4904
5658
  padding: 0;
5659
+ position: fixed;
5660
+ width: 100dvw;
5661
+ }
5662
+
5663
+ .inkra-image-viewer__accessible-label {
5664
+ block-size: 1px;
5665
+ clip: rect(0 0 0 0);
5666
+ clip-path: inset(50%);
5667
+ inline-size: 1px;
4905
5668
  margin: -1px;
4906
5669
  overflow: hidden;
4907
- clip: rect(0, 0, 0, 0);
5670
+ padding: 0;
5671
+ position: absolute;
4908
5672
  white-space: nowrap;
4909
5673
  }
4910
5674
 
5675
+ .inkra-image-viewer__close-control {
5676
+ inset-block-start: max(var(--inkra-space-3), env(safe-area-inset-top));
5677
+ inset-inline-end: max(var(--inkra-space-3), env(safe-area-inset-right));
5678
+ isolation: isolate;
5679
+ position: absolute;
5680
+ z-index: 8;
5681
+ }
5682
+
5683
+ .inkra-image-viewer__close-paper {
5684
+ inset: 0;
5685
+ pointer-events: none;
5686
+ position: absolute !important;
5687
+ z-index: 0;
5688
+ }
5689
+
5690
+ .inkra-image-viewer__close-control > .inkra-button { position: relative; z-index: 1; }
5691
+
4911
5692
  .inkra-image-viewer__counter {
4912
5693
  color: var(--inkra-ink-muted);
5694
+ flex: 0 0 auto;
4913
5695
  font-size: var(--inkra-text-sm);
4914
5696
  line-height: var(--inkra-line-ui);
5697
+ unicode-bidi: isolate;
5698
+ white-space: nowrap;
4915
5699
  }
4916
5700
 
4917
5701
  .inkra-image-viewer__body {
4918
5702
  display: grid;
4919
5703
  flex: 1 1 auto;
4920
- min-block-size: 0;
5704
+ min-block-size: var(--inkra-touch-target);
4921
5705
  min-inline-size: 0;
4922
5706
  overflow: hidden;
4923
- padding: var(--inkra-space-4);
4924
5707
  }
4925
5708
 
4926
5709
  .inkra-image-viewer__stage,
@@ -4928,178 +5711,334 @@ div.inkra-choice-grid > .inkra-radio-group {
4928
5711
  min-block-size: 0;
4929
5712
  min-inline-size: 0;
4930
5713
  outline: 0;
5714
+ position: relative;
4931
5715
  }
4932
5716
 
4933
5717
  .inkra-image-viewer__stage {
4934
- position: relative;
4935
- display: grid;
4936
- place-items: center;
4937
- overflow: hidden;
4938
- background: var(--inkra-surface-muted);
4939
5718
  background: color-mix(in srgb, var(--inkra-ink) 7%, var(--inkra-paper));
4940
- border-radius: var(--inkra-radius-md);
4941
5719
  contain: layout paint;
5720
+ display: grid;
5721
+ overflow: hidden;
5722
+ place-items: center;
4942
5723
  }
4943
5724
 
4944
- .inkra-image-viewer__stage:focus-visible {
4945
- box-shadow: inset 0 0 0 var(--inkra-focus-width) var(--inkra-focus);
5725
+ .inkra-image-viewer__stage-focus {
5726
+ --inkra-accent-strong: var(--inkra-focus);
5727
+
5728
+ display: block !important;
5729
+ inset: var(--inkra-focus-width);
5730
+ opacity: 0;
5731
+ pointer-events: none;
5732
+ position: absolute !important;
5733
+ z-index: 7;
4946
5734
  }
4947
5735
 
5736
+ .inkra-image-viewer__stage:focus-visible > .inkra-image-viewer__stage-focus,
5737
+ .inkra-image-viewer__state:focus-visible > .inkra-image-viewer__stage-focus { opacity: 1; }
5738
+
4948
5739
  .inkra-image-viewer__image {
5740
+ block-size: 100%;
4949
5741
  display: block;
4950
5742
  inline-size: 100%;
4951
- block-size: 100%;
4952
- max-inline-size: 100%;
4953
5743
  max-block-size: 100%;
5744
+ max-inline-size: 100%;
4954
5745
  object-fit: contain;
4955
5746
  user-select: none;
4956
5747
  }
4957
5748
 
4958
- .inkra-image-viewer__pan-zoom,
4959
- .inkra-image-viewer__pan-zoom > .react-transform-wrapper {
4960
- inline-size: 100%;
5749
+ .inkra-image-viewer .inkra-image-viewer__pan-zoom.inkra-pan-zoom {
5750
+ --inkra-pan-zoom-min-block-size: 0px;
5751
+ }
5752
+
5753
+ .inkra-image-viewer .inkra-image-viewer__pan-zoom,
5754
+ .inkra-image-viewer .inkra-image-viewer__pan-zoom > .inkra-pan-zoom__clip,
5755
+ .inkra-image-viewer .inkra-image-viewer__pan-zoom > .inkra-pan-zoom__clip > .react-transform-wrapper,
5756
+ .inkra-image-viewer .inkra-image-viewer__pan-zoom .inkra-pan-zoom__viewport {
4961
5757
  block-size: 100%;
5758
+ inline-size: 100%;
5759
+ max-block-size: 100%;
4962
5760
  min-block-size: 0;
4963
5761
  }
4964
5762
 
4965
5763
  .inkra-image-viewer__pan-zoom .inkra-pan-zoom__viewport {
4966
- inline-size: 100%;
4967
- block-size: 100%;
4968
- min-block-size: 0;
5764
+ background: transparent;
4969
5765
  border: 0;
4970
5766
  border-radius: 0;
4971
- background: transparent;
4972
5767
  }
4973
5768
 
4974
5769
  .inkra-image-viewer__pan-zoom .inkra-pan-zoom__content {
4975
- inline-size: 100%;
4976
- block-size: 100%;
4977
5770
  align-items: center;
5771
+ block-size: 100%;
5772
+ inline-size: 100%;
4978
5773
  justify-content: center;
4979
5774
  }
4980
5775
 
4981
5776
  .inkra-image-viewer__image-transform {
5777
+ block-size: 100%;
4982
5778
  display: grid;
4983
5779
  inline-size: 100%;
4984
- block-size: 100%;
4985
5780
  place-items: center;
4986
5781
  transform-origin: center;
4987
5782
  }
4988
5783
 
4989
- .inkra-image-viewer__tools {
4990
- position: absolute;
4991
- inset-block-end: var(--inkra-space-3);
4992
- inset-inline-start: 50%;
4993
- display: flex;
4994
- align-items: center;
4995
- gap: var(--inkra-space-1);
4996
- transform: translateX(-50%);
4997
- z-index: 1;
4998
- }
4999
-
5000
5784
  .inkra-image-viewer__navigation {
5001
- position: absolute;
5002
5785
  inset: 0;
5003
5786
  pointer-events: none;
5787
+ position: absolute;
5004
5788
  }
5005
5789
 
5006
5790
  .inkra-image-viewer__navigation > .inkra-button {
5007
- position: absolute;
5008
5791
  inset-block-start: 50%;
5009
- transform: translateY(-50%);
5010
5792
  pointer-events: auto;
5793
+ position: absolute;
5794
+ transform: translateY(-50%);
5011
5795
  }
5012
5796
 
5013
- .inkra-image-viewer__previous { inset-inline-start: var(--inkra-space-3); }
5014
- .inkra-image-viewer__next { inset-inline-end: var(--inkra-space-3); }
5797
+ .inkra-image-viewer__previous { inset-inline-start: max(var(--inkra-space-3), env(safe-area-inset-left)); }
5798
+ .inkra-image-viewer__next { inset-inline-end: max(var(--inkra-space-3), env(safe-area-inset-right)); }
5015
5799
 
5016
5800
  .inkra-image-viewer__state {
5017
- display: grid;
5018
5801
  align-content: center;
5019
- justify-items: center;
5802
+ display: grid;
5020
5803
  gap: var(--inkra-space-3);
5804
+ justify-items: center;
5805
+ overflow-wrap: anywhere;
5021
5806
  padding: var(--inkra-space-5);
5022
5807
  text-align: center;
5023
- overflow-wrap: anywhere;
5024
5808
  }
5025
5809
 
5026
5810
  .inkra-image-viewer__state h3,
5027
5811
  .inkra-image-viewer__state p { margin: 0; }
5028
5812
  .inkra-image-viewer__state p { color: var(--inkra-ink-muted); }
5029
5813
 
5030
- .inkra-image-viewer__thumbnails {
5031
- display: flex;
5814
+ .inkra-image-viewer__bottom {
5032
5815
  flex: none;
5033
- gap: var(--inkra-space-2);
5816
+ max-block-size: min(34dvh, 15rem);
5817
+ min-inline-size: 0;
5818
+ overflow: auto;
5819
+ overscroll-behavior: contain;
5820
+ padding-block-end: env(safe-area-inset-bottom);
5821
+ scrollbar-gutter: auto;
5822
+ }
5823
+
5824
+ .inkra-image-viewer__bottom-row {
5825
+ align-items: center;
5826
+ display: flex;
5827
+ gap: var(--inkra-space-3);
5828
+ justify-content: center;
5829
+ min-block-size: var(--inkra-touch-target);
5034
5830
  min-inline-size: 0;
5035
5831
  overflow-x: auto;
5036
5832
  overscroll-behavior-inline: contain;
5037
- padding: var(--inkra-space-3) var(--inkra-space-5) var(--inkra-space-4);
5038
- scrollbar-gutter: stable;
5833
+ padding: var(--inkra-space-2) var(--inkra-space-4);
5834
+ scrollbar-gutter: auto;
5039
5835
  }
5040
5836
 
5041
- .inkra-image-viewer__thumbnail {
5837
+ .inkra-image-viewer__tools {
5838
+ align-items: center;
5839
+ display: flex;
5840
+ flex: none;
5841
+ gap: var(--inkra-space-1);
5842
+ isolation: isolate;
5843
+ max-inline-size: 100%;
5844
+ overflow-x: auto;
5845
+ overscroll-behavior-inline: contain;
5846
+ padding: var(--inkra-focus-offset);
5042
5847
  position: relative;
5043
- flex: 0 0 5rem;
5044
- inline-size: 5rem;
5045
- block-size: 3.75rem;
5046
- padding: 0;
5047
- border: 0;
5048
- color: inherit;
5049
- background: transparent;
5050
- cursor: pointer;
5848
+ scrollbar-gutter: auto;
5051
5849
  }
5052
5850
 
5053
- .inkra-image-viewer__thumbnail-surface,
5054
- .inkra-image-viewer__thumbnail-focus {
5055
- position: absolute;
5056
- inset: 0;
5057
- display: block;
5851
+ .inkra-image-viewer__video-navigation {
5852
+ align-items: center;
5853
+ align-self: center;
5854
+ display: flex;
5855
+ flex: none;
5856
+ gap: var(--inkra-space-2);
5857
+ min-inline-size: max-content;
5058
5858
  }
5059
5859
 
5060
- .inkra-image-viewer__thumbnail-focus {
5061
- opacity: 0;
5860
+ .inkra-image-viewer__tools-paper {
5861
+ inset: 0;
5062
5862
  pointer-events: none;
5863
+ position: absolute !important;
5864
+ z-index: 0;
5063
5865
  }
5866
+ .inkra-image-viewer__tools > .inkra-button { position: relative; z-index: 1; }
5064
5867
 
5065
- .inkra-image-viewer__thumbnail:focus-visible { outline: 0; }
5066
- .inkra-image-viewer__thumbnail:focus-visible .inkra-image-viewer__thumbnail-focus { opacity: 1; }
5067
-
5068
- .inkra-image-viewer__thumbnail-image {
5069
- position: absolute;
5070
- inset: var(--inkra-space-1);
5071
- inline-size: calc(100% - var(--inkra-space-2));
5868
+ .inkra-image-viewer__thumbnails {
5869
+ display: flex;
5870
+ gap: var(--inkra-space-2);
5871
+ justify-content: safe center;
5872
+ min-inline-size: 0;
5873
+ overflow-x: auto;
5874
+ overscroll-behavior-inline: contain;
5875
+ padding: var(--inkra-space-2) var(--inkra-space-4) var(--inkra-space-3);
5876
+ scrollbar-gutter: auto;
5877
+ }
5878
+
5879
+ .inkra-image-viewer__thumbnail {
5880
+ background: transparent;
5881
+ block-size: 3.75rem;
5882
+ border: 0;
5883
+ color: inherit;
5884
+ cursor: pointer;
5885
+ flex: 0 0 5rem;
5886
+ inline-size: 5rem;
5887
+ padding: 0;
5888
+ position: relative;
5889
+ }
5890
+
5891
+ .inkra-image-viewer__thumbnail-surface,
5892
+ .inkra-image-viewer__thumbnail-focus {
5893
+ display: block;
5894
+ inset: 0;
5895
+ position: absolute;
5896
+ }
5897
+
5898
+ .inkra-image-viewer__thumbnail-surface { align-items: center; justify-content: center; }
5899
+ .inkra-image-viewer__thumbnail-video {
5900
+ align-items: center;
5901
+ block-size: 1.75rem;
5902
+ display: inline-flex !important;
5903
+ inline-size: 1.75rem;
5904
+ inset-block-end: var(--inkra-space-1);
5905
+ inset-inline-end: var(--inkra-space-1);
5906
+ justify-content: center;
5907
+ pointer-events: none;
5908
+ position: absolute !important;
5909
+ z-index: 2;
5910
+ }
5911
+ .inkra-image-viewer__thumbnail-focus { opacity: 0; pointer-events: none; }
5912
+ .inkra-image-viewer__thumbnail:focus-visible { outline: 0; }
5913
+ .inkra-image-viewer__thumbnail:focus-visible .inkra-image-viewer__thumbnail-focus { opacity: 1; }
5914
+
5915
+ .inkra-image-viewer__thumbnail-image {
5072
5916
  block-size: calc(100% - var(--inkra-space-2));
5073
5917
  border-radius: var(--inkra-radius-sm);
5918
+ inline-size: calc(100% - var(--inkra-space-2));
5919
+ inset: var(--inkra-space-1);
5074
5920
  object-fit: cover;
5075
5921
  pointer-events: none;
5922
+ position: absolute;
5076
5923
  user-select: none;
5077
5924
  }
5078
5925
 
5079
- @media (max-width: 30rem) {
5080
- .inkra-image-viewer.inkra-overlay__content {
5081
- height: calc(100dvh - var(--inkra-space-4));
5082
- max-height: calc(100dvh - var(--inkra-space-4));
5083
- width: calc(100vw - var(--inkra-space-4));
5084
- }
5926
+ @keyframes inkra-image-viewer-in { from { opacity: 0; } to { opacity: 1; } }
5927
+ @keyframes inkra-image-viewer-out { from { opacity: 1; } to { opacity: 0; } }
5928
+
5929
+ @media (max-width: 30rem) and (min-height: 30.001rem) {
5930
+ .inkra-image-viewer__bottom-row { align-items: stretch; flex-direction: column; gap: var(--inkra-space-1); }
5931
+ .inkra-image-viewer__counter { align-self: center; }
5932
+ .inkra-image-viewer__tools { align-self: center; }
5933
+ }
5085
5934
 
5086
- .inkra-image-viewer__body { padding: var(--inkra-space-2); }
5935
+ @media (max-width: 30rem) {
5087
5936
  .inkra-image-viewer__previous { inset-inline-start: var(--inkra-space-2); }
5088
5937
  .inkra-image-viewer__next { inset-inline-end: var(--inkra-space-2); }
5089
5938
  .inkra-image-viewer__thumbnails { padding-inline: var(--inkra-space-3); }
5090
- .inkra-image-viewer__tools { inset-block-end: var(--inkra-space-2); }
5939
+ }
5940
+
5941
+ @media (max-height: 30rem) {
5942
+ .inkra-image-viewer__bottom { max-block-size: min(40dvh, 12rem); }
5943
+ .inkra-image-viewer__bottom-row { justify-content: safe center; padding-block: var(--inkra-space-1); }
5944
+ .inkra-image-viewer__thumbnails { padding-block: var(--inkra-space-1); }
5945
+ .inkra-image-viewer__thumbnail { block-size: var(--inkra-touch-target); }
5946
+ }
5947
+
5948
+ @media (prefers-reduced-motion: reduce) {
5949
+ .inkra-image-viewer.inkra-overlay__content { animation: none !important; }
5091
5950
  }
5092
5951
 
5093
5952
  @media (forced-colors: active) {
5094
5953
  .inkra-image-viewer__stage { border: 1px solid CanvasText; }
5954
+ .inkra-pencil-surface.inkra-image-viewer__stage-focus,
5955
+ .inkra-pencil-surface.inkra-image-viewer__tools-paper,
5956
+ .inkra-pencil-surface.inkra-image-viewer__close-paper { display: none !important; }
5957
+ .inkra-image-viewer__stage:focus-visible,
5958
+ .inkra-image-viewer__state:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
5095
5959
  .inkra-image-viewer__thumbnail { border: 1px solid CanvasText; }
5096
5960
  .inkra-image-viewer__thumbnail[aria-selected="true"] { border-width: 3px; }
5961
+ .inkra-pencil-surface.inkra-image-viewer__thumbnail-video { display: none !important; }
5097
5962
  .inkra-image-viewer__pan-zoom .inkra-pan-zoom__viewport { border: 0; }
5098
5963
  }
5099
5964
 
5100
5965
  @media print {
5966
+ .inkra-image-viewer__close-control,
5101
5967
  .inkra-image-viewer__navigation,
5102
- .inkra-image-viewer__thumbnails { display: none; }
5968
+ .inkra-image-viewer__bottom { display: none; }
5969
+ }
5970
+
5971
+ .inkra-image-viewer__video-resource {
5972
+ block-size: 100%;
5973
+ box-sizing: border-box;
5974
+ container-type: inline-size;
5975
+ display: grid;
5976
+ grid-template-rows: minmax(var(--inkra-touch-target), 1fr) auto;
5977
+ inline-size: 100%;
5978
+ min-block-size: 0;
5979
+ min-inline-size: 0;
5980
+ overflow: hidden;
5981
+ }
5982
+
5983
+ .inkra-image-viewer__video-media {
5984
+ align-self: stretch;
5985
+ background: #000;
5986
+ block-size: 100%;
5987
+ display: block;
5988
+ inline-size: 100%;
5989
+ min-block-size: 0;
5990
+ object-fit: contain;
5991
+ }
5992
+
5993
+ .inkra-image-viewer__video-controls {
5994
+ align-items: center;
5995
+ background: var(--inkra-paper);
5996
+ box-sizing: border-box;
5997
+ color: var(--inkra-ink);
5998
+ display: grid;
5999
+ gap: var(--inkra-space-2);
6000
+ grid-template-areas:
6001
+ "play seek time"
6002
+ "settings settings settings";
6003
+ grid-template-columns: var(--inkra-touch-target) minmax(var(--inkra-touch-target), 1fr) minmax(0, 6.5rem);
6004
+ grid-template-rows: minmax(var(--inkra-touch-target), auto) minmax(var(--inkra-touch-target), auto);
6005
+ inline-size: 100%;
6006
+ min-inline-size: 0;
6007
+ padding: var(--inkra-space-2) var(--inkra-space-3);
6008
+ }
6009
+
6010
+ .inkra-image-viewer__video-play { grid-area: play; }
6011
+ .inkra-image-viewer__video-seek { grid-area: seek; min-inline-size: 0; }
6012
+ .inkra-image-viewer__video-volume { grid-area: volume; min-inline-size: 0; }
6013
+ .inkra-image-viewer__video-seek .inkra-slider,
6014
+ .inkra-image-viewer__video-volume .inkra-slider { inline-size: 100%; min-inline-size: 0; }
6015
+ .inkra-image-viewer__video-time { color: var(--inkra-ink-muted); font-variant-numeric: tabular-nums; grid-area: time; min-inline-size: 0; overflow-wrap: anywhere; text-align: center; unicode-bidi: isolate; }
6016
+ .inkra-image-viewer__video-settings {
6017
+ align-items: center;
6018
+ display: grid;
6019
+ gap: var(--inkra-space-2);
6020
+ grid-area: settings;
6021
+ grid-template-areas: "mute volume rate";
6022
+ grid-template-columns: var(--inkra-touch-target) minmax(var(--inkra-touch-target), 1fr) minmax(5.5rem, max-content);
6023
+ min-inline-size: 0;
6024
+ }
6025
+ .inkra-image-viewer__video-mute { grid-area: mute; }
6026
+ .inkra-image-viewer__video-settings > .inkra-select__trigger { grid-area: rate; inline-size: 100%; min-inline-size: 5.5rem; }
6027
+ .inkra-image-viewer__video-error { color: var(--inkra-danger); grid-column: 1 / -1; margin: 0; overflow-wrap: anywhere; }
6028
+
6029
+ @container (max-width: 22rem) {
6030
+ .inkra-image-viewer__video-controls { column-gap: var(--inkra-space-1); padding-inline: var(--inkra-space-2); }
6031
+ .inkra-image-viewer__video-settings { column-gap: var(--inkra-space-1); }
6032
+ }
6033
+
6034
+ @media (forced-colors: active) {
6035
+ .inkra-image-viewer__video-media { border: 1px solid CanvasText; }
6036
+ .inkra-image-viewer__video-controls { border-block-start: 1px solid CanvasText; }
6037
+ .inkra-image-viewer__video-error { color: Mark; }
6038
+ }
6039
+
6040
+ @media (prefers-reduced-motion: reduce) {
6041
+ .inkra-image-viewer__video-resource * { animation: none !important; transition: none !important; }
5103
6042
  }
5104
6043
 
5105
6044
  .inkra-keypad {
@@ -5535,16 +6474,30 @@ div.inkra-choice-grid > .inkra-radio-group {
5535
6474
  display: inline-flex;
5536
6475
  max-inline-size: 100%;
5537
6476
  outline: none;
5538
- overflow-x: auto;
5539
- overscroll-behavior-inline: contain;
6477
+ position: relative;
5540
6478
  touch-action: manipulation;
5541
6479
  }
5542
6480
 
6481
+ .inkra-rating__focus-ring {
6482
+ --inkra-accent-strong: var(--inkra-focus);
6483
+ inset: 1px;
6484
+ opacity: 0;
6485
+ pointer-events: none;
6486
+ position: absolute !important;
6487
+ z-index: 2;
6488
+ }
6489
+
5543
6490
  .inkra-rating__symbols {
5544
6491
  display: inline-flex;
5545
6492
  flex: 0 0 auto;
6493
+ max-inline-size: 100%;
6494
+ overflow-x: auto;
6495
+ overscroll-behavior-inline: contain;
6496
+ scrollbar-width: none;
5546
6497
  }
5547
6498
 
6499
+ .inkra-rating__symbols::-webkit-scrollbar { display: none; }
6500
+
5548
6501
  .inkra-rating__symbol-target {
5549
6502
  block-size: var(--inkra-touch-target);
5550
6503
  cursor: pointer;
@@ -5584,8 +6537,11 @@ div.inkra-choice-grid > .inkra-radio-group {
5584
6537
  }
5585
6538
 
5586
6539
  .inkra-rating:focus-visible {
5587
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
5588
- outline-offset: var(--inkra-focus-offset);
6540
+ outline: none;
6541
+ }
6542
+
6543
+ .inkra-rating:focus-visible > .inkra-rating__focus-ring {
6544
+ opacity: 1;
5589
6545
  }
5590
6546
 
5591
6547
  .inkra-rating[data-readonly] .inkra-rating__symbol-target,
@@ -5608,7 +6564,18 @@ div.inkra-choice-grid > .inkra-radio-group {
5608
6564
  }
5609
6565
 
5610
6566
  .inkra-rating:focus-visible {
5611
- outline: 2px solid Highlight;
6567
+ outline: var(--inkra-focus-width) solid Highlight;
6568
+ outline-offset: calc(-1 * var(--inkra-focus-width));
6569
+ }
6570
+
6571
+ .inkra-rating__focus-ring {
6572
+ display: none !important;
6573
+ }
6574
+ }
6575
+
6576
+ @media (prefers-reduced-motion: no-preference) {
6577
+ .inkra-rating__focus-ring {
6578
+ transition: opacity var(--inkra-motion-fast) var(--inkra-ease);
5612
6579
  }
5613
6580
  }
5614
6581
 
@@ -5617,6 +6584,10 @@ div.inkra-choice-grid > .inkra-radio-group {
5617
6584
  color: CanvasText;
5618
6585
  overflow: visible;
5619
6586
  }
6587
+
6588
+ .inkra-rating__focus-ring {
6589
+ display: none !important;
6590
+ }
5620
6591
  }
5621
6592
 
5622
6593
  .inkra-resizable {
@@ -5729,8 +6700,8 @@ div.inkra-choice-grid > .inkra-radio-group {
5729
6700
  }
5730
6701
 
5731
6702
  .inkra-scroll-area {
5732
- --inkra-scroll-area-size: 10px;
5733
- --inkra-scroll-area-gap: 3px;
6703
+ --inkra-scroll-area-size: 14px;
6704
+ --inkra-scroll-area-gap: 2px;
5734
6705
  color: var(--inkra-ink);
5735
6706
  min-block-size: 0;
5736
6707
  min-inline-size: 0;
@@ -5751,6 +6722,7 @@ div.inkra-choice-grid > .inkra-radio-group {
5751
6722
  .inkra-scroll-area__content { min-block-size: 100%; min-inline-size: 100%; }
5752
6723
 
5753
6724
  .inkra-scroll-area__scrollbar {
6725
+ align-items: stretch;
5754
6726
  box-sizing: border-box;
5755
6727
  display: flex;
5756
6728
  opacity: 0;
@@ -5760,10 +6732,12 @@ div.inkra-choice-grid > .inkra-radio-group {
5760
6732
  z-index: 2;
5761
6733
  }
5762
6734
 
5763
- .inkra-scroll-area[data-type="always"] .inkra-scroll-area__scrollbar,
6735
+ .inkra-scroll-area[data-type="always"] .inkra-scroll-area__scrollbar { opacity: .76; pointer-events: auto; }
5764
6736
  .inkra-scroll-area:hover .inkra-scroll-area__scrollbar,
5765
6737
  .inkra-scroll-area:focus-within .inkra-scroll-area__scrollbar,
6738
+ .inkra-scroll-area__scrollbar[data-hovering],
5766
6739
  .inkra-scroll-area__scrollbar[data-scrolling] { opacity: 1; pointer-events: auto; }
6740
+ .inkra-scroll-area__scrollbar[data-scrolling] { transition-duration: 0ms; }
5767
6741
 
5768
6742
  .inkra-scroll-area__scrollbar[data-orientation="vertical"] {
5769
6743
  inset-block: 0;
@@ -5781,25 +6755,66 @@ div.inkra-choice-grid > .inkra-radio-group {
5781
6755
  .inkra-scroll-area__thumb,
5782
6756
  .inkra-scroll-area__thumb-surface {
5783
6757
  display: block !important;
5784
- pointer-events: none;
5785
6758
  position: absolute !important;
5786
6759
  }
5787
6760
 
5788
- .inkra-scroll-area__track { inset: 0; opacity: .55; }
5789
- .inkra-scroll-area__thumb { cursor: grab; min-block-size: 18px; min-inline-size: 18px; pointer-events: auto; }
6761
+ .inkra-scroll-area__track,
6762
+ .inkra-scroll-area__thumb-surface {
6763
+ pointer-events: none;
6764
+ transition: opacity var(--inkra-motion-fast) var(--inkra-ease);
6765
+ }
6766
+ .inkra-scroll-area__track { opacity: .34; }
6767
+ .inkra-scroll-area__thumb { cursor: grab; pointer-events: auto; }
5790
6768
  .inkra-scroll-area__thumb:active { cursor: grabbing; }
5791
- .inkra-scroll-area__thumb-surface { inset: var(--inkra-scroll-area-gap); }
5792
- .inkra-scroll-area__scrollbar[data-orientation="horizontal"] .inkra-scroll-area__thumb { min-inline-size: 24px; }
6769
+ .inkra-scroll-area__thumb-surface { opacity: .82; }
6770
+
6771
+ .inkra-scroll-area__scrollbar[data-orientation="vertical"] .inkra-scroll-area__track {
6772
+ inset-block: var(--inkra-scroll-area-gap);
6773
+ inset-inline: 4px;
6774
+ }
6775
+ .inkra-scroll-area__scrollbar[data-orientation="vertical"] .inkra-scroll-area__thumb {
6776
+ inset-inline: var(--inkra-scroll-area-gap);
6777
+ min-block-size: 28px;
6778
+ }
6779
+ .inkra-scroll-area__scrollbar[data-orientation="vertical"] .inkra-scroll-area__thumb-surface {
6780
+ inset-block: 2px;
6781
+ inset-inline: 1px;
6782
+ }
6783
+ .inkra-scroll-area__scrollbar[data-orientation="horizontal"] .inkra-scroll-area__track {
6784
+ inset-block: 4px;
6785
+ inset-inline: var(--inkra-scroll-area-gap);
6786
+ }
6787
+ .inkra-scroll-area__scrollbar[data-orientation="horizontal"] .inkra-scroll-area__thumb {
6788
+ inset-block: var(--inkra-scroll-area-gap);
6789
+ min-inline-size: 32px;
6790
+ }
6791
+ .inkra-scroll-area__scrollbar[data-orientation="horizontal"] .inkra-scroll-area__thumb-surface {
6792
+ inset-block: 1px;
6793
+ inset-inline: 2px;
6794
+ }
6795
+
6796
+ .inkra-scroll-area:hover .inkra-scroll-area__track,
6797
+ .inkra-scroll-area:focus-within .inkra-scroll-area__track,
6798
+ .inkra-scroll-area__scrollbar[data-hovering] .inkra-scroll-area__track,
6799
+ .inkra-scroll-area__scrollbar[data-scrolling] .inkra-scroll-area__track { opacity: .5; }
6800
+ .inkra-scroll-area:hover .inkra-scroll-area__thumb-surface,
6801
+ .inkra-scroll-area:focus-within .inkra-scroll-area__thumb-surface,
6802
+ .inkra-scroll-area__scrollbar[data-hovering] .inkra-scroll-area__thumb-surface,
6803
+ .inkra-scroll-area__scrollbar[data-scrolling] .inkra-scroll-area__thumb-surface { opacity: 1; }
6804
+ .inkra-scroll-area__scrollbar[data-scrolling] .inkra-scroll-area__track { opacity: .62; }
5793
6805
  .inkra-scroll-area__corner { background: transparent; }
5794
6806
 
5795
6807
  @media (prefers-reduced-motion: reduce) {
5796
- .inkra-scroll-area__scrollbar { transition: none; }
6808
+ .inkra-scroll-area__scrollbar,
6809
+ .inkra-scroll-area__track,
6810
+ .inkra-scroll-area__thumb-surface { transition: none; }
5797
6811
  }
5798
6812
 
5799
6813
  @media (forced-colors: active) {
5800
6814
  .inkra-scroll-area__scrollbar { opacity: 1; }
5801
- .inkra-scroll-area__track { background: Canvas; border: 1px solid CanvasText; }
5802
- .inkra-scroll-area__thumb-surface { background: ButtonText; border: 2px solid ButtonText; }
6815
+ .inkra-scroll-area__track { background: Canvas; border: 1px solid CanvasText; opacity: 1; }
6816
+ .inkra-scroll-area__thumb-surface { background: ButtonText; border: 1px solid ButtonText; opacity: 1; }
6817
+ .inkra-scroll-area__viewport:focus-visible { outline: 2px solid Highlight; outline-offset: -2px; }
5803
6818
  }
5804
6819
 
5805
6820
  @media print {
@@ -5867,6 +6882,8 @@ div.inkra-choice-grid > .inkra-radio-group {
5867
6882
  }
5868
6883
 
5869
6884
  .inkra-sortable__item:not([data-disabled]) { cursor: grab; }
6885
+ .inkra-sortable__item[data-handle] { cursor: auto; }
6886
+ .inkra-sortable__item:not([data-disabled]):not([data-handle]) { touch-action: none; }
5870
6887
  .inkra-sortable__item[data-dragging] { cursor: grabbing; z-index: 1; }
5871
6888
  .inkra-sortable__item:focus { outline: none; }
5872
6889
 
@@ -5994,6 +7011,13 @@ div.inkra-choice-grid > .inkra-radio-group {
5994
7011
  --inkra-field-control-height: var(--inkra-control-md);
5995
7012
  --inkra-field-control-font-size: var(--inkra-text-md);
5996
7013
  --inkra-field-control-padding: var(--inkra-space-3);
7014
+ --inkra-tag-input-control-inset: var(--inkra-space-1);
7015
+ --inkra-tag-input-item-height: calc(var(--inkra-field-control-height) - 2 * var(--inkra-tag-input-control-inset));
7016
+ --inkra-tag-input-row-gap: max(
7017
+ var(--inkra-space-1),
7018
+ calc(var(--inkra-touch-target) - var(--inkra-tag-input-item-height))
7019
+ );
7020
+ --inkra-tag-input-tag-inset: var(--inkra-space-1);
5997
7021
 
5998
7022
  display: inline-grid;
5999
7023
  inline-size: 24rem;
@@ -6026,12 +7050,17 @@ div.inkra-choice-grid > .inkra-radio-group {
6026
7050
  block-size: auto;
6027
7051
  align-items: center;
6028
7052
  flex-wrap: wrap;
6029
- gap: var(--inkra-space-1);
6030
- padding: var(--inkra-space-1) var(--inkra-field-control-padding);
7053
+ column-gap: var(--inkra-space-1);
7054
+ row-gap: var(--inkra-tag-input-row-gap);
7055
+ padding: var(--inkra-tag-input-control-inset) var(--inkra-field-control-padding);
6031
7056
  color: var(--inkra-ink);
6032
7057
  cursor: text;
6033
7058
  }
6034
7059
 
7060
+ .inkra-tag-input[data-has-tags="true"] .inkra-tag-input__control {
7061
+ padding-inline: var(--inkra-tag-input-control-inset);
7062
+ }
7063
+
6035
7064
  .inkra-tag-input[data-focus-within="true"] .inkra-tag-input__control > :is(.inkra-pencil-surface__ink, .inkra-pencil-surface__border) {
6036
7065
  filter: contrast(1.28) saturate(1.08);
6037
7066
  }
@@ -6042,7 +7071,8 @@ div.inkra-choice-grid > .inkra-radio-group {
6042
7071
  align-items: center;
6043
7072
  flex: 0 1 auto;
6044
7073
  flex-wrap: wrap;
6045
- gap: var(--inkra-space-1);
7074
+ column-gap: var(--inkra-space-1);
7075
+ row-gap: var(--inkra-tag-input-row-gap);
6046
7076
  margin: 0;
6047
7077
  padding: 0;
6048
7078
  list-style: none;
@@ -6052,27 +7082,22 @@ div.inkra-choice-grid > .inkra-radio-group {
6052
7082
 
6053
7083
  .inkra-tag-input__tag {
6054
7084
  display: inline-flex !important;
7085
+ box-sizing: border-box;
6055
7086
  min-inline-size: 0;
6056
- min-block-size: var(--inkra-touch-target);
7087
+ block-size: var(--inkra-tag-input-item-height);
6057
7088
  align-items: center;
6058
- overflow: hidden;
7089
+ gap: var(--inkra-space-1);
7090
+ padding: var(--inkra-tag-input-tag-inset);
6059
7091
  color: var(--inkra-ink);
6060
7092
  font-family: var(--inkra-font-body);
6061
7093
  font-size: var(--inkra-field-control-font-size);
6062
7094
  line-height: var(--inkra-line-ui);
6063
7095
  }
6064
7096
 
6065
- .inkra-tag-input__tag > .inkra-pencil-surface__content {
6066
- display: inline-flex;
6067
- align-items: center;
6068
- min-inline-size: 0;
6069
- }
6070
-
6071
7097
  .inkra-tag-input__tag-label {
6072
7098
  min-inline-size: 0;
6073
7099
  max-inline-size: min(16rem, 50vw);
6074
7100
  overflow: hidden;
6075
- padding-inline: var(--inkra-space-3);
6076
7101
  text-overflow: ellipsis;
6077
7102
  white-space: nowrap;
6078
7103
  }
@@ -6080,9 +7105,9 @@ div.inkra-choice-grid > .inkra-radio-group {
6080
7105
  .inkra-tag-input__remove,
6081
7106
  .inkra-tag-input__clear {
6082
7107
  display: inline-flex;
7108
+ position: relative;
6083
7109
  box-sizing: border-box;
6084
7110
  inline-size: var(--inkra-touch-target);
6085
- block-size: var(--inkra-touch-target);
6086
7111
  flex: 0 0 var(--inkra-touch-target);
6087
7112
  align-items: center;
6088
7113
  justify-content: center;
@@ -6094,7 +7119,19 @@ div.inkra-choice-grid > .inkra-radio-group {
6094
7119
  cursor: pointer;
6095
7120
  }
6096
7121
 
6097
- .inkra-tag-input__remove { margin-inline-start: calc(-1 * var(--inkra-space-2)); }
7122
+ .inkra-tag-input__remove { block-size: 18px; }
7123
+ .inkra-tag-input__clear { block-size: var(--inkra-tag-input-item-height); }
7124
+
7125
+ .inkra-tag-input__remove::before,
7126
+ .inkra-tag-input__clear::before {
7127
+ position: absolute;
7128
+ inset-block-start: 50%;
7129
+ inset-inline: 0;
7130
+ min-block-size: var(--inkra-touch-target);
7131
+ content: "";
7132
+ transform: translateY(-50%);
7133
+ }
7134
+
6098
7135
  .inkra-tag-input__remove:hover,
6099
7136
  .inkra-tag-input__clear:hover { color: var(--inkra-ink); }
6100
7137
 
@@ -6106,20 +7143,26 @@ div.inkra-choice-grid > .inkra-radio-group {
6106
7143
 
6107
7144
  .inkra-tag-input__input {
6108
7145
  min-inline-size: min(8rem, 100%);
6109
- min-block-size: var(--inkra-touch-target);
6110
- block-size: var(--inkra-field-control-height);
7146
+ min-block-size: var(--inkra-tag-input-item-height);
7147
+ block-size: var(--inkra-tag-input-item-height);
6111
7148
  flex: 1 1 8rem;
6112
7149
  padding: 0;
6113
7150
  color: var(--inkra-ink);
6114
7151
  font-size: var(--inkra-field-control-font-size);
6115
7152
  }
6116
7153
 
7154
+ .inkra-tag-input[data-draft-empty="true"][data-has-tags="true"]:not([data-has-placeholder="true"])
7155
+ .inkra-tag-input__input {
7156
+ min-inline-size: 1px;
7157
+ flex-basis: 1px;
7158
+ }
7159
+
6117
7160
  .inkra-tag-input__input::placeholder {
6118
7161
  color: var(--inkra-ink-subtle);
6119
7162
  opacity: 1;
6120
7163
  }
6121
7164
 
6122
- .inkra-tag-input__clear { margin-inline-end: calc(-1 * var(--inkra-field-control-padding)); }
7165
+ .inkra-tag-input__clear { margin-inline-end: 0; }
6123
7166
 
6124
7167
  .inkra-tag-input__underline {
6125
7168
  position: absolute;
@@ -6179,12 +7222,20 @@ div.inkra-choice-grid > .inkra-radio-group {
6179
7222
  }
6180
7223
 
6181
7224
  .inkra-transfer {
7225
+ color: var(--inkra-ink);
7226
+ container-name: inkra-transfer;
7227
+ container-type: inline-size;
7228
+ font-family: var(--inkra-font-body);
7229
+ line-height: var(--inkra-line-ui);
7230
+ min-width: 0;
7231
+ }
7232
+
7233
+ .inkra-transfer__layout {
6182
7234
  display: grid;
6183
7235
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
6184
7236
  align-items: stretch;
6185
7237
  gap: var(--inkra-space-4);
6186
7238
  min-width: 0;
6187
- color: var(--inkra-ink);
6188
7239
  }
6189
7240
 
6190
7241
  .inkra-transfer__panel {
@@ -6201,9 +7252,20 @@ div.inkra-choice-grid > .inkra-radio-group {
6201
7252
  grid-template-rows: auto auto auto auto minmax(180px, 1fr);
6202
7253
  }
6203
7254
 
6204
- .inkra-transfer__panel:focus-visible {
6205
- outline: 2px solid var(--inkra-accent-strong);
6206
- outline-offset: 3px;
7255
+ .inkra-transfer__panel-focus {
7256
+ --inkra-accent-strong: var(--inkra-focus);
7257
+
7258
+ display: block !important;
7259
+ inset: calc(-1 * var(--inkra-focus-offset));
7260
+ opacity: 0;
7261
+ pointer-events: none;
7262
+ position: absolute !important;
7263
+ z-index: 3;
7264
+ }
7265
+
7266
+ .inkra-transfer__panel:focus-visible { outline: 0; }
7267
+ .inkra-transfer__panel:focus-visible > .inkra-transfer__panel-focus {
7268
+ opacity: 1;
6207
7269
  }
6208
7270
 
6209
7271
  .inkra-transfer__header,
@@ -6276,40 +7338,63 @@ div.inkra-choice-grid > .inkra-radio-group {
6276
7338
 
6277
7339
  .inkra-transfer[data-disabled] { opacity: .72; }
6278
7340
 
6279
- @media (max-width: 720px) {
6280
- .inkra-transfer { grid-template-columns: minmax(0, 1fr); }
7341
+ .inkra-transfer .inkra-transfer__direction-icon[data-direction="to-source"] { transform: scaleX(-1); }
7342
+ .inkra-transfer:dir(rtl) .inkra-transfer__direction-icon[data-direction="to-target"] { transform: scaleX(-1); }
7343
+ .inkra-transfer:dir(rtl) .inkra-transfer__direction-icon[data-direction="to-source"] { transform: none; }
7344
+
7345
+ @container inkra-transfer (max-width: 720px) {
7346
+ .inkra-transfer__layout { grid-template-columns: minmax(0, 1fr); }
6281
7347
  .inkra-transfer__panel { min-height: 320px; }
6282
7348
  .inkra-transfer__list { max-height: 280px; }
6283
7349
  .inkra-transfer__actions { grid-auto-flow: column; justify-self: center; }
6284
- .inkra-transfer__actions .inkra-transfer__direction-icon { transform: rotate(90deg); }
7350
+ .inkra-transfer:dir(ltr) .inkra-transfer__direction-icon[data-direction="to-target"],
7351
+ .inkra-transfer:dir(rtl) .inkra-transfer__direction-icon[data-direction="to-target"] {
7352
+ transform: rotate(90deg);
7353
+ }
7354
+ .inkra-transfer:dir(ltr) .inkra-transfer__direction-icon[data-direction="to-source"],
7355
+ .inkra-transfer:dir(rtl) .inkra-transfer__direction-icon[data-direction="to-source"] {
7356
+ transform: rotate(-90deg);
7357
+ }
6285
7358
  }
6286
7359
 
6287
7360
  @media (forced-colors: active) {
6288
7361
  .inkra-transfer__panel { border: 1px solid CanvasText; }
6289
- .inkra-transfer__panel:focus-visible { outline-color: Highlight; }
7362
+ .inkra-transfer__panel:focus-visible { outline: 2px solid Highlight; outline-offset: 3px; }
7363
+ .inkra-transfer__panel-focus { display: none !important; }
6290
7364
  }
6291
7365
 
6292
7366
  @media print {
6293
- .inkra-transfer { grid-template-columns: 1fr 1fr; }
7367
+ .inkra-transfer__layout { grid-template-columns: 1fr 1fr; }
6294
7368
  .inkra-transfer__actions { display: none; }
6295
7369
  .inkra-transfer__panel { border: 1px solid currentColor; }
6296
7370
  }
6297
7371
 
6298
7372
 
6299
7373
  .inkra-tree-select {
6300
- display: block;
7374
+ --inkra-tree-select-control-height: var(--inkra-control-md);
7375
+
7376
+ display: flex;
7377
+ align-items: center;
7378
+ min-height: var(--inkra-touch-target);
6301
7379
  min-width: 0;
6302
7380
  width: 100%;
6303
7381
  color: var(--inkra-ink);
6304
7382
  }
6305
7383
 
6306
- .inkra-tree-select__control {
6307
- display: grid;
6308
- grid-template-columns: minmax(0, 1fr) auto;
6309
- gap: var(--inkra-space-2);
7384
+ .inkra-tree-select[data-size="sm"] { --inkra-tree-select-control-height: var(--inkra-control-sm); }
7385
+ .inkra-tree-select[data-size="lg"] { --inkra-tree-select-control-height: var(--inkra-control-lg); }
7386
+
7387
+ .inkra-button-group.inkra-tree-select__control {
7388
+ align-items: center;
7389
+ block-size: var(--inkra-tree-select-control-height);
6310
7390
  min-width: 0;
7391
+ overflow: visible;
7392
+ width: 100%;
6311
7393
  }
6312
7394
 
7395
+ .inkra-tree-select__control > .inkra-tree-select__trigger { flex: 1 1 auto; }
7396
+ .inkra-tree-select__control > .inkra-tree-select__clear { flex: 0 0 auto; }
7397
+
6313
7398
  .inkra-tree-select__trigger,
6314
7399
  .inkra-tree-select__trigger > .inkra-button__surface {
6315
7400
  min-width: 0;
@@ -6335,10 +7420,24 @@ div.inkra-choice-grid > .inkra-radio-group {
6335
7420
  color: var(--inkra-ink-subtle);
6336
7421
  }
6337
7422
 
6338
- .inkra-tree-select__clear[data-visible="false"] {
7423
+ .inkra-tree-select__clear[aria-hidden="true"] {
6339
7424
  visibility: hidden;
6340
7425
  }
6341
7426
 
7427
+ .inkra-tree-select__control .inkra-button-group__divider[data-orientation="vertical"] {
7428
+ block-size: var(--inkra-tree-select-control-height);
7429
+ inset-block-start: 50%;
7430
+ transform: translateY(-50%);
7431
+ }
7432
+
7433
+ .inkra-tree-select[data-invalid] {
7434
+ color: var(--inkra-danger);
7435
+ }
7436
+
7437
+ .inkra-tree-select[data-invalid] .inkra-tree-select__control {
7438
+ --inkra-accent-strong: var(--inkra-danger);
7439
+ }
7440
+
6342
7441
  .inkra-tree-select__popover {
6343
7442
  width: max(var(--radix-popover-trigger-width, 18rem), 18rem);
6344
7443
  max-width: min(32rem, calc(100vw - var(--inkra-space-4)));
@@ -6383,6 +7482,11 @@ div.inkra-choice-grid > .inkra-radio-group {
6383
7482
  }
6384
7483
 
6385
7484
  @media (forced-colors: active) {
7485
+ .inkra-tree-select[data-invalid] .inkra-tree-select__control {
7486
+ outline: 2px solid Mark;
7487
+ outline-offset: 2px;
7488
+ }
7489
+
6386
7490
  .inkra-tree-select__popover {
6387
7491
  border: 1px solid CanvasText;
6388
7492
  }
@@ -6454,105 +7558,504 @@ div.inkra-choice-grid > .inkra-radio-group {
6454
7558
  }
6455
7559
  }
6456
7560
 
6457
- @media print {
6458
- .inkra-typewriter__grapheme,
6459
- .inkra-typewriter__space {
6460
- visibility: visible;
6461
- }
7561
+ @media print {
7562
+ .inkra-typewriter__grapheme,
7563
+ .inkra-typewriter__space {
7564
+ visibility: visible;
7565
+ }
7566
+ }
7567
+
7568
+ .inkra-virtual-list__frame {
7569
+ min-inline-size: 0;
7570
+ position: relative;
7571
+ }
7572
+
7573
+ .inkra-virtual-list__focus {
7574
+ position: absolute;
7575
+ inset: 0;
7576
+ opacity: 0;
7577
+ pointer-events: none;
7578
+ }
7579
+
7580
+ .inkra-virtual-list__frame:has(> .inkra-virtual-list:focus-visible) > .inkra-virtual-list__focus {
7581
+ opacity: 1;
7582
+ }
7583
+
7584
+ .inkra-virtual-list {
7585
+ block-size: 20rem;
7586
+ color: var(--inkra-ink);
7587
+ min-block-size: 8rem;
7588
+ min-inline-size: 0;
7589
+ outline: 0;
7590
+ overflow: auto;
7591
+ overscroll-behavior: contain;
7592
+ position: relative;
7593
+ scrollbar-gutter: stable;
7594
+ }
7595
+
7596
+ .inkra-virtual-list[data-external-scroll="true"] {
7597
+ block-size: auto;
7598
+ min-block-size: 0;
7599
+ overflow: visible;
7600
+ scrollbar-gutter: auto;
7601
+ }
7602
+
7603
+ .inkra-virtual-list:focus-visible {
7604
+ outline: none;
7605
+ }
7606
+
7607
+ .inkra-virtual-list__items {
7608
+ inline-size: 100%;
7609
+ list-style: none;
7610
+ margin: 0;
7611
+ min-inline-size: 0;
7612
+ padding: 0;
7613
+ position: relative;
7614
+ }
7615
+
7616
+ .inkra-virtual-list[data-virtualized="true"] .inkra-virtual-list__item {
7617
+ inset-block-start: 0;
7618
+ inset-inline-start: 0;
7619
+ position: absolute;
7620
+ }
7621
+
7622
+ .inkra-virtual-list__item {
7623
+ box-sizing: border-box;
7624
+ inline-size: 100%;
7625
+ min-block-size: var(--inkra-touch-target);
7626
+ min-inline-size: 0;
7627
+ overflow-wrap: anywhere;
7628
+ padding: var(--inkra-space-2) var(--inkra-space-3);
7629
+ position: relative;
7630
+ will-change: transform;
7631
+ }
7632
+
7633
+ .inkra-virtual-list:not([data-virtualized="true"]) .inkra-virtual-list__item {
7634
+ will-change: auto;
7635
+ }
7636
+
7637
+ .inkra-virtual-list__item > .inkra-virtual-list__separator {
7638
+ color: var(--inkra-border);
7639
+ inset-block-start: -4px;
7640
+ inset-inline: var(--inkra-space-3);
7641
+ inline-size: auto;
7642
+ opacity: .58;
7643
+ position: absolute;
7644
+ width: auto;
7645
+ }
7646
+
7647
+ .inkra-virtual-list__empty {
7648
+ color: var(--inkra-ink-muted);
7649
+ display: grid;
7650
+ min-block-size: 8rem;
7651
+ padding: var(--inkra-space-6);
7652
+ place-items: center;
7653
+ text-align: center;
7654
+ }
7655
+
7656
+ @media (forced-colors: active) {
7657
+ .inkra-virtual-list__frame { border: 1px solid CanvasText; }
7658
+ .inkra-virtual-list:focus-visible {
7659
+ outline: var(--inkra-focus-width) solid Highlight;
7660
+ outline-color: Highlight;
7661
+ outline-offset: calc(-1 * var(--inkra-focus-width));
7662
+ }
7663
+ .inkra-virtual-list__item > .inkra-virtual-list__separator {
7664
+ inset-block-start: 0;
7665
+ opacity: 1;
7666
+ }
7667
+ }
7668
+
7669
+ @media print {
7670
+ .inkra-virtual-list {
7671
+ block-size: auto !important;
7672
+ overflow: visible;
7673
+ }
7674
+
7675
+ .inkra-virtual-list__item > .inkra-virtual-list__separator {
7676
+ inset-block-start: 0;
7677
+ opacity: 1;
7678
+ }
7679
+ }
7680
+
7681
+ .inkra-markdown {
7682
+ color: var(--inkra-ink);
7683
+ font-family: var(--inkra-font-body);
7684
+ font-size: var(--inkra-text-md);
7685
+ line-height: var(--inkra-line-body);
7686
+ max-width: 100%;
7687
+ min-width: 0;
7688
+ overflow-wrap: anywhere;
7689
+ }
7690
+
7691
+ .inkra-markdown > :first-child { margin-block-start: 0; }
7692
+ .inkra-markdown > :last-child { margin-block-end: 0; }
7693
+
7694
+ .inkra-markdown__heading {
7695
+ color: var(--inkra-ink);
7696
+ font-weight: var(--inkra-weight-regular);
7697
+ letter-spacing: 0;
7698
+ line-height: 1.25;
7699
+ margin-block: var(--inkra-space-6) var(--inkra-space-3);
7700
+ }
7701
+
7702
+ .inkra-markdown h1 { font-size: var(--inkra-text-3xl); }
7703
+ .inkra-markdown h2 { font-size: var(--inkra-text-2xl); }
7704
+ .inkra-markdown h3 { font-size: var(--inkra-text-xl); }
7705
+ .inkra-markdown h4 { font-size: var(--inkra-text-lg); }
7706
+ .inkra-markdown h5 { font-size: var(--inkra-text-md); }
7707
+ .inkra-markdown h6 { color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); }
7708
+
7709
+ .inkra-markdown__paragraph {
7710
+ margin-block: 0 var(--inkra-space-4);
7711
+ }
7712
+
7713
+ .inkra-markdown strong { color: var(--inkra-ink); font-weight: var(--inkra-weight-semibold); }
7714
+ .inkra-markdown em { color: var(--inkra-ink-muted); font-style: italic; }
7715
+ .inkra-markdown del { color: var(--inkra-ink-muted); text-decoration-thickness: 1px; }
7716
+
7717
+ .inkra-markdown__deleted {
7718
+ display: inline-block;
7719
+ max-width: 100%;
7720
+ position: relative;
7721
+ vertical-align: baseline;
7722
+ }
7723
+ .inkra-markdown__deleted[data-pencil-strike-ready="true"] { text-decoration: none; }
7724
+ .inkra-markdown__deleted:not([data-pencil-strike-ready="true"]) .inkra-pencil-text { text-decoration: line-through; }
7725
+ .inkra-markdown__deleted > .inkra-markdown__strike {
7726
+ height: 6px;
7727
+ pointer-events: none;
7728
+ position: absolute;
7729
+ }
7730
+
7731
+ .inkra-markdown__link {
7732
+ color: var(--inkra-accent-strong);
7733
+ display: inline-block;
7734
+ max-width: 100%;
7735
+ position: relative;
7736
+ text-decoration: none;
7737
+ vertical-align: baseline;
7738
+ }
7739
+
7740
+ .inkra-markdown__link > span { max-width: 100%; }
7741
+ .inkra-markdown__link > .inkra-markdown__link-line {
7742
+ bottom: 0;
7743
+ height: 5px;
7744
+ inset-inline: 0;
7745
+ pointer-events: none;
7746
+ position: absolute;
7747
+ width: 100%;
7748
+ }
7749
+ .inkra-markdown__link:focus-visible { outline: 0; }
7750
+ .inkra-pencil-surface.inkra-markdown__link-focus,
7751
+ .inkra-pencil-surface.inkra-markdown__code-focus,
7752
+ .inkra-pencil-surface.inkra-markdown__table-focus {
7753
+ --inkra-accent-strong: var(--inkra-focus);
7754
+ display: block;
7755
+ opacity: 0;
7756
+ pointer-events: none;
7757
+ position: absolute;
7758
+ z-index: 2;
7759
+ }
7760
+ .inkra-pencil-surface.inkra-markdown__link-focus { inset: -2px; }
7761
+ .inkra-markdown__link:focus-visible > .inkra-markdown__link-focus { opacity: 1; }
7762
+ .inkra-markdown__link-text,
7763
+ .inkra-markdown__image-alt { color: var(--inkra-ink-muted); }
7764
+
7765
+ .inkra-markdown__list {
7766
+ margin-block: 0 var(--inkra-space-4);
7767
+ padding-inline-start: 1.65rem;
7768
+ }
7769
+
7770
+ .inkra-markdown__list--unordered,
7771
+ .inkra-markdown__list--ordered { list-style: none; padding-inline-start: 0; }
7772
+ .inkra-markdown__list--ordered { font-variant-numeric: tabular-nums; }
7773
+
7774
+ .inkra-markdown__list-item {
7775
+ margin-block: var(--inkra-space-1);
7776
+ min-width: 0;
7777
+ }
7778
+
7779
+ .inkra-markdown__list--unordered > .inkra-markdown__list-item,
7780
+ .inkra-markdown__list--ordered > .inkra-markdown__list-item {
7781
+ align-items: flex-start;
7782
+ display: grid;
7783
+ gap: var(--inkra-space-2);
7784
+ grid-template-columns: 14px minmax(0, 1fr);
7785
+ }
7786
+
7787
+ .inkra-markdown__list--ordered > .inkra-markdown__list-item { grid-template-columns: var(--inkra-markdown-ordered-marker-width, 1.75rem) minmax(0, 1fr); }
7788
+ .inkra-markdown__list--unordered > .task-list-item { grid-template-columns: minmax(0, 1fr); }
7789
+ .inkra-markdown__bullet { color: var(--inkra-accent-strong); margin-block-start: 0.42em; }
7790
+ .inkra-markdown__ordered-marker {
7791
+ align-self: start;
7792
+ color: var(--inkra-accent-strong);
7793
+ justify-self: end;
7794
+ line-height: var(--inkra-line-body);
7795
+ max-width: none;
7796
+ text-align: end;
7797
+ white-space: nowrap;
7798
+ width: 100%;
7799
+ }
7800
+ .inkra-markdown__list-content { grid-column: 2; min-width: 0; }
7801
+ .inkra-markdown__list--unordered > .task-list-item > .inkra-markdown__list-content { grid-column: 1; }
7802
+ .inkra-markdown__list-content > :last-child { margin-block-end: 0; }
7803
+ .inkra-markdown .contains-task-list { list-style: none; padding-inline-start: 0; }
7804
+ .inkra-markdown__list--unordered > .task-list-item { list-style: none; }
7805
+ .inkra-markdown__task-row {
7806
+ align-items: start;
7807
+ display: grid;
7808
+ gap: var(--inkra-space-2);
7809
+ grid-template-columns: 18px minmax(0, 1fr);
7810
+ }
7811
+ .inkra-markdown__task-content { min-width: 0; }
7812
+ .inkra-markdown__task-content > :last-child { margin-block-end: 0; }
7813
+
7814
+ .inkra-selection-control.inkra-markdown__task-checkbox {
7815
+ align-items: center;
7816
+ cursor: default;
7817
+ display: inline-grid;
7818
+ gap: 0;
7819
+ grid-template-columns: 18px;
7820
+ inline-size: 18px;
7821
+ margin-block-start: 0.18em;
7822
+ margin-inline-end: 0;
7823
+ min-height: 0;
7824
+ opacity: 1;
7825
+ vertical-align: -0.18em;
7826
+ }
7827
+ .inkra-markdown__task-checkbox > .inkra-selection-control__copy { display: none; }
7828
+ .inkra-markdown__task-checkbox > .inkra-selection-control__mark {
7829
+ align-items: center;
7830
+ block-size: 18px;
7831
+ display: inline-flex;
7832
+ inline-size: 18px;
7833
+ justify-content: center;
7834
+ }
7835
+
7836
+ .inkra-markdown__quote {
7837
+ color: var(--inkra-ink-muted);
7838
+ display: grid;
7839
+ gap: var(--inkra-space-3);
7840
+ grid-template-columns: 8px minmax(0, 1fr);
7841
+ margin: 0 0 var(--inkra-space-4);
7842
+ padding: var(--inkra-space-2) 0;
7843
+ }
7844
+
7845
+ .inkra-markdown__quote-line { min-height: 100%; }
7846
+ .inkra-markdown__quote :last-child { margin-block-end: 0; }
7847
+
7848
+ .inkra-markdown__divider { margin-block: var(--inkra-space-6); }
7849
+
7850
+ .inkra-markdown :not(pre) > .inkra-markdown__code {
7851
+ background: transparent;
7852
+ border-radius: var(--inkra-radius-sm);
7853
+ color: var(--inkra-selection-foreground);
7854
+ display: inline-block;
7855
+ font-family: var(--inkra-font-mono);
7856
+ font-size: 0.9em;
7857
+ isolation: isolate;
7858
+ max-width: 100%;
7859
+ padding: 0.12em 0.4em;
7860
+ position: relative;
7861
+ vertical-align: baseline;
7862
+ }
7863
+
7864
+ .inkra-markdown__code > .inkra-pencil-surface.inkra-markdown__code-wash {
7865
+ --inkra-accent: var(--inkra-selection-pigment);
7866
+ border-radius: 3px;
7867
+ display: block;
7868
+ inset: 0;
7869
+ overflow: hidden;
7870
+ pointer-events: none;
7871
+ position: absolute;
7872
+ z-index: -1;
7873
+ }
7874
+ .inkra-markdown__code-wash[data-pencil-fallback="true"] { background: var(--inkra-selection); }
7875
+
7876
+ .inkra-markdown__code-text {
7877
+ --inkra-letter-fill: 0.24;
7878
+ --inkra-letter-grain: 0.34;
7879
+ --inkra-letter-outline: 0.84;
7880
+ font-family: inherit;
7881
+ }
7882
+
7883
+ .inkra-markdown__code-text > .inkra-pencil-text__source { font-family: inherit; }
7884
+
7885
+ .inkra-markdown__code-frame {
7886
+ margin-block: 0 var(--inkra-space-4);
7887
+ max-width: 100%;
7888
+ min-width: 0;
7889
+ position: relative;
7890
+ }
7891
+
7892
+ .inkra-markdown__code-frame > .inkra-markdown__code-header {
7893
+ padding: var(--inkra-space-2) var(--inkra-space-4);
7894
+ }
7895
+ .inkra-markdown__code-language {
7896
+ align-items: center;
7897
+ display: flex;
7898
+ gap: var(--inkra-space-2);
7899
+ font-size: var(--inkra-text-sm);
7900
+ min-width: 0;
7901
+ }
7902
+ .inkra-markdown__code-language > .inkra-pencil-icon { flex: none; }
7903
+ .inkra-markdown__code-status {
7904
+ clip-path: inset(50%);
7905
+ height: 1px;
7906
+ overflow: hidden;
7907
+ position: absolute;
7908
+ white-space: nowrap;
7909
+ width: 1px;
6462
7910
  }
6463
7911
 
6464
- .inkra-virtual-list {
6465
- block-size: 20rem;
7912
+ .inkra-markdown__code-surface {
7913
+ background: transparent;
6466
7914
  color: var(--inkra-ink);
6467
- min-block-size: 8rem;
6468
- min-inline-size: 0;
6469
- outline: 0;
6470
- overflow: auto;
6471
- overscroll-behavior: contain;
6472
- position: relative;
6473
- scrollbar-gutter: stable;
7915
+ font-family: "Trip Map Hand", var(--inkra-font-hand);
7916
+ font-size: var(--inkra-text-md);
7917
+ font-weight: var(--inkra-weight-regular);
7918
+ line-height: 1.8;
7919
+ margin: 0;
7920
+ max-width: 100%;
7921
+ min-width: 0;
7922
+ overflow-x: auto;
7923
+ overflow-wrap: normal;
7924
+ overscroll-behavior-inline: contain;
7925
+ padding: var(--inkra-space-4);
7926
+ tab-size: 2;
7927
+ white-space: pre;
6474
7928
  }
6475
7929
 
6476
- .inkra-virtual-list[data-external-scroll="true"] {
6477
- block-size: auto;
6478
- min-block-size: 0;
6479
- overflow: visible;
6480
- scrollbar-gutter: auto;
7930
+ .inkra-markdown__code-surface:focus-visible {
7931
+ outline: 0;
6481
7932
  }
7933
+ .inkra-markdown__code-focus { inset: 0; }
7934
+ .inkra-markdown__code-surface:focus-visible + .inkra-markdown__code-focus { opacity: 1; }
6482
7935
 
6483
- .inkra-virtual-list:focus-visible {
6484
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
6485
- outline-offset: calc(-1 * var(--inkra-focus-width));
7936
+ .inkra-markdown__code-surface > .inkra-markdown__code {
7937
+ color: var(--inkra-ink);
7938
+ font: inherit;
7939
+ overflow-wrap: normal;
7940
+ white-space: pre;
6486
7941
  }
6487
7942
 
6488
- .inkra-virtual-list__items {
6489
- inline-size: 100%;
6490
- list-style: none;
6491
- margin: 0;
6492
- min-inline-size: 0;
6493
- padding: 0;
7943
+ .inkra-markdown__code-surface .inkra-pencil-text,
7944
+ .inkra-markdown__code-surface .inkra-pencil-text__source {
7945
+ max-width: none;
7946
+ overflow-wrap: normal;
7947
+ white-space: pre;
7948
+ }
7949
+
7950
+ .inkra-markdown__code-surface .token-comment,
7951
+ .inkra-markdown__code-surface .token-prolog { color: var(--inkra-ink-muted); }
7952
+ .inkra-markdown__code-surface .token-keyword,
7953
+ .inkra-markdown__code-surface .token-tag { color: var(--inkra-danger); }
7954
+ .inkra-markdown__code-surface .token-function,
7955
+ .inkra-markdown__code-surface .token-class-name,
7956
+ .inkra-markdown__code-surface .token-attr-name,
7957
+ .inkra-markdown__code-surface .token-property { color: var(--inkra-info-foreground); }
7958
+ .inkra-markdown__code-surface .token-string,
7959
+ .inkra-markdown__code-surface .token-attr-value { color: var(--inkra-success-foreground); }
7960
+ .inkra-markdown__code-surface .token-number,
7961
+ .inkra-markdown__code-surface .token-boolean { color: var(--inkra-warning-foreground); }
7962
+ .inkra-markdown__code-surface .token-punctuation,
7963
+ .inkra-markdown__code-surface .token-operator { color: var(--inkra-ink); }
7964
+
7965
+ .inkra-markdown__table-frame {
7966
+ margin-block: 0 var(--inkra-space-4);
7967
+ max-width: 100%;
7968
+ min-width: 0;
6494
7969
  position: relative;
6495
7970
  }
6496
7971
 
6497
- .inkra-virtual-list[data-virtualized="true"] .inkra-virtual-list__item {
6498
- inset-block-start: 0;
6499
- inset-inline-start: 0;
6500
- position: absolute;
7972
+ .inkra-markdown__table {
7973
+ margin: 0;
7974
+ max-width: 100%;
7975
+ overscroll-behavior-inline: contain;
6501
7976
  }
6502
7977
 
6503
- .inkra-virtual-list__item {
6504
- box-sizing: border-box;
6505
- inline-size: 100%;
6506
- min-block-size: var(--inkra-touch-target);
6507
- min-inline-size: 0;
6508
- overflow-wrap: anywhere;
6509
- padding: var(--inkra-space-2) var(--inkra-space-3);
6510
- position: relative;
6511
- will-change: transform;
6512
- }
7978
+ .inkra-markdown .inkra-markdown__table:focus-visible { outline: 0; }
7979
+ .inkra-markdown__table-focus { inset: 0; }
7980
+ .inkra-markdown__table:focus-visible + .inkra-markdown__table-focus { opacity: 1; }
6513
7981
 
6514
- .inkra-virtual-list:not([data-virtualized="true"]) .inkra-virtual-list__item {
6515
- will-change: auto;
7982
+ .inkra-markdown__image-frame {
7983
+ display: inline-block;
7984
+ margin-block: var(--inkra-space-2);
7985
+ max-width: 100%;
7986
+ padding: var(--inkra-space-1);
6516
7987
  }
6517
7988
 
6518
- .inkra-virtual-list__item > .inkra-virtual-list__separator {
6519
- color: var(--inkra-border);
6520
- inset-block-start: -4px;
6521
- inset-inline: var(--inkra-space-3);
6522
- inline-size: auto;
6523
- opacity: .58;
6524
- position: absolute;
6525
- width: auto;
7989
+ .inkra-markdown__image {
7990
+ display: block;
7991
+ height: auto;
7992
+ max-width: 100%;
6526
7993
  }
6527
7994
 
6528
- .inkra-virtual-list__empty {
6529
- color: var(--inkra-ink-muted);
6530
- display: grid;
6531
- min-block-size: 8rem;
6532
- padding: var(--inkra-space-6);
6533
- place-items: center;
6534
- text-align: center;
7995
+ @media (max-width: 520px) {
7996
+ .inkra-markdown__heading { overflow-wrap: anywhere; }
7997
+ .inkra-markdown__code-surface { padding: var(--inkra-space-3); }
6535
7998
  }
6536
7999
 
6537
8000
  @media (forced-colors: active) {
6538
- .inkra-virtual-list { border: 1px solid CanvasText; }
6539
- .inkra-virtual-list:focus-visible { outline-color: Highlight; }
6540
- .inkra-virtual-list__item > .inkra-virtual-list__separator {
6541
- inset-block-start: 0;
6542
- opacity: 1;
6543
- }
8001
+ .inkra-markdown__link { text-decoration: underline; }
8002
+ .inkra-markdown__link:focus-visible,
8003
+ .inkra-markdown__code-surface:focus-visible,
8004
+ .inkra-markdown .inkra-markdown__table:focus-visible {
8005
+ outline: var(--inkra-focus-width) solid Highlight;
8006
+ outline-offset: calc(-1 * var(--inkra-focus-width));
8007
+ }
8008
+ .inkra-pencil-surface.inkra-markdown__link-focus,
8009
+ .inkra-pencil-surface.inkra-markdown__code-focus,
8010
+ .inkra-pencil-surface.inkra-markdown__table-focus { display: none !important; }
8011
+ .inkra-markdown__link-line,
8012
+ .inkra-markdown__bullet,
8013
+ .inkra-markdown__ordered-marker { display: none; }
8014
+ .inkra-markdown .inkra-markdown__list--unordered { list-style: disc; padding-inline-start: 1.4rem; }
8015
+ .inkra-markdown .inkra-markdown__list--ordered { list-style: decimal; padding-inline-start: 1.8rem; }
8016
+ .inkra-markdown__list--unordered > .inkra-markdown__list-item,
8017
+ .inkra-markdown__list--ordered > .inkra-markdown__list-item { display: list-item; }
8018
+ .inkra-markdown__list--unordered > .task-list-item { list-style: none; }
8019
+ .inkra-markdown__list-content { grid-column: auto; }
8020
+ .inkra-markdown :not(pre) > .inkra-markdown__code { background: Canvas; border: 1px solid CanvasText; color: CanvasText; }
8021
+ .inkra-markdown__code-surface,
8022
+ .inkra-markdown__code-surface .inkra-pencil-text { color: CanvasText; }
8023
+ .inkra-markdown__task-checkbox > .inkra-selection-control__input { height: 18px; width: 18px; }
6544
8024
  }
6545
8025
 
6546
8026
  @media print {
6547
- .inkra-virtual-list {
6548
- block-size: auto !important;
6549
- overflow: visible;
6550
- }
6551
-
6552
- .inkra-virtual-list__item > .inkra-virtual-list__separator {
6553
- inset-block-start: 0;
8027
+ .inkra-markdown__link { color: currentcolor; text-decoration: underline; }
8028
+ .inkra-pencil-surface.inkra-markdown__link-focus,
8029
+ .inkra-pencil-surface.inkra-markdown__code-focus,
8030
+ .inkra-pencil-surface.inkra-markdown__table-focus { display: none !important; }
8031
+ .inkra-markdown__link-line,
8032
+ .inkra-markdown__bullet,
8033
+ .inkra-markdown__ordered-marker { display: none; }
8034
+ .inkra-markdown .inkra-markdown__list--unordered { list-style: disc; padding-inline-start: 1.4rem; }
8035
+ .inkra-markdown .inkra-markdown__list--ordered { list-style: decimal; padding-inline-start: 1.8rem; }
8036
+ .inkra-markdown__list--unordered > .inkra-markdown__list-item,
8037
+ .inkra-markdown__list--ordered > .inkra-markdown__list-item { display: list-item; }
8038
+ .inkra-markdown__list--unordered > .task-list-item { list-style: none; }
8039
+ .inkra-markdown__list-content { grid-column: auto; }
8040
+ .inkra-markdown__code-frame { border: 1px solid currentcolor; }
8041
+ .inkra-markdown__code-header { border-bottom: 1px solid currentcolor; }
8042
+ .inkra-markdown__code-header .inkra-card__action { display: none; }
8043
+ .inkra-markdown__code-surface .inkra-pencil-text { color: currentcolor; }
8044
+ .inkra-markdown__task-checkbox > .inkra-selection-control__input {
8045
+ appearance: auto;
8046
+ height: 18px;
6554
8047
  opacity: 1;
8048
+ position: static;
8049
+ width: 18px;
8050
+ z-index: auto;
6555
8051
  }
8052
+ .inkra-markdown__task-checkbox > .inkra-selection-control__mark { display: none !important; }
8053
+ }
8054
+
8055
+ @media print, (forced-colors: active) {
8056
+ .inkra-markdown__deleted[data-pencil-strike-ready="true"],
8057
+ .inkra-markdown__deleted .inkra-pencil-text { text-decoration: line-through; }
8058
+ .inkra-markdown__deleted > .inkra-markdown__strike { display: none; }
6556
8059
  }
6557
8060
 
6558
8061
  /* required styles */
@@ -7280,6 +8783,14 @@ svg.leaflet-image-layer.leaflet-interactive path {
7280
8783
  .inkra-calendar__accessory { top: 46px; inset-inline: 0; margin: auto; max-width: 100%; }
7281
8784
  }
7282
8785
 
8786
+ /* Opt-in summaries remain operable at every width. The legacy responsive
8787
+ clipping must not hide a disclosure or events the user explicitly revealed. */
8788
+ .inkra-calendar__events-toggle { pointer-events: auto; min-width: 0; max-width: 100%; white-space: normal; }
8789
+ .inkra-calendar__events-toggle .inkra-button__label { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
8790
+ .inkra-calendar-scroll[data-event-summary] .inkra-calendar__events { display: grid; }
8791
+ .inkra-calendar-scroll[data-event-summary] .inkra-calendar__event-card:nth-child(n + 3) { display: block; }
8792
+ .inkra-calendar-scroll[data-event-summary] .inkra-calendar__day-card { padding: 44px 5px 8px; }
8793
+
7283
8794
  .inkra-agenda { display: flex; flex-direction: column; gap: 12px; min-width: 0; height: 100%; color: var(--inkra-ink); }
7284
8795
  .inkra-agenda__heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; flex: none; }
7285
8796
  .inkra-agenda__heading h3 { margin: 0; font-size: 20px; font-weight: 400; }
@@ -7334,23 +8845,47 @@ svg.leaflet-image-layer.leaflet-interactive path {
7334
8845
  .inkra-toast__theme-anchor { display: none; }
7335
8846
 
7336
8847
  .inkra-toast__viewport {
8848
+ --inkra-toast-enter-x: 0px;
8849
+ --inkra-toast-enter-y: 12px;
8850
+ --inkra-toast-edge: var(--inkra-space-5);
8851
+ --inkra-toast-start: max(var(--inkra-toast-edge), env(safe-area-inset-left));
8852
+ --inkra-toast-end: max(var(--inkra-toast-edge), env(safe-area-inset-right));
7337
8853
  display: flex;
7338
8854
  flex-direction: column;
7339
8855
  gap: var(--inkra-space-3);
7340
- inset-block: auto var(--inkra-space-5);
7341
- inset-inline: auto var(--inkra-space-5);
8856
+ inset-block: auto max(var(--inkra-toast-edge), env(safe-area-inset-bottom));
8857
+ inset-inline: auto var(--inkra-toast-end);
7342
8858
  margin: 0;
7343
8859
  max-height: calc(100dvh - var(--inkra-space-10));
7344
8860
  max-width: calc(100vw - var(--inkra-space-10));
7345
8861
  outline: 0;
7346
- padding: 0;
8862
+ padding: 4px;
8863
+ box-sizing: border-box;
8864
+ pointer-events: none;
8865
+ overflow: auto;
7347
8866
  position: fixed;
7348
- width: min(24rem, calc(100vw - var(--inkra-space-10)));
8867
+ width: min(24rem, calc(100vw - 2 * var(--inkra-toast-edge)));
7349
8868
  z-index: calc(var(--inkra-z-toast, 50) + var(--inkra-floating-layer-offset, 0));
7350
8869
  }
7351
8870
 
7352
- .inkra-toast__viewport[data-placement^="top"] { inset-block: var(--inkra-space-5) auto; }
7353
- .inkra-toast__viewport[data-placement$="start"] { inset-inline: var(--inkra-space-5) auto; }
8871
+ .inkra-toast__viewport[data-placement^="top"] { inset-block: max(var(--inkra-toast-edge), env(safe-area-inset-top)) auto; --inkra-toast-enter-y: -12px; }
8872
+ .inkra-toast__viewport[data-placement^="bottom"] { flex-direction: column-reverse; }
8873
+ .inkra-toast__viewport:dir(rtl) { --inkra-toast-start: max(var(--inkra-toast-edge), env(safe-area-inset-right)); --inkra-toast-end: max(var(--inkra-toast-edge), env(safe-area-inset-left)); }
8874
+ .inkra-toast__viewport[data-placement$="start"] { inset-inline: var(--inkra-toast-start) auto; align-items: flex-start; }
8875
+ .inkra-toast__viewport[data-placement$="end"] { align-items: flex-end; }
8876
+ .inkra-toast__viewport:is([data-placement="top-center"], [data-placement="bottom-center"], [data-placement="center"]) {
8877
+ inset-inline: auto;
8878
+ left: 50%;
8879
+ right: auto;
8880
+ transform: translateX(-50%);
8881
+ align-items: center;
8882
+ }
8883
+ .inkra-toast__viewport[data-placement^="center"] { top: 50%; bottom: auto; transform: translateY(-50%); --inkra-toast-enter-y: 0px; }
8884
+ .inkra-toast__viewport[data-placement="center"] { transform: translate(-50%, -50%); --inkra-toast-enter-y: 8px; }
8885
+ .inkra-toast__viewport[data-placement="center-start"] { --inkra-toast-enter-x: -12px; }
8886
+ .inkra-toast__viewport[data-placement="center-end"] { --inkra-toast-enter-x: 12px; }
8887
+ .inkra-toast__viewport:dir(rtl)[data-placement="center-start"] { --inkra-toast-enter-x: 12px; }
8888
+ .inkra-toast__viewport:dir(rtl)[data-placement="center-end"] { --inkra-toast-enter-x: -12px; }
7354
8889
 
7355
8890
  .inkra-toast__root {
7356
8891
  --inkra-toast-translate-x: var(--toast-swipe-movement-x, 0px);
@@ -7359,6 +8894,9 @@ svg.leaflet-image-layer.leaflet-interactive path {
7359
8894
  color: var(--inkra-toast-foreground, var(--inkra-ink));
7360
8895
  max-width: 100%;
7361
8896
  min-width: 0;
8897
+ flex: 0 0 auto;
8898
+ width: 100%;
8899
+ pointer-events: auto;
7362
8900
  position: relative;
7363
8901
  transform: translate(var(--inkra-toast-translate-x), var(--inkra-toast-translate-y));
7364
8902
  transition: opacity var(--inkra-motion-normal) var(--inkra-ease), transform var(--inkra-motion-normal) var(--inkra-ease);
@@ -7368,7 +8906,12 @@ svg.leaflet-image-layer.leaflet-interactive path {
7368
8906
  .inkra-toast__root[data-ending-style],
7369
8907
  .inkra-toast__root[data-limited] { opacity: 0; }
7370
8908
 
7371
- .inkra-toast__root[data-starting-style] { transform: translateY(8px); }
8909
+ .inkra-toast__root[data-limited] { position: absolute; visibility: hidden; pointer-events: none; }
8910
+ .inkra-toast__root:focus-visible { outline: 0; }
8911
+ .inkra-toast__focus.inkra-pencil-surface { --inkra-accent-strong: var(--inkra-focus); display: none; position: absolute; inset: -3px; pointer-events: none; z-index: 2; }
8912
+ .inkra-toast__root:focus-visible > .inkra-toast__focus { display: block; }
8913
+ .inkra-toast__root[data-starting-style],
8914
+ .inkra-toast__root[data-ending-style] { transform: translate(var(--inkra-toast-enter-x), var(--inkra-toast-enter-y)); }
7372
8915
  .inkra-toast__root[data-ending-style][data-swipe-direction="left"] { transform: translateX(-110%); }
7373
8916
  .inkra-toast__root[data-ending-style][data-swipe-direction="right"] { transform: translateX(110%); }
7374
8917
  .inkra-toast__root[data-ending-style][data-swipe-direction="up"] { transform: translateY(-110%); }
@@ -7400,10 +8943,21 @@ svg.leaflet-image-layer.leaflet-interactive path {
7400
8943
  position: absolute;
7401
8944
  z-index: 0;
7402
8945
  }
8946
+ .inkra-toast__wash { inset: 0; position: absolute; z-index: 0; --inkra-selection-pigment: var(--inkra-accent-soft); }
8947
+ .inkra-toast__root[data-tone="neutral"] .inkra-toast__wash { --inkra-selection-pigment: var(--inkra-ink-muted); opacity: .5; }
8948
+
8949
+ .inkra-toast__root[data-variant="compact"] { width: fit-content; border-radius: var(--inkra-radius-md); }
8950
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__surface { border-radius: inherit; overflow: hidden; }
8951
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__surface[data-pencil-fallback="true"] { border: 0; }
8952
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__content { align-items: center; padding: var(--inkra-space-1) var(--inkra-space-3); gap: var(--inkra-space-2); }
8953
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__title { font-size: var(--inkra-text-md); }
8954
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__copy { gap: 2px; flex-basis: 0; }
8955
+ .inkra-toast__root[data-variant="card"] .inkra-toast__copy { flex-basis: 120px; }
7403
8956
 
7404
8957
  .inkra-toast__content {
7405
8958
  align-items: flex-start;
7406
8959
  display: flex;
8960
+ flex-wrap: wrap;
7407
8961
  gap: var(--inkra-space-3);
7408
8962
  justify-content: space-between;
7409
8963
  min-height: var(--inkra-control-md);
@@ -7417,26 +8971,35 @@ svg.leaflet-image-layer.leaflet-interactive path {
7417
8971
  .inkra-toast__title { font-size: var(--inkra-text-lg); line-height: var(--inkra-line-ui); margin: 0; overflow-wrap: anywhere; }
7418
8972
  .inkra-toast__description { color: var(--inkra-toast-foreground, var(--inkra-ink-muted)); font-size: var(--inkra-text-sm); line-height: var(--inkra-line-body); margin: 0; overflow-wrap: anywhere; }
7419
8973
  .inkra-toast__actions { align-items: center; display: flex; flex: none; gap: var(--inkra-space-1); }
8974
+ .inkra-toast__actions { max-width: 100%; flex-wrap: wrap; margin-inline-start: auto; }
8975
+ .inkra-toast__action { max-width: 100%; }
8976
+ .inkra-toast__action .inkra-button__surface { height: auto; min-height: var(--inkra-button-visual-height); max-width: 100%; padding-block: var(--inkra-space-2); }
8977
+ .inkra-toast__action > .inkra-button__focus-ring { height: calc(100% + 2 * var(--inkra-focus-offset)); }
8978
+ .inkra-toast__action .inkra-button__label,
8979
+ .inkra-toast__action .inkra-pencil-text,
8980
+ .inkra-toast__action .inkra-pencil-text__source { min-inline-size: 0; white-space: normal; overflow-wrap: anywhere; }
7420
8981
  .inkra-toast__action,
7421
8982
  .inkra-toast__close { position: relative; z-index: 1; }
7422
8983
 
7423
8984
  @media (max-width: 30rem) {
7424
8985
  .inkra-toast__viewport {
7425
- inset-inline: var(--inkra-space-4);
7426
- max-width: none;
7427
- width: auto;
8986
+ --inkra-toast-edge: var(--inkra-space-3);
8987
+ max-width: calc(100vw - 2 * var(--inkra-toast-edge));
7428
8988
  }
7429
- .inkra-toast__content { align-items: stretch; flex-direction: column; }
8989
+ .inkra-toast__content { flex-wrap: wrap; }
8990
+ .inkra-toast__copy { flex-basis: 120px; }
7430
8991
  .inkra-toast__actions { justify-content: flex-end; }
7431
8992
  }
7432
8993
 
7433
8994
  @media (prefers-reduced-motion: reduce) {
7434
8995
  .inkra-toast__root { transition: none; }
8996
+ .inkra-toast__root[data-starting-style], .inkra-toast__root[data-ending-style] { transform: none; }
7435
8997
  }
7436
8998
 
7437
8999
  @media (forced-colors: active) {
7438
- .inkra-toast__surface { display: none; }
9000
+ .inkra-toast__surface, .inkra-toast__wash, .inkra-toast__focus.inkra-pencil-surface { display: none !important; }
7439
9001
  .inkra-toast__root { border: 1px solid CanvasText; background: Canvas; color: CanvasText; forced-color-adjust: none; }
9002
+ .inkra-toast__root:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: 0; }
7440
9003
  .inkra-toast__description { color: CanvasText; }
7441
9004
  }
7442
9005
 
@@ -7447,6 +9010,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
7447
9010
  color: var(--inkra-ink);
7448
9011
  display: grid;
7449
9012
  gap: var(--inkra-space-2);
9013
+ grid-template-columns: minmax(0, 1fr);
7450
9014
  justify-items: var(--inkra-empty-align, center);
7451
9015
  min-width: 0;
7452
9016
  padding: var(--inkra-empty-padding, var(--inkra-space-6));
@@ -7469,8 +9033,47 @@ svg.leaflet-image-layer.leaflet-interactive path {
7469
9033
  min-height: 2rem;
7470
9034
  min-width: 2rem;
7471
9035
  }
7472
- .inkra-empty[data-size="sm"] .inkra-empty__icon { min-height: 1.5rem; min-width: 1.5rem; }
7473
- .inkra-empty[data-size="lg"] .inkra-empty__icon { min-height: 2.5rem; min-width: 2.5rem; }
9036
+ .inkra-empty[data-size="sm"] .inkra-empty__icon:not([data-illustration]) { min-height: 1.5rem; min-width: 1.5rem; }
9037
+ .inkra-empty[data-size="lg"] .inkra-empty__icon:not([data-illustration]) { min-height: 2.5rem; min-width: 2.5rem; }
9038
+
9039
+ .inkra-empty { --inkra-empty-illustration-size: 160px; }
9040
+ .inkra-empty[data-size="sm"] { --inkra-empty-illustration-size: 112px; }
9041
+ .inkra-empty[data-size="lg"] { --inkra-empty-illustration-size: 192px; }
9042
+ .inkra-empty__icon[data-illustration] {
9043
+ width: var(--inkra-empty-icon-size, var(--inkra-empty-illustration-size, 160px));
9044
+ max-width: 100%;
9045
+ min-width: 0;
9046
+ min-height: 0;
9047
+ }
9048
+ .inkra-empty__illustration {
9049
+ aspect-ratio: 1;
9050
+ display: block;
9051
+ flex: 1;
9052
+ min-width: 0;
9053
+ pointer-events: none;
9054
+ position: relative;
9055
+ }
9056
+ .inkra-empty__illustration-layer,
9057
+ .inkra-empty__illustration-fallback {
9058
+ position: absolute;
9059
+ inset: 0;
9060
+ width: 100%;
9061
+ height: 100%;
9062
+ }
9063
+ .inkra-empty__illustration-layer--accent { color: var(--inkra-accent); }
9064
+ .inkra-empty__illustration-layer > .inkra-pencil-icon {
9065
+ width: 100% !important;
9066
+ height: 100% !important;
9067
+ }
9068
+ .inkra-empty__illustration-layer > [data-pencil-icon-ready] + svg { display: none; }
9069
+ .inkra-empty__illustration-layer > canvas:not([data-pencil-icon-ready]) { visibility: hidden; }
9070
+ @media (forced-colors: active), print {
9071
+ .inkra-empty__illustration-layer > .inkra-pencil-icon { display: none; }
9072
+ .inkra-empty__illustration-layer > [data-pencil-icon-ready] + svg { display: block; }
9073
+ }
9074
+ @media (forced-colors: active) {
9075
+ .inkra-empty__illustration-layer--accent { color: CanvasText; }
9076
+ }
7474
9077
 
7475
9078
  .inkra-empty__title {
7476
9079
  font-size: var(--inkra-text-xl);
@@ -7632,7 +9235,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
7632
9235
  .inkra-alert-dialog__content {
7633
9236
  animation: inkra-alert-dialog-content-in var(--inkra-motion-normal) var(--inkra-ease);
7634
9237
  inset-block-start: 50%;
7635
- inset-inline-start: 50%;
9238
+ left: 50%;
7636
9239
  max-height: min(80vh, calc(100dvh - var(--inkra-space-8)));
7637
9240
  outline: 0;
7638
9241
  position: fixed;
@@ -7643,11 +9246,23 @@ svg.leaflet-image-layer.leaflet-interactive path {
7643
9246
 
7644
9247
  .inkra-alert-dialog__content[data-state="closed"] {
7645
9248
  animation: inkra-alert-dialog-content-out var(--inkra-motion-normal) var(--inkra-ease);
9249
+ pointer-events: none;
7646
9250
  }
7647
9251
 
7648
- .inkra-alert-dialog__content:focus-visible {
7649
- outline: var(--inkra-focus-width) solid var(--inkra-focus);
7650
- outline-offset: var(--inkra-focus-offset);
9252
+ .inkra-alert-dialog__backdrop[data-state],
9253
+ .inkra-alert-dialog__content[data-state] { animation-fill-mode: both; }
9254
+
9255
+ .inkra-alert-dialog__focus-ring {
9256
+ --inkra-accent-strong: var(--inkra-focus);
9257
+ inset: var(--inkra-focus-width);
9258
+ opacity: 0;
9259
+ pointer-events: none;
9260
+ position: absolute !important;
9261
+ z-index: 2;
9262
+ }
9263
+
9264
+ .inkra-alert-dialog__content:focus > .inkra-alert-dialog__focus-ring {
9265
+ opacity: 1;
7651
9266
  }
7652
9267
 
7653
9268
  .inkra-alert-dialog__surface,
@@ -7659,8 +9274,9 @@ svg.leaflet-image-layer.leaflet-interactive path {
7659
9274
  width: 100%;
7660
9275
  }
7661
9276
 
7662
- .inkra-alert-dialog__surface { color: var(--inkra-ink); }
7663
- .inkra-alert-dialog__layout { overflow: hidden; }
9277
+ .inkra-alert-dialog__surface { color: var(--inkra-ink); overflow: hidden; }
9278
+ .inkra-alert-dialog__layout { overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
9279
+ .inkra-alert-dialog__layout:has(> .inkra-alert-dialog__body) { overflow: hidden; }
7664
9280
 
7665
9281
  .inkra-alert-dialog__header,
7666
9282
  .inkra-alert-dialog__body,
@@ -7714,7 +9330,6 @@ svg.leaflet-image-layer.leaflet-interactive path {
7714
9330
 
7715
9331
  @media (max-width: 30rem) {
7716
9332
  .inkra-alert-dialog__content {
7717
- max-height: calc(100dvh - var(--inkra-space-4));
7718
9333
  width: calc(100vw - var(--inkra-space-4));
7719
9334
  }
7720
9335
  .inkra-alert-dialog__header,
@@ -7722,14 +9337,25 @@ svg.leaflet-image-layer.leaflet-interactive path {
7722
9337
  .inkra-alert-dialog__footer { padding: var(--inkra-space-4); }
7723
9338
  }
7724
9339
 
9340
+ @media (max-height: 30rem) {
9341
+ .inkra-alert-dialog__content { max-height: calc(100dvh - var(--inkra-space-4)); }
9342
+ }
9343
+
7725
9344
  @media (prefers-reduced-motion: reduce) {
7726
9345
  .inkra-alert-dialog__backdrop,
7727
- .inkra-alert-dialog__content { animation: none; }
9346
+ .inkra-alert-dialog__content { animation: none !important; }
9347
+ }
9348
+
9349
+ @media print {
9350
+ .inkra-alert-dialog__backdrop,
9351
+ .inkra-alert-dialog__content { animation: none !important; }
7728
9352
  }
7729
9353
 
7730
9354
  @media (forced-colors: active) {
7731
9355
  .inkra-alert-dialog__backdrop { background: CanvasText; opacity: .25; }
7732
9356
  .inkra-alert-dialog__surface { background: Canvas; border: 1px solid CanvasText; }
9357
+ .inkra-pencil-surface.inkra-alert-dialog__focus-ring { display: none !important; }
9358
+ .inkra-alert-dialog__content:focus { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
7733
9359
  .inkra-alert-dialog__header[data-divided] { border-bottom: 1px solid CanvasText; }
7734
9360
  .inkra-alert-dialog__footer[data-divided] { border-top: 1px solid CanvasText; }
7735
9361
  }
@@ -7745,13 +9371,26 @@ svg.leaflet-image-layer.leaflet-interactive path {
7745
9371
 
7746
9372
  .inkra-drawer__content {
7747
9373
  box-sizing: border-box;
9374
+ container-name: inkra-drawer;
9375
+ container-type: inline-size;
7748
9376
  max-height: 100dvh;
7749
9377
  max-width: 100vw;
7750
9378
  outline: 0;
7751
9379
  position: fixed;
7752
9380
  z-index: calc(var(--inkra-z-modal, 30) + var(--inkra-floating-layer-offset, 0) + 1);
7753
9381
  }
7754
- .inkra-drawer__content:focus-visible { outline: var(--inkra-focus-width) solid var(--inkra-focus); outline-offset: calc(-1 * var(--inkra-focus-width)); }
9382
+ .inkra-drawer__content:focus-visible { outline: 0; }
9383
+ .inkra-drawer__focus-ring {
9384
+ --inkra-accent-strong: var(--inkra-focus);
9385
+
9386
+ display: block !important;
9387
+ inset: var(--inkra-focus-width);
9388
+ opacity: 0;
9389
+ pointer-events: none;
9390
+ position: absolute !important;
9391
+ z-index: 3;
9392
+ }
9393
+ .inkra-drawer__content:focus-visible > .inkra-drawer__focus-ring { opacity: 1; }
7755
9394
  .inkra-drawer__content[data-direction="left"],
7756
9395
  .inkra-drawer__content[data-direction="right"] { block-size: 100dvh; inset-block: 0; inline-size: min(var(--inkra-drawer-size), 100vw); }
7757
9396
  .inkra-drawer__content[data-direction="left"] { animation: inkra-drawer-left-in var(--inkra-motion-slow) var(--inkra-ease); left: 0; }
@@ -7765,6 +9404,10 @@ svg.leaflet-image-layer.leaflet-interactive path {
7765
9404
  .inkra-drawer__content[data-state="closed"][data-direction="top"] { animation: inkra-drawer-top-out var(--inkra-motion-slow) var(--inkra-ease); }
7766
9405
  .inkra-drawer__content[data-state="closed"][data-direction="bottom"] { animation: inkra-drawer-bottom-out var(--inkra-motion-slow) var(--inkra-ease); }
7767
9406
 
9407
+ .inkra-drawer__backdrop[data-state],
9408
+ .inkra-drawer__content[data-state][data-direction] { animation-fill-mode: both; }
9409
+ .inkra-drawer__content[data-state="closed"] { pointer-events: none; }
9410
+
7768
9411
  .inkra-drawer__surface,
7769
9412
  .inkra-drawer__layout { block-size: 100%; display: flex; flex-direction: column; min-height: 0; inline-size: 100%; }
7770
9413
  .inkra-drawer__surface { color: var(--inkra-ink); position: relative; }
@@ -7776,13 +9419,23 @@ svg.leaflet-image-layer.leaflet-interactive path {
7776
9419
  .inkra-drawer__content[data-direction="bottom"] .inkra-drawer__edge { block-size: 8px; inline-size: 100%; inset-block-start: -4px; inset-inline: 0; }
7777
9420
 
7778
9421
  .inkra-drawer__header,
7779
- .inkra-drawer__footer { display: flex; flex: none; gap: var(--inkra-space-3); min-width: 0; padding: var(--inkra-space-5); position: relative; }
7780
- .inkra-drawer__header { align-items: center; }
7781
- .inkra-drawer__heading { display: grid; flex: 1; gap: var(--inkra-space-2); min-width: 0; overflow-wrap: anywhere; }
7782
- .inkra-drawer__header-actions { align-items: center; display: flex; flex: none; gap: var(--inkra-space-2); }
9422
+ .inkra-drawer__body,
9423
+ .inkra-drawer__footer { box-sizing: border-box; gap: var(--inkra-space-3); min-width: 0; padding: var(--inkra-space-5); position: relative; }
9424
+ .inkra-drawer__header,
9425
+ .inkra-drawer__footer { flex: 0 1 auto; min-height: 0; }
9426
+ .inkra-drawer__header {
9427
+ align-items: center;
9428
+ display: flex;
9429
+ max-block-size: 50%;
9430
+ overflow: auto;
9431
+ overscroll-behavior: contain;
9432
+ scrollbar-gutter: stable;
9433
+ }
9434
+ .inkra-drawer__heading { display: grid; flex: 1 1 auto; gap: var(--inkra-space-2); min-width: 0; overflow-wrap: anywhere; }
9435
+ .inkra-drawer__header-actions { align-items: center; display: flex; flex: none; flex-wrap: wrap; gap: var(--inkra-space-2); justify-content: flex-end; max-inline-size: 100%; min-width: 0; overflow: auto; overscroll-behavior: contain; }
7783
9436
  .inkra-drawer__close-button { flex: none; }
7784
- .inkra-drawer__body { flex: 1 1 auto; min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; padding: var(--inkra-space-5); scrollbar-gutter: stable; }
7785
- .inkra-drawer__footer { align-items: center; flex-wrap: wrap; justify-content: flex-end; }
9437
+ .inkra-drawer__body { flex: 1 1 0; min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; padding: var(--inkra-space-5); scrollbar-gutter: stable; }
9438
+ .inkra-drawer__footer { align-items: center; display: flex; flex-wrap: wrap; justify-content: flex-end; max-block-size: 40%; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: auto; }
7786
9439
  .inkra-drawer__footer[data-align="start"] { justify-content: flex-start; }
7787
9440
  .inkra-drawer__footer[data-align="center"] { justify-content: center; }
7788
9441
  .inkra-drawer__footer > .inkra-button { max-width: 100%; }
@@ -7793,6 +9446,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
7793
9446
  .inkra-drawer__header > .inkra-drawer__divider { bottom: -4px; }
7794
9447
  .inkra-drawer__footer > .inkra-drawer__divider { top: -4px; }
7795
9448
 
9449
+ @container inkra-drawer (max-width: 24rem) {
9450
+ .inkra-drawer__header[data-custom-action] { align-items: stretch; flex-direction: column; }
9451
+ .inkra-drawer__header[data-custom-action] .inkra-drawer__header-actions { align-self: stretch; order: -1; }
9452
+ }
9453
+
7796
9454
  @keyframes inkra-drawer-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
7797
9455
  @keyframes inkra-drawer-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
7798
9456
  @keyframes inkra-drawer-left-in { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@@ -7814,7 +9472,12 @@ svg.leaflet-image-layer.leaflet-interactive path {
7814
9472
 
7815
9473
  @media (prefers-reduced-motion: reduce) {
7816
9474
  .inkra-drawer__backdrop,
7817
- .inkra-drawer__content { animation: none; }
9475
+ .inkra-drawer__content { animation: none !important; }
9476
+ }
9477
+
9478
+ @media print {
9479
+ .inkra-drawer__backdrop,
9480
+ .inkra-drawer__content { animation: none !important; }
7818
9481
  }
7819
9482
 
7820
9483
  @media (forced-colors: active) {
@@ -7826,26 +9489,51 @@ svg.leaflet-image-layer.leaflet-interactive path {
7826
9489
  .inkra-drawer__content[data-direction="bottom"] { border-top: 1px solid CanvasText; }
7827
9490
  .inkra-drawer__header[data-divided] { border-bottom: 1px solid CanvasText; }
7828
9491
  .inkra-drawer__footer[data-divided] { border-top: 1px solid CanvasText; }
7829
- .inkra-drawer__edge { display: none; }
9492
+ .inkra-drawer__edge,
9493
+ .inkra-drawer__focus-ring { display: none !important; }
9494
+ .inkra-drawer__content:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
7830
9495
  }
7831
9496
 
7832
9497
  .inkra-date-picker {
9498
+ --inkra-date-picker-control-height: var(--inkra-control-md);
9499
+
7833
9500
  align-items: center;
7834
9501
  display: inline-flex;
7835
- gap: var(--inkra-space-1);
7836
9502
  max-width: 100%;
9503
+ min-height: var(--inkra-touch-target);
7837
9504
  min-width: 0;
7838
9505
  }
7839
9506
 
9507
+ .inkra-date-picker[data-size="sm"] {
9508
+ --inkra-date-picker-control-height: var(--inkra-control-sm);
9509
+ }
9510
+
9511
+ .inkra-date-picker[data-size="lg"] {
9512
+ --inkra-date-picker-control-height: var(--inkra-control-lg);
9513
+ }
9514
+
7840
9515
  .inkra-date-picker[data-full-width] {
7841
9516
  display: flex;
7842
9517
  width: 100%;
7843
9518
  }
7844
9519
 
7845
- .inkra-date-picker__trigger {
9520
+ .inkra-button-group.inkra-date-picker__control {
9521
+ align-items: center;
9522
+ block-size: var(--inkra-date-picker-control-height);
9523
+ flex: 1 1 auto;
9524
+ min-width: 0;
9525
+ overflow: visible;
9526
+ }
9527
+
9528
+ .inkra-date-picker__control > .inkra-date-picker__trigger {
9529
+ flex: 1 1 auto;
7846
9530
  min-width: 0;
7847
9531
  }
7848
9532
 
9533
+ .inkra-date-picker__control > .inkra-date-picker__clear {
9534
+ flex: 0 0 auto;
9535
+ }
9536
+
7849
9537
  .inkra-date-picker__trigger .inkra-button__content {
7850
9538
  justify-content: flex-start;
7851
9539
  min-width: 0;
@@ -7868,6 +9556,12 @@ svg.leaflet-image-layer.leaflet-interactive path {
7868
9556
  visibility: hidden;
7869
9557
  }
7870
9558
 
9559
+ .inkra-date-picker__control .inkra-button-group__divider[data-orientation="vertical"] {
9560
+ block-size: var(--inkra-date-picker-control-height);
9561
+ inset-block-start: 50%;
9562
+ transform: translateY(-50%);
9563
+ }
9564
+
7871
9565
  .inkra-date-picker__form-field,
7872
9566
  .inkra-date-picker__accessible-value {
7873
9567
  block-size: 1px;
@@ -7909,18 +9603,35 @@ svg.leaflet-image-layer.leaflet-interactive path {
7909
9603
  }
7910
9604
 
7911
9605
  .inkra-time-picker {
9606
+ --inkra-time-picker-control-height: var(--inkra-control-md);
9607
+
7912
9608
  display: flex;
7913
9609
  align-items: center;
7914
9610
  gap: var(--inkra-space-2);
7915
9611
  position: relative;
9612
+ min-height: var(--inkra-touch-target);
7916
9613
  min-width: 0;
7917
9614
  width: fit-content;
7918
9615
  max-width: 100%;
7919
9616
  }
9617
+ .inkra-time-picker[data-size="sm"] { --inkra-time-picker-control-height: var(--inkra-control-sm); }
9618
+ .inkra-time-picker[data-size="lg"] { --inkra-time-picker-control-height: var(--inkra-control-lg); }
7920
9619
  .inkra-time-picker[data-full-width="true"] { width: 100%; }
7921
- .inkra-time-picker__trigger { flex: 1; min-width: 0; }
7922
- .inkra-time-picker__clear { flex: none; }
9620
+ .inkra-button-group.inkra-time-picker__control {
9621
+ align-items: center;
9622
+ block-size: var(--inkra-time-picker-control-height);
9623
+ flex: 1 1 auto;
9624
+ min-width: 0;
9625
+ overflow: visible;
9626
+ }
9627
+ .inkra-time-picker__control > .inkra-time-picker__trigger { flex: 1 1 auto; min-width: 0; }
9628
+ .inkra-time-picker__control > .inkra-time-picker__clear { flex: 0 0 auto; }
7923
9629
  .inkra-time-picker__clear[aria-hidden="true"] { visibility: hidden; }
9630
+ .inkra-time-picker__control .inkra-button-group__divider[data-orientation="vertical"] {
9631
+ block-size: var(--inkra-time-picker-control-height);
9632
+ inset-block-start: 50%;
9633
+ transform: translateY(-50%);
9634
+ }
7924
9635
  .inkra-time-picker[data-invalid="true"] { color: var(--inkra-danger); }
7925
9636
  .inkra-time-picker__native,
7926
9637
  .inkra-time-picker__accessible-value {
@@ -7961,11 +9672,14 @@ svg.leaflet-image-layer.leaflet-interactive path {
7961
9672
  .inkra-pagination { min-inline-size: 0; max-inline-size: 100%; color: var(--inkra-ink); }
7962
9673
  .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; }
7963
9674
  .inkra-pagination__list > li { display: flex; flex: 0 0 auto; }
7964
- .inkra-pagination__page.inkra-button { min-inline-size: var(--inkra-touch-target); }
7965
- .inkra-pagination__page .inkra-button__surface { padding-inline: var(--inkra-space-2); }
9675
+ .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; }
9676
+ .inkra-pagination__page-item { max-inline-size: max(var(--inkra-touch-target), 50%); }
9677
+ .inkra-pagination__page.inkra-button { max-inline-size: 100%; min-inline-size: var(--inkra-touch-target); scroll-margin-inline: 8px; }
9678
+ .inkra-pagination__page .inkra-button__surface { height: auto; min-height: var(--inkra-button-visual-height); padding-block: var(--inkra-space-1); padding-inline: var(--inkra-space-2); }
7966
9679
  .inkra-pagination__page .inkra-button__surface { isolation: isolate; }
9680
+ .inkra-pagination__page > .inkra-button__focus-ring { height: auto; inset-block: 0; top: 0; transform: none; }
7967
9681
  .inkra-pagination__page .inkra-button__content,
7968
- .inkra-pagination__page .inkra-button__label { position: static; }
9682
+ .inkra-pagination__page .inkra-button__label { max-inline-size: 100%; min-inline-size: 0; overflow-wrap: anywhere; position: static; white-space: normal; }
7969
9683
  .inkra-pagination__selection { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
7970
9684
  .inkra-pagination__page[aria-current="page"] { color: var(--inkra-selection-foreground); }
7971
9685
  .inkra-pagination__ellipsis { min-inline-size: 24px; min-block-size: var(--inkra-touch-target); align-items: center; justify-content: center; }
@@ -7973,71 +9687,102 @@ svg.leaflet-image-layer.leaflet-interactive path {
7973
9687
  .inkra-pagination__sr-only { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
7974
9688
  @media (forced-colors: active) {
7975
9689
  .inkra-pagination__page[aria-current="page"] { color: HighlightText; background: Highlight; outline: 1px solid Highlight; }
7976
- .inkra-pagination__selection { display: none; }
9690
+ .inkra-pencil-surface.inkra-pagination__selection { display: none !important; }
7977
9691
  }
7978
9692
  @media (prefers-reduced-motion: reduce) { .inkra-pagination * { transition: none !important; animation: none !important; } }
7979
9693
 
7980
9694
  .inkra-command { inline-size: 100%; min-inline-size: 0; color: var(--inkra-ink); font-family: var(--inkra-font-body); font-size: var(--inkra-text-md); line-height: var(--inkra-line-ui); }
7981
9695
  .inkra-command__paper { min-inline-size: 0; }
7982
9696
  .inkra-command__input-wrap { position: relative; padding: var(--inkra-space-2) var(--inkra-space-3); }
7983
- .inkra-command__input { display: block; box-sizing: border-box; inline-size: 100%; min-inline-size: 0; min-block-size: var(--inkra-touch-target); border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; padding: var(--inkra-space-2); }
9697
+ .inkra-command__input-frame { align-items: center; box-sizing: border-box; display: flex; flex: 1 1 auto; inline-size: 100%; min-block-size: var(--inkra-touch-target); min-inline-size: 0; padding-inline: var(--inkra-space-3); position: relative; }
9698
+ .inkra-command__input-icon { align-items: center; color: var(--inkra-ink-muted); display: inline-flex; flex: 0 0 22px; block-size: 22px; inline-size: 22px; }
9699
+ .inkra-command__input { --inkra-editable-placeholder-color: var(--inkra-ink-subtle); --inkra-editable-text-color: var(--inkra-ink); display: block; box-sizing: border-box; flex: 1 1 auto; inline-size: 0; min-inline-size: 0; min-block-size: var(--inkra-touch-target); border: 0; border-radius: 0; background: transparent; caret-color: var(--inkra-ink); color: inherit; font: inherit; padding: 0 var(--inkra-space-2); outline: 0; position: relative; z-index: 2; }
7984
9700
  .inkra-command__input::placeholder { color: var(--inkra-ink-subtle); opacity: 1; }
7985
- .inkra-command__input:focus-visible { outline: var(--inkra-focus-width) solid var(--inkra-focus); outline-offset: 0; border-radius: var(--inkra-radius-md); }
9701
+ .inkra-command__input-frame > .inkra-editable-text { display: none; opacity: 0; pointer-events: none; position: absolute; z-index: 3; }
9702
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-editable-text { display: block; opacity: 1; }
9703
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input { color: transparent !important; }
9704
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input::placeholder { color: transparent !important; }
9705
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input::selection { background: var(--inkra-selection); color: transparent; }
7986
9706
  .inkra-command__input-line { position: absolute; inset-inline: 12px; inset-block-end: 0; }
7987
- .inkra-command__list { box-sizing: border-box; max-block-size: min(360px, 50vh); overflow: auto; overscroll-behavior: contain; padding: var(--inkra-space-2); scroll-padding-block: var(--inkra-space-2); }
9707
+ .inkra-command__input-focus-line { color: var(--inkra-focus); opacity: 0; pointer-events: none; position: absolute; inset-inline: 12px; inset-block-end: 0; z-index: 4; }
9708
+ .inkra-command__input-wrap > .inkra-pencil-line[data-orientation="horizontal"] { width: calc(100% - 24px); }
9709
+ .inkra-command__input-wrap:focus-within .inkra-command__input-focus-line { opacity: 1; }
9710
+ .inkra-command__list { box-sizing: border-box; max-block-size: min(360px, 50dvh); overflow: auto; overscroll-behavior: contain; padding: var(--inkra-space-2); scroll-padding-block: var(--inkra-space-2); }
7988
9711
  .inkra-command__group[hidden] { display: none; }
7989
9712
  .inkra-command__group [cmdk-group-heading] { padding: var(--inkra-space-2) var(--inkra-space-3); color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); overflow-wrap: anywhere; }
7990
- .inkra-command__item { position: relative; isolation: isolate; box-sizing: border-box; display: flex; align-items: center; gap: var(--inkra-space-2); min-block-size: var(--inkra-touch-target); padding: var(--inkra-space-2) var(--inkra-space-3); cursor: pointer; border-radius: var(--inkra-radius-md); overflow-wrap: anywhere; }
9713
+ .inkra-command__item { position: relative; isolation: isolate; box-sizing: border-box; display: flex; align-items: center; gap: var(--inkra-space-2); min-block-size: var(--inkra-touch-target); min-inline-size: 0; padding: var(--inkra-space-2) var(--inkra-space-3); cursor: pointer; border-radius: var(--inkra-radius-md); overflow-wrap: anywhere; }
7991
9714
  .inkra-command__highlight { position: absolute; inset: 0; z-index: -1; opacity: 0; pointer-events: none; }
9715
+ .inkra-command__item-focus { --inkra-accent-strong: var(--inkra-focus); inset: var(--inkra-focus-width); opacity: 0; pointer-events: none; position: absolute !important; z-index: 2; }
7992
9716
  .inkra-command__item[data-selected="true"] { color: var(--inkra-selection-foreground); }
7993
9717
  .inkra-command__item[data-selected="true"] > .inkra-command__highlight { opacity: 1; }
7994
9718
  .inkra-command__item[data-disabled="true"] { color: var(--inkra-ink-subtle); cursor: not-allowed; }
7995
- .inkra-command__item:focus-visible { outline: var(--inkra-focus-width) solid var(--inkra-focus); outline-offset: -2px; }
9719
+ .inkra-command__item:focus-visible { outline: 0; }
9720
+ .inkra-command__item:focus-visible > .inkra-command__item-focus { opacity: 1; }
7996
9721
  .inkra-command__icon { flex: 0 0 24px; inline-size: 24px; display: inline-flex; align-items: center; justify-content: center; }
7997
- .inkra-command__label { min-inline-size: 0; flex: 1; }
7998
- .inkra-command__shortcut { flex: 0 1 auto; margin-inline-start: auto; font: inherit; font-size: var(--inkra-text-sm); color: inherit; text-align: end; overflow-wrap: anywhere; }
9722
+ .inkra-command__label { flex: 1 1 auto; min-inline-size: 0; overflow-wrap: anywhere; }
9723
+ .inkra-command__shortcut { flex: 0 1 12rem; min-inline-size: 0; max-inline-size: 45%; margin-inline-start: auto; font: inherit; font-size: var(--inkra-text-sm); color: inherit; text-align: end; overflow-wrap: anywhere; }
7999
9724
  .inkra-command__empty { padding: var(--inkra-space-6) var(--inkra-space-3); text-align: center; color: var(--inkra-ink-muted); overflow-wrap: anywhere; }
8000
9725
  .inkra-command__separator { padding-block: var(--inkra-space-1); }
8001
9726
  @media (forced-colors: active) {
8002
9727
  .inkra-command__paper { border: 1px solid CanvasText; }
8003
- .inkra-command__input { border-block-end: 1px solid CanvasText; }
8004
- .inkra-command__item[data-selected="true"] { background: Highlight; color: HighlightText; outline: 1px solid Highlight; }
9728
+ .inkra-command__input-focus-line, .inkra-command__item-focus { display: none !important; }
9729
+ .inkra-command__input-frame > .inkra-editable-text { display: none !important; }
9730
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input { color: FieldText !important; caret-color: FieldText; }
9731
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input::placeholder { color: GrayText !important; opacity: 1; }
9732
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input::selection { background: Highlight; color: HighlightText; }
9733
+ .inkra-command__input:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
9734
+ .inkra-command__item[data-selected="true"] { background: Highlight; color: HighlightText; outline: 1px solid Highlight; forced-color-adjust: none; }
9735
+ .inkra-command__item:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
8005
9736
  .inkra-command__item[data-disabled="true"] { color: GrayText; }
8006
9737
  .inkra-command__highlight { display: none; }
8007
9738
  .inkra-command__separator { border-block-end: 1px solid CanvasText; }
8008
9739
  }
8009
9740
  @media (prefers-reduced-motion: reduce) { .inkra-command * { animation: none !important; transition: none !important; } }
9741
+ @media print {
9742
+ .inkra-command__input-frame > .inkra-editable-text { display: none !important; }
9743
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input { color: var(--inkra-ink) !important; }
9744
+ .inkra-command__input-wrap[data-pencil-editable-ready="true"] .inkra-command__input::placeholder { color: var(--inkra-ink-subtle) !important; opacity: 1; }
9745
+ }
8010
9746
 
8011
- .inkra-data-table { display: grid; gap: var(--inkra-space-3); min-width: 0; width: 100%; color: var(--inkra-ink); }
9747
+ .inkra-data-table { container-type: inline-size; display: grid; gap: var(--inkra-space-3); min-width: 0; width: 100%; color: var(--inkra-ink); }
8012
9748
  .inkra-data-table__toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: var(--inkra-space-3); }
8013
9749
  .inkra-data-table__filter { display: grid; gap: var(--inkra-space-1); width: min(100%, 320px); font-size: var(--inkra-text-sm); color: var(--inkra-ink-muted); }
8014
9750
  .inkra-data-table__container { width: 100%; }
8015
- .inkra-data-table__sort { appearance: none; border: 0; background: transparent; color: inherit; font: inherit; display: inline-flex; align-items: center; gap: var(--inkra-space-2); min-height: var(--inkra-touch-target); max-width: 100%; padding: 0; text-align: start; cursor: pointer; }
8016
- .inkra-data-table__sort > span:first-child { min-width: 0; overflow-wrap: anywhere; }
8017
- .inkra-data-table__sort canvas { flex: none; opacity: .55; }
8018
- .inkra-data-table__sort[data-sorted] canvas { opacity: 1; color: var(--inkra-accent-strong); }
8019
- .inkra-data-table__sort:focus-visible { outline: 2px solid var(--inkra-focus); outline-offset: 2px; }
9751
+ .inkra-data-table__sort { appearance: none; border: 0; background: transparent; color: inherit; font: inherit; display: inline-flex; align-items: center; gap: var(--inkra-space-2); min-height: var(--inkra-touch-target); min-width: 0; max-width: 100%; padding: 0 var(--inkra-space-1); position: relative; text-align: start; cursor: pointer; }
9752
+ .inkra-data-table__sort-label { min-width: 0; overflow-wrap: anywhere; position: relative; z-index: 1; }
9753
+ .inkra-data-table__sort-icon { flex: none; opacity: .55; position: relative; z-index: 1; }
9754
+ .inkra-data-table__sort[data-sorted] .inkra-data-table__sort-icon { opacity: 1; color: var(--inkra-accent-strong); }
9755
+ .inkra-data-table__sort:focus-visible { outline: 0; }
9756
+ .inkra-data-table__sort-focus { --inkra-accent-strong: var(--inkra-focus); display: block !important; inset: 1px; opacity: 0; pointer-events: none; position: absolute !important; z-index: 2; }
9757
+ .inkra-data-table__sort:focus-visible > .inkra-data-table__sort-focus { opacity: 1; }
8020
9758
  .inkra-data-table__select-cell { width: 52px; padding-inline: var(--inkra-space-2) !important; text-align: center !important; }
8021
9759
  .inkra-data-table__selection.inkra-selection-control { display: inline-grid; grid-template-columns: var(--inkra-touch-target); gap: 0; width: var(--inkra-touch-target); min-height: var(--inkra-touch-target); vertical-align: middle; }
8022
9760
  .inkra-data-table__selection .inkra-selection-control__copy { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
8023
9761
  .inkra-data-table__state { min-height: 72px; display: grid; place-items: center; color: var(--inkra-ink-muted); text-align: center; }
8024
- .inkra-data-table__pagination { display: flex; align-items: center; justify-content: flex-end; gap: var(--inkra-space-2); min-width: 0; }
8025
- .inkra-data-table__pagination > span { min-width: 8rem; text-align: center; color: var(--inkra-ink-muted); }
9762
+ .inkra-data-table__pagination { display: flex; align-items: center; justify-content: flex-end; gap: var(--inkra-space-2); min-width: 0; width: 100%; }
9763
+ .inkra-data-table__pagination > .inkra-button { flex: none; }
9764
+ .inkra-data-table__pagination > span { min-width: 8rem; max-width: 100%; text-align: center; color: var(--inkra-ink-muted); overflow-wrap: anywhere; }
9765
+ .inkra-data-table__page-arrow:dir(rtl) { transform: scaleX(-1); }
8026
9766
  .inkra-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
8027
- @media (max-width: 30rem) {
8028
- .inkra-data-table__pagination { justify-content: space-between; }
9767
+ @container (max-width: 30rem) {
9768
+ .inkra-data-table__pagination { display: grid; grid-template-columns: var(--inkra-touch-target) minmax(0, 1fr) var(--inkra-touch-target); justify-content: stretch; }
8029
9769
  .inkra-data-table__pagination > span { min-width: 0; }
8030
9770
  }
8031
9771
  @media (forced-colors: active) {
8032
- .inkra-data-table__sort:focus-visible { outline: 2px solid Highlight; }
9772
+ .inkra-data-table__sort-focus { display: none !important; }
9773
+ .inkra-data-table__sort:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
9774
+ .inkra-data-table__sort[data-sorted] .inkra-data-table__sort-icon { color: Highlight; }
8033
9775
  }
9776
+ @media (prefers-reduced-motion: reduce) { .inkra-data-table * { animation: none !important; transition: none !important; } }
9777
+ @media print { .inkra-data-table__sort-focus { display: none !important; } }
8034
9778
 
8035
9779
  .inkra-tree { display: grid; gap: 2px; min-width: 0; color: var(--inkra-ink); outline: none; }
8036
9780
  .inkra-tree__item { position: relative; min-width: 0; outline: none; }
8037
- .inkra-tree__item-content { position: relative; isolation: isolate; display: grid; grid-template-columns: var(--inkra-touch-target) minmax(0, auto) minmax(0, 1fr); align-items: center; min-height: var(--inkra-touch-target); padding-inline-start: calc((var(--inkra-tree-level, 1) - 1) * 24px); padding-inline-end: var(--inkra-space-2); border-radius: var(--inkra-radius-md); overflow: visible; }
9781
+ .inkra-tree__item-content { --inkra-tree-reserved-inline: calc(var(--inkra-touch-target) + var(--inkra-space-2) + 5rem); position: relative; isolation: isolate; display: grid; grid-template-columns: var(--inkra-touch-target) minmax(0, auto) minmax(0, 1fr); align-items: start; box-sizing: border-box; inline-size: 100%; min-height: var(--inkra-touch-target); padding-inline-start: min(calc((var(--inkra-tree-level, 1) - 1) * var(--inkra-tree-indent, 24px)), max(0px, calc(100% - var(--inkra-tree-reserved-inline)))); padding-inline-end: var(--inkra-space-2); border-radius: var(--inkra-radius-md); overflow: visible; }
9782
+ .inkra-tree__item-content[data-has-icon] { --inkra-tree-reserved-inline: calc(var(--inkra-touch-target) + 28px + var(--inkra-space-2) + 5rem); }
8038
9783
  .inkra-tree__item-content:not([data-has-icon]) { grid-template-columns: var(--inkra-touch-target) minmax(0, 1fr); }
8039
9784
  .inkra-tree__selection, .inkra-tree__focus { position: absolute; inset: 2px; z-index: -1; pointer-events: none; }
8040
- .inkra-tree__focus { inset: -1px; z-index: 2; }
9785
+ .inkra-tree__focus { inset: 1px; z-index: 2; }
8041
9786
  .inkra-tree__disclosure, .inkra-tree__disclosure-spacer { width: var(--inkra-touch-target); height: var(--inkra-touch-target); }
8042
9787
  .inkra-tree__disclosure { position: relative; appearance: none; display: inline-grid; place-items: center; border: 0; padding: 0; background: transparent; color: var(--inkra-ink); cursor: pointer; }
8043
9788
  .inkra-tree__disclosure:focus { outline: none; }
@@ -8048,42 +9793,83 @@ svg.leaflet-image-layer.leaflet-interactive path {
8048
9793
  .inkra-tree__item-content[data-expanded] .inkra-tree__chevron { transform: rotate(0deg); }
8049
9794
  .inkra-tree:dir(rtl) .inkra-tree__chevron { transform: rotate(90deg); }
8050
9795
  .inkra-tree:dir(rtl) .inkra-tree__item-content[data-expanded] .inkra-tree__chevron { transform: rotate(0deg); }
8051
- .inkra-tree__icon { display: inline-grid; place-items: center; width: 28px; height: 28px; color: var(--inkra-accent-strong); }
9796
+ .inkra-tree__icon { display: inline-grid; place-items: center; width: 28px; height: 28px; margin-block-start: var(--inkra-space-1); color: var(--inkra-accent-strong); }
8052
9797
  .inkra-tree__icon > * { max-width: 100%; max-height: 100%; }
8053
9798
  .inkra-tree__copy { display: grid; gap: 2px; min-width: 0; padding-block: var(--inkra-space-2); overflow-wrap: anywhere; }
9799
+ .inkra-tree[data-size="sm"] .inkra-tree__copy { padding-block: var(--inkra-space-1); }
9800
+ .inkra-tree[data-size="lg"] .inkra-tree__copy { padding-block: var(--inkra-space-3); }
9801
+ .inkra-tree[data-size="lg"] .inkra-tree__item-content { min-height: 52px; }
8054
9802
  .inkra-tree__title { min-width: 0; font-size: var(--inkra-text-md); line-height: var(--inkra-line-ui); }
8055
9803
  .inkra-tree__description { min-width: 0; color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); line-height: var(--inkra-line-body); }
8056
9804
  .inkra-tree__item[data-disabled] .inkra-tree__item-content { opacity: .55; }
8057
9805
  .inkra-tree__empty { min-height: 72px; display: grid; place-items: center; padding: var(--inkra-space-4); color: var(--inkra-ink-muted); text-align: center; }
9806
+
9807
+ .inkra-tree__item-content { animation: inkra-tree-row-in var(--inkra-motion-normal) var(--inkra-ease); }
9808
+ .inkra-tree__selection { animation: inkra-tree-selection-in var(--inkra-motion-fast) var(--inkra-ease); }
9809
+
9810
+ @keyframes inkra-tree-row-in {
9811
+ from { opacity: 0; transform: translateY(calc(-1 * var(--inkra-space-1))); }
9812
+ to { opacity: 1; transform: translateY(0); }
9813
+ }
9814
+
9815
+ @keyframes inkra-tree-selection-in {
9816
+ from { opacity: 0; }
9817
+ to { opacity: 1; }
9818
+ }
9819
+
8058
9820
  @media (prefers-reduced-motion: reduce) {
8059
9821
  .inkra-tree__chevron { transition: none; }
9822
+ .inkra-tree__item-content,
9823
+ .inkra-tree__selection { animation: none !important; }
9824
+ }
9825
+
9826
+ @media print {
9827
+ .inkra-tree__item-content,
9828
+ .inkra-tree__selection { animation: none !important; }
8060
9829
  }
8061
9830
  @media (forced-colors: active) {
9831
+ .inkra-pencil-surface.inkra-tree__selection,
9832
+ .inkra-pencil-surface.inkra-tree__focus,
9833
+ .inkra-pencil-surface.inkra-tree__disclosure-focus { display: none !important; }
8062
9834
  .inkra-tree__item[data-selected] .inkra-tree__item-content { outline: 1px solid Highlight; color: HighlightText; background: Highlight; forced-color-adjust: none; }
8063
9835
  .inkra-tree__item[data-focus-visible] .inkra-tree__item-content { outline: 2px solid Highlight; outline-offset: -2px; }
8064
9836
  .inkra-tree__disclosure[data-focus-visible] { outline: 2px solid Highlight; outline-offset: -2px; }
8065
9837
  }
8066
9838
 
8067
- .inkra-upload { display: grid; gap: var(--inkra-space-4); min-width: 0; color: var(--inkra-ink); }
9839
+ .inkra-upload { container-type: inline-size; display: grid; gap: var(--inkra-space-4); min-width: 0; color: var(--inkra-ink); }
8068
9840
  .inkra-upload__dropzone {
8069
- min-height: 148px; padding: var(--inkra-space-6); display: grid; place-items: center; align-content: center;
9841
+ position: relative; min-height: 148px; padding: var(--inkra-space-6); display: grid; place-items: center; align-content: center;
8070
9842
  gap: var(--inkra-space-2); text-align: center; cursor: pointer; border-radius: var(--inkra-radius-lg);
8071
9843
  }
8072
- .inkra-upload__dropzone:focus-visible { outline: var(--inkra-focus-width) solid var(--inkra-focus); outline-offset: var(--inkra-focus-offset); }
9844
+ .inkra-upload__focus-ring {
9845
+ --inkra-accent-strong: var(--inkra-focus);
9846
+ position: absolute !important; inset: var(--inkra-focus-width); display: block !important;
9847
+ opacity: 0; pointer-events: none; z-index: 3;
9848
+ }
9849
+ .inkra-upload__dropzone:focus-visible { outline: 0; }
9850
+ .inkra-upload__dropzone:focus-visible .inkra-upload__focus-ring { opacity: 1; }
8073
9851
  .inkra-upload__dropzone[data-drag-active] { color: var(--inkra-selection-foreground); }
8074
9852
  .inkra-upload[data-disabled] .inkra-upload__dropzone { cursor: not-allowed; opacity: 0.55; }
8075
- .inkra-upload__input { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
9853
+ .inkra-upload__input { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; pointer-events: none; }
8076
9854
  .inkra-upload__icon { color: currentColor; }
8077
9855
  .inkra-upload__prompt { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--inkra-space-2); font-size: var(--inkra-text-md); }
8078
9856
  .inkra-upload__hint, .inkra-upload__meta { color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); }
8079
9857
  .inkra-upload__rejections { color: var(--inkra-danger-foreground); }
8080
9858
  .inkra-upload__rejections ul { margin: var(--inkra-space-2) 0 0; padding-inline-start: var(--inkra-space-6); }
8081
9859
  .inkra-upload__list { display: grid; gap: var(--inkra-space-3); margin: 0; padding: 0; list-style: none; }
8082
- .inkra-upload__item-surface { display: flex; align-items: center; justify-content: space-between; gap: var(--inkra-space-4); padding: var(--inkra-space-4); }
9860
+ .inkra-upload__item-surface { display: flex; align-items: center; justify-content: space-between; gap: var(--inkra-space-4); min-width: 0; padding: var(--inkra-space-4); }
8083
9861
  .inkra-upload__file { display: grid; min-width: 0; flex: 1; gap: var(--inkra-space-1); }
8084
- .inkra-upload__name { overflow-wrap: anywhere; }
9862
+ .inkra-upload__name { max-width: 100%; }
8085
9863
  .inkra-upload__error { color: var(--inkra-danger-foreground); font-size: var(--inkra-text-sm); }
8086
- .inkra-upload__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--inkra-space-1); }
9864
+ .inkra-upload__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--inkra-space-1); max-width: 100%; min-width: 0; }
9865
+ .inkra-upload__actions > .inkra-button { max-width: 100%; }
9866
+ .inkra-upload__actions .inkra-button__surface,
9867
+ .inkra-upload__actions .inkra-button__content { max-width: 100%; min-width: 0; }
9868
+ .inkra-upload__actions .inkra-button__label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
9869
+ .inkra-upload__actions .inkra-button__label > .inkra-pencil-text,
9870
+ .inkra-upload__actions .inkra-button__label > .inkra-pencil-text > .inkra-pencil-text__source {
9871
+ display: block; max-width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
9872
+ }
8087
9873
  .inkra-upload .inkra-progress { inline-size: min(280px, 100%); }
8088
9874
  .inkra-upload__item[data-status="success"] .inkra-upload__meta { color: var(--inkra-success-foreground); }
8089
9875
  .inkra-upload__item[data-status="error"] .inkra-upload__meta,
@@ -8091,10 +9877,22 @@ svg.leaflet-image-layer.leaflet-interactive path {
8091
9877
  @media (max-width: 36rem) {
8092
9878
  .inkra-upload__dropzone { padding: var(--inkra-space-4); }
8093
9879
  .inkra-upload__item-surface { align-items: stretch; flex-direction: column; }
8094
- .inkra-upload__actions { justify-content: flex-start; }
9880
+ .inkra-upload__actions { inline-size: 100%; justify-content: flex-start; }
9881
+ }
9882
+ @container (max-width: 36rem) {
9883
+ .inkra-upload__dropzone { padding: var(--inkra-space-4); }
9884
+ .inkra-upload__item-surface { align-items: stretch; flex-direction: column; }
9885
+ .inkra-upload__actions { inline-size: 100%; justify-content: flex-start; }
9886
+ }
9887
+ @container (max-width: 24rem) {
9888
+ .inkra-upload__actions { display: grid; grid-template-columns: minmax(0, 1fr); }
9889
+ .inkra-upload__actions > .inkra-button { inline-size: 100%; }
9890
+ .inkra-upload__actions .inkra-button__surface { inline-size: 100%; }
8095
9891
  }
8096
9892
  @media (forced-colors: active) {
8097
9893
  .inkra-upload__dropzone { border: 1px solid CanvasText; }
9894
+ .inkra-upload__dropzone:focus-visible { outline: 2px solid Highlight; outline-offset: var(--inkra-focus-offset); }
9895
+ .inkra-upload__focus-ring { display: none !important; }
8098
9896
  .inkra-upload__dropzone[data-drag-active] { outline: 2px solid Highlight; }
8099
9897
  .inkra-upload__error, .inkra-upload__rejections { color: CanvasText; }
8100
9898
  }