@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
@@ -0,0 +1,27 @@
1
+ .inkra-steps { display: flex; min-width: 0; margin: 0; padding: 0; list-style: none; color: var(--inkra-ink); }
2
+ .inkra-steps__item { position: relative; flex: 1 1 0; min-width: 0; }
3
+ .inkra-steps__control { position: relative; display: flex; align-items: flex-start; gap: var(--inkra-space-3); width: 100%; min-height: var(--inkra-touch-target); padding: var(--inkra-space-2); border: 0; border-radius: var(--inkra-radius-md); background: transparent; color: inherit; font: inherit; text-align: start; }
4
+ button.inkra-steps__control { cursor: pointer; }
5
+ .inkra-steps__control:focus-visible { outline: var(--inkra-focus-width) solid var(--inkra-focus); outline-offset: var(--inkra-focus-offset); }
6
+ .inkra-steps__selection { position: absolute !important; inset: 0; pointer-events: none; }
7
+ .inkra-steps__marker { position: relative; z-index: 1; display: grid; flex: none; place-items: center; width: 32px; height: 32px; color: var(--inkra-ink-muted); }
8
+ .inkra-steps__copy { position: relative; z-index: 1; display: grid; min-width: 0; gap: var(--inkra-space-1); }
9
+ .inkra-steps__title, .inkra-steps__description { overflow-wrap: anywhere; }
10
+ .inkra-steps__description { color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); line-height: var(--inkra-line-body); }
11
+ .inkra-steps__item[data-status="current"] { color: var(--inkra-selection-foreground); }
12
+ .inkra-steps__item[data-status="complete"] .inkra-steps__marker { color: var(--inkra-success-foreground); }
13
+ .inkra-steps__item[data-status="error"] .inkra-steps__marker,
14
+ .inkra-steps__item[data-status="error"] .inkra-steps__title { color: var(--inkra-danger-foreground); }
15
+ .inkra-steps__item[data-disabled] { opacity: 0.5; }
16
+ .inkra-steps__connector { position: absolute; color: var(--inkra-border-strong); pointer-events: none; }
17
+ .inkra-steps[data-orientation="horizontal"] { overflow-x: auto; padding-block-end: var(--inkra-space-2); }
18
+ .inkra-steps[data-orientation="horizontal"] .inkra-steps__item { min-width: 180px; padding-inline-end: var(--inkra-space-4); }
19
+ .inkra-steps[data-orientation="horizontal"] .inkra-steps__connector { inset-inline-start: 44px; inset-inline-end: 4px; top: 24px; height: 8px; width: auto; }
20
+ .inkra-steps[data-orientation="vertical"] { flex-direction: column; }
21
+ .inkra-steps[data-orientation="vertical"] .inkra-steps__item { min-height: 84px; padding-block-end: var(--inkra-space-4); }
22
+ .inkra-steps[data-orientation="vertical"] .inkra-steps__connector { inset-inline-start: 20px; top: 44px; bottom: 0; width: 8px; height: auto; }
23
+ @media (forced-colors: active) {
24
+ .inkra-steps__selection { display: none !important; }
25
+ .inkra-steps__item[data-status="current"] .inkra-steps__control { outline: 2px solid Highlight; color: Highlight; }
26
+ .inkra-steps__item[data-status="error"] .inkra-steps__control { border-inline-start: 3px solid Mark; }
27
+ }
@@ -0,0 +1,79 @@
1
+ .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; }
2
+ .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; }
3
+ .inkra-tabs[data-size="lg"] { --inkra-tabs-font-size: 17px; --inkra-tabs-padding: var(--inkra-space-4); --inkra-tabs-icon-size: 24px; }
4
+ .inkra-tabs__list {
5
+ display: flex;
6
+ gap: var(--inkra-space-2);
7
+ max-width: 100%;
8
+ overflow-x: auto;
9
+ overflow-y: hidden;
10
+ scroll-padding-inline: var(--inkra-focus-offset);
11
+ }
12
+ .inkra-tabs__list[data-orientation="vertical"] { flex-direction: column; }
13
+ .inkra-tabs__list[data-divided] { gap: 24px; }
14
+ .inkra-tabs__divider { position: absolute; color: var(--inkra-ink-muted); opacity: 0.56; }
15
+ .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="vertical"] { inset-inline-start: -16px; top: 8px; width: 8px; height: calc(100% - 16px); }
16
+ .inkra-tabs__trigger > .inkra-tabs__divider[data-orientation="horizontal"] { inset-inline: 8px; top: -16px; width: calc(100% - 16px); height: 8px; }
17
+ .inkra-tabs__trigger:first-child > .inkra-tabs__divider { display: none; }
18
+ .inkra-tabs__list[data-align="center"] { justify-content: safe center; }
19
+ .inkra-tabs__list[data-align="end"] { justify-content: safe end; }
20
+ .inkra-tabs__list[data-full-width] { width: 100%; }
21
+ .inkra-tabs__list[data-full-width] > .inkra-tabs__trigger { flex: 1 0 0; }
22
+ .inkra-tabs__list[data-orientation="vertical"][data-full-width] > .inkra-tabs__trigger { flex: none; width: 100%; }
23
+ .inkra-tabs__trigger {
24
+ position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center;
25
+ min-height: var(--inkra-touch-target); min-width: var(--inkra-touch-target);
26
+ padding: var(--inkra-space-2) var(--inkra-tabs-padding); border: 0; gap: var(--inkra-space-2);
27
+ background: transparent; color: var(--inkra-ink-muted); font: inherit;
28
+ white-space: nowrap; cursor: pointer; border-radius: var(--inkra-radius-md);
29
+ font-size: var(--inkra-tabs-font-size); line-height: var(--inkra-line-ui);
30
+ }
31
+ .inkra-tabs[data-size="lg"] .inkra-tabs__trigger { min-height: 48px; }
32
+ .inkra-tabs__icon { position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--inkra-tabs-icon-size); height: var(--inkra-tabs-icon-size); flex: none; pointer-events: none; }
33
+ .inkra-tabs__icon > * { width: 100%; height: 100%; }
34
+ .inkra-tabs__trigger[data-state="active"] { color: var(--inkra-selection-foreground); }
35
+ .inkra-tabs__trigger:disabled { cursor: not-allowed; opacity: 0.55; }
36
+ .inkra-tabs__trigger:focus-visible { outline: 0; }
37
+ .inkra-pencil-surface.inkra-tabs__focus-ring {
38
+ --inkra-accent-strong: var(--inkra-focus);
39
+ position: absolute !important;
40
+ display: block !important;
41
+ inset: var(--inkra-focus-width);
42
+ pointer-events: none;
43
+ opacity: 0;
44
+ z-index: 2;
45
+ }
46
+ .inkra-tabs__trigger:focus-visible > .inkra-pencil-surface.inkra-tabs__focus-ring { opacity: 1; }
47
+ .inkra-tabs__content:focus-visible {
48
+ outline: var(--inkra-focus-width) solid var(--inkra-focus);
49
+ outline-offset: calc(-1 * var(--inkra-focus-width));
50
+ }
51
+ .inkra-pencil-surface.inkra-tabs__selection { position: absolute; inset: 0; pointer-events: none; opacity: 0; }
52
+ .inkra-tabs__trigger[data-state="active"] > .inkra-pencil-surface.inkra-tabs__selection { opacity: 1; }
53
+ .inkra-tabs__label { position: relative; }
54
+ .inkra-tabs__content { min-width: 0; }
55
+ .inkra-tabs__content[hidden] { display: none !important; }
56
+ .inkra-tabs__overflow { display: flex; align-items: center; min-width: 0; max-width: 100%; position: relative; }
57
+ .inkra-tabs__overflow > .inkra-tabs__list { flex: 1 1 auto; min-width: 0; }
58
+ .inkra-tabs__scroll-button, .inkra-tabs__more { flex: 0 0 44px; }
59
+ .inkra-tabs__overflow-icon { display: inline-flex; width: 32px; height: 32px; position: relative; pointer-events: none; }
60
+ .inkra-tabs__overflow-icon[data-down] { transform: rotate(90deg); }
61
+ .inkra-tabs__overflow-icon > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
62
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: none; }
63
+ .inkra-tabs__overflow-icon > canvas:not([data-pencil-icon-ready]) { visibility: hidden; }
64
+ .inkra-tabs__list[data-overflow="menu"] { position: relative; overflow: hidden; }
65
+ .inkra-tabs__list[data-overflow="menu"][data-full-width] > .inkra-tabs__trigger { flex: 1 0 auto; }
66
+ .inkra-tabs__trigger[data-overflow-hidden] { position: absolute; visibility: hidden; pointer-events: none; inset-inline-start: 0; top: 0; }
67
+ .inkra-tabs__list[data-overflow="buttons"] { scrollbar-width: none; }
68
+ .inkra-tabs__list[data-overflow="buttons"]::-webkit-scrollbar { display: none; }
69
+ @media (forced-colors: active) {
70
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
71
+ .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
72
+ .inkra-tabs__trigger:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: calc(-1 * var(--inkra-focus-width)); }
73
+ .inkra-pencil-surface.inkra-tabs__selection { display: none !important; }
74
+ .inkra-tabs__trigger[data-state="active"] { color: Highlight; outline: 2px solid Highlight; outline-offset: -2px; }
75
+ }
76
+ @media print {
77
+ .inkra-pencil-surface.inkra-tabs__selection, .inkra-pencil-surface.inkra-tabs__focus-ring { display: none !important; }
78
+ .inkra-tabs__overflow-icon > [data-pencil-icon-ready] + svg { display: block; }
79
+ }
@@ -0,0 +1,213 @@
1
+ .inkra-tag-input {
2
+ --inkra-field-control-height: var(--inkra-control-md);
3
+ --inkra-field-control-font-size: var(--inkra-text-md);
4
+ --inkra-field-control-padding: var(--inkra-space-3);
5
+ --inkra-tag-input-control-inset: var(--inkra-space-1);
6
+ --inkra-tag-input-item-height: calc(var(--inkra-field-control-height) - 2 * var(--inkra-tag-input-control-inset));
7
+ --inkra-tag-input-row-gap: max(
8
+ var(--inkra-space-1),
9
+ calc(var(--inkra-touch-target) - var(--inkra-tag-input-item-height))
10
+ );
11
+ --inkra-tag-input-tag-inset: var(--inkra-space-1);
12
+
13
+ display: inline-grid;
14
+ inline-size: 24rem;
15
+ max-inline-size: 100%;
16
+ gap: var(--inkra-space-2);
17
+ vertical-align: middle;
18
+ }
19
+
20
+ .inkra-tag-input[data-size="sm"] {
21
+ --inkra-field-control-height: var(--inkra-control-sm);
22
+ --inkra-field-control-font-size: var(--inkra-text-sm);
23
+ --inkra-field-control-padding: var(--inkra-space-2);
24
+ }
25
+
26
+ .inkra-tag-input[data-size="lg"] {
27
+ --inkra-field-control-height: var(--inkra-control-lg);
28
+ --inkra-field-control-font-size: var(--inkra-text-lg);
29
+ --inkra-field-control-padding: var(--inkra-space-4);
30
+ }
31
+
32
+ .inkra-tag-input[data-full-width="true"] { inline-size: 100%; }
33
+
34
+ .inkra-tag-input__control {
35
+ position: relative;
36
+ display: flex !important;
37
+ box-sizing: border-box;
38
+ inline-size: 100%;
39
+ min-inline-size: 0;
40
+ min-block-size: var(--inkra-field-control-height);
41
+ block-size: auto;
42
+ align-items: center;
43
+ flex-wrap: wrap;
44
+ column-gap: var(--inkra-space-1);
45
+ row-gap: var(--inkra-tag-input-row-gap);
46
+ padding: var(--inkra-tag-input-control-inset) var(--inkra-field-control-padding);
47
+ color: var(--inkra-ink);
48
+ cursor: text;
49
+ }
50
+
51
+ .inkra-tag-input[data-has-tags="true"] .inkra-tag-input__control {
52
+ padding-inline: var(--inkra-tag-input-control-inset);
53
+ }
54
+
55
+ .inkra-tag-input[data-focus-within="true"] .inkra-tag-input__control > :is(.inkra-pencil-surface__ink, .inkra-pencil-surface__border) {
56
+ filter: contrast(1.28) saturate(1.08);
57
+ }
58
+
59
+ .inkra-tag-input__list {
60
+ display: flex;
61
+ min-inline-size: 0;
62
+ align-items: center;
63
+ flex: 0 1 auto;
64
+ flex-wrap: wrap;
65
+ column-gap: var(--inkra-space-1);
66
+ row-gap: var(--inkra-tag-input-row-gap);
67
+ margin: 0;
68
+ padding: 0;
69
+ list-style: none;
70
+ }
71
+
72
+ .inkra-tag-input__list:empty { display: none; }
73
+
74
+ .inkra-tag-input__tag {
75
+ display: inline-flex !important;
76
+ box-sizing: border-box;
77
+ min-inline-size: 0;
78
+ block-size: var(--inkra-tag-input-item-height);
79
+ align-items: center;
80
+ gap: var(--inkra-space-1);
81
+ padding: var(--inkra-tag-input-tag-inset);
82
+ color: var(--inkra-ink);
83
+ font-family: var(--inkra-font-body);
84
+ font-size: var(--inkra-field-control-font-size);
85
+ line-height: var(--inkra-line-ui);
86
+ }
87
+
88
+ .inkra-tag-input__tag-label {
89
+ min-inline-size: 0;
90
+ max-inline-size: min(16rem, 50vw);
91
+ overflow: hidden;
92
+ text-overflow: ellipsis;
93
+ white-space: nowrap;
94
+ }
95
+
96
+ .inkra-tag-input__remove,
97
+ .inkra-tag-input__clear {
98
+ display: inline-flex;
99
+ position: relative;
100
+ box-sizing: border-box;
101
+ inline-size: var(--inkra-touch-target);
102
+ flex: 0 0 var(--inkra-touch-target);
103
+ align-items: center;
104
+ justify-content: center;
105
+ padding: 0;
106
+ border: 0;
107
+ border-radius: var(--inkra-radius-md);
108
+ background: transparent;
109
+ color: var(--inkra-ink-muted);
110
+ cursor: pointer;
111
+ }
112
+
113
+ .inkra-tag-input__remove { block-size: 18px; }
114
+ .inkra-tag-input__clear { block-size: var(--inkra-tag-input-item-height); }
115
+
116
+ .inkra-tag-input__remove::before,
117
+ .inkra-tag-input__clear::before {
118
+ position: absolute;
119
+ inset-block-start: 50%;
120
+ inset-inline: 0;
121
+ min-block-size: var(--inkra-touch-target);
122
+ content: "";
123
+ transform: translateY(-50%);
124
+ }
125
+
126
+ .inkra-tag-input__remove:hover,
127
+ .inkra-tag-input__clear:hover { color: var(--inkra-ink); }
128
+
129
+ .inkra-tag-input__remove:focus-visible,
130
+ .inkra-tag-input__clear:focus-visible {
131
+ outline: var(--inkra-focus-width) solid var(--inkra-focus);
132
+ outline-offset: calc(-1 * var(--inkra-focus-width));
133
+ }
134
+
135
+ .inkra-tag-input__input {
136
+ min-inline-size: min(8rem, 100%);
137
+ min-block-size: var(--inkra-tag-input-item-height);
138
+ block-size: var(--inkra-tag-input-item-height);
139
+ flex: 1 1 8rem;
140
+ padding: 0;
141
+ color: var(--inkra-ink);
142
+ font-size: var(--inkra-field-control-font-size);
143
+ }
144
+
145
+ .inkra-tag-input[data-draft-empty="true"][data-has-tags="true"]:not([data-has-placeholder="true"])
146
+ .inkra-tag-input__input {
147
+ min-inline-size: 1px;
148
+ flex-basis: 1px;
149
+ }
150
+
151
+ .inkra-tag-input__input::placeholder {
152
+ color: var(--inkra-ink-subtle);
153
+ opacity: 1;
154
+ }
155
+
156
+ .inkra-tag-input__clear { margin-inline-end: 0; }
157
+
158
+ .inkra-tag-input__underline {
159
+ position: absolute;
160
+ z-index: 4;
161
+ inset-inline: 0;
162
+ inset-block-end: -2px;
163
+ inline-size: 100%;
164
+ block-size: 8px;
165
+ color: var(--inkra-border-strong);
166
+ pointer-events: none;
167
+ }
168
+
169
+ .inkra-tag-input[data-invalid="true"] .inkra-tag-input__underline {
170
+ color: var(--inkra-danger-foreground, var(--inkra-danger));
171
+ }
172
+
173
+ .inkra-tag-input__message {
174
+ color: var(--inkra-danger-foreground, var(--inkra-danger));
175
+ font-size: var(--inkra-text-sm);
176
+ line-height: var(--inkra-line-ui);
177
+ }
178
+
179
+ .inkra-tag-input[data-readonly="true"] .inkra-tag-input__control { cursor: default; }
180
+ .inkra-tag-input[data-readonly="true"] .inkra-tag-input__input { color: var(--inkra-ink-muted); }
181
+ .inkra-tag-input[data-disabled="true"] { cursor: not-allowed; opacity: 0.55; }
182
+ .inkra-tag-input[data-disabled="true"] .inkra-tag-input__control { cursor: not-allowed; }
183
+ .inkra-tag-input :is(button, input):disabled { cursor: not-allowed; }
184
+
185
+ @media (max-width: 30rem) {
186
+ .inkra-tag-input { inline-size: 100%; }
187
+ .inkra-tag-input__tag-label { max-inline-size: min(12rem, 58vw); }
188
+ }
189
+
190
+ @media (forced-colors: active) {
191
+ .inkra-tag-input__control,
192
+ .inkra-tag-input__tag { border: 1px solid CanvasText; }
193
+ .inkra-tag-input[data-invalid="true"] .inkra-tag-input__control { border-color: Mark; }
194
+ .inkra-tag-input__input { color: FieldText; caret-color: FieldText; }
195
+ .inkra-tag-input__input::placeholder { color: GrayText; }
196
+ .inkra-tag-input :is(.inkra-tag-input__remove, .inkra-tag-input__clear) { color: ButtonText; }
197
+ .inkra-tag-input :is(.inkra-tag-input__remove, .inkra-tag-input__clear):focus-visible {
198
+ outline: 2px solid Highlight;
199
+ outline-offset: -2px;
200
+ }
201
+ .inkra-tag-input[data-variant="underline"] .inkra-tag-input__control { border: 0; }
202
+ .inkra-tag-input[data-variant="underline"] .inkra-tag-input__underline {
203
+ block-size: 1px;
204
+ background: CanvasText;
205
+ }
206
+ }
207
+
208
+ @media print {
209
+ .inkra-tag-input__remove,
210
+ .inkra-tag-input__clear { display: none; }
211
+ .inkra-tag-input__control,
212
+ .inkra-tag-input__tag { border: 1px solid var(--inkra-border-strong); }
213
+ }
@@ -0,0 +1,66 @@
1
+ .inkra-time-picker {
2
+ --inkra-time-picker-control-height: var(--inkra-control-md);
3
+
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--inkra-space-2);
7
+ position: relative;
8
+ min-height: var(--inkra-touch-target);
9
+ min-width: 0;
10
+ width: fit-content;
11
+ max-width: 100%;
12
+ }
13
+ .inkra-time-picker[data-size="sm"] { --inkra-time-picker-control-height: var(--inkra-control-sm); }
14
+ .inkra-time-picker[data-size="lg"] { --inkra-time-picker-control-height: var(--inkra-control-lg); }
15
+ .inkra-time-picker[data-full-width="true"] { width: 100%; }
16
+ .inkra-button-group.inkra-time-picker__control {
17
+ align-items: center;
18
+ block-size: var(--inkra-time-picker-control-height);
19
+ flex: 1 1 auto;
20
+ min-width: 0;
21
+ overflow: visible;
22
+ }
23
+ .inkra-time-picker__control > .inkra-time-picker__trigger { flex: 1 1 auto; min-width: 0; }
24
+ .inkra-time-picker__control > .inkra-time-picker__clear { flex: 0 0 auto; }
25
+ .inkra-time-picker__clear[aria-hidden="true"] { visibility: hidden; }
26
+ .inkra-time-picker__control .inkra-button-group__divider[data-orientation="vertical"] {
27
+ block-size: var(--inkra-time-picker-control-height);
28
+ inset-block-start: 50%;
29
+ transform: translateY(-50%);
30
+ }
31
+ .inkra-time-picker[data-invalid="true"] { color: var(--inkra-danger); }
32
+ .inkra-time-picker__native,
33
+ .inkra-time-picker__accessible-value {
34
+ position: absolute;
35
+ width: 1px;
36
+ height: 1px;
37
+ min-width: 0;
38
+ padding: 0;
39
+ border: 0;
40
+ overflow: hidden;
41
+ opacity: 0;
42
+ clip-path: inset(50%);
43
+ pointer-events: none;
44
+ }
45
+ .inkra-time-picker__popover {
46
+ width: min(360px, calc(100vw - 24px));
47
+ background: var(--inkra-paper);
48
+ border-radius: var(--inkra-radius-lg);
49
+ }
50
+ .inkra-time-picker__popover .inkra-popover__content-body { display: grid; gap: var(--inkra-space-3); }
51
+ .inkra-time-picker__columns { display: flex; gap: var(--inkra-space-2); min-width: 0; }
52
+ .inkra-time-picker__column { flex: 1; min-width: 0; }
53
+ .inkra-time-picker__column .inkra-radio-group__frame { width: 100%; min-width: 0; }
54
+ .inkra-time-picker__column .inkra-radio-group__items {
55
+ min-width: 0;
56
+ max-height: min(264px, 35dvh);
57
+ overflow-y: auto;
58
+ overflow-x: hidden;
59
+ overscroll-behavior: contain;
60
+ scrollbar-width: thin;
61
+ }
62
+ .inkra-time-picker__column .inkra-radio-group__label { text-align: center; width: 100%; }
63
+ .inkra-time-picker__column .inkra-radio-group__segment { min-width: 44px; padding-inline: 4px; }
64
+ .inkra-time-picker__column.inkra-radio-group .inkra-radio-group__item { min-width: 0; }
65
+ .inkra-time-picker__footer { display: flex; justify-content: flex-end; gap: var(--inkra-space-2); }
66
+ .inkra-time-picker__error { margin: 0; color: var(--inkra-danger); font-size: var(--inkra-text-sm); }
@@ -0,0 +1,24 @@
1
+ .inkra-timeline { display: flex; min-width: 0; margin: 0; padding: 0; list-style: none; color: var(--inkra-ink); }
2
+ .inkra-timeline__item { display: grid; min-width: 0; }
3
+ .inkra-timeline__rail { position: relative; display: flex; align-items: center; justify-content: flex-start; }
4
+ .inkra-timeline__marker { position: relative; z-index: 1; display: grid; flex: none; place-items: center; width: 36px; height: 36px; color: var(--inkra-accent-strong); }
5
+ .inkra-timeline__connector { position: absolute; color: var(--inkra-border-strong); }
6
+ .inkra-timeline__body { min-width: 0; }
7
+ .inkra-timeline__date { display: block; color: var(--inkra-ink-muted); font-size: var(--inkra-text-sm); line-height: var(--inkra-line-ui); }
8
+ .inkra-timeline__title { margin-block-start: var(--inkra-space-1); font-size: var(--inkra-text-lg); line-height: var(--inkra-line-ui); overflow-wrap: anywhere; }
9
+ .inkra-timeline__description { margin-block-start: var(--inkra-space-1); color: var(--inkra-ink-muted); line-height: var(--inkra-line-body); overflow-wrap: anywhere; }
10
+ .inkra-timeline__content { margin-block-start: var(--inkra-space-3); min-width: 0; }
11
+ .inkra-timeline[data-orientation="vertical"] { flex-direction: column; }
12
+ .inkra-timeline[data-orientation="vertical"] .inkra-timeline__item { grid-template-columns: 44px minmax(0, 1fr); gap: var(--inkra-space-3); padding-block-end: var(--inkra-space-6); }
13
+ .inkra-timeline[data-orientation="vertical"] .inkra-timeline__rail { align-items: flex-start; }
14
+ .inkra-timeline[data-orientation="vertical"] .inkra-timeline__connector { top: 32px; inset-inline-start: 14px; width: 8px; height: calc(100% + var(--inkra-space-6) - 28px); }
15
+ .inkra-timeline[data-orientation="vertical"] .inkra-timeline__item:last-child { padding-block-end: 0; }
16
+ .inkra-timeline[data-orientation="horizontal"] { gap: 0; overflow-x: auto; padding-block-end: var(--inkra-space-3); }
17
+ .inkra-timeline[data-orientation="horizontal"] .inkra-timeline__item { grid-template-rows: 44px auto; flex: 1 0 min(280px, 78vw); padding-inline-end: var(--inkra-space-6); }
18
+ .inkra-timeline[data-orientation="horizontal"] .inkra-timeline__connector { inset-inline-start: 32px; top: 18px; width: calc(100% + var(--inkra-space-6) - 28px); height: 8px; }
19
+ @media (forced-colors: active) {
20
+ .inkra-timeline__marker { border: 1px solid CanvasText; }
21
+ .inkra-timeline__connector { color: CanvasText; }
22
+ .inkra-timeline[data-orientation="vertical"] .inkra-timeline__connector { width: 1px; inset-inline-start: 17.5px; }
23
+ .inkra-timeline[data-orientation="horizontal"] .inkra-timeline__connector { height: 1px; top: 21.5px; }
24
+ }
@@ -0,0 +1,160 @@
1
+ .inkra-toast__theme-anchor { display: none; }
2
+
3
+ .inkra-toast__viewport {
4
+ --inkra-toast-enter-x: 0px;
5
+ --inkra-toast-enter-y: 12px;
6
+ --inkra-toast-edge: var(--inkra-space-5);
7
+ --inkra-toast-start: max(var(--inkra-toast-edge), env(safe-area-inset-left));
8
+ --inkra-toast-end: max(var(--inkra-toast-edge), env(safe-area-inset-right));
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: var(--inkra-space-3);
12
+ inset-block: auto max(var(--inkra-toast-edge), env(safe-area-inset-bottom));
13
+ inset-inline: auto var(--inkra-toast-end);
14
+ margin: 0;
15
+ max-height: calc(100dvh - var(--inkra-space-10));
16
+ max-width: calc(100vw - var(--inkra-space-10));
17
+ outline: 0;
18
+ padding: 4px;
19
+ box-sizing: border-box;
20
+ pointer-events: none;
21
+ overflow: auto;
22
+ position: fixed;
23
+ width: min(24rem, calc(100vw - 2 * var(--inkra-toast-edge)));
24
+ z-index: calc(var(--inkra-z-toast, 50) + var(--inkra-floating-layer-offset, 0));
25
+ }
26
+
27
+ .inkra-toast__viewport[data-placement^="top"] { inset-block: max(var(--inkra-toast-edge), env(safe-area-inset-top)) auto; --inkra-toast-enter-y: -12px; }
28
+ .inkra-toast__viewport[data-placement^="bottom"] { flex-direction: column-reverse; }
29
+ .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)); }
30
+ .inkra-toast__viewport[data-placement$="start"] { inset-inline: var(--inkra-toast-start) auto; align-items: flex-start; }
31
+ .inkra-toast__viewport[data-placement$="end"] { align-items: flex-end; }
32
+ .inkra-toast__viewport:is([data-placement="top-center"], [data-placement="bottom-center"], [data-placement="center"]) {
33
+ inset-inline: auto;
34
+ left: 50%;
35
+ right: auto;
36
+ transform: translateX(-50%);
37
+ align-items: center;
38
+ }
39
+ .inkra-toast__viewport[data-placement^="center"] { top: 50%; bottom: auto; transform: translateY(-50%); --inkra-toast-enter-y: 0px; }
40
+ .inkra-toast__viewport[data-placement="center"] { transform: translate(-50%, -50%); --inkra-toast-enter-y: 8px; }
41
+ .inkra-toast__viewport[data-placement="center-start"] { --inkra-toast-enter-x: -12px; }
42
+ .inkra-toast__viewport[data-placement="center-end"] { --inkra-toast-enter-x: 12px; }
43
+ .inkra-toast__viewport:dir(rtl)[data-placement="center-start"] { --inkra-toast-enter-x: 12px; }
44
+ .inkra-toast__viewport:dir(rtl)[data-placement="center-end"] { --inkra-toast-enter-x: -12px; }
45
+
46
+ .inkra-toast__root {
47
+ --inkra-toast-translate-x: var(--toast-swipe-movement-x, 0px);
48
+ --inkra-toast-translate-y: var(--toast-swipe-movement-y, 0px);
49
+ box-sizing: border-box;
50
+ color: var(--inkra-toast-foreground, var(--inkra-ink));
51
+ max-width: 100%;
52
+ min-width: 0;
53
+ flex: 0 0 auto;
54
+ width: 100%;
55
+ pointer-events: auto;
56
+ position: relative;
57
+ transform: translate(var(--inkra-toast-translate-x), var(--inkra-toast-translate-y));
58
+ transition: opacity var(--inkra-motion-normal) var(--inkra-ease), transform var(--inkra-motion-normal) var(--inkra-ease);
59
+ }
60
+
61
+ .inkra-toast__root[data-starting-style],
62
+ .inkra-toast__root[data-ending-style],
63
+ .inkra-toast__root[data-limited] { opacity: 0; }
64
+
65
+ .inkra-toast__root[data-limited] { position: absolute; visibility: hidden; pointer-events: none; }
66
+ .inkra-toast__root:focus-visible { outline: 0; }
67
+ .inkra-toast__focus.inkra-pencil-surface { --inkra-accent-strong: var(--inkra-focus); display: none; position: absolute; inset: -3px; pointer-events: none; z-index: 2; }
68
+ .inkra-toast__root:focus-visible > .inkra-toast__focus { display: block; }
69
+ .inkra-toast__root[data-starting-style],
70
+ .inkra-toast__root[data-ending-style] { transform: translate(var(--inkra-toast-enter-x), var(--inkra-toast-enter-y)); }
71
+ .inkra-toast__root[data-ending-style][data-swipe-direction="left"] { transform: translateX(-110%); }
72
+ .inkra-toast__root[data-ending-style][data-swipe-direction="right"] { transform: translateX(110%); }
73
+ .inkra-toast__root[data-ending-style][data-swipe-direction="up"] { transform: translateY(-110%); }
74
+ .inkra-toast__root[data-ending-style][data-swipe-direction="down"] { transform: translateY(110%); }
75
+
76
+ .inkra-toast__root[data-tone="success"] {
77
+ --inkra-accent-soft: var(--inkra-success-pigment);
78
+ --inkra-border-strong: var(--inkra-success-foreground);
79
+ --inkra-toast-foreground: var(--inkra-success-foreground);
80
+ }
81
+ .inkra-toast__root[data-tone="warning"] {
82
+ --inkra-accent-soft: var(--inkra-warning-pigment);
83
+ --inkra-border-strong: var(--inkra-warning-foreground);
84
+ --inkra-toast-foreground: var(--inkra-warning-foreground);
85
+ }
86
+ .inkra-toast__root[data-tone="danger"] {
87
+ --inkra-accent-soft: var(--inkra-danger-pigment);
88
+ --inkra-border-strong: var(--inkra-danger-foreground);
89
+ --inkra-toast-foreground: var(--inkra-danger-foreground);
90
+ }
91
+ .inkra-toast__root[data-tone="info"] {
92
+ --inkra-accent-soft: var(--inkra-info-pigment);
93
+ --inkra-border-strong: var(--inkra-info-foreground);
94
+ --inkra-toast-foreground: var(--inkra-info-foreground);
95
+ }
96
+
97
+ .inkra-toast__surface {
98
+ inset: 0;
99
+ position: absolute;
100
+ z-index: 0;
101
+ }
102
+ .inkra-toast__wash { inset: 0; position: absolute; z-index: 0; --inkra-selection-pigment: var(--inkra-accent-soft); }
103
+ .inkra-toast__root[data-tone="neutral"] .inkra-toast__wash { --inkra-selection-pigment: var(--inkra-ink-muted); opacity: .5; }
104
+
105
+ .inkra-toast__root[data-variant="compact"] { width: fit-content; border-radius: var(--inkra-radius-md); }
106
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__surface { border-radius: inherit; overflow: hidden; }
107
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__surface[data-pencil-fallback="true"] { border: 0; }
108
+ .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); }
109
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__title { font-size: var(--inkra-text-md); }
110
+ .inkra-toast__root[data-variant="compact"] .inkra-toast__copy { gap: 2px; flex-basis: 0; }
111
+ .inkra-toast__root[data-variant="card"] .inkra-toast__copy { flex-basis: 120px; }
112
+
113
+ .inkra-toast__content {
114
+ align-items: flex-start;
115
+ display: flex;
116
+ flex-wrap: wrap;
117
+ gap: var(--inkra-space-3);
118
+ justify-content: space-between;
119
+ min-height: var(--inkra-control-md);
120
+ min-width: 0;
121
+ padding: var(--inkra-space-4);
122
+ position: relative;
123
+ z-index: 1;
124
+ }
125
+
126
+ .inkra-toast__copy { display: grid; flex: 1; gap: var(--inkra-space-1); min-width: 0; }
127
+ .inkra-toast__title { font-size: var(--inkra-text-lg); line-height: var(--inkra-line-ui); margin: 0; overflow-wrap: anywhere; }
128
+ .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; }
129
+ .inkra-toast__actions { align-items: center; display: flex; flex: none; gap: var(--inkra-space-1); }
130
+ .inkra-toast__actions { max-width: 100%; flex-wrap: wrap; margin-inline-start: auto; }
131
+ .inkra-toast__action { max-width: 100%; }
132
+ .inkra-toast__action .inkra-button__surface { height: auto; min-height: var(--inkra-button-visual-height); max-width: 100%; padding-block: var(--inkra-space-2); }
133
+ .inkra-toast__action > .inkra-button__focus-ring { height: calc(100% + 2 * var(--inkra-focus-offset)); }
134
+ .inkra-toast__action .inkra-button__label,
135
+ .inkra-toast__action .inkra-pencil-text,
136
+ .inkra-toast__action .inkra-pencil-text__source { min-inline-size: 0; white-space: normal; overflow-wrap: anywhere; }
137
+ .inkra-toast__action,
138
+ .inkra-toast__close { position: relative; z-index: 1; }
139
+
140
+ @media (max-width: 30rem) {
141
+ .inkra-toast__viewport {
142
+ --inkra-toast-edge: var(--inkra-space-3);
143
+ max-width: calc(100vw - 2 * var(--inkra-toast-edge));
144
+ }
145
+ .inkra-toast__content { flex-wrap: wrap; }
146
+ .inkra-toast__copy { flex-basis: 120px; }
147
+ .inkra-toast__actions { justify-content: flex-end; }
148
+ }
149
+
150
+ @media (prefers-reduced-motion: reduce) {
151
+ .inkra-toast__root { transition: none; }
152
+ .inkra-toast__root[data-starting-style], .inkra-toast__root[data-ending-style] { transform: none; }
153
+ }
154
+
155
+ @media (forced-colors: active) {
156
+ .inkra-toast__surface, .inkra-toast__wash, .inkra-toast__focus.inkra-pencil-surface { display: none !important; }
157
+ .inkra-toast__root { border: 1px solid CanvasText; background: Canvas; color: CanvasText; forced-color-adjust: none; }
158
+ .inkra-toast__root:focus-visible { outline: var(--inkra-focus-width) solid Highlight; outline-offset: 0; }
159
+ .inkra-toast__description { color: CanvasText; }
160
+ }
@@ -0,0 +1,107 @@
1
+ .inkra-toggle-group {
2
+ align-items: stretch;
3
+ display: inline-flex;
4
+ isolation: isolate;
5
+ max-width: 100%;
6
+ min-width: 0;
7
+ overflow: auto hidden;
8
+ padding: 2px;
9
+ position: relative;
10
+ scrollbar-width: thin;
11
+ }
12
+
13
+ .inkra-toggle-group[data-orientation="vertical"] {
14
+ flex-direction: column;
15
+ overflow: hidden auto;
16
+ }
17
+
18
+ .inkra-toggle-group__outline {
19
+ inset: 0;
20
+ pointer-events: none;
21
+ position: absolute;
22
+ z-index: 0;
23
+ }
24
+
25
+ .inkra-toggle-group__item {
26
+ align-items: center;
27
+ appearance: none;
28
+ background: transparent;
29
+ border: 0;
30
+ box-sizing: border-box;
31
+ color: var(--inkra-ink);
32
+ cursor: pointer;
33
+ display: inline-flex;
34
+ flex: none;
35
+ font: inherit;
36
+ gap: var(--inkra-space-2);
37
+ justify-content: center;
38
+ line-height: var(--inkra-line-ui);
39
+ min-height: var(--inkra-control-md);
40
+ min-width: var(--inkra-touch-target);
41
+ padding: 0 var(--inkra-space-4);
42
+ position: relative;
43
+ z-index: 1;
44
+ }
45
+
46
+ .inkra-toggle-group[data-size="sm"] .inkra-toggle-group__item {
47
+ font-size: var(--inkra-text-sm);
48
+ min-height: var(--inkra-touch-target);
49
+ padding-inline: var(--inkra-space-3);
50
+ }
51
+ .inkra-toggle-group[data-size="md"] .inkra-toggle-group__item { font-size: var(--inkra-text-md); }
52
+ .inkra-toggle-group[data-size="lg"] .inkra-toggle-group__item {
53
+ font-size: var(--inkra-text-lg);
54
+ min-height: var(--inkra-control-lg);
55
+ padding-inline: var(--inkra-space-5);
56
+ }
57
+
58
+ .inkra-toggle-group__selection,
59
+ .inkra-toggle-group__focus {
60
+ inset: 2px;
61
+ opacity: 0;
62
+ pointer-events: none;
63
+ position: absolute;
64
+ z-index: -1;
65
+ }
66
+
67
+ .inkra-toggle-group__item[aria-pressed="true"] {
68
+ color: var(--inkra-selection-foreground);
69
+ }
70
+ .inkra-toggle-group__item[aria-pressed="true"] .inkra-toggle-group__selection { opacity: 1; }
71
+ .inkra-toggle-group__item:focus-visible { outline: 0; }
72
+ .inkra-toggle-group__item:focus-visible .inkra-toggle-group__focus { opacity: 1; }
73
+
74
+ .inkra-toggle-group__divider {
75
+ inline-size: 8px;
76
+ inset-block: var(--inkra-space-2);
77
+ inset-inline-end: -4px;
78
+ position: absolute;
79
+ z-index: 2;
80
+ }
81
+ .inkra-toggle-group[data-orientation="vertical"] .inkra-toggle-group__divider {
82
+ block-size: 8px;
83
+ inline-size: auto;
84
+ inset-block: auto -4px;
85
+ inset-inline: var(--inkra-space-2);
86
+ }
87
+ .inkra-toggle-group__item:last-of-type .inkra-toggle-group__divider { display: none; }
88
+
89
+ .inkra-toggle-group__icon { display: inline-flex; flex: none; }
90
+ .inkra-toggle-group__label { min-width: 0; overflow-wrap: anywhere; }
91
+ .inkra-toggle-group__item:disabled { color: var(--inkra-ink-subtle); cursor: not-allowed; opacity: .62; }
92
+
93
+ @media (prefers-reduced-motion: no-preference) {
94
+ .inkra-toggle-group__selection { transition: opacity var(--inkra-motion-normal) var(--inkra-ease); }
95
+ }
96
+
97
+ @media (forced-colors: active) {
98
+ .inkra-toggle-group__outline,
99
+ .inkra-toggle-group__selection,
100
+ .inkra-toggle-group__focus { display: none; }
101
+ .inkra-toggle-group { border: 1px solid ButtonText; }
102
+ .inkra-toggle-group__item { color: ButtonText; forced-color-adjust: none; }
103
+ .inkra-toggle-group__item[aria-pressed="true"] { background: Highlight; color: HighlightText; }
104
+ .inkra-toggle-group__item:focus-visible { outline: 2px solid Highlight; outline-offset: -3px; }
105
+ .inkra-toggle-group__divider { background: ButtonText; display: block; }
106
+ .inkra-toggle-group__item:disabled { color: GrayText; opacity: 1; }
107
+ }