@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,78 +1,78 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._backdrop_1ki7n_3 {
4
- --overlay-dim: 0.4;
3
+ ._backdrop_jzq5w_3 {
4
+ --_overlay-dim: 0.4;
5
5
  --overlay-opacity: 1;
6
6
  position: fixed;
7
7
  inset: 0;
8
- background-color: rgb(0, 0, 0, var(--overlay-dim));
9
- backdrop-filter: blur(1px);
8
+ background-color: var(--overlay-bg, rgb(0, 0, 0, var(--overlay-dim, var(--_overlay-dim))));
9
+ backdrop-filter: var(--overlay-backdrop-filter, blur(1px));
10
10
  opacity: var(--overlay-opacity);
11
11
  }
12
12
  @media not (prefers-reduced-motion) {
13
- ._backdrop_1ki7n_3 {
13
+ ._backdrop_jzq5w_3 {
14
14
  transition: opacity var(--sys-motion-short) var(--sys-motion-standard);
15
15
  }
16
16
  }
17
- html[data-theme="dark"] ._backdrop_1ki7n_3 {
18
- --overlay-dim: 0.6;
17
+ html[data-theme="dark"] ._backdrop_jzq5w_3 {
18
+ --_overlay-dim: 0.6;
19
19
  }
20
20
  @media (prefers-color-scheme: dark) {
21
- html:not([data-theme="light"]) ._backdrop_1ki7n_3 {
22
- --overlay-dim: 0.6;
21
+ html:not([data-theme="light"]) ._backdrop_jzq5w_3 {
22
+ --_overlay-dim: 0.6;
23
23
  }
24
24
  }
25
- ._backdrop_1ki7n_3[data-starting-style], ._backdrop_1ki7n_3[data-ending-style] {
25
+ ._backdrop_jzq5w_3[data-starting-style], ._backdrop_jzq5w_3[data-ending-style] {
26
26
  opacity: 0;
27
27
  }
28
- ._popup_1ki7n_28 {
28
+ ._popup_jzq5w_28 {
29
29
  position: fixed;
30
30
  top: 50%;
31
31
  left: 50%;
32
32
  box-sizing: border-box;
33
- inline-size: min(32rem, 100dvw - var(--sys-unit-16));
33
+ inline-size: min(var(--dialog-inline-size, 32rem), var(--dialog-max-inline-size, calc(100dvw - var(--sys-unit-16))));
34
34
  border: none;
35
- border-radius: var(--sys-radius-xl);
36
- background: var(--sys-color-surface-overlay);
37
- color: var(--sys-color-text);
35
+ border-radius: var(--dialog-radius, var(--sys-radius-xl));
36
+ background: var(--dialog-bg, var(--sys-color-surface-overlay));
37
+ color: var(--dialog-fg, var(--sys-color-text));
38
38
  transform: translate(-50%, -50%);
39
39
  }
40
40
  @media not (prefers-reduced-motion) {
41
- ._popup_1ki7n_28 {
41
+ ._popup_jzq5w_28 {
42
42
  transition: opacity var(--sys-motion-short) var(--sys-motion-standard), transform var(--sys-motion-short) var(--sys-motion-emphasized);
43
43
  }
44
44
  }
45
- ._popup_1ki7n_28[data-starting-style], ._popup_1ki7n_28[data-ending-style] {
45
+ ._popup_jzq5w_28[data-starting-style], ._popup_jzq5w_28[data-ending-style] {
46
46
  opacity: 0;
47
47
  transform: translate(-50%, -48%) scale(0.96);
48
48
  }
49
- ._popup_1ki7n_28 {
49
+ ._popup_jzq5w_28 {
50
50
  display: flex;
51
51
  flex-direction: column;
52
- max-block-size: calc(100dvh - var(--sys-unit-24));
52
+ max-block-size: var(--dialog-max-block-size, calc(100dvh - var(--sys-unit-24)));
53
53
  }
54
- ._header_1ki7n_54 {
54
+ ._header_jzq5w_54 {
55
55
  display: flex;
56
56
  align-items: flex-start;
57
57
  justify-content: space-between;
58
- gap: var(--sys-unit-10);
59
- padding: var(--sys-unit-20) var(--sys-unit-20) var(--sys-unit-8);
58
+ gap: var(--dialog-header-gap, var(--sys-unit-10));
59
+ padding: var(--dialog-header-pad, var(--sys-unit-20) var(--sys-unit-20) var(--sys-unit-8));
60
60
  }
61
- ._title_1ki7n_61 {
62
- color: var(--sys-color-text);
63
- font: var(--sys-font-heading-small);
61
+ ._title_jzq5w_61 {
62
+ color: var(--dialog-title-fg, var(--dialog-fg, var(--sys-color-text)));
63
+ font: var(--dialog-title-font, var(--sys-font-heading-small));
64
64
  }
65
- ._body_1ki7n_65 {
65
+ ._body_jzq5w_65 {
66
66
  overflow-y: auto;
67
- padding: var(--sys-unit-8) var(--sys-unit-20);
68
- color: var(--sys-color-text);
69
- font: var(--sys-font-body-medium);
67
+ padding: var(--dialog-body-pad, var(--sys-unit-8) var(--sys-unit-20));
68
+ color: var(--dialog-body-fg, var(--dialog-fg, var(--sys-color-text)));
69
+ font: var(--dialog-body-font, var(--sys-font-body-medium));
70
70
  }
71
- ._footer_1ki7n_71 {
71
+ ._footer_jzq5w_71 {
72
72
  display: flex;
73
73
  flex-wrap: wrap;
74
74
  justify-content: end;
75
- gap: var(--sys-unit-8);
76
- padding: var(--sys-unit-12) var(--sys-unit-20) var(--sys-unit-20);
75
+ gap: var(--dialog-footer-gap, var(--sys-unit-8));
76
+ padding: var(--dialog-footer-pad, var(--sys-unit-12) var(--sys-unit-20) var(--sys-unit-20));
77
77
  }
78
78
  }
@@ -1,6 +1,5 @@
1
1
  import { Dialog as BaseDialog } from "@base-ui/react/dialog";
2
2
  import type { ComponentProps, ReactNode } from "react";
3
- import { type CloseButtonProps } from "../button/close-button.tsx";
4
3
  export type DialogRootProps<Payload = unknown> = Omit<BaseDialog.Root.Props<Payload>, "open" | "defaultOpen" | "onOpenChange" | "modal" | "children"> & Readonly<{
5
4
  /** Whether the dialog is open. Leave it out for a dialog that keeps its own state. */
6
5
  open?: boolean;
@@ -22,11 +21,8 @@ declare const Popup: ({ className, ...props }: ComponentProps<typeof BaseDialog.
22
21
  /** The dialog's heading, which names it. */
23
22
  declare const Title: ({ className, ...props }: ComponentProps<typeof BaseDialog.Title>) => ReactNode;
24
23
  export type DialogHeaderProps = ComponentProps<"div">;
25
- /** The title's line. Put a `Dialog.CloseButton` in it to trail a way out. */
24
+ /** The title's line. Put a `Dialog.Close` in it to trail a way out. */
26
25
  declare const Header: ({ className, ...props }: DialogHeaderProps) => ReactNode;
27
- export type DialogCloseButtonProps = Pick<CloseButtonProps, "closeLabel" | "icon">;
28
- /** The icon-only way out, for a header or a footer, drawn with the app's `icon`. */
29
- declare const CloseButton: ({ closeLabel, icon, }: DialogCloseButtonProps) => ReactNode;
30
26
  export type DialogContentProps = ComponentProps<typeof BaseDialog.Popup> & Readonly<{
31
27
  /** The element the dialog is portalled into. @default document.body */
32
28
  container?: BaseDialog.Portal.Props["container"];
@@ -47,7 +43,6 @@ type DialogParts = Readonly<{
47
43
  Title: typeof Title;
48
44
  Description: typeof BaseDialog.Description;
49
45
  Close: typeof BaseDialog.Close;
50
- CloseButton: typeof CloseButton;
51
46
  Header: typeof Header;
52
47
  Body: typeof Body;
53
48
  Footer: typeof Footer;
@@ -63,7 +58,13 @@ type DialogParts = Readonly<{
63
58
  * <Dialog.Content>
64
59
  * <Dialog.Header>
65
60
  * <Dialog.Title>Discard changes?</Dialog.Title>
66
- * <Dialog.CloseButton closeLabel="Close" icon={<CloseIcon />} />
61
+ * <Dialog.Close
62
+ * render={
63
+ * <IconButton label="Close" variant="tertiary">
64
+ * <CloseIcon />
65
+ * </IconButton>
66
+ * }
67
+ * />
67
68
  * </Dialog.Header>
68
69
  * <Dialog.Body>
69
70
  * <Dialog.Description>Your edits will be lost.</Dialog.Description>
@@ -1,4 +1,3 @@
1
- import { CloseButton as CloseButton$1 } from "../button/close-button.js";
2
1
  import dialog_module_default from "./dialog.module.js";
3
2
  import { c } from "react/compiler-runtime";
4
3
  import { clsx } from "clsx";
@@ -112,7 +111,7 @@ var Title = (t0) => {
112
111
  } else t2 = $[7];
113
112
  return t2;
114
113
  };
115
- /** The title's line. Put a `Dialog.CloseButton` in it to trail a way out. */
114
+ /** The title's line. Put a `Dialog.Close` in it to trail a way out. */
116
115
  var Header = (t0) => {
117
116
  const $ = c(8);
118
117
  let className;
@@ -144,28 +143,6 @@ var Header = (t0) => {
144
143
  } else t2 = $[7];
145
144
  return t2;
146
145
  };
147
- /** The icon-only way out, for a header or a footer, drawn with the app's `icon`. */
148
- var CloseButton = (t0) => {
149
- const $ = c(4);
150
- const { closeLabel, icon } = t0;
151
- let t1;
152
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
153
- t1 = /* @__PURE__ */ jsx(Dialog.Close, {});
154
- $[0] = t1;
155
- } else t1 = $[0];
156
- let t2;
157
- if ($[1] !== closeLabel || $[2] !== icon) {
158
- t2 = /* @__PURE__ */ jsx(CloseButton$1, {
159
- closeLabel,
160
- icon,
161
- render: t1
162
- });
163
- $[1] = closeLabel;
164
- $[2] = icon;
165
- $[3] = t2;
166
- } else t2 = $[3];
167
- return t2;
168
- };
169
146
  /** `Portal`, `Backdrop` and `Popup` in one: the dialog's surface, above the page. */
170
147
  var Content = (t0) => {
171
148
  const $ = c(9);
@@ -277,7 +254,13 @@ var Footer = (t0) => {
277
254
  * <Dialog.Content>
278
255
  * <Dialog.Header>
279
256
  * <Dialog.Title>Discard changes?</Dialog.Title>
280
- * <Dialog.CloseButton closeLabel="Close" icon={<CloseIcon />} />
257
+ * <Dialog.Close
258
+ * render={
259
+ * <IconButton label="Close" variant="tertiary">
260
+ * <CloseIcon />
261
+ * </IconButton>
262
+ * }
263
+ * />
281
264
  * </Dialog.Header>
282
265
  * <Dialog.Body>
283
266
  * <Dialog.Description>Your edits will be lost.</Dialog.Description>
@@ -299,7 +282,6 @@ var Dialog$1 = {
299
282
  Title,
300
283
  Description: Dialog.Description,
301
284
  Close: Dialog.Close,
302
- CloseButton,
303
285
  Header,
304
286
  Body,
305
287
  Footer,
@@ -1,10 +1,10 @@
1
1
  import './dialog.css';// src/components/dialog/dialog.module.scss
2
- var backdrop = "_backdrop_1ki7n_3";
3
- var popup = "_popup_1ki7n_28";
4
- var header = "_header_1ki7n_54";
5
- var title = "_title_1ki7n_61";
6
- var body = "_body_1ki7n_65";
7
- var footer = "_footer_1ki7n_71";
2
+ var backdrop = "_backdrop_jzq5w_3";
3
+ var popup = "_popup_jzq5w_28";
4
+ var header = "_header_jzq5w_54";
5
+ var title = "_title_jzq5w_61";
6
+ var body = "_body_jzq5w_65";
7
+ var footer = "_footer_jzq5w_71";
8
8
  var dialog_module_default = {
9
9
  backdrop,
10
10
  popup,
@@ -1,16 +1,16 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._container_1y7jl_3 {
3
+ ._container_1125n_3 {
4
4
  margin-block: var(--divider-space, var(--sys-unit-6));
5
5
  }
6
- ._divider_1y7jl_6 {
6
+ ._divider_1125n_6 {
7
7
  inline-size: 100%;
8
8
  border: none;
9
- border-block-start: 1px solid var(--divider-color, var(--sys-color-border));
9
+ border-block-start: var(--divider-border-width, 1px) solid var(--divider-color, var(--sys-color-border));
10
10
  }
11
- ._subtitle_1y7jl_11 {
12
- margin-block-start: var(--sys-unit-4);
11
+ ._subtitle_1125n_11 {
12
+ margin-block-start: var(--divider-subtitle-space, var(--sys-unit-4));
13
13
  color: var(--divider-subtitle-fg, var(--sys-color-text-muted));
14
- font: var(--sys-font-body-small);
14
+ font: var(--divider-subtitle-font, var(--sys-font-body-small));
15
15
  }
16
16
  }
@@ -1,13 +1,47 @@
1
- import type { ReactNode } from "react";
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import type { ReactElement, ReactNode } from "react";
3
+ export type DividerRootProps = useRender.ComponentProps<"div">;
4
+ /**
5
+ * The space around a divider, holding its `Rule` and any `Label`.
6
+ *
7
+ * @example
8
+ * <Divider.Root><Divider.Rule /></Divider.Root>
9
+ */
10
+ declare const Root: ({ render, className, ref, ...props }: DividerRootProps) => ReactElement;
11
+ export type DividerRuleProps = useRender.ComponentProps<"hr">;
12
+ /**
13
+ * The rule itself, a bare `<hr>`.
14
+ *
15
+ * @example
16
+ * <Divider.Rule />
17
+ */
18
+ declare const Rule: ({ render, className, ref, ...props }: DividerRuleProps) => ReactElement;
19
+ export type DividerLabelProps = useRender.ComponentProps<"p">;
20
+ /**
21
+ * A short line under the rule, naming what follows it.
22
+ *
23
+ * @example
24
+ * <Divider.Label>Earlier messages</Divider.Label>
25
+ */
26
+ declare const Label: ({ render, className, ref, ...props }: DividerLabelProps) => ReactElement;
2
27
  export type DividerProps = Readonly<{
3
28
  /** A short line under the rule, naming what follows it. */
4
29
  subtitle?: string;
5
30
  className?: string;
6
31
  }>;
32
+ declare const Prefab: ({ subtitle, className, }: DividerProps) => ReactNode;
33
+ /** The parts of a divider, hanging off its prefab. */
34
+ export type DividerParts = typeof Prefab & Readonly<{
35
+ Root: typeof Root;
36
+ Rule: typeof Rule;
37
+ Label: typeof Label;
38
+ }>;
7
39
  /**
8
40
  * A horizontal rule between two groups, with an optional subtitle under it.
41
+ * The parts hanging off it compose one by hand.
9
42
  *
10
43
  * @example
11
44
  * <Divider subtitle="Earlier messages" />
12
45
  */
13
- export declare const Divider: ({ subtitle, className, }: DividerProps) => ReactNode;
46
+ export declare const Divider: DividerParts;
47
+ export {};
@@ -1,47 +1,213 @@
1
1
  import divider_module_default from "./divider.module.js";
2
2
  import { c } from "react/compiler-runtime";
3
+ import { useRender } from "@base-ui/react/use-render";
3
4
  import { clsx } from "clsx";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  // src/components/divider/divider.tsx
6
7
  /**
7
- * A horizontal rule between two groups, with an optional subtitle under it.
8
+ * The space around a divider, holding its `Rule` and any `Label`.
8
9
  *
9
10
  * @example
10
- * <Divider subtitle="Earlier messages" />
11
+ * <Divider.Root><Divider.Rule /></Divider.Root>
11
12
  */
12
- var Divider = (t0) => {
13
- const $ = c(8);
14
- const { subtitle, className } = t0;
13
+ var Root = (t0) => {
14
+ const $ = c(14);
15
+ let className;
16
+ let props;
17
+ let ref;
18
+ let render;
19
+ if ($[0] !== t0) {
20
+ ({render, className, ref, ...props} = t0);
21
+ $[0] = t0;
22
+ $[1] = className;
23
+ $[2] = props;
24
+ $[3] = ref;
25
+ $[4] = render;
26
+ } else {
27
+ className = $[1];
28
+ props = $[2];
29
+ ref = $[3];
30
+ render = $[4];
31
+ }
15
32
  let t1;
16
- if ($[0] !== className) {
33
+ if ($[5] !== className) {
17
34
  t1 = clsx(divider_module_default.container, className);
18
- $[0] = className;
19
- $[1] = t1;
20
- } else t1 = $[1];
35
+ $[5] = className;
36
+ $[6] = t1;
37
+ } else t1 = $[6];
38
+ let t2;
39
+ if ($[7] !== props || $[8] !== t1) {
40
+ t2 = {
41
+ ...props,
42
+ className: t1
43
+ };
44
+ $[7] = props;
45
+ $[8] = t1;
46
+ $[9] = t2;
47
+ } else t2 = $[9];
48
+ let t3;
49
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
50
+ t3 = {
51
+ defaultTagName: "div",
52
+ render,
53
+ ref,
54
+ props: t2
55
+ };
56
+ $[10] = ref;
57
+ $[11] = render;
58
+ $[12] = t2;
59
+ $[13] = t3;
60
+ } else t3 = $[13];
61
+ return useRender(t3);
62
+ };
63
+ /**
64
+ * The rule itself, a bare `<hr>`.
65
+ *
66
+ * @example
67
+ * <Divider.Rule />
68
+ */
69
+ var Rule = (t0) => {
70
+ const $ = c(14);
71
+ let className;
72
+ let props;
73
+ let ref;
74
+ let render;
75
+ if ($[0] !== t0) {
76
+ ({render, className, ref, ...props} = t0);
77
+ $[0] = t0;
78
+ $[1] = className;
79
+ $[2] = props;
80
+ $[3] = ref;
81
+ $[4] = render;
82
+ } else {
83
+ className = $[1];
84
+ props = $[2];
85
+ ref = $[3];
86
+ render = $[4];
87
+ }
88
+ let t1;
89
+ if ($[5] !== className) {
90
+ t1 = clsx(divider_module_default.divider, className);
91
+ $[5] = className;
92
+ $[6] = t1;
93
+ } else t1 = $[6];
21
94
  let t2;
22
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
23
- t2 = /* @__PURE__ */ jsx("hr", { className: divider_module_default.divider });
95
+ if ($[7] !== props || $[8] !== t1) {
96
+ t2 = {
97
+ ...props,
98
+ className: t1
99
+ };
100
+ $[7] = props;
101
+ $[8] = t1;
102
+ $[9] = t2;
103
+ } else t2 = $[9];
104
+ let t3;
105
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
106
+ t3 = {
107
+ defaultTagName: "hr",
108
+ render,
109
+ ref,
110
+ props: t2
111
+ };
112
+ $[10] = ref;
113
+ $[11] = render;
114
+ $[12] = t2;
115
+ $[13] = t3;
116
+ } else t3 = $[13];
117
+ return useRender(t3);
118
+ };
119
+ /**
120
+ * A short line under the rule, naming what follows it.
121
+ *
122
+ * @example
123
+ * <Divider.Label>Earlier messages</Divider.Label>
124
+ */
125
+ var Label = (t0) => {
126
+ const $ = c(14);
127
+ let className;
128
+ let props;
129
+ let ref;
130
+ let render;
131
+ if ($[0] !== t0) {
132
+ ({render, className, ref, ...props} = t0);
133
+ $[0] = t0;
134
+ $[1] = className;
135
+ $[2] = props;
136
+ $[3] = ref;
137
+ $[4] = render;
138
+ } else {
139
+ className = $[1];
140
+ props = $[2];
141
+ ref = $[3];
142
+ render = $[4];
143
+ }
144
+ let t1;
145
+ if ($[5] !== className) {
146
+ t1 = clsx(divider_module_default.subtitle, className);
147
+ $[5] = className;
148
+ $[6] = t1;
149
+ } else t1 = $[6];
150
+ let t2;
151
+ if ($[7] !== props || $[8] !== t1) {
152
+ t2 = {
153
+ ...props,
154
+ className: t1
155
+ };
156
+ $[7] = props;
157
+ $[8] = t1;
158
+ $[9] = t2;
159
+ } else t2 = $[9];
160
+ let t3;
161
+ if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
162
+ t3 = {
163
+ defaultTagName: "p",
164
+ render,
165
+ ref,
166
+ props: t2
167
+ };
168
+ $[10] = ref;
169
+ $[11] = render;
170
+ $[12] = t2;
171
+ $[13] = t3;
172
+ } else t3 = $[13];
173
+ return useRender(t3);
174
+ };
175
+ var Prefab = (t0) => {
176
+ const $ = c(6);
177
+ const { subtitle, className } = t0;
178
+ let t1;
179
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
180
+ t1 = /* @__PURE__ */ jsx(Rule, {});
181
+ $[0] = t1;
182
+ } else t1 = $[0];
183
+ let t2;
184
+ if ($[1] !== subtitle) {
185
+ t2 = subtitle === void 0 ? null : /* @__PURE__ */ jsx(Label, { children: subtitle });
186
+ $[1] = subtitle;
24
187
  $[2] = t2;
25
188
  } else t2 = $[2];
26
189
  let t3;
27
- if ($[3] !== subtitle) {
28
- t3 = subtitle === void 0 ? null : /* @__PURE__ */ jsx("p", {
29
- className: divider_module_default.subtitle,
30
- children: subtitle
190
+ if ($[3] !== className || $[4] !== t2) {
191
+ t3 = /* @__PURE__ */ jsxs(Root, {
192
+ className,
193
+ children: [t1, t2]
31
194
  });
32
- $[3] = subtitle;
33
- $[4] = t3;
34
- } else t3 = $[4];
35
- let t4;
36
- if ($[5] !== t1 || $[6] !== t3) {
37
- t4 = /* @__PURE__ */ jsxs("div", {
38
- className: t1,
39
- children: [t2, t3]
40
- });
41
- $[5] = t1;
42
- $[6] = t3;
43
- $[7] = t4;
44
- } else t4 = $[7];
45
- return t4;
195
+ $[3] = className;
196
+ $[4] = t2;
197
+ $[5] = t3;
198
+ } else t3 = $[5];
199
+ return t3;
46
200
  };
201
+ /**
202
+ * A horizontal rule between two groups, with an optional subtitle under it.
203
+ * The parts hanging off it compose one by hand.
204
+ *
205
+ * @example
206
+ * <Divider subtitle="Earlier messages" />
207
+ */
208
+ var Divider = Object.assign(Prefab, {
209
+ Root,
210
+ Rule,
211
+ Label
212
+ });
47
213
  export { Divider };
@@ -1,7 +1,7 @@
1
1
  import './divider.css';// src/components/divider/divider.module.scss
2
- var container = "_container_1y7jl_3";
3
- var divider = "_divider_1y7jl_6";
4
- var subtitle = "_subtitle_1y7jl_11";
2
+ var container = "_container_1125n_3";
3
+ var divider = "_divider_1125n_6";
4
+ var subtitle = "_subtitle_1125n_11";
5
5
  var divider_module_default = {
6
6
  container,
7
7
  divider,