@alfadocs/ui-kit-debug 1.104.0 → 1.106.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 (330) hide show
  1. package/dist/_chunks/{ai-credits-exhausted-notice-CwZnSACy.js → ai-credits-exhausted-notice-Lws3113e.js} +2 -2
  2. package/dist/_chunks/{ai-credits-exhausted-notice-CwZnSACy.js.map → ai-credits-exhausted-notice-Lws3113e.js.map} +1 -1
  3. package/dist/_chunks/{ai-permission-notice-VNh3W57L.js → ai-permission-notice-BkgcGmu8.js} +2 -2
  4. package/dist/_chunks/{ai-permission-notice-VNh3W57L.js.map → ai-permission-notice-BkgcGmu8.js.map} +1 -1
  5. package/dist/_chunks/{alert-9kEwDza3.js → alert-C4WKViaS.js} +59 -50
  6. package/dist/_chunks/alert-C4WKViaS.js.map +1 -0
  7. package/dist/_chunks/{anamnesis-summary-rows-B9HqOGd7.js → anamnesis-summary-rows-QhbDdY7b.js} +4 -4
  8. package/dist/_chunks/{anamnesis-summary-rows-B9HqOGd7.js.map → anamnesis-summary-rows-QhbDdY7b.js.map} +1 -1
  9. package/dist/_chunks/{audio-recorder-BOm2FgEu.js → audio-recorder-BlDozxdU.js} +2 -2
  10. package/dist/_chunks/{audio-recorder-BOm2FgEu.js.map → audio-recorder-BlDozxdU.js.map} +1 -1
  11. package/dist/_chunks/{auth-form-parts-B3GWChvG.js → auth-form-parts-DVHfqnp6.js} +2 -2
  12. package/dist/_chunks/{auth-form-parts-B3GWChvG.js.map → auth-form-parts-DVHfqnp6.js.map} +1 -1
  13. package/dist/_chunks/{balance-badge-cell-DGFm2jfP.js → balance-badge-cell-wJ6cTD_h.js} +3 -3
  14. package/dist/_chunks/{balance-badge-cell-DGFm2jfP.js.map → balance-badge-cell-wJ6cTD_h.js.map} +1 -1
  15. package/dist/_chunks/{calendar-appointment-editor-dialog-DqyATSh3.js → calendar-appointment-editor-dialog-D8DblVjW.js} +8 -8
  16. package/dist/_chunks/{calendar-appointment-editor-dialog-DqyATSh3.js.map → calendar-appointment-editor-dialog-D8DblVjW.js.map} +1 -1
  17. package/dist/_chunks/{care-plan-card-YWKV8Kjq.js → care-plan-card-DMjlYlFc.js} +2 -2
  18. package/dist/_chunks/{care-plan-card-YWKV8Kjq.js.map → care-plan-card-DMjlYlFc.js.map} +1 -1
  19. package/dist/_chunks/{care-plan-entry-card-CApivtMW.js → care-plan-entry-card-3hguBW45.js} +2 -2
  20. package/dist/_chunks/{care-plan-entry-card-CApivtMW.js.map → care-plan-entry-card-3hguBW45.js.map} +1 -1
  21. package/dist/_chunks/{contact-profile-card-uExd3pKC.js → contact-profile-card-CAL66GaH.js} +120 -111
  22. package/dist/_chunks/contact-profile-card-CAL66GaH.js.map +1 -0
  23. package/dist/_chunks/{data-table-C5uN4ato.js → data-table-zXBxFYpJ.js} +761 -715
  24. package/dist/_chunks/data-table-zXBxFYpJ.js.map +1 -0
  25. package/dist/_chunks/{date-range-picker-B_j4VQlV.js → date-range-picker-DCADIR8o.js} +2 -2
  26. package/dist/_chunks/{date-range-picker-B_j4VQlV.js.map → date-range-picker-DCADIR8o.js.map} +1 -1
  27. package/dist/_chunks/{date-time-picker-cwsWiB4q.js → date-time-picker-CT2bC7-A.js} +2 -2
  28. package/dist/_chunks/{date-time-picker-cwsWiB4q.js.map → date-time-picker-CT2bC7-A.js.map} +1 -1
  29. package/dist/_chunks/{document-preview-U8H6tnDJ.js → document-preview-BalyZqnn.js} +2 -2
  30. package/dist/_chunks/{document-preview-U8H6tnDJ.js.map → document-preview-BalyZqnn.js.map} +1 -1
  31. package/dist/_chunks/{document-scanner-Bf3VUp00.js → document-scanner-5p-Uu8dy.js} +2 -2
  32. package/dist/_chunks/{document-scanner-Bf3VUp00.js.map → document-scanner-5p-Uu8dy.js.map} +1 -1
  33. package/dist/_chunks/{entity-summary-BKfR4Vws.js → entity-summary-BbqqYqF1.js} +2 -2
  34. package/dist/_chunks/{entity-summary-BKfR4Vws.js.map → entity-summary-BbqqYqF1.js.map} +1 -1
  35. package/dist/_chunks/{error-summary-mGxIyDAY.js → error-summary-DxNhwf_G.js} +2 -2
  36. package/dist/_chunks/{error-summary-mGxIyDAY.js.map → error-summary-DxNhwf_G.js.map} +1 -1
  37. package/dist/_chunks/{face-scheme-DdVLQ5dP.js → face-scheme-e2M2HJGz.js} +2 -2
  38. package/dist/_chunks/{face-scheme-DdVLQ5dP.js.map → face-scheme-e2M2HJGz.js.map} +1 -1
  39. package/dist/_chunks/{file-manager-CnGBVX_q.js → file-manager-BDKe59sg.js} +2 -2
  40. package/dist/_chunks/{file-manager-CnGBVX_q.js.map → file-manager-BDKe59sg.js.map} +1 -1
  41. package/dist/_chunks/{forgot-password-form-CeTb5p-x.js → forgot-password-form-vfCO2-Tt.js} +4 -4
  42. package/dist/_chunks/{forgot-password-form-CeTb5p-x.js.map → forgot-password-form-vfCO2-Tt.js.map} +1 -1
  43. package/dist/_chunks/{freemium-paywall-CM0zQSDE.js → freemium-paywall-BDeq9QWR.js} +2 -2
  44. package/dist/_chunks/{freemium-paywall-CM0zQSDE.js.map → freemium-paywall-BDeq9QWR.js.map} +1 -1
  45. package/dist/_chunks/{gestational-age-calculator-CXcDKQqC.js → gestational-age-calculator-AnaH00nk.js} +2 -2
  46. package/dist/_chunks/{gestational-age-calculator-CXcDKQqC.js.map → gestational-age-calculator-AnaH00nk.js.map} +1 -1
  47. package/dist/_chunks/{hcg-doubling-BJFR3onB.js → hcg-doubling-DdyUt4gz.js} +2 -2
  48. package/dist/_chunks/{hcg-doubling-BJFR3onB.js.map → hcg-doubling-DdyUt4gz.js.map} +1 -1
  49. package/dist/_chunks/{heatmap-Cz0Krieg.js → heatmap-D4qqpCEj.js} +1550 -1547
  50. package/dist/_chunks/{heatmap-Cz0Krieg.js.map → heatmap-D4qqpCEj.js.map} +1 -1
  51. package/dist/_chunks/{help-me-write-templates-ra5a__Yy.js → help-me-write-templates-YmceSxf5.js} +3 -3
  52. package/dist/_chunks/{help-me-write-templates-ra5a__Yy.js.map → help-me-write-templates-YmceSxf5.js.map} +1 -1
  53. package/dist/_chunks/info-tip-C-MPkShR.js +266 -0
  54. package/dist/_chunks/info-tip-C-MPkShR.js.map +1 -0
  55. package/dist/_chunks/{kit-extensions-C4o_tFN4.js → kit-extensions-BOnTM4Yf.js} +3 -3
  56. package/dist/_chunks/{kit-extensions-C4o_tFN4.js.map → kit-extensions-BOnTM4Yf.js.map} +1 -1
  57. package/dist/_chunks/{link-cell-renderer-BRek9kz7.js → link-cell-renderer-C8vfCOEp.js} +2 -2
  58. package/dist/_chunks/{link-cell-renderer-BRek9kz7.js.map → link-cell-renderer-C8vfCOEp.js.map} +1 -1
  59. package/dist/_chunks/{login-dev-card-D5BV5j1i.js → login-dev-card-Cz1Clugq.js} +3 -3
  60. package/dist/_chunks/{login-dev-card-D5BV5j1i.js.map → login-dev-card-Cz1Clugq.js.map} +1 -1
  61. package/dist/_chunks/{marketplace-app-shell-BsctSegT.js → marketplace-app-shell-C-4QF6mp.js} +2 -2
  62. package/dist/_chunks/{marketplace-app-shell-BsctSegT.js.map → marketplace-app-shell-C-4QF6mp.js.map} +1 -1
  63. package/dist/_chunks/{notes-panel-BjTpaz8d.js → notes-panel-SlzUL8in.js} +4 -4
  64. package/dist/_chunks/{notes-panel-BjTpaz8d.js.map → notes-panel-SlzUL8in.js.map} +1 -1
  65. package/dist/_chunks/{notice-group-DkYzKyAZ.js → notice-group-B-trhof8.js} +3 -3
  66. package/dist/_chunks/{notice-group-DkYzKyAZ.js.map → notice-group-B-trhof8.js.map} +1 -1
  67. package/dist/_chunks/{patient-details-BXM3dRKb.js → patient-details-wMgTFtpp.js} +2 -2
  68. package/dist/_chunks/{patient-details-BXM3dRKb.js.map → patient-details-wMgTFtpp.js.map} +1 -1
  69. package/dist/_chunks/{patient-field-row--dCDO5oB.js → patient-field-row-Bhm2Ig1P.js} +2 -2
  70. package/dist/_chunks/{patient-field-row--dCDO5oB.js.map → patient-field-row-Bhm2Ig1P.js.map} +1 -1
  71. package/dist/_chunks/{patient-summary-card-DB7fv-Tr.js → patient-summary-card-DMdPPG3n.js} +2 -2
  72. package/dist/_chunks/{patient-summary-card-DB7fv-Tr.js.map → patient-summary-card-DMdPPG3n.js.map} +1 -1
  73. package/dist/_chunks/{payment-automation-upsell-BPF0c-5D.js → payment-automation-upsell-u5EuFyCY.js} +2 -2
  74. package/dist/_chunks/{payment-automation-upsell-BPF0c-5D.js.map → payment-automation-upsell-u5EuFyCY.js.map} +1 -1
  75. package/dist/_chunks/{payment-form-PBuh8PIa.js → payment-form-C-s1x-bU.js} +2 -2
  76. package/dist/_chunks/{payment-form-PBuh8PIa.js.map → payment-form-C-s1x-bU.js.map} +1 -1
  77. package/dist/_chunks/{pdf-viewer-DlceXkfW.js → pdf-viewer-BnBKdx0y.js} +2 -2
  78. package/dist/_chunks/{pdf-viewer-DlceXkfW.js.map → pdf-viewer-BnBKdx0y.js.map} +1 -1
  79. package/dist/_chunks/{practice-profile-hero-BAvGdQmt.js → practice-profile-hero-Bb4YyxHA.js} +31 -29
  80. package/dist/_chunks/practice-profile-hero-Bb4YyxHA.js.map +1 -0
  81. package/dist/_chunks/{practice-results-ChBP9x2r.js → practice-results-BXz01sti.js} +485 -445
  82. package/dist/_chunks/practice-results-BXz01sti.js.map +1 -0
  83. package/dist/_chunks/{pregnancy-dating-D0Kf9s7s.js → pregnancy-dating-D6dLkMpl.js} +2 -2
  84. package/dist/_chunks/{pregnancy-dating-D0Kf9s7s.js.map → pregnancy-dating-D6dLkMpl.js.map} +1 -1
  85. package/dist/_chunks/{progress-notice-DiHWZ8Ms.js → progress-notice-F7ao70ZP.js} +2 -2
  86. package/dist/_chunks/{progress-notice-DiHWZ8Ms.js.map → progress-notice-F7ao70ZP.js.map} +1 -1
  87. package/dist/_chunks/{radiograph-panel.agent-BQ95uFCd.js → radiograph-panel.agent-0ngF2sGS.js} +2 -2
  88. package/dist/_chunks/{radiograph-panel.agent-BQ95uFCd.js.map → radiograph-panel.agent-0ngF2sGS.js.map} +1 -1
  89. package/dist/_chunks/{registration-form-JzzTomhd.js → registration-form-CEJRUS9G.js} +3 -3
  90. package/dist/_chunks/{registration-form-JzzTomhd.js.map → registration-form-CEJRUS9G.js.map} +1 -1
  91. package/dist/_chunks/{reserved.agent-BxD0gnbt.js → reserved.agent-C-C9cvO5.js} +2 -2
  92. package/dist/_chunks/{reserved.agent-BxD0gnbt.js.map → reserved.agent-C-C9cvO5.js.map} +1 -1
  93. package/dist/_chunks/{reset-password-form-DDdGEoIL.js → reset-password-form-B0acanDD.js} +4 -4
  94. package/dist/_chunks/{reset-password-form-DDdGEoIL.js.map → reset-password-form-B0acanDD.js.map} +1 -1
  95. package/dist/_chunks/{reviews-panel-jPYgYvxG.js → reviews-panel-CtrwZOUS.js} +215 -205
  96. package/dist/_chunks/reviews-panel-CtrwZOUS.js.map +1 -0
  97. package/dist/_chunks/{rich-text-editor-F04przIt.js → rich-text-editor-C3nANKZt.js} +2 -2
  98. package/dist/_chunks/{rich-text-editor-F04przIt.js.map → rich-text-editor-C3nANKZt.js.map} +1 -1
  99. package/dist/_chunks/{send-registration-link-form-DHCQpA4C.js → send-registration-link-form-Nn0jf65G.js} +3 -3
  100. package/dist/_chunks/{send-registration-link-form-DHCQpA4C.js.map → send-registration-link-form-Nn0jf65G.js.map} +1 -1
  101. package/dist/_chunks/{sign-document-B5qZhthO.js → sign-document-CQZVzfpk.js} +2 -2
  102. package/dist/_chunks/{sign-document-B5qZhthO.js.map → sign-document-CQZVzfpk.js.map} +1 -1
  103. package/dist/_chunks/{signature-request-DB6kePIm.js → signature-request-DtLph5Z4.js} +3 -3
  104. package/dist/_chunks/{signature-request-DB6kePIm.js.map → signature-request-DtLph5Z4.js.map} +1 -1
  105. package/dist/_chunks/{switch-D--x7n6h.js → switch-DO6uC4HJ.js} +40 -36
  106. package/dist/_chunks/switch-DO6uC4HJ.js.map +1 -0
  107. package/dist/_chunks/{task-editor-BiPGFXtB.js → task-editor-CmXcj6cC.js} +4 -4
  108. package/dist/_chunks/{task-editor-BiPGFXtB.js.map → task-editor-CmXcj6cC.js.map} +1 -1
  109. package/dist/_chunks/{tasks-panel-iVeuu9a8.js → tasks-panel-CFo5uIHx.js} +3 -3
  110. package/dist/_chunks/{tasks-panel-iVeuu9a8.js.map → tasks-panel-CFo5uIHx.js.map} +1 -1
  111. package/dist/_chunks/{theme-toggle-jZRbAidE.js → theme-toggle-Czq3K9jB.js} +2 -2
  112. package/dist/_chunks/{theme-toggle-jZRbAidE.js.map → theme-toggle-Czq3K9jB.js.map} +1 -1
  113. package/dist/_chunks/{time-picker-DSt-ns5F.js → time-picker-DDr5vhwQ.js} +344 -332
  114. package/dist/_chunks/time-picker-DDr5vhwQ.js.map +1 -0
  115. package/dist/_chunks/{tooth-scheme-Bd7xECuj.js → tooth-scheme-C-ALCHaV.js} +2 -2
  116. package/dist/_chunks/{tooth-scheme-Bd7xECuj.js.map → tooth-scheme-C-ALCHaV.js.map} +1 -1
  117. package/dist/_chunks/{use-appointment-details-read-CmqGGYCy.js → use-appointment-details-read-VI26Z-pc.js} +3 -3
  118. package/dist/_chunks/{use-appointment-details-read-CmqGGYCy.js.map → use-appointment-details-read-VI26Z-pc.js.map} +1 -1
  119. package/dist/_chunks/{voice-control-panel-BGJjUwnY.js → voice-control-panel-B0TUZAiP.js} +3 -3
  120. package/dist/_chunks/{voice-control-panel-BGJjUwnY.js.map → voice-control-panel-B0TUZAiP.js.map} +1 -1
  121. package/dist/_chunks/{warning-stack-3S7e2q07.js → warning-stack-Dx7cpj10.js} +2 -2
  122. package/dist/_chunks/{warning-stack-3S7e2q07.js.map → warning-stack-Dx7cpj10.js.map} +1 -1
  123. package/dist/_chunks/week-availability-CsTiwtYj.js +318 -0
  124. package/dist/_chunks/week-availability-CsTiwtYj.js.map +1 -0
  125. package/dist/_chunks/weekly-hours-editor-BsVsgeOc.js +252 -0
  126. package/dist/_chunks/weekly-hours-editor-BsVsgeOc.js.map +1 -0
  127. package/dist/_chunks/{workflow-map-B1jf6QaB.js → workflow-map-DWk-rZse.js} +2 -2
  128. package/dist/_chunks/{workflow-map-B1jf6QaB.js.map → workflow-map-DWk-rZse.js.map} +1 -1
  129. package/dist/_chunks/{workflow-webhook-action-B_52rH7O.js → workflow-webhook-action-DILFqAVd.js} +2 -2
  130. package/dist/_chunks/{workflow-webhook-action-B_52rH7O.js.map → workflow-webhook-action-DILFqAVd.js.map} +1 -1
  131. package/dist/ag-grid.css +5 -1
  132. package/dist/agent-catalog.json +1 -1
  133. package/dist/components/ai-credits-notice/index.js +1 -1
  134. package/dist/components/ai-permission-notice/index.js +1 -1
  135. package/dist/components/alert/alert.d.ts.map +1 -1
  136. package/dist/components/alert/index.js +1 -1
  137. package/dist/components/appointment-details-panel/index.js +1 -1
  138. package/dist/components/audio-recorder/index.js +1 -1
  139. package/dist/components/booking/index.js +1 -1
  140. package/dist/components/care-plan-card/index.js +1 -1
  141. package/dist/components/care-plan-entry-card/index.js +1 -1
  142. package/dist/components/contact-profile-card/contact-profile-card.d.ts +8 -0
  143. package/dist/components/contact-profile-card/contact-profile-card.d.ts.map +1 -1
  144. package/dist/components/contact-profile-card/index.js +1 -1
  145. package/dist/components/data-table/data-table.d.ts +6 -0
  146. package/dist/components/data-table/data-table.d.ts.map +1 -1
  147. package/dist/components/data-table/header-min-width.d.ts +21 -0
  148. package/dist/components/data-table/header-min-width.d.ts.map +1 -0
  149. package/dist/components/data-table/index.js +2 -2
  150. package/dist/components/date-range-picker/index.js +1 -1
  151. package/dist/components/date-time-picker/index.js +1 -1
  152. package/dist/components/document-preview/index.js +1 -1
  153. package/dist/components/document-scanner/index.js +1 -1
  154. package/dist/components/entity-summary/index.js +1 -1
  155. package/dist/components/error-summary/index.js +1 -1
  156. package/dist/components/face-scheme/index.js +1 -1
  157. package/dist/components/file-manager/index.js +1 -1
  158. package/dist/components/freemium-paywall/index.js +1 -1
  159. package/dist/components/gestational-age-calculator/index.js +1 -1
  160. package/dist/components/hcg-doubling/index.js +1 -1
  161. package/dist/components/heatmap/heatmap.d.ts +5 -0
  162. package/dist/components/heatmap/heatmap.d.ts.map +1 -1
  163. package/dist/components/heatmap/index.js +1 -1
  164. package/dist/components/index.d.ts +2 -0
  165. package/dist/components/index.d.ts.map +1 -1
  166. package/dist/components/info-tip/index.js +1 -1
  167. package/dist/components/info-tip/info-tip.d.ts +10 -0
  168. package/dist/components/info-tip/info-tip.d.ts.map +1 -1
  169. package/dist/components/notes-panel/index.js +1 -1
  170. package/dist/components/notice-group/index.js +1 -1
  171. package/dist/components/patient-details/index.js +1 -1
  172. package/dist/components/patient-summary-card/index.js +1 -1
  173. package/dist/components/patient-table/index.js +1 -1
  174. package/dist/components/payment-form/index.js +1 -1
  175. package/dist/components/pdf-viewer/index.js +1 -1
  176. package/dist/components/practice-profile-hero/index.js +1 -1
  177. package/dist/components/practice-profile-hero/practice-profile-hero.d.ts +7 -0
  178. package/dist/components/practice-profile-hero/practice-profile-hero.d.ts.map +1 -1
  179. package/dist/components/practice-results/index.js +1 -1
  180. package/dist/components/practice-results/practice-results.d.ts +13 -0
  181. package/dist/components/practice-results/practice-results.d.ts.map +1 -1
  182. package/dist/components/pregnancy-dating/index.js +1 -1
  183. package/dist/components/progress-notice/index.js +1 -1
  184. package/dist/components/radiograph-panel/index.js +1 -1
  185. package/dist/components/reviews-panel/index.js +1 -1
  186. package/dist/components/reviews-panel/reviews-panel.d.ts +13 -0
  187. package/dist/components/reviews-panel/reviews-panel.d.ts.map +1 -1
  188. package/dist/components/rich-text-editor/index.js +2 -2
  189. package/dist/components/sign-document/index.js +1 -1
  190. package/dist/components/switch/index.js +1 -1
  191. package/dist/components/switch/switch.d.ts +2 -0
  192. package/dist/components/switch/switch.d.ts.map +1 -1
  193. package/dist/components/task-editor/index.js +1 -1
  194. package/dist/components/tasks-panel/index.js +1 -1
  195. package/dist/components/theme-toggle/index.js +1 -1
  196. package/dist/components/time-picker/index.js +1 -1
  197. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  198. package/dist/components/tooth-scheme/index.js +1 -1
  199. package/dist/components/voice-control-panel/index.js +1 -1
  200. package/dist/components/warning-stack/index.js +1 -1
  201. package/dist/components/week-availability/index.d.ts +3 -0
  202. package/dist/components/week-availability/index.d.ts.map +1 -0
  203. package/dist/components/week-availability/index.js +10 -0
  204. package/dist/components/week-availability/index.js.map +1 -0
  205. package/dist/components/week-availability/week-availability.d.ts +68 -0
  206. package/dist/components/week-availability/week-availability.d.ts.map +1 -0
  207. package/dist/components/weekly-hours-editor/index.d.ts +3 -0
  208. package/dist/components/weekly-hours-editor/index.d.ts.map +1 -0
  209. package/dist/components/weekly-hours-editor/index.js +9 -0
  210. package/dist/components/weekly-hours-editor/index.js.map +1 -0
  211. package/dist/components/weekly-hours-editor/weekly-hours-editor.d.ts +42 -0
  212. package/dist/components/weekly-hours-editor/weekly-hours-editor.d.ts.map +1 -0
  213. package/dist/components/workflow/index.js +1 -1
  214. package/dist/core.css +1 -1
  215. package/dist/i18n/locales/ar.d.ts +34 -0
  216. package/dist/i18n/locales/ar.d.ts.map +1 -1
  217. package/dist/i18n/locales/ar.js +34 -0
  218. package/dist/i18n/locales/ar.js.map +1 -1
  219. package/dist/i18n/locales/de.d.ts +34 -0
  220. package/dist/i18n/locales/de.d.ts.map +1 -1
  221. package/dist/i18n/locales/de.js +34 -0
  222. package/dist/i18n/locales/de.js.map +1 -1
  223. package/dist/i18n/locales/el.d.ts +34 -0
  224. package/dist/i18n/locales/el.d.ts.map +1 -1
  225. package/dist/i18n/locales/el.js +34 -0
  226. package/dist/i18n/locales/el.js.map +1 -1
  227. package/dist/i18n/locales/en.d.ts +34 -0
  228. package/dist/i18n/locales/en.d.ts.map +1 -1
  229. package/dist/i18n/locales/en.js +34 -0
  230. package/dist/i18n/locales/en.js.map +1 -1
  231. package/dist/i18n/locales/es.d.ts +34 -0
  232. package/dist/i18n/locales/es.d.ts.map +1 -1
  233. package/dist/i18n/locales/es.js +34 -0
  234. package/dist/i18n/locales/es.js.map +1 -1
  235. package/dist/i18n/locales/fr.d.ts +34 -0
  236. package/dist/i18n/locales/fr.d.ts.map +1 -1
  237. package/dist/i18n/locales/fr.js +34 -0
  238. package/dist/i18n/locales/fr.js.map +1 -1
  239. package/dist/i18n/locales/hi.d.ts +34 -0
  240. package/dist/i18n/locales/hi.d.ts.map +1 -1
  241. package/dist/i18n/locales/hi.js +34 -0
  242. package/dist/i18n/locales/hi.js.map +1 -1
  243. package/dist/i18n/locales/it.d.ts +34 -0
  244. package/dist/i18n/locales/it.d.ts.map +1 -1
  245. package/dist/i18n/locales/it.js +34 -0
  246. package/dist/i18n/locales/it.js.map +1 -1
  247. package/dist/i18n/locales/ja.d.ts +34 -0
  248. package/dist/i18n/locales/ja.d.ts.map +1 -1
  249. package/dist/i18n/locales/ja.js +34 -0
  250. package/dist/i18n/locales/ja.js.map +1 -1
  251. package/dist/i18n/locales/nl.d.ts +34 -0
  252. package/dist/i18n/locales/nl.d.ts.map +1 -1
  253. package/dist/i18n/locales/nl.js +34 -0
  254. package/dist/i18n/locales/nl.js.map +1 -1
  255. package/dist/i18n/locales/pl.d.ts +34 -0
  256. package/dist/i18n/locales/pl.d.ts.map +1 -1
  257. package/dist/i18n/locales/pl.js +34 -0
  258. package/dist/i18n/locales/pl.js.map +1 -1
  259. package/dist/i18n/locales/pt.d.ts +34 -0
  260. package/dist/i18n/locales/pt.d.ts.map +1 -1
  261. package/dist/i18n/locales/pt.js +34 -0
  262. package/dist/i18n/locales/pt.js.map +1 -1
  263. package/dist/i18n/locales/ro.d.ts +34 -0
  264. package/dist/i18n/locales/ro.d.ts.map +1 -1
  265. package/dist/i18n/locales/ro.js +34 -0
  266. package/dist/i18n/locales/ro.js.map +1 -1
  267. package/dist/i18n/locales/ru.d.ts +34 -0
  268. package/dist/i18n/locales/ru.d.ts.map +1 -1
  269. package/dist/i18n/locales/ru.js +34 -0
  270. package/dist/i18n/locales/ru.js.map +1 -1
  271. package/dist/i18n/locales/sq.d.ts +34 -0
  272. package/dist/i18n/locales/sq.d.ts.map +1 -1
  273. package/dist/i18n/locales/sq.js +34 -0
  274. package/dist/i18n/locales/sq.js.map +1 -1
  275. package/dist/i18n/locales/sv.d.ts +34 -0
  276. package/dist/i18n/locales/sv.d.ts.map +1 -1
  277. package/dist/i18n/locales/sv.js +34 -0
  278. package/dist/i18n/locales/sv.js.map +1 -1
  279. package/dist/i18n/locales/tr.d.ts +34 -0
  280. package/dist/i18n/locales/tr.d.ts.map +1 -1
  281. package/dist/i18n/locales/tr.js +34 -0
  282. package/dist/i18n/locales/tr.js.map +1 -1
  283. package/dist/i18n/locales/zh.d.ts +34 -0
  284. package/dist/i18n/locales/zh.d.ts.map +1 -1
  285. package/dist/i18n/locales/zh.js +34 -0
  286. package/dist/i18n/locales/zh.js.map +1 -1
  287. package/dist/index.js +879 -866
  288. package/dist/index.js.map +1 -1
  289. package/dist/locales/ar.json +34 -0
  290. package/dist/locales/de.json +34 -0
  291. package/dist/locales/el.json +34 -0
  292. package/dist/locales/en.json +34 -0
  293. package/dist/locales/es.json +34 -0
  294. package/dist/locales/fr.json +34 -0
  295. package/dist/locales/hi.json +34 -0
  296. package/dist/locales/it.json +34 -0
  297. package/dist/locales/ja.json +34 -0
  298. package/dist/locales/nl.json +34 -0
  299. package/dist/locales/pl.json +34 -0
  300. package/dist/locales/pt.json +34 -0
  301. package/dist/locales/ro.json +34 -0
  302. package/dist/locales/ru.json +34 -0
  303. package/dist/locales/sq.json +34 -0
  304. package/dist/locales/sv.json +34 -0
  305. package/dist/locales/tr.json +34 -0
  306. package/dist/locales/zh.json +34 -0
  307. package/dist/patterns/anamnesis/index.js +1 -1
  308. package/dist/patterns/calendar/index.js +1 -1
  309. package/dist/patterns/forgot-password-form/index.js +1 -1
  310. package/dist/patterns/help-me-write-templates/index.js +2 -2
  311. package/dist/patterns/login-form/index.js +1 -1
  312. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  313. package/dist/patterns/payment-automation-upsell/index.js +1 -1
  314. package/dist/patterns/registration-form/index.js +1 -1
  315. package/dist/patterns/reset-password-form/index.js +1 -1
  316. package/dist/patterns/send-registration-link-form/index.js +1 -1
  317. package/dist/patterns/signature-request/index.js +1 -1
  318. package/dist/patterns/workflow-webhook-action/index.js +1 -1
  319. package/dist/tokens.css +3 -1
  320. package/package.json +9 -1
  321. package/dist/_chunks/alert-9kEwDza3.js.map +0 -1
  322. package/dist/_chunks/contact-profile-card-uExd3pKC.js.map +0 -1
  323. package/dist/_chunks/data-table-C5uN4ato.js.map +0 -1
  324. package/dist/_chunks/info-tip-1Xsq9GLi.js +0 -230
  325. package/dist/_chunks/info-tip-1Xsq9GLi.js.map +0 -1
  326. package/dist/_chunks/practice-profile-hero-BAvGdQmt.js.map +0 -1
  327. package/dist/_chunks/practice-results-ChBP9x2r.js.map +0 -1
  328. package/dist/_chunks/reviews-panel-jPYgYvxG.js.map +0 -1
  329. package/dist/_chunks/switch-D--x7n6h.js.map +0 -1
  330. package/dist/_chunks/time-picker-DSt-ns5F.js.map +0 -1
@@ -4,7 +4,7 @@ import { c as _ } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as u } from "react-i18next";
5
5
  import { I as T } from "./icon-button-S8_weU3g.js";
6
6
  import { I as j } from "./icon-button-group-mXvYDaba.js";
7
- import { S as x } from "./switch-D--x7n6h.js";
7
+ import { S as x } from "./switch-DO6uC4HJ.js";
8
8
  import { D as o } from "./dropdown-menu-CqxBthww.js";
9
9
  import { u as K } from "./use-theme-CYGyzFgZ.js";
10
10
  import { u as L } from "./registry-DvAUVLHh.js";
@@ -373,4 +373,4 @@ export {
373
373
  O as T,
374
374
  D as t
375
375
  };
376
- //# sourceMappingURL=theme-toggle-jZRbAidE.js.map
376
+ //# sourceMappingURL=theme-toggle-Czq3K9jB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-toggle-jZRbAidE.js","sources":["../../src/components/theme-toggle/theme-toggle.agent.ts","../../src/components/theme-toggle/theme-toggle.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — ThemeToggle. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ThemeToggleHandle } from './theme-toggle';\n\nexport const themeToggleAgent: AgentAdapter<ThemeToggleHandle> = {\n id: 'theme-toggle',\n capabilities: ['set_value'],\n state: {\n currentTheme: {\n type: 'ThemePreference',\n descriptionKey: 'ui.agent.themeToggle.state.currentTheme',\n description: 'Active theme preference: light, dark, or system.',\n read: (handle) => handle.getCurrentTheme(),\n },\n currentAccessibility: {\n type: 'AccessibilityPreference',\n descriptionKey: 'ui.agent.themeToggle.state.currentAccessibility',\n description: 'Active accessibility preference: default or accessible.',\n read: (handle) => handle.getCurrentAccessibility(),\n },\n },\n actions: {\n set_theme: {\n safety: 'write',\n argsType: '{ theme: \"light\" | \"dark\" | \"system\" }',\n argsSchema: {\n type: 'object',\n properties: { theme: { enum: ['light', 'dark', 'system'] } },\n required: ['theme'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.themeToggle.actions.setTheme',\n description: 'Switch the theme preference.',\n invoke: (handle, args: { theme: 'light' | 'dark' | 'system' }) => {\n handle.setTheme(args.theme);\n },\n },\n set_accessibility: {\n safety: 'write',\n argsType: '{ accessibility: \"default\" | \"accessible\" }',\n argsSchema: {\n type: 'object',\n properties: { accessibility: { enum: ['default', 'accessible'] } },\n required: ['accessibility'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.themeToggle.actions.setAccessibility',\n description: 'Switch the accessibility preference.',\n invoke: (handle, args: { accessibility: 'default' | 'accessible' }) => {\n handle.setAccessibility(args.accessibility);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'theme-toggle',\n description: 'Marks the ThemeToggle wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n type HTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { IconButtonGroup } from '../icon-button-group/icon-button-group';\nimport { Switch } from '../switch/switch';\nimport { DropdownMenu } from '../dropdown-menu/dropdown-menu';\nimport {\n useTheme,\n type AccessibilityPreference,\n type ThemePreference,\n type UseThemeReturn,\n} from '../../hooks';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { themeToggleAgent } from './theme-toggle.agent';\nimport { useLengthTokenPx } from '../_shared/length-token';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst wrapperVariants = cva('ds:inline-flex ds:items-center', {\n variants: {\n variant: {\n menu: '',\n compact: '',\n split: 'ds:gap-[var(--spacing-md)]',\n },\n },\n defaultVariants: { variant: 'menu' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type ThemeToggleVariant = 'menu' | 'compact' | 'split';\n\ninterface ThemeToggleBaseProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>,\n VariantProps<typeof wrapperVariants> {\n /**\n * Visual form factor.\n * - `menu` (default) — single trigger that opens a dropdown with both\n * Appearance and Accessibility controls. Best for headers / nav rails.\n * - `compact` — segmented Appearance control only. Use when accessibility\n * lives on a separate settings surface.\n * - `split` — segmented Appearance control plus an inline Accessibility\n * switch. Best for full-width settings panels.\n */\n variant?: ThemeToggleVariant;\n /** Hide the accessibility control. Ignored on `compact`, which never renders it. */\n showAccessibility?: boolean;\n /**\n * Controlled escape hatch — when omitted the component reads/writes\n * `useTheme()` directly so it can drop into any header with no wiring.\n * Pass all four to opt into controlled mode.\n */\n theme?: ThemePreference;\n accessibility?: AccessibilityPreference;\n onThemeChange?: (next: ThemePreference) => void;\n onAccessibilityChange?: (next: AccessibilityPreference) => void;\n}\n\nexport type ThemeToggleProps = ThemeToggleBaseProps;\n\n/** Curated imperative handle for agent / external automation. */\nexport interface ThemeToggleHandle {\n getCurrentTheme: () => ThemePreference;\n getCurrentAccessibility: () => AccessibilityPreference;\n setTheme: (next: ThemePreference) => void;\n setAccessibility: (next: AccessibilityPreference) => void;\n}\n\n/* ------------------------------------------------------------------ */\n/* Hook adapter */\n/* ------------------------------------------------------------------ */\n\n/**\n * Resolves controlled props against the store. When the consumer passes\n * `theme` / `onThemeChange` (etc.) we honour those; otherwise we fall\n * through to the singleton `useTheme()` hook so a bare `<ThemeToggle />`\n * works with zero wiring.\n */\nfunction useResolvedTheme(props: ThemeToggleBaseProps): UseThemeReturn {\n const {\n theme: themeProp,\n accessibility: accessibilityProp,\n onThemeChange,\n onAccessibilityChange,\n } = props;\n const store = useTheme();\n const theme = themeProp ?? store.theme;\n const accessibility = accessibilityProp ?? store.accessibility;\n\n const storeSetTheme = store.setTheme;\n const storeSetAccessibility = store.setAccessibility;\n\n const setTheme = useCallback(\n (next: ThemePreference) => {\n if (onThemeChange) {\n onThemeChange(next);\n return;\n }\n storeSetTheme(next);\n },\n [onThemeChange, storeSetTheme],\n );\n\n const setAccessibility = useCallback(\n (next: AccessibilityPreference) => {\n if (onAccessibilityChange) {\n onAccessibilityChange(next);\n return;\n }\n storeSetAccessibility(next);\n },\n [onAccessibilityChange, storeSetAccessibility],\n );\n\n return {\n theme,\n accessibility,\n resolvedTheme: store.resolvedTheme,\n setTheme,\n setAccessibility,\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* Sub-pieces */\n/* ------------------------------------------------------------------ */\n\ninterface AppearanceSegmentProps {\n value: ThemePreference;\n onValueChange: (next: ThemePreference) => void;\n ariaLabel: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\nfunction AppearanceSegment({\n value,\n onValueChange,\n ariaLabel,\n size = 'md',\n}: AppearanceSegmentProps) {\n const { t } = useTranslation('ui');\n return (\n <IconButtonGroup\n aria-label={ariaLabel}\n role=\"radiogroup\"\n mode=\"toggle-single\"\n size={size}\n value={value}\n onValueChange={(next) => onValueChange(next as ThemePreference)}\n >\n <IconButton\n icon={<Sun aria-hidden />}\n aria-label={t('navigation.themeToggle.appearance.light')}\n value=\"light\"\n />\n <IconButton\n icon={<Moon aria-hidden />}\n aria-label={t('navigation.themeToggle.appearance.dark')}\n value=\"dark\"\n />\n <IconButton\n icon={<Monitor aria-hidden />}\n aria-label={t('navigation.themeToggle.appearance.system')}\n value=\"system\"\n />\n </IconButtonGroup>\n );\n}\n\ninterface AccessibilitySwitchProps {\n value: AccessibilityPreference;\n onValueChange: (next: AccessibilityPreference) => void;\n size?: 'sm' | 'md' | 'lg';\n}\n\nfunction AccessibilitySwitch({\n value,\n onValueChange,\n size = 'md',\n}: AccessibilitySwitchProps) {\n const { t } = useTranslation('ui');\n // 'system' is treated as \"off\" visually — the OS preference flows through\n // automatically. Flipping the switch on creates an explicit override.\n const checked = value === 'accessible';\n return (\n <Switch\n label={t('navigation.themeToggle.accessibility.label')}\n labelSide=\"start\"\n size={size}\n checked={checked}\n onCheckedChange={(next) => onValueChange(next ? 'accessible' : 'default')}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Variants */\n/* ------------------------------------------------------------------ */\n\ninterface VariantRenderProps {\n state: UseThemeReturn;\n className?: string;\n rest: HTMLAttributes<HTMLDivElement>;\n forwardedRef: React.RefObject<HTMLDivElement | null>;\n showAccessibility: boolean;\n}\n\nfunction MenuVariant({\n state,\n className,\n rest,\n forwardedRef,\n showAccessibility,\n}: VariantRenderProps) {\n const { t } = useTranslation('ui');\n const triggerIcon =\n state.resolvedTheme === 'dark' ||\n state.resolvedTheme === 'dark-accessible' ? (\n <Moon aria-hidden />\n ) : (\n <Sun aria-hidden />\n );\n\n const accessibleChecked = state.accessibility === 'accessible';\n // Same edge margin as HeaderSettings: inside the phone menu the panel\n // keeps the sheet's side margin instead of touching the screen edge.\n const edgeMargin = useLengthTokenPx('--spacing-lg', forwardedRef, 24);\n\n return (\n <div\n ref={forwardedRef}\n data-component=\"theme-toggle\"\n data-component-id={rest.id}\n className={wrapperVariants({ variant: 'menu', className })}\n {...rest}\n >\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={triggerIcon}\n aria-label={t('navigation.themeToggle.trigger')}\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"end\"\n sideOffset={8}\n collisionPadding={edgeMargin}\n >\n <DropdownMenu.Label>\n {t('navigation.themeToggle.appearance.label')}\n </DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={state.theme}\n onValueChange={(next) => state.setTheme(next as ThemePreference)}\n >\n <DropdownMenu.RadioItem value=\"light\">\n <Sun aria-hidden className=\"ds:size-4\" />\n {t('navigation.themeToggle.appearance.light')}\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem value=\"dark\">\n <Moon aria-hidden className=\"ds:size-4\" />\n {t('navigation.themeToggle.appearance.dark')}\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem value=\"system\">\n <Monitor aria-hidden className=\"ds:size-4\" />\n {t('navigation.themeToggle.appearance.system')}\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n {showAccessibility ? (\n <>\n <DropdownMenu.Separator />\n {/* CheckboxItem keeps the accessibility toggle inside the\n Radix menu collection so ArrowDown reaches it and Space\n activates it; `onSelect={preventDefault}` prevents the\n menu from closing on toggle. */}\n <DropdownMenu.CheckboxItem\n checked={accessibleChecked}\n onCheckedChange={(next) =>\n state.setAccessibility(next ? 'accessible' : 'default')\n }\n onSelect={(event) => event.preventDefault()}\n >\n {t('navigation.themeToggle.accessibility.label')}\n </DropdownMenu.CheckboxItem>\n </>\n ) : null}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n </div>\n );\n}\n\nfunction CompactVariant({\n state,\n className,\n rest,\n forwardedRef,\n}: VariantRenderProps) {\n const { t } = useTranslation('ui');\n return (\n <div\n ref={forwardedRef}\n data-component=\"theme-toggle\"\n data-component-id={rest.id}\n className={wrapperVariants({ variant: 'compact', className })}\n {...rest}\n >\n <AppearanceSegment\n value={state.theme}\n onValueChange={state.setTheme}\n ariaLabel={t('navigation.themeToggle.appearance.label')}\n />\n </div>\n );\n}\n\nfunction SplitVariant({\n state,\n className,\n rest,\n forwardedRef,\n showAccessibility,\n}: VariantRenderProps) {\n const { t } = useTranslation('ui');\n return (\n <div\n ref={forwardedRef}\n data-component=\"theme-toggle\"\n data-component-id={rest.id}\n className={wrapperVariants({ variant: 'split', className })}\n {...rest}\n >\n <AppearanceSegment\n value={state.theme}\n onValueChange={state.setTheme}\n ariaLabel={t('navigation.themeToggle.appearance.label')}\n />\n {showAccessibility ? (\n <AccessibilitySwitch\n value={state.accessibility}\n onValueChange={state.setAccessibility}\n />\n ) : null}\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* ThemeToggle */\n/* ------------------------------------------------------------------ */\n\nexport const ThemeToggle = forwardRef<HTMLDivElement, ThemeToggleProps>(\n (props, ref) => {\n const {\n variant = 'menu',\n showAccessibility = true,\n className,\n id,\n // Strip controlled props from the spread — they are read by the\n // adapter, not by the DOM element.\n theme: _theme,\n accessibility: _accessibility,\n onThemeChange: _onThemeChange,\n onAccessibilityChange: _onAccessibilityChange,\n ...rest\n } = props as ThemeToggleProps & { id?: string };\n\n const state = useResolvedTheme(props);\n const stateRef = useRef(state);\n stateRef.current = state;\n\n // Internal variant wrappers attach refs to <div> elements; we forward that\n // DOM node as the public ref (Pattern B). The agent handle is registered\n // separately via useAgentRegistration.\n const forwardedRef = useRef<HTMLDivElement | null>(null);\n useImperativeHandle(ref, () => forwardedRef.current as HTMLDivElement, []);\n\n const agentHandle = useMemo<ThemeToggleHandle>(\n () => ({\n getCurrentTheme: () => stateRef.current.theme,\n getCurrentAccessibility: () => stateRef.current.accessibility,\n setTheme: (next) => stateRef.current.setTheme(next),\n setAccessibility: (next) => stateRef.current.setAccessibility(next),\n }),\n [],\n );\n useAgentRegistration(themeToggleAgent, agentHandle, id);\n\n if (variant === 'compact') {\n return (\n <CompactVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={forwardedRef}\n showAccessibility={showAccessibility}\n />\n );\n }\n if (variant === 'split') {\n return (\n <SplitVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={forwardedRef}\n showAccessibility={showAccessibility}\n />\n );\n }\n return (\n <MenuVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={forwardedRef}\n showAccessibility={showAccessibility}\n />\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n"],"names":["themeToggleAgent","handle","args","wrapperVariants","cva","useResolvedTheme","props","themeProp","accessibilityProp","onThemeChange","onAccessibilityChange","store","useTheme","theme","accessibility","storeSetTheme","storeSetAccessibility","setTheme","useCallback","next","setAccessibility","AppearanceSegment","value","onValueChange","ariaLabel","size","t","useTranslation","jsxs","IconButtonGroup","jsx","IconButton","Sun","Moon","Monitor","AccessibilitySwitch","checked","Switch","MenuVariant","state","className","rest","forwardedRef","showAccessibility","triggerIcon","accessibleChecked","edgeMargin","useLengthTokenPx","DropdownMenu","Fragment","event","CompactVariant","SplitVariant","ThemeToggle","forwardRef","ref","variant","id","_theme","_accessibility","_onThemeChange","_onAccessibilityChange","stateRef","useRef","useImperativeHandle","agentHandle","useMemo","useAgentRegistration"],"mappings":"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"}
1
+ {"version":3,"file":"theme-toggle-Czq3K9jB.js","sources":["../../src/components/theme-toggle/theme-toggle.agent.ts","../../src/components/theme-toggle/theme-toggle.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — ThemeToggle. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { ThemeToggleHandle } from './theme-toggle';\n\nexport const themeToggleAgent: AgentAdapter<ThemeToggleHandle> = {\n id: 'theme-toggle',\n capabilities: ['set_value'],\n state: {\n currentTheme: {\n type: 'ThemePreference',\n descriptionKey: 'ui.agent.themeToggle.state.currentTheme',\n description: 'Active theme preference: light, dark, or system.',\n read: (handle) => handle.getCurrentTheme(),\n },\n currentAccessibility: {\n type: 'AccessibilityPreference',\n descriptionKey: 'ui.agent.themeToggle.state.currentAccessibility',\n description: 'Active accessibility preference: default or accessible.',\n read: (handle) => handle.getCurrentAccessibility(),\n },\n },\n actions: {\n set_theme: {\n safety: 'write',\n argsType: '{ theme: \"light\" | \"dark\" | \"system\" }',\n argsSchema: {\n type: 'object',\n properties: { theme: { enum: ['light', 'dark', 'system'] } },\n required: ['theme'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.themeToggle.actions.setTheme',\n description: 'Switch the theme preference.',\n invoke: (handle, args: { theme: 'light' | 'dark' | 'system' }) => {\n handle.setTheme(args.theme);\n },\n },\n set_accessibility: {\n safety: 'write',\n argsType: '{ accessibility: \"default\" | \"accessible\" }',\n argsSchema: {\n type: 'object',\n properties: { accessibility: { enum: ['default', 'accessible'] } },\n required: ['accessibility'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.themeToggle.actions.setAccessibility',\n description: 'Switch the accessibility preference.',\n invoke: (handle, args: { accessibility: 'default' | 'accessible' }) => {\n handle.setAccessibility(args.accessibility);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'theme-toggle',\n description: 'Marks the ThemeToggle wrapper.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n },\n};\n","import {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n type HTMLAttributes,\n} from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Monitor, Moon, Sun } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\nimport { IconButtonGroup } from '../icon-button-group/icon-button-group';\nimport { Switch } from '../switch/switch';\nimport { DropdownMenu } from '../dropdown-menu/dropdown-menu';\nimport {\n useTheme,\n type AccessibilityPreference,\n type ThemePreference,\n type UseThemeReturn,\n} from '../../hooks';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { themeToggleAgent } from './theme-toggle.agent';\nimport { useLengthTokenPx } from '../_shared/length-token';\n\n/* ------------------------------------------------------------------ */\n/* CVA */\n/* ------------------------------------------------------------------ */\n\nconst wrapperVariants = cva('ds:inline-flex ds:items-center', {\n variants: {\n variant: {\n menu: '',\n compact: '',\n split: 'ds:gap-[var(--spacing-md)]',\n },\n },\n defaultVariants: { variant: 'menu' },\n});\n\n/* ------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------ */\n\nexport type ThemeToggleVariant = 'menu' | 'compact' | 'split';\n\ninterface ThemeToggleBaseProps\n extends\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>,\n VariantProps<typeof wrapperVariants> {\n /**\n * Visual form factor.\n * - `menu` (default) — single trigger that opens a dropdown with both\n * Appearance and Accessibility controls. Best for headers / nav rails.\n * - `compact` — segmented Appearance control only. Use when accessibility\n * lives on a separate settings surface.\n * - `split` — segmented Appearance control plus an inline Accessibility\n * switch. Best for full-width settings panels.\n */\n variant?: ThemeToggleVariant;\n /** Hide the accessibility control. Ignored on `compact`, which never renders it. */\n showAccessibility?: boolean;\n /**\n * Controlled escape hatch — when omitted the component reads/writes\n * `useTheme()` directly so it can drop into any header with no wiring.\n * Pass all four to opt into controlled mode.\n */\n theme?: ThemePreference;\n accessibility?: AccessibilityPreference;\n onThemeChange?: (next: ThemePreference) => void;\n onAccessibilityChange?: (next: AccessibilityPreference) => void;\n}\n\nexport type ThemeToggleProps = ThemeToggleBaseProps;\n\n/** Curated imperative handle for agent / external automation. */\nexport interface ThemeToggleHandle {\n getCurrentTheme: () => ThemePreference;\n getCurrentAccessibility: () => AccessibilityPreference;\n setTheme: (next: ThemePreference) => void;\n setAccessibility: (next: AccessibilityPreference) => void;\n}\n\n/* ------------------------------------------------------------------ */\n/* Hook adapter */\n/* ------------------------------------------------------------------ */\n\n/**\n * Resolves controlled props against the store. When the consumer passes\n * `theme` / `onThemeChange` (etc.) we honour those; otherwise we fall\n * through to the singleton `useTheme()` hook so a bare `<ThemeToggle />`\n * works with zero wiring.\n */\nfunction useResolvedTheme(props: ThemeToggleBaseProps): UseThemeReturn {\n const {\n theme: themeProp,\n accessibility: accessibilityProp,\n onThemeChange,\n onAccessibilityChange,\n } = props;\n const store = useTheme();\n const theme = themeProp ?? store.theme;\n const accessibility = accessibilityProp ?? store.accessibility;\n\n const storeSetTheme = store.setTheme;\n const storeSetAccessibility = store.setAccessibility;\n\n const setTheme = useCallback(\n (next: ThemePreference) => {\n if (onThemeChange) {\n onThemeChange(next);\n return;\n }\n storeSetTheme(next);\n },\n [onThemeChange, storeSetTheme],\n );\n\n const setAccessibility = useCallback(\n (next: AccessibilityPreference) => {\n if (onAccessibilityChange) {\n onAccessibilityChange(next);\n return;\n }\n storeSetAccessibility(next);\n },\n [onAccessibilityChange, storeSetAccessibility],\n );\n\n return {\n theme,\n accessibility,\n resolvedTheme: store.resolvedTheme,\n setTheme,\n setAccessibility,\n };\n}\n\n/* ------------------------------------------------------------------ */\n/* Sub-pieces */\n/* ------------------------------------------------------------------ */\n\ninterface AppearanceSegmentProps {\n value: ThemePreference;\n onValueChange: (next: ThemePreference) => void;\n ariaLabel: string;\n size?: 'sm' | 'md' | 'lg';\n}\n\nfunction AppearanceSegment({\n value,\n onValueChange,\n ariaLabel,\n size = 'md',\n}: AppearanceSegmentProps) {\n const { t } = useTranslation('ui');\n return (\n <IconButtonGroup\n aria-label={ariaLabel}\n role=\"radiogroup\"\n mode=\"toggle-single\"\n size={size}\n value={value}\n onValueChange={(next) => onValueChange(next as ThemePreference)}\n >\n <IconButton\n icon={<Sun aria-hidden />}\n aria-label={t('navigation.themeToggle.appearance.light')}\n value=\"light\"\n />\n <IconButton\n icon={<Moon aria-hidden />}\n aria-label={t('navigation.themeToggle.appearance.dark')}\n value=\"dark\"\n />\n <IconButton\n icon={<Monitor aria-hidden />}\n aria-label={t('navigation.themeToggle.appearance.system')}\n value=\"system\"\n />\n </IconButtonGroup>\n );\n}\n\ninterface AccessibilitySwitchProps {\n value: AccessibilityPreference;\n onValueChange: (next: AccessibilityPreference) => void;\n size?: 'sm' | 'md' | 'lg';\n}\n\nfunction AccessibilitySwitch({\n value,\n onValueChange,\n size = 'md',\n}: AccessibilitySwitchProps) {\n const { t } = useTranslation('ui');\n // 'system' is treated as \"off\" visually — the OS preference flows through\n // automatically. Flipping the switch on creates an explicit override.\n const checked = value === 'accessible';\n return (\n <Switch\n label={t('navigation.themeToggle.accessibility.label')}\n labelSide=\"start\"\n size={size}\n checked={checked}\n onCheckedChange={(next) => onValueChange(next ? 'accessible' : 'default')}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Variants */\n/* ------------------------------------------------------------------ */\n\ninterface VariantRenderProps {\n state: UseThemeReturn;\n className?: string;\n rest: HTMLAttributes<HTMLDivElement>;\n forwardedRef: React.RefObject<HTMLDivElement | null>;\n showAccessibility: boolean;\n}\n\nfunction MenuVariant({\n state,\n className,\n rest,\n forwardedRef,\n showAccessibility,\n}: VariantRenderProps) {\n const { t } = useTranslation('ui');\n const triggerIcon =\n state.resolvedTheme === 'dark' ||\n state.resolvedTheme === 'dark-accessible' ? (\n <Moon aria-hidden />\n ) : (\n <Sun aria-hidden />\n );\n\n const accessibleChecked = state.accessibility === 'accessible';\n // Same edge margin as HeaderSettings: inside the phone menu the panel\n // keeps the sheet's side margin instead of touching the screen edge.\n const edgeMargin = useLengthTokenPx('--spacing-lg', forwardedRef, 24);\n\n return (\n <div\n ref={forwardedRef}\n data-component=\"theme-toggle\"\n data-component-id={rest.id}\n className={wrapperVariants({ variant: 'menu', className })}\n {...rest}\n >\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <IconButton\n icon={triggerIcon}\n aria-label={t('navigation.themeToggle.trigger')}\n />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n align=\"end\"\n sideOffset={8}\n collisionPadding={edgeMargin}\n >\n <DropdownMenu.Label>\n {t('navigation.themeToggle.appearance.label')}\n </DropdownMenu.Label>\n <DropdownMenu.RadioGroup\n value={state.theme}\n onValueChange={(next) => state.setTheme(next as ThemePreference)}\n >\n <DropdownMenu.RadioItem value=\"light\">\n <Sun aria-hidden className=\"ds:size-4\" />\n {t('navigation.themeToggle.appearance.light')}\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem value=\"dark\">\n <Moon aria-hidden className=\"ds:size-4\" />\n {t('navigation.themeToggle.appearance.dark')}\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem value=\"system\">\n <Monitor aria-hidden className=\"ds:size-4\" />\n {t('navigation.themeToggle.appearance.system')}\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n {showAccessibility ? (\n <>\n <DropdownMenu.Separator />\n {/* CheckboxItem keeps the accessibility toggle inside the\n Radix menu collection so ArrowDown reaches it and Space\n activates it; `onSelect={preventDefault}` prevents the\n menu from closing on toggle. */}\n <DropdownMenu.CheckboxItem\n checked={accessibleChecked}\n onCheckedChange={(next) =>\n state.setAccessibility(next ? 'accessible' : 'default')\n }\n onSelect={(event) => event.preventDefault()}\n >\n {t('navigation.themeToggle.accessibility.label')}\n </DropdownMenu.CheckboxItem>\n </>\n ) : null}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n </div>\n );\n}\n\nfunction CompactVariant({\n state,\n className,\n rest,\n forwardedRef,\n}: VariantRenderProps) {\n const { t } = useTranslation('ui');\n return (\n <div\n ref={forwardedRef}\n data-component=\"theme-toggle\"\n data-component-id={rest.id}\n className={wrapperVariants({ variant: 'compact', className })}\n {...rest}\n >\n <AppearanceSegment\n value={state.theme}\n onValueChange={state.setTheme}\n ariaLabel={t('navigation.themeToggle.appearance.label')}\n />\n </div>\n );\n}\n\nfunction SplitVariant({\n state,\n className,\n rest,\n forwardedRef,\n showAccessibility,\n}: VariantRenderProps) {\n const { t } = useTranslation('ui');\n return (\n <div\n ref={forwardedRef}\n data-component=\"theme-toggle\"\n data-component-id={rest.id}\n className={wrapperVariants({ variant: 'split', className })}\n {...rest}\n >\n <AppearanceSegment\n value={state.theme}\n onValueChange={state.setTheme}\n ariaLabel={t('navigation.themeToggle.appearance.label')}\n />\n {showAccessibility ? (\n <AccessibilitySwitch\n value={state.accessibility}\n onValueChange={state.setAccessibility}\n />\n ) : null}\n </div>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* ThemeToggle */\n/* ------------------------------------------------------------------ */\n\nexport const ThemeToggle = forwardRef<HTMLDivElement, ThemeToggleProps>(\n (props, ref) => {\n const {\n variant = 'menu',\n showAccessibility = true,\n className,\n id,\n // Strip controlled props from the spread — they are read by the\n // adapter, not by the DOM element.\n theme: _theme,\n accessibility: _accessibility,\n onThemeChange: _onThemeChange,\n onAccessibilityChange: _onAccessibilityChange,\n ...rest\n } = props as ThemeToggleProps & { id?: string };\n\n const state = useResolvedTheme(props);\n const stateRef = useRef(state);\n stateRef.current = state;\n\n // Internal variant wrappers attach refs to <div> elements; we forward that\n // DOM node as the public ref (Pattern B). The agent handle is registered\n // separately via useAgentRegistration.\n const forwardedRef = useRef<HTMLDivElement | null>(null);\n useImperativeHandle(ref, () => forwardedRef.current as HTMLDivElement, []);\n\n const agentHandle = useMemo<ThemeToggleHandle>(\n () => ({\n getCurrentTheme: () => stateRef.current.theme,\n getCurrentAccessibility: () => stateRef.current.accessibility,\n setTheme: (next) => stateRef.current.setTheme(next),\n setAccessibility: (next) => stateRef.current.setAccessibility(next),\n }),\n [],\n );\n useAgentRegistration(themeToggleAgent, agentHandle, id);\n\n if (variant === 'compact') {\n return (\n <CompactVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={forwardedRef}\n showAccessibility={showAccessibility}\n />\n );\n }\n if (variant === 'split') {\n return (\n <SplitVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={forwardedRef}\n showAccessibility={showAccessibility}\n />\n );\n }\n return (\n <MenuVariant\n state={state}\n className={className}\n rest={rest}\n forwardedRef={forwardedRef}\n showAccessibility={showAccessibility}\n />\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n"],"names":["themeToggleAgent","handle","args","wrapperVariants","cva","useResolvedTheme","props","themeProp","accessibilityProp","onThemeChange","onAccessibilityChange","store","useTheme","theme","accessibility","storeSetTheme","storeSetAccessibility","setTheme","useCallback","next","setAccessibility","AppearanceSegment","value","onValueChange","ariaLabel","size","t","useTranslation","jsxs","IconButtonGroup","jsx","IconButton","Sun","Moon","Monitor","AccessibilitySwitch","checked","Switch","MenuVariant","state","className","rest","forwardedRef","showAccessibility","triggerIcon","accessibleChecked","edgeMargin","useLengthTokenPx","DropdownMenu","Fragment","event","CompactVariant","SplitVariant","ThemeToggle","forwardRef","ref","variant","id","_theme","_accessibility","_onThemeChange","_onAccessibilityChange","stateRef","useRef","useImperativeHandle","agentHandle","useMemo","useAgentRegistration"],"mappings":"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"}