@igne-agency/react-web-ui 0.4.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 (257) hide show
  1. package/dist/base.css +3 -0
  2. package/dist/components/accordion/accordion.css +21 -21
  3. package/dist/components/accordion/accordion.d.ts +17 -4
  4. package/dist/components/accordion/accordion.js +83 -36
  5. package/dist/components/accordion/accordion.module.js +6 -6
  6. package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
  7. package/dist/components/attachment-tile/attachment-preview.js +388 -119
  8. package/dist/components/attachment-tile/attachment-tile.css +31 -25
  9. package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
  10. package/dist/components/attachment-tile/attachment-tile.js +160 -43
  11. package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
  12. package/dist/components/attachment-tile/index.d.ts +1 -1
  13. package/dist/components/avatar/avatar.css +9 -9
  14. package/dist/components/avatar/avatar.d.ts +50 -5
  15. package/dist/components/avatar/avatar.js +178 -64
  16. package/dist/components/avatar/avatar.module.js +3 -3
  17. package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
  18. package/dist/components/avatar-group/avatar-group-context.js +2 -2
  19. package/dist/components/avatar-group/avatar-group.css +26 -20
  20. package/dist/components/avatar-group/avatar-group.d.ts +85 -27
  21. package/dist/components/avatar-group/avatar-group.js +400 -246
  22. package/dist/components/avatar-group/avatar-group.module.js +8 -8
  23. package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
  24. package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
  25. package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
  26. package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
  27. package/dist/components/button/button.css +29 -31
  28. package/dist/components/button/button.d.ts +20 -16
  29. package/dist/components/button/button.js +140 -145
  30. package/dist/components/button/button.module.js +1 -1
  31. package/dist/components/button/index.js +1 -1
  32. package/dist/components/checkbox-field/checkbox-field.js +63 -49
  33. package/dist/components/checkbox-field/checkbox.css +105 -56
  34. package/dist/components/checkbox-field/checkbox.d.ts +3 -2
  35. package/dist/components/checkbox-field/checkbox.js +12 -9
  36. package/dist/components/checkbox-field/checkbox.module.js +4 -4
  37. package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
  38. package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
  39. package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
  40. package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
  42. package/dist/components/collapsible/collapsible.css +20 -20
  43. package/dist/components/collapsible/collapsible.d.ts +17 -4
  44. package/dist/components/collapsible/collapsible.js +83 -36
  45. package/dist/components/collapsible/collapsible.module.js +5 -5
  46. package/dist/components/combobox-field/combobox-field.js +206 -158
  47. package/dist/components/combobox-field/combobox.css +492 -277
  48. package/dist/components/combobox-field/combobox.d.ts +148 -39
  49. package/dist/components/combobox-field/combobox.js +506 -206
  50. package/dist/components/combobox-field/combobox.module.js +21 -21
  51. package/dist/components/combobox-field/value-state-view.css +5 -5
  52. package/dist/components/combobox-field/value-state-view.module.js +4 -4
  53. package/dist/components/composer/composer-attachments.d.ts +30 -11
  54. package/dist/components/composer/composer-attachments.js +45 -40
  55. package/dist/components/composer/composer-editor.css +40 -35
  56. package/dist/components/composer/composer-editor.d.ts +14 -4
  57. package/dist/components/composer/composer-editor.js +134 -44
  58. package/dist/components/composer/composer-editor.module.js +5 -5
  59. package/dist/components/composer/composer.css +22 -22
  60. package/dist/components/composer/composer.d.ts +13 -2
  61. package/dist/components/composer/composer.js +78 -63
  62. package/dist/components/composer/composer.module.js +5 -5
  63. package/dist/components/composer/index.d.ts +2 -2
  64. package/dist/components/composer/mention-text.css +5 -5
  65. package/dist/components/composer/mention-text.module.js +1 -1
  66. package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
  67. package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
  69. package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
  70. package/dist/components/conversation/conversation.css +52 -52
  71. package/dist/components/conversation/conversation.d.ts +43 -18
  72. package/dist/components/conversation/conversation.js +120 -78
  73. package/dist/components/conversation/conversation.module.js +15 -15
  74. package/dist/components/date-field/date-field.d.ts +1 -1
  75. package/dist/components/date-field/date-field.js +202 -100
  76. package/dist/components/date-field/date-input.d.ts +73 -37
  77. package/dist/components/date-field/date-input.js +72 -45
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-range-field/date-range-field.d.ts +1 -1
  80. package/dist/components/date-range-field/date-range-field.js +219 -107
  81. package/dist/components/date-range-field/date-range-input.d.ts +84 -40
  82. package/dist/components/date-range-field/date-range-input.js +83 -48
  83. package/dist/components/dialog/dialog.css +32 -32
  84. package/dist/components/dialog/dialog.d.ts +8 -7
  85. package/dist/components/dialog/dialog.js +8 -26
  86. package/dist/components/dialog/dialog.module.js +6 -6
  87. package/dist/components/divider/divider.css +6 -6
  88. package/dist/components/divider/divider.d.ts +36 -2
  89. package/dist/components/divider/divider.js +195 -29
  90. package/dist/components/divider/divider.module.js +3 -3
  91. package/dist/components/drawer/drawer.css +55 -56
  92. package/dist/components/drawer/drawer.d.ts +8 -7
  93. package/dist/components/drawer/drawer.js +8 -26
  94. package/dist/components/drawer/drawer.module.js +6 -6
  95. package/dist/components/field/field.css +34 -24
  96. package/dist/components/field/field.d.ts +60 -37
  97. package/dist/components/field/field.js +242 -157
  98. package/dist/components/field/field.module.js +12 -10
  99. package/dist/components/field/input-parts.d.ts +11 -13
  100. package/dist/components/field/input-parts.js +23 -42
  101. package/dist/components/field-placeholder/field-placeholder.css +6 -6
  102. package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
  103. package/dist/components/fieldset/field-group.d.ts +1 -1
  104. package/dist/components/fieldset/field-group.js +48 -42
  105. package/dist/components/fieldset/fieldset-root.d.ts +1 -1
  106. package/dist/components/fieldset/fieldset-root.js +19 -17
  107. package/dist/components/fieldset/fieldset.d.ts +2 -2
  108. package/dist/components/fieldset/fieldset.js +2 -2
  109. package/dist/components/file-field/file-field.css +126 -60
  110. package/dist/components/file-field/file-field.js +201 -109
  111. package/dist/components/file-field/file-field.module.js +4 -4
  112. package/dist/components/file-field/file-input.d.ts +66 -40
  113. package/dist/components/file-field/file-input.js +188 -132
  114. package/dist/components/filter-bar/filter-bar.css +8 -8
  115. package/dist/components/filter-bar/filter-bar.d.ts +12 -3
  116. package/dist/components/filter-bar/filter-bar.js +23 -25
  117. package/dist/components/filter-bar/filter-bar.module.js +5 -5
  118. package/dist/components/form/form.d.ts +19 -7
  119. package/dist/components/form/form.js +80 -29
  120. package/dist/components/icon/icon.css +2 -2
  121. package/dist/components/icon/icon.module.js +1 -1
  122. package/dist/components/link/link.css +6 -5
  123. package/dist/components/link/link.module.js +1 -1
  124. package/dist/components/menu/menu.css +52 -47
  125. package/dist/components/menu/menu.d.ts +32 -25
  126. package/dist/components/menu/menu.js +75 -124
  127. package/dist/components/menu/menu.module.js +8 -8
  128. package/dist/components/nav/nav-context.d.ts +1 -1
  129. package/dist/components/nav/nav-item-view.d.ts +10 -13
  130. package/dist/components/nav/nav-item-view.js +42 -54
  131. package/dist/components/nav/nav.css +150 -119
  132. package/dist/components/nav/nav.d.ts +61 -17
  133. package/dist/components/nav/nav.js +271 -176
  134. package/dist/components/nav/nav.module.js +17 -15
  135. package/dist/components/number-field/number-field.css +153 -64
  136. package/dist/components/number-field/number-field.d.ts +2 -2
  137. package/dist/components/number-field/number-field.js +112 -91
  138. package/dist/components/number-field/number-field.module.js +6 -6
  139. package/dist/components/number-field/number-input.d.ts +43 -23
  140. package/dist/components/number-field/number-input.js +179 -125
  141. package/dist/components/otp-field/otp-field.css +153 -60
  142. package/dist/components/otp-field/otp-field.d.ts +2 -2
  143. package/dist/components/otp-field/otp-field.js +62 -46
  144. package/dist/components/otp-field/otp-field.module.js +4 -4
  145. package/dist/components/otp-field/otp-input.d.ts +8 -6
  146. package/dist/components/otp-field/otp-input.js +92 -92
  147. package/dist/components/pagination/pagination.d.ts +46 -15
  148. package/dist/components/pagination/pagination.js +217 -224
  149. package/dist/components/password-field/password-field.css +23 -23
  150. package/dist/components/password-field/password-field.js +107 -85
  151. package/dist/components/password-field/password-field.module.js +8 -8
  152. package/dist/components/password-field/password-strength.d.ts +107 -3
  153. package/dist/components/password-field/password-strength.js +569 -92
  154. package/dist/components/photo-field/photo-field.js +137 -112
  155. package/dist/components/photo-field/photo-input.css +67 -44
  156. package/dist/components/photo-field/photo-input.d.ts +59 -15
  157. package/dist/components/photo-field/photo-input.js +173 -86
  158. package/dist/components/photo-field/photo-input.module.js +10 -8
  159. package/dist/components/popover/popover.css +41 -41
  160. package/dist/components/popover/popover.d.ts +66 -25
  161. package/dist/components/popover/popover.js +332 -217
  162. package/dist/components/popover/popover.module.js +15 -19
  163. package/dist/components/radio-group-field/radio-group-field.js +80 -71
  164. package/dist/components/radio-group-field/radio-group.css +112 -60
  165. package/dist/components/radio-group-field/radio-group.d.ts +19 -3
  166. package/dist/components/radio-group-field/radio-group.js +66 -23
  167. package/dist/components/radio-group-field/radio-group.module.js +4 -4
  168. package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
  169. package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
  170. package/dist/components/segmented-control-field/segmented-control.css +132 -79
  171. package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
  172. package/dist/components/segmented-control-field/segmented-control.js +124 -41
  173. package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
  174. package/dist/components/select-field/select.css +214 -101
  175. package/dist/components/select-field/select.d.ts +43 -11
  176. package/dist/components/select-field/select.js +194 -109
  177. package/dist/components/select-field/select.module.js +14 -14
  178. package/dist/components/skeleton/skeleton.css +4 -4
  179. package/dist/components/skeleton/skeleton.module.js +3 -3
  180. package/dist/components/stale/stale.css +15 -15
  181. package/dist/components/stale/stale.d.ts +27 -3
  182. package/dist/components/stale/stale.js +147 -66
  183. package/dist/components/stale/stale.module.js +6 -6
  184. package/dist/components/status-message/status-message.css +22 -22
  185. package/dist/components/status-message/status-message.module.js +6 -6
  186. package/dist/components/switch-field/switch-field.js +77 -57
  187. package/dist/components/switch-field/switch.css +112 -63
  188. package/dist/components/switch-field/switch.d.ts +20 -3
  189. package/dist/components/switch-field/switch.js +70 -27
  190. package/dist/components/switch-field/switch.module.js +4 -4
  191. package/dist/components/tabs/tabs.css +32 -32
  192. package/dist/components/tabs/tabs.d.ts +21 -7
  193. package/dist/components/tabs/tabs.js +73 -14
  194. package/dist/components/tabs/tabs.module.js +7 -7
  195. package/dist/components/tag/tag.css +84 -84
  196. package/dist/components/tag/tag.module.js +3 -3
  197. package/dist/components/tag-group/tag-group.css +94 -94
  198. package/dist/components/tag-group/tag-group.module.js +4 -4
  199. package/dist/components/text-field/text-field.css +159 -82
  200. package/dist/components/text-field/text-field.d.ts +1 -1
  201. package/dist/components/text-field/text-field.js +139 -110
  202. package/dist/components/text-field/text-field.module.js +9 -9
  203. package/dist/components/text-field/text-input.d.ts +81 -45
  204. package/dist/components/text-field/text-input.js +366 -217
  205. package/dist/components/textarea-field/textarea-field.css +7 -2
  206. package/dist/components/textarea-field/textarea-field.js +72 -56
  207. package/dist/components/textarea-field/textarea-field.module.js +2 -2
  208. package/dist/components/time-field/time-field.js +153 -60
  209. package/dist/components/time-field/time-input.d.ts +21 -10
  210. package/dist/components/time-field/time-input.js +22 -11
  211. package/dist/components/toast/toast-provider.css +34 -31
  212. package/dist/components/toast/toast-provider.d.ts +63 -14
  213. package/dist/components/toast/toast-provider.js +174 -111
  214. package/dist/components/toast/toast-provider.module.js +7 -7
  215. package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
  216. package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
  217. package/dist/components/toggle-group-field/toggle-group.css +117 -67
  218. package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
  219. package/dist/components/toggle-group-field/toggle-group.js +2 -2
  220. package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
  221. package/dist/components/tooltip/tooltip.css +4 -4
  222. package/dist/components/tooltip/tooltip.module.js +1 -1
  223. package/dist/data-table/data-table-content.js +6 -5
  224. package/dist/data-table/data-table-parts.d.ts +41 -13
  225. package/dist/data-table/data-table-parts.js +213 -172
  226. package/dist/data-table/data-table-selection.d.ts +105 -3
  227. package/dist/data-table/data-table-selection.js +654 -145
  228. package/dist/data-table/data-table.css +125 -128
  229. package/dist/data-table/data-table.d.ts +21 -26
  230. package/dist/data-table/data-table.js +20 -23
  231. package/dist/data-table/data-table.module.js +32 -34
  232. package/dist/data-table/index.d.ts +2 -2
  233. package/dist/index.js +3 -3
  234. package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
  235. package/dist/lib/calendar/calendar-navigation.js +185 -118
  236. package/dist/lib/calendar/calendar-parts.d.ts +143 -0
  237. package/dist/lib/calendar/calendar-parts.js +540 -0
  238. package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
  239. package/dist/lib/calendar/calendar-prefab.js +311 -0
  240. package/dist/lib/calendar/calendar-year.d.ts +3 -1
  241. package/dist/lib/calendar/calendar-year.js +139 -131
  242. package/dist/lib/calendar/temporal.css +325 -232
  243. package/dist/lib/calendar/temporal.d.ts +67 -82
  244. package/dist/lib/calendar/temporal.js +258 -569
  245. package/dist/lib/calendar/temporal.module.js +38 -38
  246. package/dist/lib/forms/use-connected-field.d.ts +1 -1
  247. package/dist/lib/forms/use-connected-field.js +1 -1
  248. package/dist/lib/render-as.d.ts +13 -0
  249. package/dist/lib/render-as.js +46 -0
  250. package/dist/terrazzo/index.d.ts +4 -3
  251. package/dist/terrazzo/index.js +17 -6
  252. package/dist/tokens.css +28 -4
  253. package/package.json +2 -2
  254. package/tokens/dark.tokens.json +6 -0
  255. package/tokens/sys.tokens.json +7 -0
  256. package/dist/components/button/close-button.d.ts +0 -16
  257. 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,