@igne-agency/react-web-ui 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/components/accordion/accordion.css +21 -21
  2. package/dist/components/accordion/accordion.d.ts +17 -4
  3. package/dist/components/accordion/accordion.js +83 -36
  4. package/dist/components/accordion/accordion.module.js +6 -6
  5. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  6. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  7. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  8. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  9. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  10. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  11. package/dist/components/attachment-tile/index.d.ts +1 -1
  12. package/dist/components/avatar/avatar.css +9 -9
  13. package/dist/components/avatar/avatar.d.ts +50 -5
  14. package/dist/components/avatar/avatar.js +178 -64
  15. package/dist/components/avatar/avatar.module.js +3 -3
  16. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  17. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  18. package/dist/components/avatar-group/avatar-group.css +26 -20
  19. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  20. package/dist/components/avatar-group/avatar-group.js +400 -246
  21. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  22. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  24. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  25. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  26. package/dist/components/button/button.css +29 -31
  27. package/dist/components/button/button.d.ts +20 -16
  28. package/dist/components/button/button.js +140 -145
  29. package/dist/components/button/button.module.js +1 -1
  30. package/dist/components/button/index.js +1 -1
  31. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  32. package/dist/components/checkbox-field/checkbox.css +105 -56
  33. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  34. package/dist/components/checkbox-field/checkbox.js +12 -9
  35. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  36. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  37. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  38. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  39. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  41. package/dist/components/collapsible/collapsible.css +20 -20
  42. package/dist/components/collapsible/collapsible.d.ts +17 -4
  43. package/dist/components/collapsible/collapsible.js +83 -36
  44. package/dist/components/collapsible/collapsible.module.js +5 -5
  45. package/dist/components/combobox-field/combobox-field.js +206 -158
  46. package/dist/components/combobox-field/combobox.css +492 -277
  47. package/dist/components/combobox-field/combobox.d.ts +148 -39
  48. package/dist/components/combobox-field/combobox.js +506 -206
  49. package/dist/components/combobox-field/combobox.module.js +21 -21
  50. package/dist/components/combobox-field/value-state-view.css +5 -5
  51. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  52. package/dist/components/composer/composer-attachments.d.ts +30 -11
  53. package/dist/components/composer/composer-attachments.js +45 -40
  54. package/dist/components/composer/composer-editor.css +40 -35
  55. package/dist/components/composer/composer-editor.d.ts +14 -4
  56. package/dist/components/composer/composer-editor.js +134 -44
  57. package/dist/components/composer/composer-editor.module.js +5 -5
  58. package/dist/components/composer/composer.css +22 -22
  59. package/dist/components/composer/composer.d.ts +13 -2
  60. package/dist/components/composer/composer.js +78 -63
  61. package/dist/components/composer/composer.module.js +5 -5
  62. package/dist/components/composer/index.d.ts +2 -2
  63. package/dist/components/composer/mention-text.css +5 -5
  64. package/dist/components/composer/mention-text.module.js +1 -1
  65. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  66. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  67. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  68. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  69. package/dist/components/conversation/conversation.css +52 -52
  70. package/dist/components/conversation/conversation.d.ts +43 -18
  71. package/dist/components/conversation/conversation.js +120 -78
  72. package/dist/components/conversation/conversation.module.js +15 -15
  73. package/dist/components/date-field/date-field.d.ts +1 -1
  74. package/dist/components/date-field/date-field.js +202 -100
  75. package/dist/components/date-field/date-input.d.ts +73 -37
  76. package/dist/components/date-field/date-input.js +72 -45
  77. package/dist/components/date-field/index.d.ts +1 -1
  78. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.js +219 -107
  80. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  81. package/dist/components/date-range-field/date-range-input.js +83 -48
  82. package/dist/components/dialog/dialog.css +32 -32
  83. package/dist/components/dialog/dialog.d.ts +8 -7
  84. package/dist/components/dialog/dialog.js +8 -26
  85. package/dist/components/dialog/dialog.module.js +6 -6
  86. package/dist/components/divider/divider.css +6 -6
  87. package/dist/components/divider/divider.d.ts +36 -2
  88. package/dist/components/divider/divider.js +195 -29
  89. package/dist/components/divider/divider.module.js +3 -3
  90. package/dist/components/drawer/drawer.css +55 -56
  91. package/dist/components/drawer/drawer.d.ts +8 -7
  92. package/dist/components/drawer/drawer.js +8 -26
  93. package/dist/components/drawer/drawer.module.js +6 -6
  94. package/dist/components/field/field.css +34 -24
  95. package/dist/components/field/field.d.ts +60 -37
  96. package/dist/components/field/field.js +242 -157
  97. package/dist/components/field/field.module.js +12 -10
  98. package/dist/components/field/input-parts.d.ts +11 -13
  99. package/dist/components/field/input-parts.js +23 -42
  100. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  101. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  102. package/dist/components/fieldset/field-group.d.ts +1 -1
  103. package/dist/components/fieldset/field-group.js +48 -42
  104. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  105. package/dist/components/fieldset/fieldset-root.js +19 -17
  106. package/dist/components/fieldset/fieldset.d.ts +2 -2
  107. package/dist/components/fieldset/fieldset.js +2 -2
  108. package/dist/components/file-field/file-field.css +126 -60
  109. package/dist/components/file-field/file-field.js +201 -109
  110. package/dist/components/file-field/file-field.module.js +4 -4
  111. package/dist/components/file-field/file-input.d.ts +66 -40
  112. package/dist/components/file-field/file-input.js +188 -132
  113. package/dist/components/filter-bar/filter-bar.css +8 -8
  114. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  115. package/dist/components/filter-bar/filter-bar.js +23 -25
  116. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  117. package/dist/components/form/form.d.ts +19 -7
  118. package/dist/components/form/form.js +80 -29
  119. package/dist/components/icon/icon.css +2 -2
  120. package/dist/components/icon/icon.module.js +1 -1
  121. package/dist/components/link/link.css +6 -5
  122. package/dist/components/link/link.module.js +1 -1
  123. package/dist/components/menu/menu.css +52 -47
  124. package/dist/components/menu/menu.d.ts +32 -25
  125. package/dist/components/menu/menu.js +75 -124
  126. package/dist/components/menu/menu.module.js +8 -8
  127. package/dist/components/nav/nav-context.d.ts +1 -1
  128. package/dist/components/nav/nav-item-view.d.ts +10 -13
  129. package/dist/components/nav/nav-item-view.js +42 -54
  130. package/dist/components/nav/nav.css +150 -119
  131. package/dist/components/nav/nav.d.ts +61 -17
  132. package/dist/components/nav/nav.js +271 -176
  133. package/dist/components/nav/nav.module.js +17 -15
  134. package/dist/components/number-field/number-field.css +153 -64
  135. package/dist/components/number-field/number-field.d.ts +2 -2
  136. package/dist/components/number-field/number-field.js +112 -91
  137. package/dist/components/number-field/number-field.module.js +6 -6
  138. package/dist/components/number-field/number-input.d.ts +43 -23
  139. package/dist/components/number-field/number-input.js +179 -125
  140. package/dist/components/otp-field/otp-field.css +153 -60
  141. package/dist/components/otp-field/otp-field.d.ts +2 -2
  142. package/dist/components/otp-field/otp-field.js +62 -46
  143. package/dist/components/otp-field/otp-field.module.js +4 -4
  144. package/dist/components/otp-field/otp-input.d.ts +8 -6
  145. package/dist/components/otp-field/otp-input.js +92 -92
  146. package/dist/components/pagination/pagination.d.ts +46 -15
  147. package/dist/components/pagination/pagination.js +217 -224
  148. package/dist/components/password-field/password-field.css +23 -23
  149. package/dist/components/password-field/password-field.js +107 -85
  150. package/dist/components/password-field/password-field.module.js +8 -8
  151. package/dist/components/password-field/password-strength.d.ts +107 -3
  152. package/dist/components/password-field/password-strength.js +569 -92
  153. package/dist/components/photo-field/photo-field.js +137 -112
  154. package/dist/components/photo-field/photo-input.css +67 -44
  155. package/dist/components/photo-field/photo-input.d.ts +59 -15
  156. package/dist/components/photo-field/photo-input.js +173 -86
  157. package/dist/components/photo-field/photo-input.module.js +10 -8
  158. package/dist/components/popover/popover.css +41 -41
  159. package/dist/components/popover/popover.d.ts +66 -25
  160. package/dist/components/popover/popover.js +332 -217
  161. package/dist/components/popover/popover.module.js +15 -19
  162. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  163. package/dist/components/radio-group-field/radio-group.css +112 -60
  164. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  165. package/dist/components/radio-group-field/radio-group.js +66 -23
  166. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  167. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  168. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  169. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  170. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  171. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  172. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  173. package/dist/components/select-field/select.css +214 -101
  174. package/dist/components/select-field/select.d.ts +43 -11
  175. package/dist/components/select-field/select.js +194 -109
  176. package/dist/components/select-field/select.module.js +14 -14
  177. package/dist/components/skeleton/skeleton.css +4 -4
  178. package/dist/components/skeleton/skeleton.module.js +3 -3
  179. package/dist/components/stale/stale.css +15 -15
  180. package/dist/components/stale/stale.d.ts +27 -3
  181. package/dist/components/stale/stale.js +147 -66
  182. package/dist/components/stale/stale.module.js +6 -6
  183. package/dist/components/status-message/status-message.css +22 -22
  184. package/dist/components/status-message/status-message.module.js +6 -6
  185. package/dist/components/switch-field/switch-field.js +77 -57
  186. package/dist/components/switch-field/switch.css +112 -63
  187. package/dist/components/switch-field/switch.d.ts +20 -3
  188. package/dist/components/switch-field/switch.js +70 -27
  189. package/dist/components/switch-field/switch.module.js +4 -4
  190. package/dist/components/tabs/tabs.css +32 -32
  191. package/dist/components/tabs/tabs.d.ts +21 -7
  192. package/dist/components/tabs/tabs.js +73 -14
  193. package/dist/components/tabs/tabs.module.js +7 -7
  194. package/dist/components/tag/tag.css +84 -84
  195. package/dist/components/tag/tag.module.js +3 -3
  196. package/dist/components/tag-group/tag-group.css +94 -94
  197. package/dist/components/tag-group/tag-group.module.js +4 -4
  198. package/dist/components/text-field/text-field.css +159 -82
  199. package/dist/components/text-field/text-field.d.ts +1 -1
  200. package/dist/components/text-field/text-field.js +139 -110
  201. package/dist/components/text-field/text-field.module.js +9 -9
  202. package/dist/components/text-field/text-input.d.ts +81 -45
  203. package/dist/components/text-field/text-input.js +366 -217
  204. package/dist/components/textarea-field/textarea-field.css +7 -2
  205. package/dist/components/textarea-field/textarea-field.js +72 -56
  206. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  207. package/dist/components/time-field/time-field.js +153 -60
  208. package/dist/components/time-field/time-input.d.ts +21 -10
  209. package/dist/components/time-field/time-input.js +22 -11
  210. package/dist/components/toast/toast-provider.css +34 -31
  211. package/dist/components/toast/toast-provider.d.ts +63 -14
  212. package/dist/components/toast/toast-provider.js +174 -111
  213. package/dist/components/toast/toast-provider.module.js +7 -7
  214. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  215. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  216. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  217. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  218. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  220. package/dist/components/tooltip/tooltip.css +4 -4
  221. package/dist/components/tooltip/tooltip.module.js +1 -1
  222. package/dist/data-table/data-table-content.js +6 -5
  223. package/dist/data-table/data-table-parts.d.ts +41 -13
  224. package/dist/data-table/data-table-parts.js +213 -172
  225. package/dist/data-table/data-table-selection.d.ts +105 -3
  226. package/dist/data-table/data-table-selection.js +654 -145
  227. package/dist/data-table/data-table.css +125 -128
  228. package/dist/data-table/data-table.d.ts +21 -26
  229. package/dist/data-table/data-table.js +20 -23
  230. package/dist/data-table/data-table.module.js +32 -34
  231. package/dist/data-table/index.d.ts +2 -2
  232. package/dist/index.js +3 -3
  233. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  234. package/dist/lib/calendar/calendar-navigation.js +185 -118
  235. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  236. package/dist/lib/calendar/calendar-parts.js +540 -0
  237. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  238. package/dist/lib/calendar/calendar-prefab.js +311 -0
  239. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  240. package/dist/lib/calendar/calendar-year.js +139 -131
  241. package/dist/lib/calendar/temporal.css +325 -232
  242. package/dist/lib/calendar/temporal.d.ts +67 -82
  243. package/dist/lib/calendar/temporal.js +258 -569
  244. package/dist/lib/calendar/temporal.module.js +38 -38
  245. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  246. package/dist/lib/forms/use-connected-field.js +1 -1
  247. package/dist/lib/render-as.d.ts +13 -0
  248. package/dist/lib/render-as.js +46 -0
  249. package/dist/tokens.css +6 -3
  250. package/package.json +1 -1
  251. package/tokens/dark.tokens.json +6 -0
  252. package/tokens/sys.tokens.json +7 -0
  253. package/dist/components/button/close-button.d.ts +0 -16
  254. package/dist/components/button/close-button.js +0 -30
@@ -1,138 +1,138 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._root_1jpsu_3 {
3
+ ._root_1vjy3_3 {
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  flex-grow: 1;
7
7
  gap: var(--conversation-gap, var(--sys-unit-12));
8
8
  }
9
- ._group_1jpsu_9 {
9
+ ._group_1vjy3_9 {
10
10
  display: flex;
11
11
  flex-direction: column;
12
- gap: var(--sys-unit-4);
12
+ gap: var(--conversation-group-gap, var(--sys-unit-4));
13
13
  }
14
- ._groupSeparator_1jpsu_14 {
14
+ ._groupSeparator_1vjy3_14 {
15
15
  position: sticky;
16
16
  top: 0;
17
17
  align-self: center;
18
- border-radius: var(--sys-radius-full);
18
+ border-radius: var(--conversation-separator-radius, var(--sys-radius-full));
19
19
  background: var(--conversation-separator-bg, var(--sys-color-surface-high));
20
- padding: var(--sys-unit-2) var(--sys-unit-6);
20
+ padding: var(--conversation-separator-pad-y, var(--sys-unit-2)) var(--conversation-separator-pad-x, var(--sys-unit-6));
21
21
  color: var(--conversation-muted-fg, var(--sys-color-text-muted));
22
- font: var(--sys-font-label-small);
22
+ font: var(--conversation-separator-font, var(--sys-font-label-small));
23
23
  }
24
- ._message_1jpsu_24 {
24
+ ._message_1vjy3_24 {
25
25
  display: flex;
26
26
  flex-direction: column;
27
- gap: var(--sys-unit-2);
28
- max-inline-size: min(72ch, 80%);
27
+ gap: var(--conversation-message-gap, var(--sys-unit-2));
28
+ max-inline-size: var(--conversation-message-max-inline-size, min(72ch, 80%));
29
29
  }
30
- ._message_1jpsu_24 + ._message_1jpsu_24 {
31
- margin-block-start: var(--sys-unit-6);
30
+ ._message_1vjy3_24 + ._message_1vjy3_24 {
31
+ margin-block-start: var(--conversation-message-space, var(--sys-unit-6));
32
32
  }
33
- ._message_1jpsu_24[data-side=own], ._message_1jpsu_24[data-side=colleague],
34
- ._messageAuthor_1jpsu_34[data-side=own],
35
- ._messageAuthor_1jpsu_34[data-side=colleague] {
33
+ ._message_1vjy3_24[data-side=own], ._message_1vjy3_24[data-side=colleague],
34
+ ._messageAuthor_1vjy3_34[data-side=own],
35
+ ._messageAuthor_1vjy3_34[data-side=colleague] {
36
36
  align-self: flex-end;
37
37
  align-items: flex-end;
38
38
  }
39
- ._message_1jpsu_24[data-side=other],
40
- ._messageAuthor_1jpsu_34[data-side=other] {
39
+ ._message_1vjy3_24[data-side=other],
40
+ ._messageAuthor_1vjy3_34[data-side=other] {
41
41
  align-self: flex-start;
42
42
  align-items: flex-start;
43
43
  }
44
- ._messageBubble_1jpsu_44 {
44
+ ._messageBubble_1vjy3_44 {
45
45
  display: flex;
46
46
  flex-direction: column;
47
- gap: var(--sys-unit-2);
47
+ gap: var(--conversation-bubble-gap, var(--sys-unit-2));
48
48
  border-radius: var(--conversation-bubble-radius, var(--sys-radius-lg));
49
49
  background: var(--conversation-bubble-bg, var(--sys-color-surface-high));
50
- padding: var(--sys-unit-6) var(--sys-unit-8);
50
+ padding: var(--conversation-bubble-pad-y, var(--sys-unit-6)) var(--conversation-bubble-pad-x, var(--sys-unit-8));
51
51
  color: var(--conversation-bubble-fg, var(--sys-color-text));
52
52
  }
53
- ._message_1jpsu_24[data-side=own] ._messageBubble_1jpsu_44,
54
- ._message_1jpsu_24[data-side=colleague] ._messageBubble_1jpsu_44 {
53
+ ._message_1vjy3_24[data-side=own] ._messageBubble_1vjy3_44,
54
+ ._message_1vjy3_24[data-side=colleague] ._messageBubble_1vjy3_44 {
55
55
  border-start-end-radius: var(--conversation-bubble-point-radius, var(--sys-radius-xs));
56
56
  }
57
- ._message_1jpsu_24[data-side=other] ._messageBubble_1jpsu_44 {
57
+ ._message_1vjy3_24[data-side=other] ._messageBubble_1vjy3_44 {
58
58
  border-start-start-radius: var(--conversation-bubble-point-radius, var(--sys-radius-xs));
59
59
  }
60
- ._message_1jpsu_24[data-side=own] ._messageBubble_1jpsu_44 {
60
+ ._message_1vjy3_24[data-side=own] ._messageBubble_1vjy3_44 {
61
61
  background: var(--conversation-bubble-own-bg, var(--sys-color-primary-container));
62
62
  color: var(--conversation-bubble-own-fg, var(--sys-color-on-primary-container));
63
63
  }
64
- ._messageAuthor_1jpsu_34 {
64
+ ._messageAuthor_1vjy3_34 {
65
65
  display: flex;
66
66
  flex-direction: row;
67
67
  align-items: center;
68
- gap: var(--sys-unit-4);
69
- padding-inline: var(--sys-unit-8);
70
- font: var(--sys-font-label-small);
68
+ gap: var(--conversation-author-gap, var(--sys-unit-4));
69
+ padding-inline: var(--conversation-author-pad-x, var(--sys-unit-8));
70
+ font: var(--conversation-author-font, var(--sys-font-label-small));
71
71
  }
72
- ._message_1jpsu_24 + ._messageAuthor_1jpsu_34 {
73
- margin-block-start: var(--sys-unit-12);
72
+ ._message_1vjy3_24 + ._messageAuthor_1vjy3_34 {
73
+ margin-block-start: var(--conversation-author-space, var(--sys-unit-12));
74
74
  }
75
- ._messageAvatar_1jpsu_75 {
75
+ ._messageAvatar_1vjy3_75 {
76
76
  flex-shrink: 0;
77
77
  }
78
- ._messageTimestamp_1jpsu_78 {
78
+ ._messageTimestamp_1vjy3_78 {
79
79
  color: var(--conversation-muted-fg, var(--sys-color-text-muted));
80
- font: var(--sys-font-body-medium);
81
- font-size: 0.75em;
80
+ font: var(--conversation-timestamp-font, var(--sys-font-body-medium));
81
+ font-size: var(--conversation-timestamp-font-size, 0.75em);
82
82
  }
83
- ._messageReadIndicator_1jpsu_83 {
83
+ ._messageReadIndicator_1vjy3_83 {
84
84
  display: flex;
85
85
  flex-direction: row;
86
86
  align-items: center;
87
- gap: var(--sys-unit-2);
87
+ gap: var(--conversation-read-indicator-gap, var(--sys-unit-2));
88
88
  color: var(--conversation-muted-fg, var(--sys-color-text-muted));
89
- font-size: 0.75em;
89
+ font-size: var(--conversation-read-indicator-font-size, 0.75em);
90
90
  }
91
- ._statusDot_1jpsu_91 {
92
- inline-size: var(--sys-unit-4);
93
- block-size: var(--sys-unit-4);
94
- border-radius: var(--sys-radius-circle);
95
- background: transparent;
91
+ ._statusDot_1vjy3_91 {
92
+ inline-size: var(--conversation-status-dot-size, var(--sys-unit-4));
93
+ block-size: var(--conversation-status-dot-size, var(--sys-unit-4));
94
+ border-radius: var(--conversation-status-dot-radius, var(--sys-radius-circle));
95
+ background: var(--conversation-status-dot-bg, transparent);
96
96
  }
97
- ._messageReadIndicator_1jpsu_83[data-status=unread] ._statusDot_1jpsu_91 {
97
+ ._messageReadIndicator_1vjy3_83[data-status=unread] ._statusDot_1vjy3_91 {
98
98
  background: var(--conversation-unread-bg, var(--sys-color-primary));
99
99
  }
100
- ._messageContent_1jpsu_100 {
100
+ ._messageContent_1vjy3_100 {
101
101
  overflow-wrap: anywhere;
102
102
  white-space: pre-wrap;
103
103
  }
104
- ._messageContent_1jpsu_100[data-clamped] {
104
+ ._messageContent_1vjy3_100[data-clamped] {
105
105
  display: -webkit-box;
106
106
  -webkit-box-orient: vertical;
107
107
  -webkit-line-clamp: var(--line-clamp);
108
108
  line-clamp: var(--line-clamp);
109
109
  overflow: hidden;
110
110
  }
111
- ._messageFiles_1jpsu_111 {
111
+ ._messageFiles_1vjy3_111 {
112
112
  display: flex;
113
113
  flex-direction: row;
114
114
  flex-wrap: wrap;
115
115
  align-items: center;
116
- gap: var(--sys-unit-4);
116
+ gap: var(--conversation-files-gap, var(--sys-unit-4));
117
117
  }
118
- ._message_1jpsu_24[data-side=own] ._messageFiles_1jpsu_111 {
118
+ ._message_1vjy3_24[data-side=own] ._messageFiles_1vjy3_111 {
119
119
  justify-content: flex-end;
120
120
  }
121
- ._scrollToBottom_1jpsu_121 {
121
+ ._scrollToBottom_1vjy3_121 {
122
122
  position: absolute;
123
123
  inset-block-end: var(--sys-unit-8);
124
124
  inset-inline-end: var(--sys-unit-8);
125
125
  }
126
- ._emptyState_1jpsu_126 {
126
+ ._emptyState_1vjy3_126 {
127
127
  display: flex;
128
128
  flex-direction: column;
129
129
  flex-grow: 1;
130
130
  align-items: center;
131
131
  justify-content: center;
132
- gap: var(--sys-unit-6);
132
+ gap: var(--conversation-empty-gap, var(--sys-unit-6));
133
133
  color: var(--conversation-muted-fg, var(--sys-color-text-muted));
134
134
  }
135
- ._visuallyHidden_1jpsu_135 {
135
+ ._visuallyHidden_1vjy3_135 {
136
136
  position: absolute;
137
137
  overflow: hidden;
138
138
  clip-path: inset(50%);
@@ -55,11 +55,21 @@ export type ConversationMessageReadIndicatorProps = Readonly<{
55
55
  status: ConversationMessageStatus;
56
56
  /** What the status is announced as, such as "Read" or "Unread". */
57
57
  label: string;
58
- /** Replaces the dot shown for the status. */
58
+ /** What shows for the status, such as a `MessageReadDot`. */
59
59
  children?: ReactNode;
60
60
  }> & Omit<ComponentProps<"div">, "children">;
61
- /** Whether the other party has read the message: a dot, and its `label` for assistive tech. */
61
+ /** Whether the other party has read the message: its children, and its `label` for assistive tech. */
62
62
  declare const MessageReadIndicator: ({ status, label, className, children, ...props }: ConversationMessageReadIndicatorProps) => ReactNode;
63
+ export type ConversationMessageReadDotProps = useRender.ComponentProps<"span">;
64
+ /**
65
+ * The dot a `MessageReadIndicator` shows, filled while the message is unread.
66
+ *
67
+ * @example
68
+ * <Conversation.MessageReadIndicator status="unread" label="Unread">
69
+ * <Conversation.MessageReadDot />
70
+ * </Conversation.MessageReadIndicator>
71
+ */
72
+ declare const MessageReadDot: ({ className, render, ref, ...props }: ConversationMessageReadDotProps) => ReactElement;
63
73
  export type ConversationMessageContentProps = Readonly<{
64
74
  /** Cuts the text off after this many lines. */
65
75
  lineClamp?: number;
@@ -69,22 +79,36 @@ declare const MessageContent: ({ lineClamp, className, render, style: inlineStyl
69
79
  export type ConversationMessageFilesProps = useRender.ComponentProps<"div">;
70
80
  /** The files sent with a message, as a wrapping row of tiles. */
71
81
  declare const MessageFiles: ({ className, render, ...props }: ConversationMessageFilesProps) => ReactElement;
72
- export type ConversationMessageFilesDownloadAllProps = Readonly<{
73
- /** The button's accessible name and tooltip, such as "Download all files". */
74
- label: string;
75
- /** The download glyph. */
76
- children: ReactNode;
77
- }> & Omit<useRender.ComponentProps<"button">, "children">;
78
- /** An icon button that downloads every file of a message; its children are the glyph. */
79
- declare const MessageFilesDownloadAll: ({ label, children, render, ...props }: ConversationMessageFilesDownloadAllProps) => ReactElement;
80
- export type ConversationScrollToBottomProps = Readonly<{
81
- /** The button's accessible name and tooltip, such as "Scroll to latest". */
82
- label: string;
83
- /** The jump glyph, such as a down arrow. */
84
- children: ReactNode;
85
- }> & Omit<useRender.ComponentProps<"button">, "children">;
86
- /** An icon button, pinned to the log's bottom corner, that jumps to the latest message; its children are the glyph. */
87
- declare const ScrollToBottom: ({ label, children, className, render, ...props }: ConversationScrollToBottomProps) => ReactElement;
82
+ export type ConversationMessageFilesDownloadAllProps = Omit<useRender.ComponentProps<"button">, "render"> & Readonly<{
83
+ /** The button to render, such as `<IconButton label="Download all files"><DownloadIcon /></IconButton>`. */
84
+ render: useRender.RenderProp;
85
+ }>;
86
+ /**
87
+ * The button that downloads every file of a message. It renders whichever
88
+ * button it is given.
89
+ *
90
+ * @example
91
+ * <Conversation.MessageFilesDownloadAll
92
+ * onClick={downloadAll}
93
+ * render={<IconButton label="Download all files" variant="tertiary" size="sm"><DownloadIcon /></IconButton>}
94
+ * />
95
+ */
96
+ declare const MessageFilesDownloadAll: ({ render, ...props }: ConversationMessageFilesDownloadAllProps) => ReactElement;
97
+ export type ConversationScrollToBottomProps = Omit<useRender.ComponentProps<"button">, "render"> & Readonly<{
98
+ /** The button to render, such as `<IconButton label="Scroll to latest"><ArrowDownIcon /></IconButton>`. */
99
+ render: useRender.RenderProp;
100
+ }>;
101
+ /**
102
+ * The button, pinned to the log's bottom corner, that jumps to the latest
103
+ * message. It renders whichever button it is given.
104
+ *
105
+ * @example
106
+ * <Conversation.ScrollToBottom
107
+ * onClick={scrollToLatest}
108
+ * render={<IconButton label="Scroll to latest" variant="tertiary"><ArrowDownIcon /></IconButton>}
109
+ * />
110
+ */
111
+ declare const ScrollToBottom: ({ className, render, ...props }: ConversationScrollToBottomProps) => ReactElement;
88
112
  export type ConversationEmptyStateProps = useRender.ComponentProps<"div">;
89
113
  /** What the log shows before there are any messages. */
90
114
  declare const EmptyState: ({ className, render, ...props }: ConversationEmptyStateProps) => ReactElement;
@@ -136,6 +160,7 @@ export type ConversationParts = typeof Prefab & Readonly<{
136
160
  MessageAvatar: typeof MessageAvatar;
137
161
  MessageTimestamp: typeof MessageTimestamp;
138
162
  MessageReadIndicator: typeof MessageReadIndicator;
163
+ MessageReadDot: typeof MessageReadDot;
139
164
  MessageContent: typeof MessageContent;
140
165
  MessageFiles: typeof MessageFiles;
141
166
  MessageFilesDownloadAll: typeof MessageFilesDownloadAll;
@@ -1,5 +1,4 @@
1
1
  import { Avatar } from "../avatar/avatar.js";
2
- import { Button } from "../button/button.js";
3
2
  import { useLocale } from "../locale-provider/locale-provider.js";
4
3
  import { useTimeZone } from "../time-zone-provider/time-zone-provider.js";
5
4
  import conversation_module_default from "./conversation.module.js";
@@ -419,9 +418,9 @@ var MessageTimestamp = (t0) => {
419
418
  } else t4 = $[2];
420
419
  return useRender(t4);
421
420
  };
422
- /** Whether the other party has read the message: a dot, and its `label` for assistive tech. */
421
+ /** Whether the other party has read the message: its children, and its `label` for assistive tech. */
423
422
  var MessageReadIndicator = (t0) => {
424
- const $ = c(18);
423
+ const $ = c(16);
425
424
  let children;
426
425
  let className;
427
426
  let label;
@@ -449,39 +448,89 @@ var MessageReadIndicator = (t0) => {
449
448
  $[7] = t1;
450
449
  } else t1 = $[7];
451
450
  let t2;
452
- if ($[8] !== children) {
453
- t2 = children ?? /* @__PURE__ */ jsx("span", {
454
- "aria-hidden": "true",
455
- className: conversation_module_default.statusDot
451
+ if ($[8] !== label) {
452
+ t2 = /* @__PURE__ */ jsx("span", {
453
+ className: conversation_module_default.visuallyHidden,
454
+ children: label
456
455
  });
457
- $[8] = children;
456
+ $[8] = label;
458
457
  $[9] = t2;
459
458
  } else t2 = $[9];
460
459
  let t3;
461
- if ($[10] !== label) {
462
- t3 = /* @__PURE__ */ jsx("span", {
463
- className: conversation_module_default.visuallyHidden,
464
- children: label
465
- });
466
- $[10] = label;
467
- $[11] = t3;
468
- } else t3 = $[11];
469
- let t4;
470
- if ($[12] !== props || $[13] !== status || $[14] !== t1 || $[15] !== t2 || $[16] !== t3) {
471
- t4 = /* @__PURE__ */ jsxs("div", {
460
+ if ($[10] !== children || $[11] !== props || $[12] !== status || $[13] !== t1 || $[14] !== t2) {
461
+ t3 = /* @__PURE__ */ jsxs("div", {
472
462
  className: t1,
473
463
  "data-status": status,
474
464
  ...props,
475
- children: [t2, t3]
465
+ children: [children, t2]
476
466
  });
477
- $[12] = props;
478
- $[13] = status;
479
- $[14] = t1;
480
- $[15] = t2;
481
- $[16] = t3;
482
- $[17] = t4;
483
- } else t4 = $[17];
484
- return t4;
467
+ $[10] = children;
468
+ $[11] = props;
469
+ $[12] = status;
470
+ $[13] = t1;
471
+ $[14] = t2;
472
+ $[15] = t3;
473
+ } else t3 = $[15];
474
+ return t3;
475
+ };
476
+ /**
477
+ * The dot a `MessageReadIndicator` shows, filled while the message is unread.
478
+ *
479
+ * @example
480
+ * <Conversation.MessageReadIndicator status="unread" label="Unread">
481
+ * <Conversation.MessageReadDot />
482
+ * </Conversation.MessageReadIndicator>
483
+ */
484
+ var MessageReadDot = (t0) => {
485
+ const $ = c(14);
486
+ let className;
487
+ let props;
488
+ let ref;
489
+ let render;
490
+ if ($[0] !== t0) {
491
+ ({className, render, ref, ...props} = t0);
492
+ $[0] = t0;
493
+ $[1] = className;
494
+ $[2] = props;
495
+ $[3] = ref;
496
+ $[4] = render;
497
+ } else {
498
+ className = $[1];
499
+ props = $[2];
500
+ ref = $[3];
501
+ render = $[4];
502
+ }
503
+ let t1;
504
+ if ($[5] !== className) {
505
+ t1 = clsx(conversation_module_default.statusDot, className);
506
+ $[5] = className;
507
+ $[6] = t1;
508
+ } else t1 = $[6];
509
+ let t2;
510
+ if ($[7] !== props || $[8] !== t1) {
511
+ t2 = {
512
+ "aria-hidden": true,
513
+ ...props,
514
+ className: t1
515
+ };
516
+ $[7] = props;
517
+ $[8] = t1;
518
+ $[9] = t2;
519
+ } else t2 = $[9];
520
+ let t3;
521
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
522
+ t3 = {
523
+ defaultTagName: "span",
524
+ render,
525
+ ref,
526
+ props: t2
527
+ };
528
+ $[10] = ref;
529
+ $[11] = render;
530
+ $[12] = t2;
531
+ $[13] = t3;
532
+ } else t3 = $[13];
533
+ return useRender(t3);
485
534
  };
486
535
  /** A message's text, wrapped anywhere and kept as typed. */
487
536
  var MessageContent = (t0) => {
@@ -588,34 +637,28 @@ var MessageFiles = (t0) => {
588
637
  } else t5 = $[8];
589
638
  return t4(t5);
590
639
  };
591
- /** An icon button that downloads every file of a message; its children are the glyph. */
640
+ /**
641
+ * The button that downloads every file of a message. It renders whichever
642
+ * button it is given.
643
+ *
644
+ * @example
645
+ * <Conversation.MessageFilesDownloadAll
646
+ * onClick={downloadAll}
647
+ * render={<IconButton label="Download all files" variant="tertiary" size="sm"><DownloadIcon /></IconButton>}
648
+ * />
649
+ */
592
650
  var MessageFilesDownloadAll = (t0) => {
593
- const $ = c(13);
651
+ const $ = c(9);
594
652
  let t1;
595
653
  let t2;
596
654
  let t3;
597
655
  let t4;
598
656
  if ($[0] !== t0) {
599
- const { label, children, render, ...props } = t0;
657
+ const { render, ...props } = t0;
600
658
  t4 = useRender;
601
659
  t1 = "button";
602
- if ($[5] !== children || $[6] !== label || $[7] !== render) {
603
- t2 = render ?? /* @__PURE__ */ jsx(Button, {
604
- variant: "tertiary",
605
- size: "sm",
606
- iconOnly: true,
607
- icon: children,
608
- label
609
- });
610
- $[5] = children;
611
- $[6] = label;
612
- $[7] = render;
613
- $[8] = t2;
614
- } else t2 = $[8];
615
- t3 = mergeProps({
616
- type: "button",
617
- children: render === void 0 ? void 0 : children
618
- }, props);
660
+ t2 = render;
661
+ t3 = mergeProps({ type: "button" }, props);
619
662
  $[0] = t0;
620
663
  $[1] = t1;
621
664
  $[2] = t2;
@@ -628,46 +671,43 @@ var MessageFilesDownloadAll = (t0) => {
628
671
  t4 = $[4];
629
672
  }
630
673
  let t5;
631
- if ($[9] !== t1 || $[10] !== t2 || $[11] !== t3) {
674
+ if ($[5] !== t1 || $[6] !== t2 || $[7] !== t3) {
632
675
  t5 = {
633
676
  defaultTagName: t1,
634
677
  render: t2,
635
678
  props: t3
636
679
  };
637
- $[9] = t1;
638
- $[10] = t2;
639
- $[11] = t3;
640
- $[12] = t5;
641
- } else t5 = $[12];
680
+ $[5] = t1;
681
+ $[6] = t2;
682
+ $[7] = t3;
683
+ $[8] = t5;
684
+ } else t5 = $[8];
642
685
  return t4(t5);
643
686
  };
644
- /** An icon button, pinned to the log's bottom corner, that jumps to the latest message; its children are the glyph. */
687
+ /**
688
+ * The button, pinned to the log's bottom corner, that jumps to the latest
689
+ * message. It renders whichever button it is given.
690
+ *
691
+ * @example
692
+ * <Conversation.ScrollToBottom
693
+ * onClick={scrollToLatest}
694
+ * render={<IconButton label="Scroll to latest" variant="tertiary"><ArrowDownIcon /></IconButton>}
695
+ * />
696
+ */
645
697
  var ScrollToBottom = (t0) => {
646
- const $ = c(13);
698
+ const $ = c(9);
647
699
  let t1;
648
700
  let t2;
649
701
  let t3;
650
702
  let t4;
651
703
  if ($[0] !== t0) {
652
- const { label, children, className, render, ...props } = t0;
704
+ const { className, render, ...props } = t0;
653
705
  t4 = useRender;
654
706
  t1 = "button";
655
- if ($[5] !== children || $[6] !== label || $[7] !== render) {
656
- t2 = render ?? /* @__PURE__ */ jsx(Button, {
657
- variant: "tertiary",
658
- iconOnly: true,
659
- icon: children,
660
- label
661
- });
662
- $[5] = children;
663
- $[6] = label;
664
- $[7] = render;
665
- $[8] = t2;
666
- } else t2 = $[8];
707
+ t2 = render;
667
708
  t3 = mergeProps({
668
709
  type: "button",
669
- className: clsx(conversation_module_default.scrollToBottom, className),
670
- children: render === void 0 ? void 0 : children
710
+ className: clsx(conversation_module_default.scrollToBottom, className)
671
711
  }, props);
672
712
  $[0] = t0;
673
713
  $[1] = t1;
@@ -681,17 +721,17 @@ var ScrollToBottom = (t0) => {
681
721
  t4 = $[4];
682
722
  }
683
723
  let t5;
684
- if ($[9] !== t1 || $[10] !== t2 || $[11] !== t3) {
724
+ if ($[5] !== t1 || $[6] !== t2 || $[7] !== t3) {
685
725
  t5 = {
686
726
  defaultTagName: t1,
687
727
  render: t2,
688
728
  props: t3
689
729
  };
690
- $[9] = t1;
691
- $[10] = t2;
692
- $[11] = t3;
693
- $[12] = t5;
694
- } else t5 = $[12];
730
+ $[5] = t1;
731
+ $[6] = t2;
732
+ $[7] = t3;
733
+ $[8] = t5;
734
+ } else t5 = $[8];
695
735
  return t4(t5);
696
736
  };
697
737
  /** What the log shows before there are any messages. */
@@ -797,7 +837,8 @@ var Prefab = (t0) => {
797
837
  /* @__PURE__ */ jsx(MessageTimestamp, { date: first.sentAt }),
798
838
  status === void 0 ? null : /* @__PURE__ */ jsx(MessageReadIndicator, {
799
839
  status,
800
- label: statusLabel[status]
840
+ label: statusLabel[status],
841
+ children: /* @__PURE__ */ jsx(MessageReadDot, {})
801
842
  })
802
843
  ] }), burst.items.map((message_1) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(MessageBubble, { children: /* @__PURE__ */ jsx(MessageContent, {
803
844
  lineClamp,
@@ -858,6 +899,7 @@ var Conversation = Object.assign(Prefab, {
858
899
  MessageAvatar,
859
900
  MessageTimestamp,
860
901
  MessageReadIndicator,
902
+ MessageReadDot,
861
903
  MessageContent,
862
904
  MessageFiles,
863
905
  MessageFilesDownloadAll,
@@ -1,19 +1,19 @@
1
1
  import './conversation.css';// src/components/conversation/conversation.module.scss
2
- var root = "_root_1jpsu_3";
3
- var group = "_group_1jpsu_9";
4
- var groupSeparator = "_groupSeparator_1jpsu_14";
5
- var message = "_message_1jpsu_24";
6
- var messageAuthor = "_messageAuthor_1jpsu_34";
7
- var messageBubble = "_messageBubble_1jpsu_44";
8
- var messageAvatar = "_messageAvatar_1jpsu_75";
9
- var messageTimestamp = "_messageTimestamp_1jpsu_78";
10
- var messageReadIndicator = "_messageReadIndicator_1jpsu_83";
11
- var statusDot = "_statusDot_1jpsu_91";
12
- var messageContent = "_messageContent_1jpsu_100";
13
- var messageFiles = "_messageFiles_1jpsu_111";
14
- var scrollToBottom = "_scrollToBottom_1jpsu_121";
15
- var emptyState = "_emptyState_1jpsu_126";
16
- var visuallyHidden = "_visuallyHidden_1jpsu_135";
2
+ var root = "_root_1vjy3_3";
3
+ var group = "_group_1vjy3_9";
4
+ var groupSeparator = "_groupSeparator_1vjy3_14";
5
+ var message = "_message_1vjy3_24";
6
+ var messageAuthor = "_messageAuthor_1vjy3_34";
7
+ var messageBubble = "_messageBubble_1vjy3_44";
8
+ var messageAvatar = "_messageAvatar_1vjy3_75";
9
+ var messageTimestamp = "_messageTimestamp_1vjy3_78";
10
+ var messageReadIndicator = "_messageReadIndicator_1vjy3_83";
11
+ var statusDot = "_statusDot_1vjy3_91";
12
+ var messageContent = "_messageContent_1vjy3_100";
13
+ var messageFiles = "_messageFiles_1vjy3_111";
14
+ var scrollToBottom = "_scrollToBottom_1vjy3_121";
15
+ var emptyState = "_emptyState_1vjy3_126";
16
+ var visuallyHidden = "_visuallyHidden_1vjy3_135";
17
17
  var conversation_module_default = {
18
18
  root,
19
19
  group,
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import type { CalendarIcons, CalendarLabels } from "../../lib/calendar/temporal.tsx";
2
+ import { type CalendarIcons, type CalendarLabels } from "../../lib/calendar/calendar-prefab.tsx";
3
3
  import { type FieldBlurHandler, type FieldProps } from "../field/index.ts";
4
4
  export type DateFieldProps = FieldProps & CalendarLabels & CalendarIcons & Readonly<{
5
5
  /** Accessible name of the button that opens the calendar, such as "Open calendar". */