@alfadocs/ui-kit-debug 1.45.0 → 1.47.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 (324) 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-C4MwImkS.js +3362 -0
  26. package/dist/_chunks/booking-C4MwImkS.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-DDnQmiIL.js +12427 -0
  34. package/dist/_chunks/calendar-workspace-DDnQmiIL.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/{freemium-paywall-Cz-O9lQD.js → freemium-paywall-BaW5ODc9.js} +2 -2
  46. package/dist/_chunks/{freemium-paywall-Cz-O9lQD.js.map → freemium-paywall-BaW5ODc9.js.map} +1 -1
  47. package/dist/_chunks/{header-settings-CTe45iDy.js → header-settings-BEfx_-TF.js} +2 -2
  48. package/dist/_chunks/{header-settings-CTe45iDy.js.map → header-settings-BEfx_-TF.js.map} +1 -1
  49. package/dist/_chunks/{help-me-write-templates-GUeEn3Ff.js → help-me-write-templates-DHIwa4xR.js} +205 -199
  50. package/dist/_chunks/help-me-write-templates-DHIwa4xR.js.map +1 -0
  51. package/dist/_chunks/{hover-card-BMJBVqIf.js → hover-card-nUae8NPJ.js} +67 -62
  52. package/dist/_chunks/{hover-card-BMJBVqIf.js.map → hover-card-nUae8NPJ.js.map} +1 -1
  53. package/dist/_chunks/{icon-button-group-DkkdIygu.js → icon-button-group-DZKC6KGf.js} +181 -168
  54. package/dist/_chunks/icon-button-group-DZKC6KGf.js.map +1 -0
  55. package/dist/_chunks/kit-extensions-DuoFF1R3.js +94 -0
  56. package/dist/_chunks/kit-extensions-DuoFF1R3.js.map +1 -0
  57. package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js → marketplace-app-shell-PB89Dkk_.js} +2 -2
  58. package/dist/_chunks/{marketplace-app-shell-DdwPj03y.js.map → marketplace-app-shell-PB89Dkk_.js.map} +1 -1
  59. package/dist/_chunks/{notes-panel-Dkk9QPPX.js → notes-panel-CHbDDMx8.js} +83 -73
  60. package/dist/_chunks/notes-panel-CHbDDMx8.js.map +1 -0
  61. package/dist/_chunks/{patient-details-C8ImUrVg.js → patient-details-yrgkSeEY.js} +2 -2
  62. package/dist/_chunks/{patient-details-C8ImUrVg.js.map → patient-details-yrgkSeEY.js.map} +1 -1
  63. package/dist/_chunks/{patient-field-row-BRSOKvme.js → patient-field-row-DCMkFGqI.js} +3 -3
  64. package/dist/_chunks/patient-field-row-DCMkFGqI.js.map +1 -0
  65. package/dist/_chunks/{patient-summary-card-BhmKB2KR.js → patient-summary-card-CmEFflGS.js} +59 -45
  66. package/dist/_chunks/patient-summary-card-CmEFflGS.js.map +1 -0
  67. package/dist/_chunks/payment-form-DqJFiplX.js +881 -0
  68. package/dist/_chunks/payment-form-DqJFiplX.js.map +1 -0
  69. package/dist/_chunks/{phone-input-BsZIoE36.js → phone-input-IWrGOCwm.js} +40 -39
  70. package/dist/_chunks/{phone-input-BsZIoE36.js.map → phone-input-IWrGOCwm.js.map} +1 -1
  71. package/dist/_chunks/rich-text-editor-BwDV2XkZ.js +4153 -0
  72. package/dist/_chunks/rich-text-editor-BwDV2XkZ.js.map +1 -0
  73. package/dist/_chunks/{stepper-accordion-DmVykr5F.js → stepper-accordion-jMR8NaOB.js} +2 -1
  74. package/dist/_chunks/{stepper-accordion-DmVykr5F.js.map → stepper-accordion-jMR8NaOB.js.map} +1 -1
  75. package/dist/_chunks/{tasks-panel-CpcikOeY.js → tasks-panel-DncuBPIZ.js} +2 -2
  76. package/dist/_chunks/{tasks-panel-CpcikOeY.js.map → tasks-panel-DncuBPIZ.js.map} +1 -1
  77. package/dist/_chunks/{theme-toggle-bI0pgDDv.js → theme-toggle-BP0XRGMM.js} +2 -2
  78. package/dist/_chunks/{theme-toggle-bI0pgDDv.js.map → theme-toggle-BP0XRGMM.js.map} +1 -1
  79. package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js +76 -0
  80. package/dist/_chunks/use-ai-sparkle-Cf4yVTLB.js.map +1 -0
  81. package/dist/_chunks/{workflow-status-xeaJTzD3.js → workflow-status-CuJAOuKL.js} +43 -42
  82. package/dist/_chunks/{workflow-status-xeaJTzD3.js.map → workflow-status-CuJAOuKL.js.map} +1 -1
  83. package/dist/agent-catalog.json +36 -7
  84. package/dist/agent-i18n/en.json +3 -3
  85. package/dist/components/_shared/field-value.d.ts.map +1 -1
  86. package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts +3 -0
  87. package/dist/components/ai-credits-notice/ai-credits-notice.agent.d.ts.map +1 -0
  88. package/dist/components/ai-credits-notice/ai-credits-notice.d.ts +48 -0
  89. package/dist/components/ai-credits-notice/ai-credits-notice.d.ts.map +1 -0
  90. package/dist/components/ai-credits-notice/index.d.ts +4 -0
  91. package/dist/components/ai-credits-notice/index.d.ts.map +1 -0
  92. package/dist/components/ai-credits-notice/index.js +7 -0
  93. package/dist/components/ai-credits-notice/index.js.map +1 -0
  94. package/dist/components/{ai-consent-banner/ai-consent-banner.agent.d.ts → ai-permission-notice/ai-permission-notice.agent.d.ts} +2 -2
  95. package/dist/components/ai-permission-notice/ai-permission-notice.agent.d.ts.map +1 -0
  96. package/dist/components/{ai-consent-banner/ai-consent-banner.d.ts → ai-permission-notice/ai-permission-notice.d.ts} +1 -1
  97. package/dist/components/ai-permission-notice/ai-permission-notice.d.ts.map +1 -0
  98. package/dist/components/ai-permission-notice/index.d.ts +4 -0
  99. package/dist/components/ai-permission-notice/index.d.ts.map +1 -0
  100. package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js +1 -1
  101. package/dist/components/ai-sparkle/ai-sparkle.d.ts +3 -3
  102. package/dist/components/ai-sparkle/ai-sparkle.d.ts.map +1 -1
  103. package/dist/components/ai-sparkle/index.js +1 -1
  104. package/dist/components/appointment-card/index.js +2 -2
  105. package/dist/components/appointment-peek/index.js +1 -1
  106. package/dist/components/appointment-timeline/index.js +1 -1
  107. package/dist/components/booking/booking-types.d.ts +60 -1
  108. package/dist/components/booking/booking-types.d.ts.map +1 -1
  109. package/dist/components/booking/booking.agent.d.ts.map +1 -1
  110. package/dist/components/booking/booking.d.ts +1 -1
  111. package/dist/components/booking/booking.d.ts.map +1 -1
  112. package/dist/components/booking/details-form.d.ts +5 -1
  113. package/dist/components/booking/details-form.d.ts.map +1 -1
  114. package/dist/components/booking/index.d.ts +1 -1
  115. package/dist/components/booking/index.d.ts.map +1 -1
  116. package/dist/components/booking/index.js +1 -1
  117. package/dist/components/booking/payment.d.ts +9 -0
  118. package/dist/components/booking/payment.d.ts.map +1 -0
  119. package/dist/components/booking/use-booking-payment.d.ts +14 -0
  120. package/dist/components/booking/use-booking-payment.d.ts.map +1 -0
  121. package/dist/components/button-group/button-group.d.ts.map +1 -1
  122. package/dist/components/button-group/index.js +1 -1
  123. package/dist/components/calendar/index.js +1 -1
  124. package/dist/components/calendar-event-card/calendar-event-card.d.ts.map +1 -1
  125. package/dist/components/calendar-event-card/index.js +1 -1
  126. package/dist/components/chart/index.js +1 -1
  127. package/dist/components/data-table/index.js +3 -3
  128. package/dist/components/face-scheme/index.js +1 -1
  129. package/dist/components/file-manager/index.js +1 -1
  130. package/dist/components/freemium-paywall/index.js +1 -1
  131. package/dist/components/header-settings/index.js +1 -1
  132. package/dist/components/hover-card/hover-card.d.ts +4 -0
  133. package/dist/components/hover-card/hover-card.d.ts.map +1 -1
  134. package/dist/components/hover-card/index.d.ts +1 -1
  135. package/dist/components/hover-card/index.d.ts.map +1 -1
  136. package/dist/components/hover-card/index.js +3 -2
  137. package/dist/components/icon-button-group/icon-button-group.d.ts.map +1 -1
  138. package/dist/components/icon-button-group/index.js +1 -1
  139. package/dist/components/index.d.ts +2 -1
  140. package/dist/components/index.d.ts.map +1 -1
  141. package/dist/components/notes-panel/index.js +1 -1
  142. package/dist/components/notes-panel/notes-panel.d.ts +10 -0
  143. package/dist/components/notes-panel/notes-panel.d.ts.map +1 -1
  144. package/dist/components/patient-details/index.js +1 -1
  145. package/dist/components/patient-summary-card/index.js +1 -1
  146. package/dist/components/patient-summary-card/patient-summary-card.d.ts.map +1 -1
  147. package/dist/components/patient-table/index.js +1 -1
  148. package/dist/components/payment-form/index.d.ts +1 -1
  149. package/dist/components/payment-form/index.d.ts.map +1 -1
  150. package/dist/components/payment-form/index.js +1 -1
  151. package/dist/components/payment-form/payment-form.d.ts +35 -3
  152. package/dist/components/payment-form/payment-form.d.ts.map +1 -1
  153. package/dist/components/phone-input/index.js +1 -1
  154. package/dist/components/phone-input/phone-input.d.ts.map +1 -1
  155. package/dist/components/rich-text-editor/editor-extensions.d.ts +54 -0
  156. package/dist/components/rich-text-editor/editor-extensions.d.ts.map +1 -0
  157. package/dist/components/rich-text-editor/editor-toolbar.d.ts +2 -1
  158. package/dist/components/rich-text-editor/editor-toolbar.d.ts.map +1 -1
  159. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts +4 -0
  160. package/dist/components/rich-text-editor/help-me-write-overlay.d.ts.map +1 -1
  161. package/dist/components/rich-text-editor/index.d.ts +2 -0
  162. package/dist/components/rich-text-editor/index.d.ts.map +1 -1
  163. package/dist/components/rich-text-editor/index.js +6 -4
  164. package/dist/components/rich-text-editor/index.js.map +1 -1
  165. package/dist/components/rich-text-editor/kit-extensions.d.ts +4 -0
  166. package/dist/components/rich-text-editor/kit-extensions.d.ts.map +1 -0
  167. package/dist/components/rich-text-editor/rich-text-editor.d.ts +18 -2
  168. package/dist/components/rich-text-editor/rich-text-editor.d.ts.map +1 -1
  169. package/dist/components/stepper-accordion/index.js +1 -1
  170. package/dist/components/stepper-accordion/stepper-accordion.d.ts.map +1 -1
  171. package/dist/components/tasks-panel/index.js +1 -1
  172. package/dist/components/theme-toggle/index.js +1 -1
  173. package/dist/components/workflow-status/index.js +1 -1
  174. package/dist/components/workflow-status/workflow-status.d.ts.map +1 -1
  175. package/dist/hooks/index.d.ts +1 -1
  176. package/dist/hooks/index.d.ts.map +1 -1
  177. package/dist/hooks/index.js +51 -53
  178. package/dist/hooks/use-ai-sparkle.d.ts +7 -25
  179. package/dist/hooks/use-ai-sparkle.d.ts.map +1 -1
  180. package/dist/host-compat.css +2 -2
  181. package/dist/i18n/locales/ar.d.ts +67 -1
  182. package/dist/i18n/locales/ar.d.ts.map +1 -1
  183. package/dist/i18n/locales/ar.js +69 -3
  184. package/dist/i18n/locales/ar.js.map +1 -1
  185. package/dist/i18n/locales/de.d.ts +67 -1
  186. package/dist/i18n/locales/de.d.ts.map +1 -1
  187. package/dist/i18n/locales/de.js +69 -3
  188. package/dist/i18n/locales/de.js.map +1 -1
  189. package/dist/i18n/locales/el.d.ts +67 -1
  190. package/dist/i18n/locales/el.d.ts.map +1 -1
  191. package/dist/i18n/locales/el.js +69 -3
  192. package/dist/i18n/locales/el.js.map +1 -1
  193. package/dist/i18n/locales/en.d.ts +67 -1
  194. package/dist/i18n/locales/en.d.ts.map +1 -1
  195. package/dist/i18n/locales/en.js +69 -3
  196. package/dist/i18n/locales/en.js.map +1 -1
  197. package/dist/i18n/locales/es.d.ts +67 -1
  198. package/dist/i18n/locales/es.d.ts.map +1 -1
  199. package/dist/i18n/locales/es.js +69 -3
  200. package/dist/i18n/locales/es.js.map +1 -1
  201. package/dist/i18n/locales/fr.d.ts +67 -1
  202. package/dist/i18n/locales/fr.d.ts.map +1 -1
  203. package/dist/i18n/locales/fr.js +69 -3
  204. package/dist/i18n/locales/fr.js.map +1 -1
  205. package/dist/i18n/locales/hi.d.ts +67 -1
  206. package/dist/i18n/locales/hi.d.ts.map +1 -1
  207. package/dist/i18n/locales/hi.js +69 -3
  208. package/dist/i18n/locales/hi.js.map +1 -1
  209. package/dist/i18n/locales/it.d.ts +67 -1
  210. package/dist/i18n/locales/it.d.ts.map +1 -1
  211. package/dist/i18n/locales/it.js +69 -3
  212. package/dist/i18n/locales/it.js.map +1 -1
  213. package/dist/i18n/locales/ja.d.ts +67 -1
  214. package/dist/i18n/locales/ja.d.ts.map +1 -1
  215. package/dist/i18n/locales/ja.js +69 -3
  216. package/dist/i18n/locales/ja.js.map +1 -1
  217. package/dist/i18n/locales/nl.d.ts +67 -1
  218. package/dist/i18n/locales/nl.d.ts.map +1 -1
  219. package/dist/i18n/locales/nl.js +69 -3
  220. package/dist/i18n/locales/nl.js.map +1 -1
  221. package/dist/i18n/locales/pl.d.ts +67 -1
  222. package/dist/i18n/locales/pl.d.ts.map +1 -1
  223. package/dist/i18n/locales/pl.js +69 -3
  224. package/dist/i18n/locales/pl.js.map +1 -1
  225. package/dist/i18n/locales/pt.d.ts +67 -1
  226. package/dist/i18n/locales/pt.d.ts.map +1 -1
  227. package/dist/i18n/locales/pt.js +69 -3
  228. package/dist/i18n/locales/pt.js.map +1 -1
  229. package/dist/i18n/locales/ro.d.ts +67 -1
  230. package/dist/i18n/locales/ro.d.ts.map +1 -1
  231. package/dist/i18n/locales/ro.js +69 -3
  232. package/dist/i18n/locales/ro.js.map +1 -1
  233. package/dist/i18n/locales/ru.d.ts +67 -1
  234. package/dist/i18n/locales/ru.d.ts.map +1 -1
  235. package/dist/i18n/locales/ru.js +69 -3
  236. package/dist/i18n/locales/ru.js.map +1 -1
  237. package/dist/i18n/locales/sq.d.ts +67 -1
  238. package/dist/i18n/locales/sq.d.ts.map +1 -1
  239. package/dist/i18n/locales/sq.js +69 -3
  240. package/dist/i18n/locales/sq.js.map +1 -1
  241. package/dist/i18n/locales/sv.d.ts +67 -1
  242. package/dist/i18n/locales/sv.d.ts.map +1 -1
  243. package/dist/i18n/locales/sv.js +69 -3
  244. package/dist/i18n/locales/sv.js.map +1 -1
  245. package/dist/i18n/locales/tr.d.ts +67 -1
  246. package/dist/i18n/locales/tr.d.ts.map +1 -1
  247. package/dist/i18n/locales/tr.js +69 -3
  248. package/dist/i18n/locales/tr.js.map +1 -1
  249. package/dist/i18n/locales/zh.d.ts +67 -1
  250. package/dist/i18n/locales/zh.d.ts.map +1 -1
  251. package/dist/i18n/locales/zh.js +69 -3
  252. package/dist/i18n/locales/zh.js.map +1 -1
  253. package/dist/index.js +648 -641
  254. package/dist/index.js.map +1 -1
  255. package/dist/locales/ar.json +69 -3
  256. package/dist/locales/de.json +69 -3
  257. package/dist/locales/el.json +69 -3
  258. package/dist/locales/en.json +69 -3
  259. package/dist/locales/es.json +69 -3
  260. package/dist/locales/fr.json +69 -3
  261. package/dist/locales/hi.json +69 -3
  262. package/dist/locales/it.json +69 -3
  263. package/dist/locales/ja.json +69 -3
  264. package/dist/locales/nl.json +69 -3
  265. package/dist/locales/pl.json +69 -3
  266. package/dist/locales/pt.json +69 -3
  267. package/dist/locales/ro.json +69 -3
  268. package/dist/locales/ru.json +69 -3
  269. package/dist/locales/sq.json +69 -3
  270. package/dist/locales/sv.json +69 -3
  271. package/dist/locales/tr.json +69 -3
  272. package/dist/locales/zh.json +69 -3
  273. package/dist/patterns/anamnesis/index.js +1 -1
  274. package/dist/patterns/calendar/calendar-appointment-details.d.ts.map +1 -1
  275. package/dist/patterns/calendar/calendar-appointment-details.sections.d.ts.map +1 -1
  276. package/dist/patterns/calendar/calendar-bookings-panel.d.ts.map +1 -1
  277. package/dist/patterns/calendar/calendar-editor-fields.d.ts +33 -0
  278. package/dist/patterns/calendar/calendar-editor-fields.d.ts.map +1 -0
  279. package/dist/patterns/calendar/calendar-sticky-offset.d.ts +20 -0
  280. package/dist/patterns/calendar/calendar-sticky-offset.d.ts.map +1 -0
  281. package/dist/patterns/calendar/calendar-task-editor.d.ts.map +1 -1
  282. package/dist/patterns/calendar/calendar-workspace.d.ts +6 -4
  283. package/dist/patterns/calendar/calendar-workspace.d.ts.map +1 -1
  284. package/dist/patterns/calendar/calendar.data.d.ts +26 -0
  285. package/dist/patterns/calendar/calendar.data.d.ts.map +1 -1
  286. package/dist/patterns/calendar/calendar.journey.d.ts +1 -1
  287. package/dist/patterns/calendar/calendar.journey.d.ts.map +1 -1
  288. package/dist/patterns/calendar/calendar.sheets.d.ts +16 -5
  289. package/dist/patterns/calendar/calendar.sheets.d.ts.map +1 -1
  290. package/dist/patterns/calendar/calendar.surface.d.ts.map +1 -1
  291. package/dist/patterns/calendar/calendar.types.d.ts +25 -9
  292. package/dist/patterns/calendar/calendar.types.d.ts.map +1 -1
  293. package/dist/patterns/calendar/index.js +1 -1
  294. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts +11 -2
  295. package/dist/patterns/help-me-write-templates/help-me-write-templates.d.ts.map +1 -1
  296. package/dist/patterns/help-me-write-templates/index.js +1 -1
  297. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  298. package/dist/tokens.css +1 -1
  299. package/package.json +14 -4
  300. package/dist/_chunks/ai-consent-banner-D7I2U-cz.js.map +0 -1
  301. package/dist/_chunks/ai-sparkle-DXeP_6a0.js +0 -52
  302. package/dist/_chunks/ai-sparkle-DXeP_6a0.js.map +0 -1
  303. package/dist/_chunks/booking-D43ASl8y.js +0 -3034
  304. package/dist/_chunks/booking-D43ASl8y.js.map +0 -1
  305. package/dist/_chunks/button-group-R32U7SyV.js +0 -307
  306. package/dist/_chunks/button-group-R32U7SyV.js.map +0 -1
  307. package/dist/_chunks/calendar-workspace-B7KvZ1_D.js +0 -12161
  308. package/dist/_chunks/calendar-workspace-B7KvZ1_D.js.map +0 -1
  309. package/dist/_chunks/help-me-write-templates-GUeEn3Ff.js.map +0 -1
  310. package/dist/_chunks/icon-button-group-DkkdIygu.js.map +0 -1
  311. package/dist/_chunks/notes-panel-Dkk9QPPX.js.map +0 -1
  312. package/dist/_chunks/patient-field-row-BRSOKvme.js.map +0 -1
  313. package/dist/_chunks/patient-summary-card-BhmKB2KR.js.map +0 -1
  314. package/dist/_chunks/payment-form-BHMDqW9C.js +0 -767
  315. package/dist/_chunks/payment-form-BHMDqW9C.js.map +0 -1
  316. package/dist/_chunks/rich-text-editor-BrAvNajV.js +0 -3779
  317. package/dist/_chunks/rich-text-editor-BrAvNajV.js.map +0 -1
  318. package/dist/_chunks/use-ai-sparkle-CyQSRTCe.js +0 -103
  319. package/dist/_chunks/use-ai-sparkle-CyQSRTCe.js.map +0 -1
  320. package/dist/components/ai-consent-banner/ai-consent-banner.agent.d.ts.map +0 -1
  321. package/dist/components/ai-consent-banner/ai-consent-banner.d.ts.map +0 -1
  322. package/dist/components/ai-consent-banner/index.d.ts +0 -4
  323. package/dist/components/ai-consent-banner/index.d.ts.map +0 -1
  324. /package/dist/components/{ai-consent-banner → ai-permission-notice}/index.js.map +0 -0
@@ -1,307 +0,0 @@
1
- import { jsx as s, jsxs as z } from "react/jsx-runtime";
2
- import { forwardRef as be, useRef as L, useState as ee, useCallback as ge, Children as T, isValidElement as re, useEffect as we, cloneElement as G } from "react";
3
- import { c as ve } from "./index-D2ZczOXr.js";
4
- import { useTranslation as ye } from "react-i18next";
5
- import { I as te } from "./icon-button-CehAeZoP.js";
6
- import { D as C } from "./dropdown-menu-DU-Hrf33.js";
7
- import { T as he } from "./tooltip-Cp-PLePW.js";
8
- import { u as Re } from "./use-isomorphic-layout-effect-BGfaCOP1.js";
9
- import { u as xe } from "./use-priority-overflow-c9SjxZkZ.js";
10
- import { E as oe } from "./ellipsis-dRo9ouSU.js";
11
- const ne = ve(
12
- "ds:inline-flex ds:isolate ds:[&>*]:relative ds:[&>*:focus-visible]:z-10",
13
- {
14
- variants: {
15
- orientation: {
16
- horizontal: [
17
- "ds:flex-row",
18
- "ds:[&>*:not(:first-child)]:rounded-s-none",
19
- "ds:[&>*:not(:last-child)]:rounded-e-none",
20
- "ds:[&>*:not(:first-child)]:-ms-px"
21
- ].join(" "),
22
- vertical: [
23
- "ds:flex-col",
24
- "ds:[&>*:not(:first-child)]:rounded-t-none",
25
- "ds:[&>*:not(:last-child)]:rounded-b-none",
26
- "ds:[&>*:not(:first-child)]:-mt-px"
27
- ].join(" ")
28
- },
29
- separator: {
30
- true: "",
31
- false: ""
32
- }
33
- },
34
- compoundVariants: [
35
- {
36
- orientation: "horizontal",
37
- separator: !0,
38
- class: "ds:[&>*:not(:last-child)]:border-e ds:[&>*:not(:last-child)]:border-border"
39
- },
40
- {
41
- orientation: "vertical",
42
- separator: !0,
43
- class: "ds:[&>*:not(:last-child)]:border-b ds:[&>*:not(:last-child)]:border-border"
44
- }
45
- ],
46
- defaultVariants: {
47
- orientation: "horizontal",
48
- separator: !1
49
- }
50
- }
51
- ), K = "ds:absolute ds:start-0 ds:top-0 ds:invisible ds:pointer-events-none", Ie = be(
52
- ({
53
- className: $,
54
- orientation: f = "horizontal",
55
- separator: V = !1,
56
- toolbar: g = !1,
57
- intent: w = "outline",
58
- background: v = "transparent",
59
- size: l,
60
- label: se,
61
- overflow: ae = "none",
62
- collapseToIcons: A = !1,
63
- children: N,
64
- ...M
65
- }, y) => {
66
- const { t: O } = ye(), P = se ?? O("buttonGroup.label", "Button group"), U = O("buttonGroup.more", "More options"), u = ae === "menu" && f !== "vertical", d = g, m = L([]), [c, h] = ee(0), _ = L(null), [S, ie] = ee(!1);
67
- Re(() => {
68
- if (typeof window > "u") return;
69
- const e = _.current;
70
- e && ie(window.getComputedStyle(e).direction === "rtl");
71
- }, []);
72
- const H = ge(
73
- (e) => {
74
- var R;
75
- if (!d) return;
76
- const r = m.current.filter(Boolean).length;
77
- if (r === 0) return;
78
- const t = f === "vertical" ? "ArrowDown" : S ? "ArrowLeft" : "ArrowRight", o = f === "vertical" ? "ArrowUp" : S ? "ArrowRight" : "ArrowLeft";
79
- let n = null;
80
- if (e.key === t ? n = (c + 1) % r : e.key === o ? n = (c - 1 + r) % r : e.key === "Home" ? n = 0 : e.key === "End" && (n = r - 1), n === null) return;
81
- const i = r;
82
- let a = 0, p = n;
83
- for (; a < i; ) {
84
- const x = m.current[p];
85
- if (x && x.getAttribute("aria-disabled") !== "true" && !x.disabled)
86
- break;
87
- p = e.key === o || e.key === "End" ? (p - 1 + r) % r : (p + 1) % r, a += 1;
88
- }
89
- e.preventDefault(), h(p), (R = m.current[p]) == null || R.focus();
90
- },
91
- [d, f, S, c]
92
- ), b = u ? T.toArray(N).filter(re) : [], j = (e) => {
93
- if (typeof e.props.children == "string") return e.props.children;
94
- const r = e.props["aria-label"];
95
- return typeof r == "string" ? r : null;
96
- };
97
- L(!1);
98
- const le = b.map((e) => {
99
- const r = e.props["data-overflow-pin"] !== void 0, t = j(e) !== null;
100
- return r || !t;
101
- }), {
102
- containerRef: ue,
103
- fullRowRef: de,
104
- iconRowRef: ce,
105
- triggerProbeRef: pe,
106
- stage: fe,
107
- visible: B,
108
- overflowing: I
109
- } = xe({
110
- enabled: u,
111
- count: b.length,
112
- twoStage: A,
113
- pinned: le
114
- }), W = L(null), k = u ? B.filter(Boolean).length : T.count(N);
115
- we(() => {
116
- var r;
117
- if (!d || !u) return;
118
- const e = k + (I ? 1 : 0);
119
- e > 0 && c >= e && (h(e - 1), document.activeElement === document.body && ((r = W.current) == null || r.focus()));
120
- }, [
121
- d,
122
- u,
123
- k,
124
- I,
125
- c
126
- ]);
127
- const q = (e, r) => (t) => {
128
- m.current[r] = t;
129
- const o = e.ref;
130
- typeof o == "function" ? o(t) : o != null && typeof o == "object" && (o.current = t);
131
- }, me = u ? null : T.map(N, (e, r) => {
132
- if (!re(e)) return e;
133
- const t = e, o = {
134
- intent: t.props.intent ?? w,
135
- background: t.props.background ?? v,
136
- ...l ? { size: t.props.size ?? l } : null
137
- };
138
- return d && (o.tabIndex = r === c ? 0 : -1, o.onFocus = (n) => {
139
- var i, a;
140
- h(r), (a = (i = t.props).onFocus) == null || a.call(i, n);
141
- }, o.ref = q(t, r)), G(
142
- t,
143
- o
144
- );
145
- });
146
- let J = null, Q = null;
147
- if (u) {
148
- m.current.length = k + (I ? 1 : 0);
149
- let e = -1;
150
- J = b.map((r, t) => {
151
- if (!B[t]) return null;
152
- e += 1;
153
- const o = e, n = {
154
- intent: r.props.intent ?? w,
155
- background: r.props.background ?? v,
156
- ...l ? { size: r.props.size ?? l } : null
157
- };
158
- A && fe === "icons" && r.props.children && (r.props.startIcon || r.props.endIcon) && (n.hideLabel = !0), d && (n.tabIndex = o === c ? 0 : -1, n.onFocus = (x) => {
159
- var Z, E;
160
- h(o), (E = (Z = r.props).onFocus) == null || E.call(Z, x);
161
- }, n.ref = q(r, o));
162
- const i = n.hideLabel === !0, a = G(
163
- r,
164
- n
165
- ), p = r.props["data-overflow-tip"] === !1 || r.props["data-overflow-tip"] === "false", R = i && !p ? j(r) : null;
166
- return R ? /* @__PURE__ */ s(he, { label: R, children: a }, r.key ?? t) : a;
167
- }), Q = b.map((r, t) => {
168
- if (B[t]) return null;
169
- const o = j(r);
170
- return o === null ? null : /* @__PURE__ */ s(
171
- C.Item,
172
- {
173
- startIcon: r.props.startIcon,
174
- disabled: r.props.disabled === !0 || r.props.loading === !0,
175
- onSelect: (n) => {
176
- var i, a;
177
- (a = (i = r.props).onClick) == null || a.call(
178
- i,
179
- n
180
- );
181
- },
182
- children: o
183
- },
184
- r.key ?? t
185
- );
186
- });
187
- }
188
- const X = (e) => {
189
- _.current = e, typeof y == "function" ? y(e) : y && typeof y == "object" && (y.current = e);
190
- };
191
- if (!u)
192
- return /* @__PURE__ */ s(
193
- "div",
194
- {
195
- ref: X,
196
- role: g ? "toolbar" : "group",
197
- "aria-label": P,
198
- "aria-orientation": g ? f ?? "horizontal" : void 0,
199
- "data-component": "button-group",
200
- onKeyDown: H,
201
- className: ne({ orientation: f, separator: V, className: $ }),
202
- ...M,
203
- children: me
204
- }
205
- );
206
- const D = ne({ orientation: f, separator: V }), F = k, Y = (e, r, t) => G(e, {
207
- key: e.key ?? r,
208
- intent: e.props.intent ?? w,
209
- background: e.props.background ?? v,
210
- ...l ? { size: e.props.size ?? l } : null,
211
- tabIndex: -1,
212
- // Same rule as the live strip: icon-only children never hideLabel.
213
- ...t && e.props.children && (e.props.startIcon || e.props.endIcon) ? { hideLabel: !0 } : null,
214
- ref: null
215
- });
216
- return /* @__PURE__ */ s(
217
- "div",
218
- {
219
- ref: X,
220
- "data-component": "button-group",
221
- className: [
222
- "ds:relative ds:block ds:w-full ds:min-w-0 ds:overflow-x-clip",
223
- $ ?? ""
224
- ].join(" ").trim(),
225
- ...M,
226
- children: /* @__PURE__ */ z("div", { ref: ue, className: "ds:block ds:w-full ds:min-w-0", children: [
227
- /* @__PURE__ */ s(
228
- "div",
229
- {
230
- ref: de,
231
- "aria-hidden": "true",
232
- inert: !0,
233
- className: `${K} ${D}`,
234
- children: b.map((e, r) => Y(e, r, !1))
235
- }
236
- ),
237
- A ? /* @__PURE__ */ s(
238
- "div",
239
- {
240
- ref: ce,
241
- "aria-hidden": "true",
242
- inert: !0,
243
- className: `${K} ${D}`,
244
- children: b.map((e, r) => Y(e, r, !0))
245
- }
246
- ) : null,
247
- /* @__PURE__ */ s(
248
- "span",
249
- {
250
- ref: pe,
251
- "aria-hidden": "true",
252
- inert: !0,
253
- className: K,
254
- children: /* @__PURE__ */ s(
255
- te,
256
- {
257
- icon: /* @__PURE__ */ s(oe, {}),
258
- intent: w,
259
- background: v,
260
- size: l,
261
- "aria-label": U,
262
- tabIndex: -1
263
- }
264
- )
265
- }
266
- ),
267
- /* @__PURE__ */ z(
268
- "div",
269
- {
270
- role: g ? "toolbar" : "group",
271
- "aria-label": P,
272
- "aria-orientation": g ? "horizontal" : void 0,
273
- onKeyDown: H,
274
- className: `${D} ds:max-w-full ds:align-top`,
275
- children: [
276
- J,
277
- I ? /* @__PURE__ */ z(C.Root, { children: [
278
- /* @__PURE__ */ s(C.Trigger, { asChild: !0, children: /* @__PURE__ */ s(
279
- te,
280
- {
281
- icon: /* @__PURE__ */ s(oe, {}),
282
- intent: w,
283
- background: v,
284
- size: l,
285
- "aria-label": U,
286
- ref: (e) => {
287
- W.current = e, m.current[F] = e;
288
- },
289
- tabIndex: d ? c === F ? 0 : -1 : void 0,
290
- onFocus: d ? () => h(F) : void 0
291
- }
292
- ) }),
293
- /* @__PURE__ */ s(C.Content, { align: "end", children: Q })
294
- ] }) : null
295
- ]
296
- }
297
- )
298
- ] })
299
- }
300
- );
301
- }
302
- );
303
- Ie.displayName = "ButtonGroup";
304
- export {
305
- Ie as B
306
- };
307
- //# sourceMappingURL=button-group-R32U7SyV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-group-R32U7SyV.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\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\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={fullRowRef}\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={iconRowRef}\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={triggerProbeRef}\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":["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","node","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","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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"}