@alfadocs/ui-kit-debug 1.45.0 → 1.46.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 (284) hide show
  1. package/dist/_chunks/{actions-cell-renderer-BXBy9c0f.js → actions-cell-renderer-B5m9lwgC.js} +2 -2
  2. package/dist/_chunks/{actions-cell-renderer-BXBy9c0f.js.map → actions-cell-renderer-B5m9lwgC.js.map} +1 -1
  3. package/dist/_chunks/ai-credits-notice-xszqOZTC.js +90 -0
  4. package/dist/_chunks/ai-credits-notice-xszqOZTC.js.map +1 -0
  5. package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js +17 -0
  6. package/dist/_chunks/ai-credits-notice.agent-C9L7orrP.js.map +1 -0
  7. package/dist/_chunks/{ai-consent-banner-D7I2U-cz.js → ai-permission-notice-D7I2U-cz.js} +1 -1
  8. package/dist/_chunks/ai-permission-notice-D7I2U-cz.js.map +1 -0
  9. package/dist/_chunks/ai-sparkle-D23NT8Z_.js +45 -0
  10. package/dist/_chunks/ai-sparkle-D23NT8Z_.js.map +1 -0
  11. package/dist/_chunks/{anamnesis-summary-rows-DQUqwWc1.js → anamnesis-summary-rows-DI-UX5r6.js} +2 -2
  12. package/dist/_chunks/{anamnesis-summary-rows-DQUqwWc1.js.map → anamnesis-summary-rows-DI-UX5r6.js.map} +1 -1
  13. package/dist/_chunks/{appointment-card-TgR_2GKS.js → appointment-card-DluZy8Iv.js} +2 -2
  14. package/dist/_chunks/{appointment-card-TgR_2GKS.js.map → appointment-card-DluZy8Iv.js.map} +1 -1
  15. package/dist/_chunks/{appointment-peek-abiR0T9e.js → appointment-peek-BsfCpiJs.js} +3 -3
  16. package/dist/_chunks/{appointment-peek-abiR0T9e.js.map → appointment-peek-BsfCpiJs.js.map} +1 -1
  17. package/dist/_chunks/{appointment-timeline-CCnyUYKz.js → appointment-timeline-Cs5f9viN.js} +3 -3
  18. package/dist/_chunks/{appointment-timeline-CCnyUYKz.js.map → appointment-timeline-Cs5f9viN.js.map} +1 -1
  19. package/dist/_chunks/{appointment-tray-N0yEI8UF.js → appointment-tray-CLrGGnKR.js} +2 -2
  20. package/dist/_chunks/{appointment-tray-N0yEI8UF.js.map → appointment-tray-CLrGGnKR.js.map} +1 -1
  21. package/dist/_chunks/baby-Dku-Xvg9.js +23 -0
  22. package/dist/_chunks/baby-Dku-Xvg9.js.map +1 -0
  23. package/dist/_chunks/{balance-badge-cell-o6LldMUA.js → balance-badge-cell-YGrYdrvR.js} +3 -3
  24. package/dist/_chunks/{balance-badge-cell-o6LldMUA.js.map → balance-badge-cell-YGrYdrvR.js.map} +1 -1
  25. package/dist/_chunks/{booking-D43ASl8y.js → booking-B7gA9gFB.js} +279 -296
  26. package/dist/_chunks/booking-B7gA9gFB.js.map +1 -0
  27. package/dist/_chunks/button-group-CA1tmu39.js +325 -0
  28. package/dist/_chunks/button-group-CA1tmu39.js.map +1 -0
  29. package/dist/_chunks/{calendar-U6N0F99w.js → calendar-OzSeTb4V.js} +2 -2
  30. package/dist/_chunks/{calendar-U6N0F99w.js.map → calendar-OzSeTb4V.js.map} +1 -1
  31. package/dist/_chunks/{calendar-event-card-DKUnT9Be.js → calendar-event-card-B6N5h1dO.js} +57 -48
  32. package/dist/_chunks/{calendar-event-card-DKUnT9Be.js.map → calendar-event-card-B6N5h1dO.js.map} +1 -1
  33. package/dist/_chunks/{calendar-workspace-B7KvZ1_D.js → calendar-workspace-BB-BZT7W.js} +3002 -2912
  34. package/dist/_chunks/calendar-workspace-BB-BZT7W.js.map +1 -0
  35. package/dist/_chunks/{chart-PF2krCZC.js → chart-D8ucl8hH.js} +2 -2
  36. package/dist/_chunks/{chart-PF2krCZC.js.map → chart-D8ucl8hH.js.map} +1 -1
  37. package/dist/_chunks/{data-table-CcAx_I1w.js → data-table-DnKOmEVw.js} +2 -2
  38. package/dist/_chunks/{data-table-CcAx_I1w.js.map → data-table-DnKOmEVw.js.map} +1 -1
  39. package/dist/_chunks/{editable-currency-cell-renderer-Psb6XKHR.js → editable-currency-cell-renderer-OUkUv7U4.js} +2 -2
  40. package/dist/_chunks/{editable-currency-cell-renderer-Psb6XKHR.js.map → editable-currency-cell-renderer-OUkUv7U4.js.map} +1 -1
  41. package/dist/_chunks/{face-scheme-Bm6pe7R8.js → face-scheme-mIhwrQXt.js} +3 -3
  42. package/dist/_chunks/{face-scheme-Bm6pe7R8.js.map → face-scheme-mIhwrQXt.js.map} +1 -1
  43. package/dist/_chunks/{file-manager-BfLQxF5t.js → file-manager-DOcJGIx2.js} +4 -4
  44. package/dist/_chunks/{file-manager-BfLQxF5t.js.map → file-manager-DOcJGIx2.js.map} +1 -1
  45. package/dist/_chunks/{header-settings-CTe45iDy.js → header-settings-BEfx_-TF.js} +2 -2
  46. package/dist/_chunks/{header-settings-CTe45iDy.js.map → header-settings-BEfx_-TF.js.map} +1 -1
  47. package/dist/_chunks/{help-me-write-templates-GUeEn3Ff.js → help-me-write-templates-DHIwa4xR.js} +205 -199
  48. package/dist/_chunks/help-me-write-templates-DHIwa4xR.js.map +1 -0
  49. package/dist/_chunks/{hover-card-BMJBVqIf.js → hover-card-nUae8NPJ.js} +67 -62
  50. package/dist/_chunks/{hover-card-BMJBVqIf.js.map → hover-card-nUae8NPJ.js.map} +1 -1
  51. package/dist/_chunks/{icon-button-group-DkkdIygu.js → icon-button-group-DZKC6KGf.js} +181 -168
  52. package/dist/_chunks/icon-button-group-DZKC6KGf.js.map +1 -0
  53. package/dist/_chunks/kit-extensions-DuoFF1R3.js +94 -0
  54. package/dist/_chunks/kit-extensions-DuoFF1R3.js.map +1 -0
  55. package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js → marketplace-app-shell-PB89Dkk_.js} +2 -2
  56. package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js.map → marketplace-app-shell-PB89Dkk_.js.map} +1 -1
  57. package/dist/_chunks/{notes-panel-Dkk9QPPX.js → notes-panel-CHbDDMx8.js} +83 -73
  58. package/dist/_chunks/notes-panel-CHbDDMx8.js.map +1 -0
  59. package/dist/_chunks/{patient-details-C8ImUrVg.js → patient-details-DUj1htsH.js} +2 -2
  60. package/dist/_chunks/{patient-details-C8ImUrVg.js.map → patient-details-DUj1htsH.js.map} +1 -1
  61. package/dist/_chunks/{patient-field-row-BRSOKvme.js → patient-field-row-CO0WR7yA.js} +2 -2
  62. package/dist/_chunks/patient-field-row-CO0WR7yA.js.map +1 -0
  63. package/dist/_chunks/{patient-summary-card-BhmKB2KR.js → patient-summary-card-DNzdYjxE.js} +59 -45
  64. package/dist/_chunks/patient-summary-card-DNzdYjxE.js.map +1 -0
  65. package/dist/_chunks/rich-text-editor-BwDV2XkZ.js +4153 -0
  66. package/dist/_chunks/rich-text-editor-BwDV2XkZ.js.map +1 -0
  67. package/dist/_chunks/{tasks-panel-CpcikOeY.js → tasks-panel-DncuBPIZ.js} +2 -2
  68. package/dist/_chunks/{tasks-panel-CpcikOeY.js.map → tasks-panel-DncuBPIZ.js.map} +1 -1
  69. package/dist/_chunks/{theme-toggle-bI0pgDDv.js → theme-toggle-BP0XRGMM.js} +2 -2
  70. package/dist/_chunks/{theme-toggle-bI0pgDDv.js.map → theme-toggle-BP0XRGMM.js.map} +1 -1
  71. package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js +76 -0
  72. package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js.map +1 -0
  73. package/dist/_chunks/{workflow-status-xeaJTzD3.js → workflow-status-CuJAOuKL.js} +43 -42
  74. package/dist/_chunks/{workflow-status-xeaJTzD3.js.map → workflow-status-CuJAOuKL.js.map} +1 -1
  75. package/dist/agent-catalog.json +32 -4
  76. package/dist/agent-i18n/en.json +1 -1
  77. package/dist/components/_shared/field-value.d.ts.map +1 -1
  78. package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts +3 -0
  79. package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts.map +1 -0
  80. package/dist/components/ai-credits-notice/ai-credits-notice.d.ts +48 -0
  81. package/dist/components/ai-credits-notice/ai-credits-notice.d.ts.map +1 -0
  82. package/dist/components/ai-credits-notice/index.d.ts +4 -0
  83. package/dist/components/ai-credits-notice/index.d.ts.map +1 -0
  84. package/dist/components/ai-credits-notice/index.js +7 -0
  85. package/dist/components/ai-credits-notice/index.js.map +1 -0
  86. package/dist/components/{ai-consent-banner/ai-consent-banner.agent.d.ts → ai-permission-notice/ai-permission-notice.agent.d.ts} +2 -2
  87. package/dist/components/ai-permission-notice/ai-permission-notice.agent.d.ts.map +1 -0
  88. package/dist/components/{ai-consent-banner/ai-consent-banner.d.ts → ai-permission-notice/ai-permission-notice.d.ts} +1 -1
  89. package/dist/components/ai-permission-notice/ai-permission-notice.d.ts.map +1 -0
  90. package/dist/components/ai-permission-notice/index.d.ts +4 -0
  91. package/dist/components/ai-permission-notice/index.d.ts.map +1 -0
  92. package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js +1 -1
  93. package/dist/components/ai-sparkle/ai-sparkle.d.ts +3 -3
  94. package/dist/components/ai-sparkle/ai-sparkle.d.ts.map +1 -1
  95. package/dist/components/ai-sparkle/index.js +1 -1
  96. package/dist/components/appointment-card/index.js +2 -2
  97. package/dist/components/appointment-peek/index.js +1 -1
  98. package/dist/components/appointment-timeline/index.js +1 -1
  99. package/dist/components/booking/index.js +1 -1
  100. package/dist/components/button-group/button-group.d.ts.map +1 -1
  101. package/dist/components/button-group/index.js +1 -1
  102. package/dist/components/calendar/index.js +1 -1
  103. package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
  104. package/dist/components/calendar-event-card/index.js +1 -1
  105. package/dist/components/chart/index.js +1 -1
  106. package/dist/components/data-table/index.js +3 -3
  107. package/dist/components/face-scheme/index.js +1 -1
  108. package/dist/components/file-manager/index.js +1 -1
  109. package/dist/components/header-settings/index.js +1 -1
  110. package/dist/components/hover-card/hover-card.d.ts +4 -0
  111. package/dist/components/hover-card/hover-card.d.ts.map +1 -1
  112. package/dist/components/hover-card/index.d.ts +1 -1
  113. package/dist/components/hover-card/index.d.ts.map +1 -1
  114. package/dist/components/hover-card/index.js +3 -2
  115. package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
  116. package/dist/components/icon-button-group/index.js +1 -1
  117. package/dist/components/index.d.ts +2 -1
  118. package/dist/components/index.d.ts.map +1 -1
  119. package/dist/components/notes-panel/index.js +1 -1
  120. package/dist/components/notes-panel/notes-panel.d.ts +10 -0
  121. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
  122. package/dist/components/patient-details/index.js +1 -1
  123. package/dist/components/patient-summary-card/index.js +1 -1
  124. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  125. package/dist/components/patient-table/index.js +1 -1
  126. package/dist/components/rich-text-editor/editor-extensions.d.ts +54 -0
  127. package/dist/components/rich-text-editor/editor-extensions.d.ts.map +1 -0
  128. package/dist/components/rich-text-editor/editor-toolbar.d.ts +2 -1
  129. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  130. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts +4 -0
  131. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts.map +1 -1
  132. package/dist/components/rich-text-editor/index.d.ts +2 -0
  133. package/dist/components/rich-text-editor/index.d.ts.map +1 -1
  134. package/dist/components/rich-text-editor/index.js +6 -4
  135. package/dist/components/rich-text-editor/index.js.map +1 -1
  136. package/dist/components/rich-text-editor/kit-extensions.d.ts +4 -0
  137. package/dist/components/rich-text-editor/kit-extensions.d.ts.map +1 -0
  138. package/dist/components/rich-text-editor/rich-text-editor.d.ts +18 -2
  139. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  140. package/dist/components/tasks-panel/index.js +1 -1
  141. package/dist/components/theme-toggle/index.js +1 -1
  142. package/dist/components/workflow-status/index.js +1 -1
  143. package/dist/components/workflow-status/workflow-status.d.ts.map +1 -1
  144. package/dist/hooks/index.d.ts +1 -1
  145. package/dist/hooks/index.d.ts.map +1 -1
  146. package/dist/hooks/index.js +51 -53
  147. package/dist/hooks/use-ai-sparkle.d.ts +7 -25
  148. package/dist/hooks/use-ai-sparkle.d.ts.map +1 -1
  149. package/dist/host-compat.css +2 -2
  150. package/dist/i18n/locales/ar.d.ts +31 -0
  151. package/dist/i18n/locales/ar.d.ts.map +1 -1
  152. package/dist/i18n/locales/ar.js +33 -2
  153. package/dist/i18n/locales/ar.js.map +1 -1
  154. package/dist/i18n/locales/de.d.ts +31 -0
  155. package/dist/i18n/locales/de.d.ts.map +1 -1
  156. package/dist/i18n/locales/de.js +33 -2
  157. package/dist/i18n/locales/de.js.map +1 -1
  158. package/dist/i18n/locales/el.d.ts +31 -0
  159. package/dist/i18n/locales/el.d.ts.map +1 -1
  160. package/dist/i18n/locales/el.js +33 -2
  161. package/dist/i18n/locales/el.js.map +1 -1
  162. package/dist/i18n/locales/en.d.ts +31 -0
  163. package/dist/i18n/locales/en.d.ts.map +1 -1
  164. package/dist/i18n/locales/en.js +33 -2
  165. package/dist/i18n/locales/en.js.map +1 -1
  166. package/dist/i18n/locales/es.d.ts +31 -0
  167. package/dist/i18n/locales/es.d.ts.map +1 -1
  168. package/dist/i18n/locales/es.js +33 -2
  169. package/dist/i18n/locales/es.js.map +1 -1
  170. package/dist/i18n/locales/fr.d.ts +31 -0
  171. package/dist/i18n/locales/fr.d.ts.map +1 -1
  172. package/dist/i18n/locales/fr.js +33 -2
  173. package/dist/i18n/locales/fr.js.map +1 -1
  174. package/dist/i18n/locales/hi.d.ts +31 -0
  175. package/dist/i18n/locales/hi.d.ts.map +1 -1
  176. package/dist/i18n/locales/hi.js +33 -2
  177. package/dist/i18n/locales/hi.js.map +1 -1
  178. package/dist/i18n/locales/it.d.ts +31 -0
  179. package/dist/i18n/locales/it.d.ts.map +1 -1
  180. package/dist/i18n/locales/it.js +33 -2
  181. package/dist/i18n/locales/it.js.map +1 -1
  182. package/dist/i18n/locales/ja.d.ts +31 -0
  183. package/dist/i18n/locales/ja.d.ts.map +1 -1
  184. package/dist/i18n/locales/ja.js +33 -2
  185. package/dist/i18n/locales/ja.js.map +1 -1
  186. package/dist/i18n/locales/nl.d.ts +31 -0
  187. package/dist/i18n/locales/nl.d.ts.map +1 -1
  188. package/dist/i18n/locales/nl.js +33 -2
  189. package/dist/i18n/locales/nl.js.map +1 -1
  190. package/dist/i18n/locales/pl.d.ts +31 -0
  191. package/dist/i18n/locales/pl.d.ts.map +1 -1
  192. package/dist/i18n/locales/pl.js +33 -2
  193. package/dist/i18n/locales/pl.js.map +1 -1
  194. package/dist/i18n/locales/pt.d.ts +31 -0
  195. package/dist/i18n/locales/pt.d.ts.map +1 -1
  196. package/dist/i18n/locales/pt.js +33 -2
  197. package/dist/i18n/locales/pt.js.map +1 -1
  198. package/dist/i18n/locales/ro.d.ts +31 -0
  199. package/dist/i18n/locales/ro.d.ts.map +1 -1
  200. package/dist/i18n/locales/ro.js +33 -2
  201. package/dist/i18n/locales/ro.js.map +1 -1
  202. package/dist/i18n/locales/ru.d.ts +31 -0
  203. package/dist/i18n/locales/ru.d.ts.map +1 -1
  204. package/dist/i18n/locales/ru.js +33 -2
  205. package/dist/i18n/locales/ru.js.map +1 -1
  206. package/dist/i18n/locales/sq.d.ts +31 -0
  207. package/dist/i18n/locales/sq.d.ts.map +1 -1
  208. package/dist/i18n/locales/sq.js +33 -2
  209. package/dist/i18n/locales/sq.js.map +1 -1
  210. package/dist/i18n/locales/sv.d.ts +31 -0
  211. package/dist/i18n/locales/sv.d.ts.map +1 -1
  212. package/dist/i18n/locales/sv.js +33 -2
  213. package/dist/i18n/locales/sv.js.map +1 -1
  214. package/dist/i18n/locales/tr.d.ts +31 -0
  215. package/dist/i18n/locales/tr.d.ts.map +1 -1
  216. package/dist/i18n/locales/tr.js +33 -2
  217. package/dist/i18n/locales/tr.js.map +1 -1
  218. package/dist/i18n/locales/zh.d.ts +31 -0
  219. package/dist/i18n/locales/zh.d.ts.map +1 -1
  220. package/dist/i18n/locales/zh.js +33 -2
  221. package/dist/i18n/locales/zh.js.map +1 -1
  222. package/dist/index.js +646 -639
  223. package/dist/index.js.map +1 -1
  224. package/dist/locales/ar.json +33 -2
  225. package/dist/locales/de.json +33 -2
  226. package/dist/locales/el.json +33 -2
  227. package/dist/locales/en.json +33 -2
  228. package/dist/locales/es.json +33 -2
  229. package/dist/locales/fr.json +33 -2
  230. package/dist/locales/hi.json +33 -2
  231. package/dist/locales/it.json +33 -2
  232. package/dist/locales/ja.json +33 -2
  233. package/dist/locales/nl.json +33 -2
  234. package/dist/locales/pl.json +33 -2
  235. package/dist/locales/pt.json +33 -2
  236. package/dist/locales/ro.json +33 -2
  237. package/dist/locales/ru.json +33 -2
  238. package/dist/locales/sq.json +33 -2
  239. package/dist/locales/sv.json +33 -2
  240. package/dist/locales/tr.json +33 -2
  241. package/dist/locales/zh.json +33 -2
  242. package/dist/patterns/anamnesis/index.js +1 -1
  243. package/dist/patterns/calendar/calendar-appointment-details.d.ts.map +1 -1
  244. package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts.map +1 -1
  245. package/dist/patterns/calendar/calendar-bookings-panel.d.ts.map +1 -1
  246. package/dist/patterns/calendar/calendar-workspace.d.ts +6 -4
  247. package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -1
  248. package/dist/patterns/calendar/calendar.data.d.ts +9 -0
  249. package/dist/patterns/calendar/calendar.data.d.ts.map +1 -1
  250. package/dist/patterns/calendar/calendar.journey.d.ts +1 -1
  251. package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -1
  252. package/dist/patterns/calendar/calendar.sheets.d.ts +16 -5
  253. package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
  254. package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
  255. package/dist/patterns/calendar/calendar.types.d.ts +3 -1
  256. package/dist/patterns/calendar/calendar.types.d.ts.map +1 -1
  257. package/dist/patterns/calendar/index.js +1 -1
  258. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +11 -2
  259. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts.map +1 -1
  260. package/dist/patterns/help-me-write-templates/index.js +1 -1
  261. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  262. package/dist/tokens.css +1 -1
  263. package/package.json +14 -4
  264. package/dist/_chunks/ai-consent-banner-D7I2U-cz.js.map +0 -1
  265. package/dist/_chunks/ai-sparkle-DXeP_6a0.js +0 -52
  266. package/dist/_chunks/ai-sparkle-DXeP_6a0.js.map +0 -1
  267. package/dist/_chunks/booking-D43ASl8y.js.map +0 -1
  268. package/dist/_chunks/button-group-R32U7SyV.js +0 -307
  269. package/dist/_chunks/button-group-R32U7SyV.js.map +0 -1
  270. package/dist/_chunks/calendar-workspace-B7KvZ1_D.js.map +0 -1
  271. package/dist/_chunks/help-me-write-templates-GUeEn3Ff.js.map +0 -1
  272. package/dist/_chunks/icon-button-group-DkkdIygu.js.map +0 -1
  273. package/dist/_chunks/notes-panel-Dkk9QPPX.js.map +0 -1
  274. package/dist/_chunks/patient-field-row-BRSOKvme.js.map +0 -1
  275. package/dist/_chunks/patient-summary-card-BhmKB2KR.js.map +0 -1
  276. package/dist/_chunks/rich-text-editor-BrAvNajV.js +0 -3779
  277. package/dist/_chunks/rich-text-editor-BrAvNajV.js.map +0 -1
  278. package/dist/_chunks/use-ai-sparkle-CyQSRTCe.js +0 -103
  279. package/dist/_chunks/use-ai-sparkle-CyQSRTCe.js.map +0 -1
  280. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts.map +0 -1
  281. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts.map +0 -1
  282. package/dist/components/ai-consent-banner/index.d.ts +0 -4
  283. package/dist/components/ai-consent-banner/index.d.ts.map +0 -1
  284. /package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js.map +0 -0
@@ -0,0 +1,325 @@
1
+ import { jsx as s, jsxs as G } from "react/jsx-runtime";
2
+ import { forwardRef as Re, useRef as C, useState as se, useCallback as A, Children as K, isValidElement as ie, useEffect as Ie, cloneElement as $ } from "react";
3
+ import { c as he } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as xe } from "react-i18next";
5
+ import { I as ae } from "./icon-button-CehAeZoP.js";
6
+ import { D as N } from "./dropdown-menu-DU-Hrf33.js";
7
+ import { T as ke } from "./tooltip-Cp-PLePW.js";
8
+ import { u as Le } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
9
+ import { u as Ce } from "./use-priority-overflow-c9SjxZkZ.js";
10
+ import { E as le } from "./ellipsis-dRo9ouSU.js";
11
+ function V(g) {
12
+ g && (g.inert = !0);
13
+ }
14
+ const ue = he(
15
+ "ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10",
16
+ {
17
+ variants: {
18
+ orientation: {
19
+ horizontal: [
20
+ "ds:flex-row",
21
+ "ds:[&>*:not(:first-child)]:rounded-s-none",
22
+ "ds:[&>*:not(:last-child)]:rounded-e-none",
23
+ "ds:[&>*:not(:first-child)]:-ms-px"
24
+ ].join(" "),
25
+ vertical: [
26
+ "ds:flex-col",
27
+ "ds:[&>*:not(:first-child)]:rounded-t-none",
28
+ "ds:[&>*:not(:last-child)]:rounded-b-none",
29
+ "ds:[&>*:not(:first-child)]:-mt-px"
30
+ ].join(" ")
31
+ },
32
+ separator: {
33
+ true: "",
34
+ false: ""
35
+ }
36
+ },
37
+ compoundVariants: [
38
+ {
39
+ orientation: "horizontal",
40
+ separator: !0,
41
+ class: "ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border"
42
+ },
43
+ {
44
+ orientation: "vertical",
45
+ separator: !0,
46
+ class: "ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border"
47
+ }
48
+ ],
49
+ defaultVariants: {
50
+ orientation: "horizontal",
51
+ separator: !1
52
+ }
53
+ }
54
+ ), M = "ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none", Ae = Re(
55
+ ({
56
+ className: g,
57
+ orientation: f = "horizontal",
58
+ separator: P = !1,
59
+ toolbar: w = !1,
60
+ intent: v = "outline",
61
+ background: y = "transparent",
62
+ size: l,
63
+ label: ce,
64
+ overflow: pe = "none",
65
+ collapseToIcons: S = !1,
66
+ children: j,
67
+ ...O
68
+ }, R) => {
69
+ const { t: U } = xe(), _ = ce ?? U("buttonGroup.label", "Button group"), H = U("buttonGroup.more", "More options"), u = pe === "menu" && f !== "vertical", c = w, m = C([]), [p, I] = se(0), W = C(null), [B, de] = se(!1);
70
+ Le(() => {
71
+ if (typeof window > "u") return;
72
+ const e = W.current;
73
+ e && de(window.getComputedStyle(e).direction === "rtl");
74
+ }, []);
75
+ const q = A(
76
+ (e) => {
77
+ var h;
78
+ if (!c) return;
79
+ const r = m.current.filter(Boolean).length;
80
+ if (r === 0) return;
81
+ const t = f === "vertical" ? "ArrowDown" : B ? "ArrowLeft" : "ArrowRight", o = f === "vertical" ? "ArrowUp" : B ? "ArrowRight" : "ArrowLeft";
82
+ let n = null;
83
+ if (e.key === t ? n = (p + 1) % r : e.key === o ? n = (p - 1 + r) % r : e.key === "Home" ? n = 0 : e.key === "End" && (n = r - 1), n === null) return;
84
+ const a = r;
85
+ let i = 0, d = n;
86
+ for (; i < a; ) {
87
+ const x = m.current[d];
88
+ if (x && x.getAttribute("aria-disabled") !== "true" && !x.disabled)
89
+ break;
90
+ d = e.key === o || e.key === "End" ? (d - 1 + r) % r : (d + 1) % r, i += 1;
91
+ }
92
+ e.preventDefault(), I(d), (h = m.current[d]) == null || h.focus();
93
+ },
94
+ [c, f, B, p]
95
+ ), b = u ? K.toArray(j).filter(ie) : [], D = (e) => {
96
+ if (typeof e.props.children == "string") return e.props.children;
97
+ const r = e.props["aria-label"];
98
+ return typeof r == "string" ? r : null;
99
+ };
100
+ C(!1);
101
+ const fe = b.map((e) => {
102
+ const r = e.props["data-overflow-pin"] !== void 0, t = D(e) !== null;
103
+ return r || !t;
104
+ }), {
105
+ containerRef: me,
106
+ fullRowRef: J,
107
+ iconRowRef: Q,
108
+ triggerProbeRef: X,
109
+ stage: be,
110
+ visible: F,
111
+ overflowing: k
112
+ } = Ce({
113
+ enabled: u,
114
+ count: b.length,
115
+ twoStage: S,
116
+ pinned: fe
117
+ }), ge = A(
118
+ (e) => {
119
+ V(e), J(e);
120
+ },
121
+ [J]
122
+ ), we = A(
123
+ (e) => {
124
+ V(e), Q(e);
125
+ },
126
+ [Q]
127
+ ), ve = A(
128
+ (e) => {
129
+ V(e), X(e);
130
+ },
131
+ [X]
132
+ ), Y = C(null), L = u ? F.filter(Boolean).length : K.count(j);
133
+ Ie(() => {
134
+ var r;
135
+ if (!c || !u) return;
136
+ const e = L + (k ? 1 : 0);
137
+ e > 0 && p >= e && (I(e - 1), document.activeElement === document.body && ((r = Y.current) == null || r.focus()));
138
+ }, [
139
+ c,
140
+ u,
141
+ L,
142
+ k,
143
+ p
144
+ ]);
145
+ const Z = (e, r) => (t) => {
146
+ m.current[r] = t;
147
+ const o = e.ref;
148
+ typeof o == "function" ? o(t) : o != null && typeof o == "object" && (o.current = t);
149
+ }, ye = u ? null : K.map(j, (e, r) => {
150
+ if (!ie(e)) return e;
151
+ const t = e, o = {
152
+ intent: t.props.intent ?? v,
153
+ background: t.props.background ?? y,
154
+ ...l ? { size: t.props.size ?? l } : null
155
+ };
156
+ return c && (o.tabIndex = r === p ? 0 : -1, o.onFocus = (n) => {
157
+ var a, i;
158
+ I(r), (i = (a = t.props).onFocus) == null || i.call(a, n);
159
+ }, o.ref = Z(t, r)), $(
160
+ t,
161
+ o
162
+ );
163
+ });
164
+ let E = null, ee = null;
165
+ if (u) {
166
+ m.current.length = L + (k ? 1 : 0);
167
+ let e = -1;
168
+ E = b.map((r, t) => {
169
+ if (!F[t]) return null;
170
+ e += 1;
171
+ const o = e, n = {
172
+ intent: r.props.intent ?? v,
173
+ background: r.props.background ?? y,
174
+ ...l ? { size: r.props.size ?? l } : null
175
+ };
176
+ S && be === "icons" && r.props.children && (r.props.startIcon || r.props.endIcon) && (n.hideLabel = !0), c && (n.tabIndex = o === p ? 0 : -1, n.onFocus = (x) => {
177
+ var oe, ne;
178
+ I(o), (ne = (oe = r.props).onFocus) == null || ne.call(oe, x);
179
+ }, n.ref = Z(r, o));
180
+ const a = n.hideLabel === !0, i = $(
181
+ r,
182
+ n
183
+ ), d = r.props["data-overflow-tip"] === !1 || r.props["data-overflow-tip"] === "false", h = a && !d ? D(r) : null;
184
+ return h ? /* @__PURE__ */ s(ke, { label: h, children: i }, r.key ?? t) : i;
185
+ }), ee = b.map((r, t) => {
186
+ if (F[t]) return null;
187
+ const o = D(r);
188
+ return o === null ? null : /* @__PURE__ */ s(
189
+ N.Item,
190
+ {
191
+ startIcon: r.props.startIcon,
192
+ disabled: r.props.disabled === !0 || r.props.loading === !0,
193
+ onSelect: (n) => {
194
+ var a, i;
195
+ (i = (a = r.props).onClick) == null || i.call(
196
+ a,
197
+ n
198
+ );
199
+ },
200
+ children: o
201
+ },
202
+ r.key ?? t
203
+ );
204
+ });
205
+ }
206
+ const re = (e) => {
207
+ W.current = e, typeof R == "function" ? R(e) : R && typeof R == "object" && (R.current = e);
208
+ };
209
+ if (!u)
210
+ return /* @__PURE__ */ s(
211
+ "div",
212
+ {
213
+ ref: re,
214
+ role: w ? "toolbar" : "group",
215
+ "aria-label": _,
216
+ "aria-orientation": w ? f ?? "horizontal" : void 0,
217
+ "data-component": "button-group",
218
+ onKeyDown: q,
219
+ className: ue({ orientation: f, separator: P, className: g }),
220
+ ...O,
221
+ children: ye
222
+ }
223
+ );
224
+ const z = ue({ orientation: f, separator: P }), T = L, te = (e, r, t) => $(e, {
225
+ key: e.key ?? r,
226
+ intent: e.props.intent ?? v,
227
+ background: e.props.background ?? y,
228
+ ...l ? { size: e.props.size ?? l } : null,
229
+ tabIndex: -1,
230
+ // Same rule as the live strip: icon-only children never hideLabel.
231
+ ...t && e.props.children && (e.props.startIcon || e.props.endIcon) ? { hideLabel: !0 } : null,
232
+ ref: null
233
+ });
234
+ return /* @__PURE__ */ s(
235
+ "div",
236
+ {
237
+ ref: re,
238
+ "data-component": "button-group",
239
+ className: [
240
+ "ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip",
241
+ g ?? ""
242
+ ].join(" ").trim(),
243
+ ...O,
244
+ children: /* @__PURE__ */ G("div", { ref: me, className: "ds:block ds:w-full ds:min-w-0", children: [
245
+ /* @__PURE__ */ s(
246
+ "div",
247
+ {
248
+ ref: ge,
249
+ "aria-hidden": "true",
250
+ inert: !0,
251
+ className: `${M} ${z}`,
252
+ children: b.map((e, r) => te(e, r, !1))
253
+ }
254
+ ),
255
+ S ? /* @__PURE__ */ s(
256
+ "div",
257
+ {
258
+ ref: we,
259
+ "aria-hidden": "true",
260
+ inert: !0,
261
+ className: `${M} ${z}`,
262
+ children: b.map((e, r) => te(e, r, !0))
263
+ }
264
+ ) : null,
265
+ /* @__PURE__ */ s(
266
+ "span",
267
+ {
268
+ ref: ve,
269
+ "aria-hidden": "true",
270
+ inert: !0,
271
+ className: M,
272
+ children: /* @__PURE__ */ s(
273
+ ae,
274
+ {
275
+ icon: /* @__PURE__ */ s(le, {}),
276
+ intent: v,
277
+ background: y,
278
+ size: l,
279
+ "aria-label": H,
280
+ tabIndex: -1
281
+ }
282
+ )
283
+ }
284
+ ),
285
+ /* @__PURE__ */ G(
286
+ "div",
287
+ {
288
+ role: w ? "toolbar" : "group",
289
+ "aria-label": _,
290
+ "aria-orientation": w ? "horizontal" : void 0,
291
+ onKeyDown: q,
292
+ className: `${z} ds:max-w-full ds:align-top`,
293
+ children: [
294
+ E,
295
+ k ? /* @__PURE__ */ G(N.Root, { children: [
296
+ /* @__PURE__ */ s(N.Trigger, { asChild: !0, children: /* @__PURE__ */ s(
297
+ ae,
298
+ {
299
+ icon: /* @__PURE__ */ s(le, {}),
300
+ intent: v,
301
+ background: y,
302
+ size: l,
303
+ "aria-label": H,
304
+ ref: (e) => {
305
+ Y.current = e, m.current[T] = e;
306
+ },
307
+ tabIndex: c ? p === T ? 0 : -1 : void 0,
308
+ onFocus: c ? () => I(T) : void 0
309
+ }
310
+ ) }),
311
+ /* @__PURE__ */ s(N.Content, { align: "end", children: ee })
312
+ ] }) : null
313
+ ]
314
+ }
315
+ )
316
+ ] })
317
+ }
318
+ );
319
+ }
320
+ );
321
+ Ae.displayName = "ButtonGroup";
322
+ export {
323
+ Ae as B
324
+ };
325
+ //# sourceMappingURL=button-group-CA1tmu39.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group-CA1tmu39.js","sources":["../../src/components/button-group/button-group.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Ellipsis } from 'lucide-react';\nimport type { ButtonProps } from '../button/button';\nimport { IconButton } from '../button/icon-button';\nimport { DropdownMenu } from '../dropdown-menu';\nimport { Tooltip } from '../tooltip';\nimport { useIsomorphicLayoutEffect } from '../../hooks/use-isomorphic-layout-effect';\nimport { usePriorityOverflow } from '../../hooks/use-priority-overflow';\n\ntype ButtonIntent = NonNullable<ButtonProps['intent']>;\n\n/**\n * A bare boolean `inert` JSX prop is unsafe across this kit's peer range\n * (`^18.2.0 || ^19.0.0`, though the devDependency pins React 19.2.0, so\n * neither Storybook nor CI exercises React 18 here). React 18 doesn't\n * recognise `inert` as a boolean HTML attribute at all and drops a bare\n * `true` silently, which is what the platform (react-dom 18.3.1) hit:\n * these `aria-hidden` measurement/trigger clones stayed focusable and\n * clickable, tripling up `data-action` selectors and failing an axe\n * `aria-hidden-focus` check. The obvious fix — pass a non-boolean value\n * like `inert=\"\"` — makes it WORSE on React 19: it recognises `inert` as\n * boolean and explicitly warns \"Received an empty string for a\n * non-boolean attribute `inert`... will treat the attribute as if it\n * were false\", dropping it there too. There is no single JSX literal\n * that is correct on both majors.\n *\n * So this sets the real DOM property imperatively in a ref callback\n * instead of relying on JSX attribute diffing at all — the same\n * technique `tool-rail.tsx` / `panel-subview.tsx` already use via\n * `setAttribute('inert', '')` for exactly this reason. `.inert` is a\n * REFLECTED boolean IDL property (WHATWG spec): setting it always\n * updates the content attribute too, in every browser, regardless of\n * which React major (or none) rendered the element, so\n * `hasAttribute('inert')` stays a valid version-agnostic check. The\n * declarative `inert` JSX prop stays in place alongside it (harmless,\n * and keeps today's React 19 markup identical) — the ref is the\n * backstop that actually fixes React 18.\n */\nfunction forceInert<T extends HTMLElement>(node: T | null): void {\n if (node) node.inert = true;\n}\n\nconst buttonGroupVariants = cva(\n 'ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10',\n {\n variants: {\n orientation: {\n horizontal: [\n 'ds:flex-row',\n 'ds:[&>*:not(:first-child)]:rounded-s-none',\n 'ds:[&>*:not(:last-child)]:rounded-e-none',\n 'ds:[&>*:not(:first-child)]:-ms-px',\n ].join(' '),\n vertical: [\n 'ds:flex-col',\n 'ds:[&>*:not(:first-child)]:rounded-t-none',\n 'ds:[&>*:not(:last-child)]:rounded-b-none',\n 'ds:[&>*:not(:first-child)]:-mt-px',\n ].join(' '),\n },\n separator: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n separator: true,\n class:\n 'ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border',\n },\n {\n orientation: 'vertical',\n separator: true,\n class:\n 'ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border',\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n separator: false,\n },\n },\n);\n\n// Hidden measurement rows: laid out (so widths are real) but invisible,\n// non-interactive and out of the a11y tree. Never display:none.\nconst MEASURE_ROW_CLASSES =\n 'ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none';\n\ntype GroupChildProps = {\n intent?: ButtonIntent;\n background?: 'transparent' | 'surface';\n tabIndex?: number;\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n ref?: React.Ref<HTMLButtonElement>;\n children?: ReactNode;\n disabled?: boolean;\n loading?: boolean;\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n hideLabel?: boolean;\n 'aria-label'?: string;\n 'data-overflow-pin'?: boolean | 'true' | '';\n 'data-overflow-tip'?: boolean | 'false';\n size?: ButtonProps['size'];\n};\n\nexport interface ButtonGroupProps\n extends\n HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof buttonGroupVariants> {\n /**\n * Accessible label for the group. Falls back to the translated\n * `ui.buttonGroup.label` string when not provided.\n */\n label?: string;\n /**\n * When the children are interactive toolbar-style controls (e.g. toggles),\n * set this to render `role=\"toolbar\"` instead of `role=\"group\"`.\n */\n toolbar?: boolean;\n /**\n * Intent applied to every Button / IconButton child that does not set\n * its own `intent`. Defaults to `outline` — grouped buttons are peers,\n * not three solid-primary CTAs.\n */\n intent?: ButtonIntent;\n /**\n * Backing paint behind the outline intents, applied to every child that\n * does not set its own `background` AND to the group's own overflow\n * trigger. `'transparent'` (default) lets the surface behind show through\n * — right on a toolbar or a tinted shell. `'surface'` paints\n * `--background` behind the whole strip, so it reads as one solid control\n * on a host page or a panel footer. A child's explicit `background` wins.\n *\n * Set this rather than passing `background` to each child: the ellipsis\n * trigger is the group's own, so no per-child prop can reach it and the\n * strip would collapse to a mismatched see-through button.\n */\n background?: 'transparent' | 'surface';\n /**\n * Size applied to every child that does not set its own `size` AND to the\n * group's own overflow trigger. Set it here rather than per child: the\n * ellipsis trigger is the group's, so a per-child `size` leaves it at the\n * default `md` and the strip ends on a button taller than the rest.\n */\n size?: ButtonProps['size'];\n /**\n * `'menu'` keeps the strip on one line whatever the container width:\n * once the buttons stop fitting (after the optional `collapseToIcons`\n * stage) trailing ones move into a dropdown behind an ellipsis trigger.\n * The group then fills its container's inline size, so give it a bounded\n * parent. Horizontal only. Children needing to stay in the strip set\n * `data-overflow-pin`; children without a string label or `aria-label`\n * cannot be mirrored into the menu and are pinned automatically.\n */\n overflow?: 'none' | 'menu';\n /**\n * With `overflow=\"menu\"`: before spilling into the menu, hide every\n * child's label (`hideLabel`) and keep only its `startIcon` — buttons\n * without an icon shrink to their padding, so give each child one.\n */\n collapseToIcons?: boolean;\n}\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n {\n className,\n orientation = 'horizontal',\n separator = false,\n toolbar = false,\n intent = 'outline',\n background = 'transparent',\n size,\n label,\n overflow = 'none',\n collapseToIcons = false,\n children,\n ...props\n },\n ref,\n ) => {\n const { t } = useTranslation();\n const accessibleLabel = label ?? t('buttonGroup.label', 'Button group');\n const moreLabel = t('buttonGroup.more', 'More options');\n\n if (\n import.meta.env.DEV &&\n overflow === 'menu' &&\n orientation === 'vertical'\n ) {\n console.warn(\n 'ButtonGroup: overflow=\"menu\" is horizontal-only; falling back to overflow=\"none\".',\n );\n }\n const overflowEnabled = overflow === 'menu' && orientation !== 'vertical';\n\n // Roving tabindex — required by the WAI-ARIA toolbar pattern.\n // When `toolbar` is true, one child owns `tabIndex=0` and the rest are\n // `-1`. Arrow keys / Home / End move focus between children, respecting\n // orientation and RTL. Plain `group` mode keeps every child natively\n // tabbable.\n const rovingTabindex = toolbar;\n const buttonsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const [focusIndex, setFocusIndex] = useState(0);\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [isRTL, setIsRTL] = useState(false);\n useIsomorphicLayoutEffect(() => {\n if (typeof window === 'undefined') return;\n const node = rootRef.current;\n if (!node) return;\n setIsRTL(window.getComputedStyle(node).direction === 'rtl');\n }, []);\n\n const handleRootKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (!rovingTabindex) return;\n const count = buttonsRef.current.filter(Boolean).length;\n if (count === 0) return;\n\n const forwardKey =\n orientation === 'vertical'\n ? 'ArrowDown'\n : isRTL\n ? 'ArrowLeft'\n : 'ArrowRight';\n const backwardKey =\n orientation === 'vertical'\n ? 'ArrowUp'\n : isRTL\n ? 'ArrowRight'\n : 'ArrowLeft';\n\n let next: number | null = null;\n if (event.key === forwardKey) next = (focusIndex + 1) % count;\n else if (event.key === backwardKey)\n next = (focusIndex - 1 + count) % count;\n else if (event.key === 'Home') next = 0;\n else if (event.key === 'End') next = count - 1;\n if (next === null) return;\n\n // Skip over disabled children.\n const maxAttempts = count;\n let attempts = 0;\n let candidate = next;\n while (attempts < maxAttempts) {\n const el = buttonsRef.current[candidate];\n if (\n el &&\n el.getAttribute('aria-disabled') !== 'true' &&\n !el.disabled\n ) {\n break;\n }\n candidate =\n event.key === backwardKey || event.key === 'End'\n ? (candidate - 1 + count) % count\n : (candidate + 1) % count;\n attempts += 1;\n }\n event.preventDefault();\n setFocusIndex(candidate);\n buttonsRef.current[candidate]?.focus();\n },\n [rovingTabindex, orientation, isRTL, focusIndex],\n );\n\n /* ---- Overflow bookkeeping (menu mode only) --------------------- */\n const childElements = overflowEnabled\n ? (Children.toArray(children).filter(isValidElement) as Array<\n ReactElement<GroupChildProps>\n >)\n : [];\n\n const mirrorLabel = (child: ReactElement<GroupChildProps>) => {\n if (typeof child.props.children === 'string') return child.props.children;\n const aria = child.props['aria-label'];\n return typeof aria === 'string' ? aria : null;\n };\n const warnedRef = useRef(false);\n const pinnedFlags = childElements.map((child) => {\n const explicit = child.props['data-overflow-pin'] !== undefined;\n const mirrorable = mirrorLabel(child) !== null;\n if (\n import.meta.env.DEV &&\n !explicit &&\n !mirrorable &&\n !warnedRef.current\n ) {\n warnedRef.current = true;\n console.warn(\n 'ButtonGroup: a child without a string label or aria-label cannot move into the overflow menu — it stays pinned in the strip.',\n );\n }\n return explicit || !mirrorable;\n });\n\n const {\n containerRef,\n fullRowRef,\n iconRowRef,\n triggerProbeRef,\n stage,\n visible,\n overflowing,\n } = usePriorityOverflow({\n enabled: overflowEnabled,\n count: childElements.length,\n twoStage: collapseToIcons,\n pinned: pinnedFlags,\n });\n // `fullRowRef`/`iconRowRef`/`triggerProbeRef` are already stable\n // (`useCallback([])` inside the hook), so wrapping them keeps a\n // stable identity too — required so the ref callback fires once per\n // mount rather than on every render. See `forceInert` above.\n const fullRowInertRef = useCallback(\n (node: HTMLDivElement | null) => {\n forceInert(node);\n fullRowRef(node);\n },\n [fullRowRef],\n );\n const iconRowInertRef = useCallback(\n (node: HTMLDivElement | null) => {\n forceInert(node);\n iconRowRef(node);\n },\n [iconRowRef],\n );\n const triggerProbeInertRef = useCallback(\n (node: HTMLSpanElement | null) => {\n forceInert(node);\n triggerProbeRef(node);\n },\n [triggerProbeRef],\n );\n\n const triggerNodeRef = useRef<HTMLButtonElement | null>(null);\n const visibleCount = overflowEnabled\n ? visible.filter(Boolean).length\n : Children.count(children);\n\n // Clamp the roving focus when items move into the menu; hand real focus\n // to the trigger only when the focused node was the one that left.\n useEffect(() => {\n if (!rovingTabindex || !overflowEnabled) return;\n const total = visibleCount + (overflowing ? 1 : 0);\n if (total > 0 && focusIndex >= total) {\n setFocusIndex(total - 1);\n if (document.activeElement === document.body) {\n triggerNodeRef.current?.focus();\n }\n }\n }, [\n rovingTabindex,\n overflowEnabled,\n visibleCount,\n overflowing,\n focusIndex,\n ]);\n\n const mergeChildRef = (\n childEl: ReactElement<GroupChildProps>,\n index: number,\n ) => {\n return (node: HTMLButtonElement | null) => {\n buttonsRef.current[index] = node;\n const originalRef = (\n childEl as unknown as { ref?: React.Ref<HTMLButtonElement> }\n ).ref;\n if (typeof originalRef === 'function') originalRef(node);\n else if (\n originalRef !== null &&\n originalRef !== undefined &&\n typeof originalRef === 'object'\n ) {\n (\n originalRef as React.MutableRefObject<HTMLButtonElement | null>\n ).current = node;\n }\n };\n };\n\n /* ---- Legacy path: overflow=\"none\" keeps today's exact DOM ------ */\n const enhanced = overflowEnabled\n ? null\n : Children.map(children, (child, index) => {\n if (!isValidElement(child)) return child;\n const childEl = child as ReactElement<GroupChildProps>;\n\n // Roving-tabindex wiring (ref / tabIndex / onFocus) is only needed in\n // `toolbar` mode. In plain `group` mode inject ONLY `intent`, so the group\n // composes with members that don't forward a ref — e.g. each wrapped in a\n // `DropdownMenu.Root` for a split-button strip — without React's \"function\n // components cannot be given refs\" warning. The joined styling is DOM-level\n // (`[&>*]`), so it still applies to the rendered buttons either way.\n const overrides: Record<string, unknown> = {\n intent: childEl.props.intent ?? intent,\n background: childEl.props.background ?? background,\n ...(size ? { size: childEl.props.size ?? size } : null),\n };\n if (rovingTabindex) {\n overrides.tabIndex = index === focusIndex ? 0 : -1;\n overrides.onFocus = (ev: React.FocusEvent<HTMLButtonElement>) => {\n setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n };\n overrides.ref = mergeChildRef(childEl, index);\n }\n\n return cloneElement(\n childEl,\n overrides as Partial<typeof childEl.props>,\n );\n });\n\n /* ---- Menu path: strip of visible children + ellipsis trigger --- */\n let stripChildren: ReactNode = null;\n let menuItems: ReactNode = null;\n if (overflowEnabled) {\n buttonsRef.current.length = visibleCount + (overflowing ? 1 : 0);\n let stripIndex = -1;\n stripChildren = childElements.map((childEl, i) => {\n if (!visible[i]) return null;\n stripIndex += 1;\n const index = stripIndex;\n const overrides: Record<string, unknown> = {\n intent: childEl.props.intent ?? intent,\n background: childEl.props.background ?? background,\n ...(size ? { size: childEl.props.size ?? size } : null),\n };\n // Only children with an icon AND a text label collapse; icon-only\n // children (their children ARE the icon) would go blank.\n if (\n collapseToIcons &&\n stage === 'icons' &&\n childEl.props.children &&\n (childEl.props.startIcon || childEl.props.endIcon)\n )\n overrides.hideLabel = true;\n if (rovingTabindex) {\n overrides.tabIndex = index === focusIndex ? 0 : -1;\n overrides.onFocus = (ev: React.FocusEvent<HTMLButtonElement>) => {\n setFocusIndex(index);\n childEl.props.onFocus?.(ev);\n };\n overrides.ref = mergeChildRef(childEl, index);\n }\n const collapsed = overrides.hideLabel === true;\n const cloned = cloneElement(\n childEl,\n overrides as Partial<GroupChildProps>,\n );\n // A collapsed child keeps its label screen-reader-only, so assistive\n // tech is fine — but a sighted user is left with a bare glyph and no\n // way to learn what it does. Give the collapsed stage a Tooltip.\n // `Tooltip` renders its trigger `asChild`, so the button stays the\n // group's DIRECT child and the joined-border `[&>*]` rules still hit.\n // A child that is itself a hover trigger (a HoverCard preview, say)\n // opts out with `data-overflow-tip={false}` — two overlays racing on\n // one pointer is worse than none.\n const ownsItsTip =\n childEl.props['data-overflow-tip'] === false ||\n childEl.props['data-overflow-tip'] === 'false';\n const tip = collapsed && !ownsItsTip ? mirrorLabel(childEl) : null;\n return tip ? (\n <Tooltip key={childEl.key ?? i} label={tip}>\n {cloned}\n </Tooltip>\n ) : (\n cloned\n );\n });\n\n menuItems = childElements.map((childEl, i) => {\n if (visible[i]) return null;\n const itemLabel = mirrorLabel(childEl);\n if (itemLabel === null) return null;\n return (\n <DropdownMenu.Item\n key={childEl.key ?? i}\n startIcon={childEl.props.startIcon}\n disabled={\n childEl.props.disabled === true || childEl.props.loading === true\n }\n onSelect={(event) => {\n childEl.props.onClick?.(\n event as unknown as React.MouseEvent<HTMLButtonElement>,\n );\n }}\n >\n {itemLabel}\n </DropdownMenu.Item>\n );\n });\n }\n\n const mergedRootRef = (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref && typeof ref === 'object') {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n };\n\n if (!overflowEnabled) {\n return (\n <div\n ref={mergedRootRef}\n role={toolbar ? 'toolbar' : 'group'}\n aria-label={accessibleLabel}\n aria-orientation={toolbar ? (orientation ?? 'horizontal') : undefined}\n data-component=\"button-group\"\n onKeyDown={handleRootKeyDown}\n className={buttonGroupVariants({ orientation, separator, className })}\n {...props}\n >\n {enhanced}\n </div>\n );\n }\n\n const stripClasses = buttonGroupVariants({ orientation, separator });\n const triggerIndex = visibleCount;\n const measureClone = (\n childEl: ReactElement<GroupChildProps>,\n i: number,\n icons: boolean,\n ) =>\n cloneElement(childEl, {\n key: childEl.key ?? i,\n intent: childEl.props.intent ?? intent,\n background: childEl.props.background ?? background,\n ...(size ? { size: childEl.props.size ?? size } : null),\n tabIndex: -1,\n // Same rule as the live strip: icon-only children never hideLabel.\n ...(icons &&\n childEl.props.children &&\n (childEl.props.startIcon || childEl.props.endIcon)\n ? { hideLabel: true }\n : null),\n ref: null,\n } as Partial<GroupChildProps>);\n\n return (\n <div\n ref={mergedRootRef}\n data-component=\"button-group\"\n className={[\n 'ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip',\n className ?? '',\n ]\n .join(' ')\n .trim()}\n {...props}\n >\n <div ref={containerRef} className=\"ds:block ds:w-full ds:min-w-0\">\n {/* Measurement rows: every item at natural width, both stages. */}\n <div\n ref={fullRowInertRef}\n aria-hidden=\"true\"\n inert\n className={`${MEASURE_ROW_CLASSES} ${stripClasses}`}\n >\n {childElements.map((c, i) => measureClone(c, i, false))}\n </div>\n {collapseToIcons ? (\n <div\n ref={iconRowInertRef}\n aria-hidden=\"true\"\n inert\n className={`${MEASURE_ROW_CLASSES} ${stripClasses}`}\n >\n {childElements.map((c, i) => measureClone(c, i, true))}\n </div>\n ) : null}\n <span\n ref={triggerProbeInertRef}\n aria-hidden=\"true\"\n inert\n className={MEASURE_ROW_CLASSES}\n >\n <IconButton\n icon={<Ellipsis />}\n intent={intent}\n background={background}\n size={size}\n aria-label={moreLabel}\n tabIndex={-1}\n />\n </span>\n\n <div\n role={toolbar ? 'toolbar' : 'group'}\n aria-label={accessibleLabel}\n aria-orientation={toolbar ? 'horizontal' : undefined}\n onKeyDown={handleRootKeyDown}\n /* `align-top` kills the baseline descender gap under an\n inline-level strip: without it the group measures ~3px taller\n than its own buttons, so it never lines up with a sibling\n control (a status pill, a select) in a shared `items-center`\n row. */\n className={`${stripClasses} ds:max-w-full ds:align-top`}\n >\n {stripChildren}\n {overflowing ? (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={<Ellipsis />}\n intent={intent}\n background={background}\n size={size}\n aria-label={moreLabel}\n ref={(node: HTMLButtonElement | null) => {\n triggerNodeRef.current = node;\n buttonsRef.current[triggerIndex] = node;\n }}\n tabIndex={\n rovingTabindex\n ? focusIndex === triggerIndex\n ? 0\n : -1\n : undefined\n }\n onFocus={\n rovingTabindex\n ? () => setFocusIndex(triggerIndex)\n : undefined\n }\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {menuItems}\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : null}\n </div>\n </div>\n </div>\n );\n },\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n"],"names":["forceInert","node","buttonGroupVariants","cva","MEASURE_ROW_CLASSES","ButtonGroup","forwardRef","className","orientation","separator","toolbar","intent","background","size","label","overflow","collapseToIcons","children","props","ref","t","useTranslation","accessibleLabel","moreLabel","overflowEnabled","rovingTabindex","buttonsRef","useRef","focusIndex","setFocusIndex","useState","rootRef","isRTL","setIsRTL","useIsomorphicLayoutEffect","handleRootKeyDown","useCallback","event","count","forwardKey","backwardKey","next","maxAttempts","attempts","candidate","el","_a","childElements","Children","isValidElement","mirrorLabel","child","aria","pinnedFlags","explicit","mirrorable","containerRef","fullRowRef","iconRowRef","triggerProbeRef","stage","visible","overflowing","usePriorityOverflow","fullRowInertRef","iconRowInertRef","triggerProbeInertRef","triggerNodeRef","visibleCount","useEffect","total","mergeChildRef","childEl","index","originalRef","enhanced","overrides","ev","_b","cloneElement","stripChildren","menuItems","stripIndex","i","collapsed","cloned","ownsItsTip","tip","Tooltip","itemLabel","jsx","DropdownMenu","mergedRootRef","stripClasses","triggerIndex","measureClone","icons","c","IconButton","Ellipsis","jsxs"],"mappings":"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"}
@@ -12,7 +12,7 @@ import cr from "@fullcalendar/timeline";
12
12
  import ur from "@fullcalendar/interaction";
13
13
  import { u as fr } from "./use-prefers-reduced-motion-BMwIQRjB.js";
14
14
  import { u as mr } from "./registry-DvAUVLHh.js";
15
- import { w as pr, C as vr } from "./calendar-event-card-DKUnT9Be.js";
15
+ import { w as pr, C as vr } from "./calendar-event-card-B6N5h1dO.js";
16
16
  import { A as hr } from "./avatar-CkDeQOSI.js";
17
17
  import { B as gr } from "./button-CaUe1uyd.js";
18
18
  import { R as yr } from "./resource-chip-DYTG0IQQ.js";
@@ -1342,4 +1342,4 @@ export {
1342
1342
  Tr as c,
1343
1343
  be as r
1344
1344
  };
1345
- //# sourceMappingURL=calendar-U6N0F99w.js.map
1345
+ //# sourceMappingURL=calendar-OzSeTb4V.js.map