@alfadocs/ui-kit-debug 0.41.2 → 0.43.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 (346) hide show
  1. package/dist/_chunks/address-autocomplete-CSjMrBvu.js +358 -0
  2. package/dist/_chunks/address-autocomplete-CSjMrBvu.js.map +1 -0
  3. package/dist/_chunks/{alia-sidebar-DXsYPinm.js → alia-sidebar-BpX4z_af.js} +2 -2
  4. package/dist/_chunks/{alia-sidebar-DXsYPinm.js.map → alia-sidebar-BpX4z_af.js.map} +1 -1
  5. package/dist/_chunks/{ar-Cn_NxqkN.js → ar-DEz65ZJW.js} +2 -2
  6. package/dist/_chunks/{ar-Cn_NxqkN.js.map → ar-DEz65ZJW.js.map} +1 -1
  7. package/dist/_chunks/bmi-calculator-DuVSFDuw.js +259 -0
  8. package/dist/_chunks/bmi-calculator-DuVSFDuw.js.map +1 -0
  9. package/dist/_chunks/{booking-4mCw3Mpl.js → booking-CtLwaxkK.js} +4 -4
  10. package/dist/_chunks/{booking-4mCw3Mpl.js.map → booking-CtLwaxkK.js.map} +1 -1
  11. package/dist/_chunks/{breadcrumb-CLlhx7qo.js → breadcrumb-OTbaY70e.js} +4 -4
  12. package/dist/_chunks/{breadcrumb-CLlhx7qo.js.map → breadcrumb-OTbaY70e.js.map} +1 -1
  13. package/dist/_chunks/{calculator-dialog-B74fqpFZ.js → calculator-dialog-DdexHrTP.js} +2 -2
  14. package/dist/_chunks/{calculator-dialog-B74fqpFZ.js.map → calculator-dialog-DdexHrTP.js.map} +1 -1
  15. package/dist/_chunks/{chart-Cbt0_sKv.js → chart-Cg3e9EH9.js} +101 -99
  16. package/dist/_chunks/chart-Cg3e9EH9.js.map +1 -0
  17. package/dist/_chunks/cycle-calculator-Dln-y1k_.js +192 -0
  18. package/dist/_chunks/cycle-calculator-Dln-y1k_.js.map +1 -0
  19. package/dist/_chunks/{date-picker-CvQfs6Xh.js → date-picker-Bq7xhMA-.js} +109 -108
  20. package/dist/_chunks/{date-picker-CvQfs6Xh.js.map → date-picker-Bq7xhMA-.js.map} +1 -1
  21. package/dist/_chunks/date-picker-variants-DLi1Va_e.js +3238 -0
  22. package/dist/_chunks/date-picker-variants-DLi1Va_e.js.map +1 -0
  23. package/dist/_chunks/{date-range-picker-U9fn1g9d.js → date-range-picker-DcXuI9y7.js} +20 -19
  24. package/dist/_chunks/date-range-picker-DcXuI9y7.js.map +1 -0
  25. package/dist/_chunks/{date-time-picker-Cva0ZCWw.js → date-time-picker-RimumeLR.js} +18 -17
  26. package/dist/_chunks/date-time-picker-RimumeLR.js.map +1 -0
  27. package/dist/_chunks/{de-BMM2H7Bs.js → de-bTBGdjPS.js} +2 -2
  28. package/dist/_chunks/{de-BMM2H7Bs.js.map → de-bTBGdjPS.js.map} +1 -1
  29. package/dist/_chunks/{dialog-Cee13rHU.js → dialog-DOYgd75U.js} +46 -37
  30. package/dist/_chunks/dialog-DOYgd75U.js.map +1 -0
  31. package/dist/_chunks/{document-scanner-CqS_klIr.js → document-scanner-BqLsGs4Y.js} +7 -7
  32. package/dist/_chunks/{document-scanner-CqS_klIr.js.map → document-scanner-BqLsGs4Y.js.map} +1 -1
  33. package/dist/_chunks/{dropdown-menu-BC5ZdOMo.js → dropdown-menu-CUEXqKis.js} +2 -2
  34. package/dist/_chunks/{dropdown-menu-BC5ZdOMo.js.map → dropdown-menu-CUEXqKis.js.map} +1 -1
  35. package/dist/_chunks/{due-date-calculator-CUspKSTw.js → due-date-calculator-Cc4dRqTI.js} +62 -41
  36. package/dist/_chunks/due-date-calculator-Cc4dRqTI.js.map +1 -0
  37. package/dist/_chunks/{editable-currency-cell-renderer-DgkCIIcO.js → editable-currency-cell-renderer-9jqwDv5x.js} +3 -3
  38. package/dist/_chunks/{editable-currency-cell-renderer-DgkCIIcO.js.map → editable-currency-cell-renderer-9jqwDv5x.js.map} +1 -1
  39. package/dist/_chunks/{el-BYPonAaK.js → el-BWG5RXxa.js} +6 -6
  40. package/dist/_chunks/{el-BYPonAaK.js.map → el-BWG5RXxa.js.map} +1 -1
  41. package/dist/_chunks/{es-CMkVCQ4F.js → es-DfO_G435.js} +2 -2
  42. package/dist/_chunks/{es-CMkVCQ4F.js.map → es-DfO_G435.js.map} +1 -1
  43. package/dist/_chunks/{fr-BcuWxqft.js → fr-BTn24bs8.js} +2 -2
  44. package/dist/_chunks/{fr-BcuWxqft.js.map → fr-BTn24bs8.js.map} +1 -1
  45. package/dist/_chunks/{freemium-paywall-BAk3a6er.js → freemium-paywall-BLXESpH4.js} +2 -2
  46. package/dist/_chunks/{freemium-paywall-BAk3a6er.js.map → freemium-paywall-BLXESpH4.js.map} +1 -1
  47. package/dist/_chunks/{gestation-BXEgDGmP.js → gestation-mWF4AXea.js} +3 -3
  48. package/dist/_chunks/{gestation-BXEgDGmP.js.map → gestation-mWF4AXea.js.map} +1 -1
  49. package/dist/_chunks/{gestational-age-calculator-CsQ05qDy.js → gestational-age-calculator-ZMSrzkRW.js} +59 -45
  50. package/dist/_chunks/gestational-age-calculator-ZMSrzkRW.js.map +1 -0
  51. package/dist/_chunks/{header-CTZWX-tm.js → header-Ce1Br27u.js} +70 -75
  52. package/dist/_chunks/header-Ce1Br27u.js.map +1 -0
  53. package/dist/_chunks/{header-settings-CBLwUK6t.js → header-settings-Bx0Biimh.js} +2 -2
  54. package/dist/_chunks/{header-settings-CBLwUK6t.js.map → header-settings-Bx0Biimh.js.map} +1 -1
  55. package/dist/_chunks/{hi-wkq_rQAh.js → hi-Dj3oYd84.js} +2 -2
  56. package/dist/_chunks/{hi-wkq_rQAh.js.map → hi-Dj3oYd84.js.map} +1 -1
  57. package/dist/_chunks/index.modern-D2LGACWg.js +1529 -0
  58. package/dist/_chunks/index.modern-D2LGACWg.js.map +1 -0
  59. package/dist/_chunks/insert-result-DisOY2G-.js +243 -0
  60. package/dist/_chunks/insert-result-DisOY2G-.js.map +1 -0
  61. package/dist/_chunks/{isSameWeek-Bim5ftRd.js → isSameWeek-HfxKk6Lz.js} +2 -2
  62. package/dist/_chunks/{isSameWeek-Bim5ftRd.js.map → isSameWeek-HfxKk6Lz.js.map} +1 -1
  63. package/dist/_chunks/{it-GiQrQ9p4.js → it-Y85ofIQQ.js} +7 -7
  64. package/dist/_chunks/{it-GiQrQ9p4.js.map → it-Y85ofIQQ.js.map} +1 -1
  65. package/dist/_chunks/{ja-qfYg3Rua.js → ja-CQ7J6YoA.js} +2 -2
  66. package/dist/_chunks/{ja-qfYg3Rua.js.map → ja-CQ7J6YoA.js.map} +1 -1
  67. package/dist/_chunks/{kbd-Cglkd7CY.js → kbd-D855ZXIW.js} +2 -2
  68. package/dist/_chunks/{kbd-Cglkd7CY.js.map → kbd-D855ZXIW.js.map} +1 -1
  69. package/dist/_chunks/map-view-Tb5VfK9Y.js +333 -0
  70. package/dist/_chunks/map-view-Tb5VfK9Y.js.map +1 -0
  71. package/dist/_chunks/marketplace-app-shell-Dc5cTIt8.js +428 -0
  72. package/dist/_chunks/marketplace-app-shell-Dc5cTIt8.js.map +1 -0
  73. package/dist/_chunks/{nl-xOogO4sZ.js → nl-D9kHCmp3.js} +2 -2
  74. package/dist/_chunks/{nl-xOogO4sZ.js.map → nl-D9kHCmp3.js.map} +1 -1
  75. package/dist/_chunks/{patient-search-CBq62kmL.js → patient-search-DPe2ZYEL.js} +2 -2
  76. package/dist/_chunks/{patient-search-CBq62kmL.js.map → patient-search-DPe2ZYEL.js.map} +1 -1
  77. package/dist/_chunks/{patient-shell-DF81lALv.js → patient-shell-CnT4L8gn.js} +3 -3
  78. package/dist/_chunks/{patient-shell-DF81lALv.js.map → patient-shell-CnT4L8gn.js.map} +1 -1
  79. package/dist/_chunks/{payment-form-Dy3WIIsC.js → payment-form-BzVsG6Ks.js} +5 -5
  80. package/dist/_chunks/{payment-form-Dy3WIIsC.js.map → payment-form-BzVsG6Ks.js.map} +1 -1
  81. package/dist/_chunks/{pdf-viewer-Cy6Ul3hZ.js → pdf-viewer-B6MC6VTx.js} +139 -126
  82. package/dist/_chunks/pdf-viewer-B6MC6VTx.js.map +1 -0
  83. package/dist/_chunks/{pl-GnOW6eGK.js → pl-B3Smqpkr.js} +3 -3
  84. package/dist/_chunks/{pl-GnOW6eGK.js.map → pl-B3Smqpkr.js.map} +1 -1
  85. package/dist/_chunks/{practice-results-C0d4IL5E.js → practice-results-CrLpEiiW.js} +4 -4
  86. package/dist/_chunks/{practice-results-C0d4IL5E.js.map → practice-results-CrLpEiiW.js.map} +1 -1
  87. package/dist/_chunks/pregnancy-weight-gain-zZL5Ir2-.js +224 -0
  88. package/dist/_chunks/pregnancy-weight-gain-zZL5Ir2-.js.map +1 -0
  89. package/dist/_chunks/{pt-_bV5b5RW.js → pt-D3J-1c_7.js} +6 -6
  90. package/dist/_chunks/{pt-_bV5b5RW.js.map → pt-D3J-1c_7.js.map} +1 -1
  91. package/dist/_chunks/{public-header.agent-B2dDg2_d.js → public-header.agent-BY6FH71R.js} +2 -2
  92. package/dist/_chunks/{public-header.agent-B2dDg2_d.js.map → public-header.agent-BY6FH71R.js.map} +1 -1
  93. package/dist/_chunks/radio-group-CLjK-SlK.js +167 -0
  94. package/dist/_chunks/radio-group-CLjK-SlK.js.map +1 -0
  95. package/dist/_chunks/{rich-text-editor-DLbg2852.js → rich-text-editor-DhGIBd4a.js} +10 -10
  96. package/dist/_chunks/{rich-text-editor-DLbg2852.js.map → rich-text-editor-DhGIBd4a.js.map} +1 -1
  97. package/dist/_chunks/{ro-BEcyh5Nj.js → ro-BKAbbEA3.js} +2 -2
  98. package/dist/_chunks/{ro-BEcyh5Nj.js.map → ro-BKAbbEA3.js.map} +1 -1
  99. package/dist/_chunks/{ru-Bi86hqMf.js → ru-BeG8f0Ep.js} +3 -3
  100. package/dist/_chunks/{ru-Bi86hqMf.js.map → ru-BeG8f0Ep.js.map} +1 -1
  101. package/dist/_chunks/{sheet-BV-yuLE2.js → sheet-xbzu4YiY.js} +7 -7
  102. package/dist/_chunks/{sheet-BV-yuLE2.js.map → sheet-xbzu4YiY.js.map} +1 -1
  103. package/dist/_chunks/sign-document-B-3k_0LO.js +344 -0
  104. package/dist/_chunks/sign-document-B-3k_0LO.js.map +1 -0
  105. package/dist/_chunks/{signature-capture-DoiBd6i3.js → signature-capture-CpMBhqQ9.js} +6 -6
  106. package/dist/_chunks/{signature-capture-DoiBd6i3.js.map → signature-capture-CpMBhqQ9.js.map} +1 -1
  107. package/dist/_chunks/{sq-BujHSAWu.js → sq-_hRPaeUy.js} +6 -6
  108. package/dist/_chunks/{sq-BujHSAWu.js.map → sq-_hRPaeUy.js.map} +1 -1
  109. package/dist/_chunks/subDays-Dv7q9S7u.js +8 -0
  110. package/dist/_chunks/{subDays-_T9YeKPX.js.map → subDays-Dv7q9S7u.js.map} +1 -1
  111. package/dist/_chunks/{sv-C8AeDrTA.js → sv-g009fSpe.js} +2 -2
  112. package/dist/_chunks/{sv-C8AeDrTA.js.map → sv-g009fSpe.js.map} +1 -1
  113. package/dist/_chunks/tab-bar-Xetknddo.js +105 -0
  114. package/dist/_chunks/tab-bar-Xetknddo.js.map +1 -0
  115. package/dist/_chunks/{theme-toggle-DpC28kt5.js → theme-toggle-ClATnY4Q.js} +2 -2
  116. package/dist/_chunks/{theme-toggle-DpC28kt5.js.map → theme-toggle-ClATnY4Q.js.map} +1 -1
  117. package/dist/_chunks/{toast.agent-WHHfw5VX.js → toast.agent-B0MCsvdZ.js} +2 -2
  118. package/dist/_chunks/{toast.agent-WHHfw5VX.js.map → toast.agent-B0MCsvdZ.js.map} +1 -1
  119. package/dist/_chunks/{tr-CMSs_Vgf.js → tr-OKUOuhMW.js} +2 -2
  120. package/dist/_chunks/{tr-CMSs_Vgf.js.map → tr-OKUOuhMW.js.map} +1 -1
  121. package/dist/_chunks/{unit-converter-EUwO6QYq.js → unit-converter-CuXCXJhK.js} +46 -40
  122. package/dist/_chunks/unit-converter-CuXCXJhK.js.map +1 -0
  123. package/dist/_chunks/{workflow-map-C3gB0FvB.js → workflow-map-BFNpzTiw.js} +2 -2
  124. package/dist/_chunks/{workflow-map-C3gB0FvB.js.map → workflow-map-BFNpzTiw.js.map} +1 -1
  125. package/dist/_chunks/{zh-CN-eXB-PFu4.js → zh-CN-De4zwEhx.js} +3 -3
  126. package/dist/_chunks/{zh-CN-eXB-PFu4.js.map → zh-CN-De4zwEhx.js.map} +1 -1
  127. package/dist/agent-catalog.json +1 -1
  128. package/dist/brand/product-lockup/product-lockup.d.ts +16 -0
  129. package/dist/brand/product-lockup/product-lockup.d.ts.map +1 -1
  130. package/dist/components/_shared/calendar-class-names.d.ts +8 -0
  131. package/dist/components/_shared/calendar-class-names.d.ts.map +1 -0
  132. package/dist/components/_shared/index.d.ts +2 -0
  133. package/dist/components/_shared/index.d.ts.map +1 -1
  134. package/dist/components/_shared/insert-result.d.ts +78 -6
  135. package/dist/components/_shared/insert-result.d.ts.map +1 -1
  136. package/dist/components/address-autocomplete/address-autocomplete.d.ts +77 -0
  137. package/dist/components/address-autocomplete/address-autocomplete.d.ts.map +1 -0
  138. package/dist/components/address-autocomplete/index.d.ts +4 -0
  139. package/dist/components/address-autocomplete/index.d.ts.map +1 -0
  140. package/dist/components/address-autocomplete/index.js +6 -0
  141. package/dist/components/address-autocomplete/index.js.map +1 -0
  142. package/dist/components/address-autocomplete/parse-address.d.ts +52 -0
  143. package/dist/components/address-autocomplete/parse-address.d.ts.map +1 -0
  144. package/dist/components/badge/badge.d.ts +1 -1
  145. package/dist/components/bmi-calculator/bmi-calculator.d.ts +11 -1
  146. package/dist/components/bmi-calculator/bmi-calculator.d.ts.map +1 -1
  147. package/dist/components/bmi-calculator/index.js +1 -1
  148. package/dist/components/booking/index.js +1 -1
  149. package/dist/components/breadcrumb/index.js +1 -1
  150. package/dist/components/calculator-dialog/index.js +1 -1
  151. package/dist/components/card/card.d.ts +1 -1
  152. package/dist/components/chart/chart.d.ts +10 -0
  153. package/dist/components/chart/chart.d.ts.map +1 -1
  154. package/dist/components/chart/index.js +1 -1
  155. package/dist/components/cycle-calculator/cycle-calculator.d.ts +12 -2
  156. package/dist/components/cycle-calculator/cycle-calculator.d.ts.map +1 -1
  157. package/dist/components/cycle-calculator/index.js +1 -1
  158. package/dist/components/data-table/index.js +1 -1
  159. package/dist/components/date-picker/date-picker.d.ts +0 -1
  160. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  161. package/dist/components/date-picker/index.js +1 -1
  162. package/dist/components/date-range-picker/date-range-picker.d.ts +0 -1
  163. package/dist/components/date-range-picker/date-range-picker.d.ts.map +1 -1
  164. package/dist/components/date-range-picker/index.js +1 -1
  165. package/dist/components/date-time-picker/date-time-picker.d.ts +0 -1
  166. package/dist/components/date-time-picker/date-time-picker.d.ts.map +1 -1
  167. package/dist/components/date-time-picker/index.js +1 -1
  168. package/dist/components/dialog/dialog.d.ts.map +1 -1
  169. package/dist/components/dialog/index.js +1 -1
  170. package/dist/components/document-scanner/index.js +1 -1
  171. package/dist/components/dropdown-menu/index.js +1 -1
  172. package/dist/components/due-date-calculator/due-date-calculator.d.ts +11 -1
  173. package/dist/components/due-date-calculator/due-date-calculator.d.ts.map +1 -1
  174. package/dist/components/due-date-calculator/index.js +2 -2
  175. package/dist/components/freemium-paywall/index.js +1 -1
  176. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts +12 -2
  177. package/dist/components/gestational-age-calculator/gestational-age-calculator.d.ts.map +1 -1
  178. package/dist/components/gestational-age-calculator/index.js +1 -1
  179. package/dist/components/header/header.d.ts +8 -0
  180. package/dist/components/header/header.d.ts.map +1 -1
  181. package/dist/components/header/index.js +1 -1
  182. package/dist/components/header-settings/index.js +1 -1
  183. package/dist/components/index.d.ts +3 -1
  184. package/dist/components/index.d.ts.map +1 -1
  185. package/dist/components/kbd/index.js +1 -1
  186. package/dist/components/map-view/index.js +1 -1
  187. package/dist/components/matrix-rain/matrix-rain.d.ts +1 -1
  188. package/dist/components/patient-search/index.js +1 -1
  189. package/dist/components/payment-form/index.js +1 -1
  190. package/dist/components/pdf-viewer/index.js +1 -1
  191. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -1
  192. package/dist/components/practice-results/index.js +1 -1
  193. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  194. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts +12 -2
  195. package/dist/components/pregnancy-weight-gain/pregnancy-weight-gain.d.ts.map +1 -1
  196. package/dist/components/public-header/index.js +1 -1
  197. package/dist/components/public-header/public-header.d.ts +1 -1
  198. package/dist/components/radio-group/index.js +1 -1
  199. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  200. package/dist/components/rich-text-editor/index.js +1 -1
  201. package/dist/components/sheet/index.js +1 -1
  202. package/dist/components/sheet/sheet.d.ts.map +1 -1
  203. package/dist/components/sign-document/index.js +1 -1
  204. package/dist/components/sign-document/sign-document.d.ts +12 -0
  205. package/dist/components/sign-document/sign-document.d.ts.map +1 -1
  206. package/dist/components/signature-capture/index.js +1 -1
  207. package/dist/components/stat/stat.d.ts +1 -1
  208. package/dist/components/tab-bar/index.d.ts +3 -0
  209. package/dist/components/tab-bar/index.d.ts.map +1 -0
  210. package/dist/components/tab-bar/index.js +5 -0
  211. package/dist/components/tab-bar/index.js.map +1 -0
  212. package/dist/components/tab-bar/tab-bar.d.ts +104 -0
  213. package/dist/components/tab-bar/tab-bar.d.ts.map +1 -0
  214. package/dist/components/theme-toggle/index.js +1 -1
  215. package/dist/components/toast/index.js +1 -1
  216. package/dist/components/unit-converter/index.js +1 -1
  217. package/dist/components/unit-converter/unit-converter.d.ts +11 -1
  218. package/dist/components/unit-converter/unit-converter.d.ts.map +1 -1
  219. package/dist/components/workflow/index.js +1 -1
  220. package/dist/i18n/locales/ar.d.ts +17 -0
  221. package/dist/i18n/locales/ar.d.ts.map +1 -1
  222. package/dist/i18n/locales/ar.js +18 -1
  223. package/dist/i18n/locales/ar.js.map +1 -1
  224. package/dist/i18n/locales/de.d.ts +17 -0
  225. package/dist/i18n/locales/de.d.ts.map +1 -1
  226. package/dist/i18n/locales/de.js +18 -1
  227. package/dist/i18n/locales/de.js.map +1 -1
  228. package/dist/i18n/locales/el.d.ts +17 -0
  229. package/dist/i18n/locales/el.d.ts.map +1 -1
  230. package/dist/i18n/locales/el.js +18 -1
  231. package/dist/i18n/locales/el.js.map +1 -1
  232. package/dist/i18n/locales/en.d.ts +17 -0
  233. package/dist/i18n/locales/en.d.ts.map +1 -1
  234. package/dist/i18n/locales/en.js +18 -1
  235. package/dist/i18n/locales/en.js.map +1 -1
  236. package/dist/i18n/locales/es.d.ts +17 -0
  237. package/dist/i18n/locales/es.d.ts.map +1 -1
  238. package/dist/i18n/locales/es.js +18 -1
  239. package/dist/i18n/locales/es.js.map +1 -1
  240. package/dist/i18n/locales/fr.d.ts +17 -0
  241. package/dist/i18n/locales/fr.d.ts.map +1 -1
  242. package/dist/i18n/locales/fr.js +18 -1
  243. package/dist/i18n/locales/fr.js.map +1 -1
  244. package/dist/i18n/locales/hi.d.ts +17 -0
  245. package/dist/i18n/locales/hi.d.ts.map +1 -1
  246. package/dist/i18n/locales/hi.js +18 -1
  247. package/dist/i18n/locales/hi.js.map +1 -1
  248. package/dist/i18n/locales/it.d.ts +17 -0
  249. package/dist/i18n/locales/it.d.ts.map +1 -1
  250. package/dist/i18n/locales/it.js +18 -1
  251. package/dist/i18n/locales/it.js.map +1 -1
  252. package/dist/i18n/locales/ja.d.ts +17 -0
  253. package/dist/i18n/locales/ja.d.ts.map +1 -1
  254. package/dist/i18n/locales/ja.js +18 -1
  255. package/dist/i18n/locales/ja.js.map +1 -1
  256. package/dist/i18n/locales/nl.d.ts +17 -0
  257. package/dist/i18n/locales/nl.d.ts.map +1 -1
  258. package/dist/i18n/locales/nl.js +18 -1
  259. package/dist/i18n/locales/nl.js.map +1 -1
  260. package/dist/i18n/locales/pl.d.ts +17 -0
  261. package/dist/i18n/locales/pl.d.ts.map +1 -1
  262. package/dist/i18n/locales/pl.js +18 -1
  263. package/dist/i18n/locales/pl.js.map +1 -1
  264. package/dist/i18n/locales/pt.d.ts +17 -0
  265. package/dist/i18n/locales/pt.d.ts.map +1 -1
  266. package/dist/i18n/locales/pt.js +18 -1
  267. package/dist/i18n/locales/pt.js.map +1 -1
  268. package/dist/i18n/locales/ro.d.ts +17 -0
  269. package/dist/i18n/locales/ro.d.ts.map +1 -1
  270. package/dist/i18n/locales/ro.js +18 -1
  271. package/dist/i18n/locales/ro.js.map +1 -1
  272. package/dist/i18n/locales/ru.d.ts +17 -0
  273. package/dist/i18n/locales/ru.d.ts.map +1 -1
  274. package/dist/i18n/locales/ru.js +18 -1
  275. package/dist/i18n/locales/ru.js.map +1 -1
  276. package/dist/i18n/locales/sq.d.ts +17 -0
  277. package/dist/i18n/locales/sq.d.ts.map +1 -1
  278. package/dist/i18n/locales/sq.js +18 -1
  279. package/dist/i18n/locales/sq.js.map +1 -1
  280. package/dist/i18n/locales/sv.d.ts +17 -0
  281. package/dist/i18n/locales/sv.d.ts.map +1 -1
  282. package/dist/i18n/locales/sv.js +18 -1
  283. package/dist/i18n/locales/sv.js.map +1 -1
  284. package/dist/i18n/locales/tr.d.ts +17 -0
  285. package/dist/i18n/locales/tr.d.ts.map +1 -1
  286. package/dist/i18n/locales/tr.js +18 -1
  287. package/dist/i18n/locales/tr.js.map +1 -1
  288. package/dist/i18n/locales/zh.d.ts +17 -0
  289. package/dist/i18n/locales/zh.d.ts.map +1 -1
  290. package/dist/i18n/locales/zh.js +18 -1
  291. package/dist/i18n/locales/zh.js.map +1 -1
  292. package/dist/index.js +605 -599
  293. package/dist/index.js.map +1 -1
  294. package/dist/locales/ar.json +18 -1
  295. package/dist/locales/de.json +18 -1
  296. package/dist/locales/el.json +18 -1
  297. package/dist/locales/en.json +18 -1
  298. package/dist/locales/es.json +18 -1
  299. package/dist/locales/fr.json +18 -1
  300. package/dist/locales/hi.json +18 -1
  301. package/dist/locales/it.json +18 -1
  302. package/dist/locales/ja.json +18 -1
  303. package/dist/locales/nl.json +18 -1
  304. package/dist/locales/pl.json +18 -1
  305. package/dist/locales/pt.json +18 -1
  306. package/dist/locales/ro.json +18 -1
  307. package/dist/locales/ru.json +18 -1
  308. package/dist/locales/sq.json +18 -1
  309. package/dist/locales/sv.json +18 -1
  310. package/dist/locales/tr.json +18 -1
  311. package/dist/locales/zh.json +18 -1
  312. package/dist/patterns/alia-assistant/index.js +1 -1
  313. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  314. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts +87 -4
  315. package/dist/patterns/marketplace-app-shell/marketplace-app-shell.d.ts.map +1 -1
  316. package/dist/patterns/patient-shell/index.js +1 -1
  317. package/dist/tokens.css +1411 -2
  318. package/package.json +16 -1
  319. package/dist/_chunks/bmi-calculator-DnEr513I.js +0 -213
  320. package/dist/_chunks/bmi-calculator-DnEr513I.js.map +0 -1
  321. package/dist/_chunks/chart-Cbt0_sKv.js.map +0 -1
  322. package/dist/_chunks/cycle-calculator-B5Uj9QeT.js +0 -185
  323. package/dist/_chunks/cycle-calculator-B5Uj9QeT.js.map +0 -1
  324. package/dist/_chunks/date-range-picker-U9fn1g9d.js.map +0 -1
  325. package/dist/_chunks/date-time-picker-Cva0ZCWw.js.map +0 -1
  326. package/dist/_chunks/dialog-Cee13rHU.js.map +0 -1
  327. package/dist/_chunks/due-date-calculator-CUspKSTw.js.map +0 -1
  328. package/dist/_chunks/gestational-age-calculator-CsQ05qDy.js.map +0 -1
  329. package/dist/_chunks/header-CTZWX-tm.js.map +0 -1
  330. package/dist/_chunks/insert-result-yJ0QavoN.js +0 -133
  331. package/dist/_chunks/insert-result-yJ0QavoN.js.map +0 -1
  332. package/dist/_chunks/map-view-qJLybrmN.js +0 -1850
  333. package/dist/_chunks/map-view-qJLybrmN.js.map +0 -1
  334. package/dist/_chunks/marketplace-app-shell-BlxVizU4.js +0 -296
  335. package/dist/_chunks/marketplace-app-shell-BlxVizU4.js.map +0 -1
  336. package/dist/_chunks/pdf-viewer-Cy6Ul3hZ.js.map +0 -1
  337. package/dist/_chunks/pregnancy-weight-gain-BCdi-JSv.js +0 -209
  338. package/dist/_chunks/pregnancy-weight-gain-BCdi-JSv.js.map +0 -1
  339. package/dist/_chunks/radio-group-BcF92GEF.js +0 -152
  340. package/dist/_chunks/radio-group-BcF92GEF.js.map +0 -1
  341. package/dist/_chunks/react-day-picker-CdtIiKjx.js +0 -3174
  342. package/dist/_chunks/react-day-picker-CdtIiKjx.js.map +0 -1
  343. package/dist/_chunks/sign-document-CpLDZ6Db.js +0 -316
  344. package/dist/_chunks/sign-document-CpLDZ6Db.js.map +0 -1
  345. package/dist/_chunks/subDays-_T9YeKPX.js +0 -8
  346. package/dist/_chunks/unit-converter-EUwO6QYq.js.map +0 -1
@@ -165,7 +165,7 @@ const Q = [
165
165
  S.displayName = "BreadcrumbList";
166
166
  const U = [
167
167
  "ds:inline-flex ds:items-center",
168
- "ds:max-inline-size-[16rem]",
168
+ "ds:[max-inline-size:16rem]",
169
169
  "ds:min-h-[var(--min-target-size)]",
170
170
  "ds:py-[var(--spacing-xs)]"
171
171
  ].join(" "), N = y(
@@ -199,7 +199,7 @@ const U = [
199
199
  N.displayName = "BreadcrumbItem";
200
200
  const P = [
201
201
  "ds:inline-flex ds:items-center",
202
- "ds:max-inline-size-[16rem]",
202
+ "ds:[max-inline-size:16rem]",
203
203
  "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap",
204
204
  "ds:break-normal",
205
205
  "ds:text-[var(--muted-foreground)] ds:no-underline",
@@ -211,7 +211,7 @@ const P = [
211
211
  "ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]"
212
212
  ].join(" "), W = [
213
213
  "ds:inline-flex ds:items-center",
214
- "ds:max-inline-size-[16rem]",
214
+ "ds:[max-inline-size:16rem]",
215
215
  "ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap",
216
216
  "ds:break-normal",
217
217
  "ds:text-[var(--foreground)] ds:font-[var(--font-weight-semibold)]",
@@ -376,4 +376,4 @@ export {
376
376
  T as e,
377
377
  G as f
378
378
  };
379
- //# sourceMappingURL=breadcrumb-CLlhx7qo.js.map
379
+ //# sourceMappingURL=breadcrumb-OTbaY70e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-CLlhx7qo.js","sources":["../../src/components/breadcrumb/breadcrumb.agent.ts","../../src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — Breadcrumb. */\n/* */\n/* Breadcrumb is a navigation trail. Items expose their stable route id */\n/* + href ONLY — labels can contain patient names or other PHI and MUST */\n/* NOT be exposed on `data-*` or in adapter state (see PRS §26 §6.1). */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the full contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { BreadcrumbHandle } from './breadcrumb';\n\nexport interface BreadcrumbAgentItem {\n id: string;\n href?: string;\n}\n\nexport const breadcrumbAgent: AgentAdapter<BreadcrumbHandle> = {\n id: 'breadcrumb',\n capabilities: ['navigate'],\n state: {\n items: {\n type: 'Array<{ id: string, href?: string }>',\n descriptionKey: 'ui.agent.breadcrumb.state.items',\n description:\n 'Ordered list of crumb ids + hrefs in display order. Labels are intentionally excluded — they may contain PHI.',\n read: (handle) => handle.getItems(),\n },\n },\n actions: {\n navigate_to: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.breadcrumb.actions.navigateTo',\n description:\n 'Activate the crumb with the given id — equivalent to clicking the link.',\n invoke: (handle, args: { id: string }) => {\n handle.navigateTo(args.id);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'breadcrumb',\n description: 'Marks the Breadcrumb root `<nav>`.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-crumb-id',\n description:\n 'Stable opaque id of a crumb. Labels are NEVER carried in data-* — they may contain PHI.',\n },\n },\n};\n","import {\n Children,\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n type AnchorHTMLAttributes,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { breadcrumbAgent } from './breadcrumb.agent';\n\n/* -------------------------------------------------------------------- */\n/* Context — shares separator variant between siblings */\n/* -------------------------------------------------------------------- */\n\ntype SeparatorVariant = 'chevron' | 'slash';\n\ninterface BreadcrumbContextValue {\n separator: SeparatorVariant;\n}\n\nconst BreadcrumbContext = createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\n/* -------------------------------------------------------------------- */\n/* Root — <nav aria-label> wrapper + truncation engine */\n/* -------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps extends Omit<\n ComponentPropsWithoutRef<'nav'>,\n 'id'\n> {\n /** Override the default `aria-label` (falls back to translated `ui.navigation.breadcrumb.label`). */\n 'aria-label'?: string;\n /** Separator glyph between items. @default 'chevron' */\n separator?: SeparatorVariant;\n /** Maximum number of visible crumbs before collapsing. @default 4 */\n maxItems?: number;\n /** Items kept visible at the start. @default 1 */\n itemsBeforeCollapse?: number;\n /** Items kept visible at the end. @default 1 */\n itemsAfterCollapse?: number;\n /** If true, disables collapse behaviour. */\n disableCollapse?: boolean;\n /**\n * Consumer-supplied instance id, surfaced as `data-component-id` so an\n * agent / UI bridge can address this instance.\n */\n id?: string;\n}\n\n/**\n * Imperative handle for agent-readiness.\n *\n * Items expose their stable id (`BreadcrumbItem` `id` prop, falling back\n * to the `BreadcrumbLink` href) and href — never their visible label,\n * which may contain PHI (see PRS §26 §6.1).\n */\nexport interface BreadcrumbHandle {\n getItems: () => Array<{ id: string; href?: string }>;\n navigateTo: (id: string) => void;\n}\n\nconst Breadcrumb = forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n children,\n className,\n 'aria-label': ariaLabel,\n separator = 'chevron',\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n disableCollapse = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const items = useMemo(() => extractAgentItems(children), [children]);\n\n const handle = useMemo<BreadcrumbHandle>(\n () => ({\n getItems: () => items,\n navigateTo: (targetId: string) => {\n const hit = items.find((i) => i.id === targetId);\n if (!hit?.href) return;\n if (typeof window === 'undefined') return;\n // Same allow-list as the BreadcrumbLink renderer — never honour\n // `javascript:` / `data:` URLs.\n const trimmed = hit.href.trim();\n if (/^\\s*javascript:/i.test(trimmed)) return;\n window.location.assign(trimmed);\n },\n }),\n [items],\n );\n const innerRef = useRef<HTMLElement>(null);\n useImperativeHandle(ref, () => innerRef.current as HTMLElement, []);\n useAgentRegistration(breadcrumbAgent, handle, id);\n\n return (\n <BreadcrumbContext.Provider value={{ separator }}>\n <nav\n ref={innerRef}\n id={id}\n aria-label={ariaLabel ?? t('navigation.breadcrumb.label')}\n data-component=\"breadcrumb\"\n data-component-id={id}\n className={className}\n {...rest}\n >\n <BreadcrumbList\n maxItems={maxItems}\n itemsBeforeCollapse={itemsBeforeCollapse}\n itemsAfterCollapse={itemsAfterCollapse}\n disableCollapse={disableCollapse}\n >\n {children}\n </BreadcrumbList>\n </nav>\n </BreadcrumbContext.Provider>\n );\n },\n);\nBreadcrumb.displayName = 'Breadcrumb';\n\n/**\n * Walks the Breadcrumb children to collect `{ id, href }` for the agent\n * handle. The id is taken from the BreadcrumbItem's `id` prop, falling\n * back to the inner BreadcrumbLink's href (or an index string as a last\n * resort). Labels are never read — they may contain PHI.\n */\nfunction extractAgentItems(\n children: ReactNode,\n): Array<{ id: string; href?: string }> {\n const out: Array<{ id: string; href?: string }> = [];\n let index = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n // Only collect Items. Anything else (separators, custom wrappers) is\n // skipped — the agent contract addresses crumbs, not chrome.\n if (child.type !== BreadcrumbItem) return;\n const itemProps = child.props as BreadcrumbItemProps & {\n id?: string;\n children?: ReactNode;\n };\n let href: string | undefined;\n Children.forEach(itemProps.children, (grandchild) => {\n if (href) return;\n if (!isValidElement(grandchild)) return;\n if (grandchild.type !== BreadcrumbLink) return;\n const linkProps = grandchild.props as BreadcrumbLinkProps;\n if (typeof linkProps.href === 'string') href = linkProps.href;\n });\n const id = itemProps.id ?? href ?? String(index);\n out.push({ id, href });\n index += 1;\n });\n return out;\n}\n\n/* -------------------------------------------------------------------- */\n/* List — walks its children, injects separators & ellipsis */\n/* -------------------------------------------------------------------- */\n\nconst listClasses = [\n 'ds:flex ds:flex-wrap ds:items-center',\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:text-[var(--font-size-sm)] ds:text-[var(--muted-foreground)]',\n 'ds:ps-0 ds:m-0',\n 'ds:list-none',\n].join(' ');\n\nexport interface BreadcrumbListProps extends ComponentPropsWithoutRef<'ol'> {\n maxItems?: number;\n itemsBeforeCollapse?: number;\n itemsAfterCollapse?: number;\n disableCollapse?: boolean;\n}\n\nconst BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(\n (\n {\n children,\n className,\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n disableCollapse = false,\n ...rest\n },\n ref,\n ) => {\n const arr = Children.toArray(children).filter((c) =>\n isValidElement(c),\n ) as ReactElement[];\n const total = arr.length;\n\n const shouldCollapse =\n !disableCollapse &&\n total > maxItems &&\n itemsBeforeCollapse + itemsAfterCollapse < total;\n\n const renderItem = (child: ReactElement, isLast: boolean, key: string) =>\n cloneElement(child, {\n isCurrent: (child.props as BreadcrumbItemProps).isCurrent ?? isLast,\n key,\n } as Partial<BreadcrumbItemProps>);\n\n const renderSeparatorIf = (condition: boolean, key: string) =>\n condition ? <BreadcrumbSeparator key={key} /> : null;\n\n const nodes: ReactNode[] = [];\n if (!shouldCollapse) {\n arr.forEach((child, i) => {\n const isLast = i === total - 1;\n nodes.push(renderItem(child, isLast, `item-${i}`));\n nodes.push(renderSeparatorIf(!isLast, `sep-${i}`));\n });\n } else {\n const before = arr.slice(0, itemsBeforeCollapse);\n const after = arr.slice(total - itemsAfterCollapse);\n const hidden = arr.slice(itemsBeforeCollapse, total - itemsAfterCollapse);\n\n before.forEach((child, i) => {\n nodes.push(renderItem(child, false, `b-${i}`));\n nodes.push(renderSeparatorIf(true, `b-sep-${i}`));\n });\n\n nodes.push(\n <BreadcrumbItem key=\"ellipsis\">\n <BreadcrumbEllipsis hiddenItems={hidden} />\n </BreadcrumbItem>,\n );\n nodes.push(renderSeparatorIf(true, 'ellipsis-sep'));\n\n after.forEach((child, i) => {\n const isLast = i === after.length - 1;\n nodes.push(renderItem(child, isLast, `a-${i}`));\n nodes.push(renderSeparatorIf(!isLast, `a-sep-${i}`));\n });\n }\n\n return (\n <ol\n ref={ref}\n className={[listClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {nodes}\n </ol>\n );\n },\n);\nBreadcrumbList.displayName = 'BreadcrumbList';\n\n/* -------------------------------------------------------------------- */\n/* Item — <li> marks current when `isCurrent` */\n/* -------------------------------------------------------------------- */\n\nconst itemClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:max-inline-size-[16rem]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:py-[var(--spacing-xs)]',\n].join(' ');\n\nexport interface BreadcrumbItemProps extends ComponentPropsWithoutRef<'li'> {\n /** Set automatically by `BreadcrumbList` on the final item. */\n isCurrent?: boolean;\n}\n\nconst BreadcrumbItem = forwardRef<HTMLLIElement, BreadcrumbItemProps>(\n ({ children, className, isCurrent = false, id, ...rest }, ref) => {\n // Derive an agent crumb id: explicit `id` prop, else the inner link's\n // href. Labels are never used — they may contain PHI (PRS §26 §6.1).\n let derived: string | undefined = id;\n if (!derived) {\n Children.forEach(children, (child) => {\n if (derived) return;\n if (!isValidElement(child)) return;\n if (child.type !== BreadcrumbLink) return;\n const linkProps = child.props as BreadcrumbLinkProps;\n if (typeof linkProps.href === 'string') derived = linkProps.href;\n });\n }\n return (\n <li\n ref={ref}\n id={id}\n data-crumb-id={derived}\n className={[itemClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {Children.map(children, (child) =>\n isValidElement(child) &&\n (child.type === BreadcrumbLink ||\n (child.props as { _link?: boolean })?._link)\n ? cloneElement(child as ReactElement<BreadcrumbLinkProps>, {\n isCurrent,\n })\n : child,\n )}\n </li>\n );\n },\n);\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\n/* -------------------------------------------------------------------- */\n/* Link — renders <a>, or plain text when current */\n/* -------------------------------------------------------------------- */\n\nconst linkClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:max-inline-size-[16rem]',\n 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap',\n 'ds:break-normal',\n 'ds:text-[var(--muted-foreground)] ds:no-underline',\n 'ds:hover:text-[var(--foreground)] ds:hover:underline',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n].join(' ');\n\nconst currentClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:max-inline-size-[16rem]',\n 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap',\n 'ds:break-normal',\n 'ds:text-[var(--foreground)] ds:font-[var(--font-weight-semibold)]',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n].join(' ');\n\nexport interface BreadcrumbLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Use Radix `Slot` so consumers can pass a router link. */\n asChild?: boolean;\n /** Set by the parent Item when this is the current page. */\n isCurrent?: boolean;\n}\n\nconst BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n (\n { asChild = false, isCurrent = false, className, children, ...rest },\n ref,\n ) => {\n const { t } = useTranslation();\n\n if (isCurrent) {\n return (\n <span\n aria-current=\"page\"\n aria-label={\n (rest['aria-label'] as string | undefined) ??\n t('navigation.breadcrumb.current')\n }\n className={[currentClasses, className].filter(Boolean).join(' ')}\n >\n {children}\n </span>\n );\n }\n\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={[linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <a\n ref={ref}\n className={[linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </a>\n );\n },\n);\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\n/* -------------------------------------------------------------------- */\n/* Separator */\n/* -------------------------------------------------------------------- */\n\nconst separatorVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:text-[var(--muted-foreground)]',\n 'ds:ms-[var(--spacing-xs)] ds:me-[var(--spacing-xs)]',\n 'ds:select-none',\n ].join(' '),\n {\n variants: {\n variant: {\n chevron: '',\n slash: '',\n },\n },\n defaultVariants: { variant: 'chevron' },\n },\n);\n\nexport interface BreadcrumbSeparatorProps\n extends\n Omit<ComponentPropsWithoutRef<'li'>, 'children'>,\n VariantProps<typeof separatorVariants> {\n children?: ReactNode;\n}\n\nconst BreadcrumbSeparator = forwardRef<HTMLLIElement, BreadcrumbSeparatorProps>(\n ({ className, variant, children, ...rest }, ref) => {\n const ctx = useContext(BreadcrumbContext);\n const resolved = variant ?? ctx.separator;\n const defaultGlyph =\n resolved === 'slash' ? (\n <span aria-hidden=\"true\">/</span>\n ) : (\n <ChevronRight\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:rtl:-scale-x-100\"\n />\n );\n return (\n <li\n ref={ref}\n aria-hidden=\"true\"\n role=\"presentation\"\n className={separatorVariants({ variant: resolved, className })}\n {...rest}\n >\n {children ?? defaultGlyph}\n </li>\n );\n },\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\n/* -------------------------------------------------------------------- */\n/* Ellipsis — opens a Radix DropdownMenu with hidden crumbs */\n/* -------------------------------------------------------------------- */\n\nconst ellipsisTriggerClasses = [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--muted-foreground)]',\n 'ds:hover:text-[var(--foreground)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\nconst ellipsisContentClasses = [\n 'ds:z-[var(--z-dropdown)] ds:min-w-[12rem] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:p-[var(--spacing-xs)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none',\n].join(' ');\n\nconst ellipsisItemClasses = [\n 'ds:flex ds:items-center',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--foreground)] ds:cursor-pointer ds:select-none',\n 'ds:data-[highlighted]:bg-[var(--muted)] ds:data-[highlighted]:text-[var(--foreground)]',\n 'ds:outline-none',\n].join(' ');\n\nexport interface BreadcrumbEllipsisProps extends ComponentPropsWithoutRef<'button'> {\n /** Hidden crumb elements rendered inside the dropdown menu. */\n hiddenItems?: ReactElement[];\n}\n\nconst BreadcrumbEllipsis = forwardRef<\n HTMLButtonElement,\n BreadcrumbEllipsisProps\n>(({ className, hiddenItems = [], ...rest }, ref) => {\n const { t } = useTranslation();\n const showPath = t('navigation.breadcrumb.showPath');\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button\n ref={ref}\n type=\"button\"\n aria-label={showPath}\n className={[ellipsisTriggerClasses, className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <MoreHorizontal aria-hidden=\"true\" className=\"ds:size-4\" />\n <span className=\"ds:sr-only\">{showPath}</span>\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n className={ellipsisContentClasses}\n align=\"start\"\n sideOffset={6}\n >\n {hiddenItems.map((item, i) => {\n // Extract the anchor inside the hidden BreadcrumbItem (if any)\n const linkChild = extractLink(item);\n return (\n <DropdownMenu.Item\n key={`hidden-${i}`}\n asChild\n className={ellipsisItemClasses}\n >\n {linkChild ?? <span>{item}</span>}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n});\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\n/**\n * Walks a `BreadcrumbItem` to find the first child whose type is\n * `BreadcrumbLink` and returns the link rendered as a plain `<a>` so the\n * dropdown item can adopt its navigational behaviour.\n */\nfunction extractLink(item: ReactElement): ReactElement | null {\n let found: ReactElement | null = null;\n const itemChildren = (item.props as { children?: ReactNode }).children;\n Children.forEach(itemChildren, (child) => {\n if (found) return;\n if (!isValidElement(child)) return;\n if (child.type === BreadcrumbLink) {\n const linkProps = child.props as BreadcrumbLinkProps & {\n children?: ReactNode;\n };\n const href =\n typeof linkProps.href === 'string' ? linkProps.href : undefined;\n const safeHref = href && /^\\s*javascript:/i.test(href) ? undefined : href;\n found = (\n <a\n href={safeHref}\n onClick={\n linkProps.onClick as AnchorHTMLAttributes<HTMLAnchorElement>['onClick']\n }\n >\n {linkProps.children}\n </a>\n );\n }\n });\n return found;\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"],"names":["breadcrumbAgent","handle","args","BreadcrumbContext","createContext","Breadcrumb","forwardRef","children","className","ariaLabel","separator","maxItems","itemsBeforeCollapse","itemsAfterCollapse","disableCollapse","id","rest","ref","t","useTranslation","items","useMemo","extractAgentItems","targetId","hit","i","trimmed","innerRef","useRef","useImperativeHandle","useAgentRegistration","jsx","BreadcrumbList","out","index","Children","child","isValidElement","BreadcrumbItem","itemProps","href","grandchild","BreadcrumbLink","linkProps","listClasses","arr","total","shouldCollapse","renderItem","isLast","key","cloneElement","renderSeparatorIf","condition","BreadcrumbSeparator","nodes","before","after","hidden","BreadcrumbEllipsis","itemClasses","isCurrent","derived","_a","linkClasses","currentClasses","asChild","Slot","separatorVariants","cva","variant","ctx","useContext","resolved","defaultGlyph","ChevronRight","ellipsisTriggerClasses","ellipsisContentClasses","ellipsisItemClasses","hiddenItems","showPath","jsxs","DropdownMenu","MoreHorizontal","item","linkChild","extractLink","found","itemChildren","safeHref"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumb-OTbaY70e.js","sources":["../../src/components/breadcrumb/breadcrumb.agent.ts","../../src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — Breadcrumb. */\n/* */\n/* Breadcrumb is a navigation trail. Items expose their stable route id */\n/* + href ONLY — labels can contain patient names or other PHI and MUST */\n/* NOT be exposed on `data-*` or in adapter state (see PRS §26 §6.1). */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the full contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { BreadcrumbHandle } from './breadcrumb';\n\nexport interface BreadcrumbAgentItem {\n id: string;\n href?: string;\n}\n\nexport const breadcrumbAgent: AgentAdapter<BreadcrumbHandle> = {\n id: 'breadcrumb',\n capabilities: ['navigate'],\n state: {\n items: {\n type: 'Array<{ id: string, href?: string }>',\n descriptionKey: 'ui.agent.breadcrumb.state.items',\n description:\n 'Ordered list of crumb ids + hrefs in display order. Labels are intentionally excluded — they may contain PHI.',\n read: (handle) => handle.getItems(),\n },\n },\n actions: {\n navigate_to: {\n safety: 'read',\n argsType: '{ id: string }',\n descriptionKey: 'ui.agent.breadcrumb.actions.navigateTo',\n description:\n 'Activate the crumb with the given id — equivalent to clicking the link.',\n invoke: (handle, args: { id: string }) => {\n handle.navigateTo(args.id);\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'breadcrumb',\n description: 'Marks the Breadcrumb root `<nav>`.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-crumb-id',\n description:\n 'Stable opaque id of a crumb. Labels are NEVER carried in data-* — they may contain PHI.',\n },\n },\n};\n","import {\n Children,\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n type AnchorHTMLAttributes,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport { useAgentRegistration } from '../../agent/registry';\nimport { breadcrumbAgent } from './breadcrumb.agent';\n\n/* -------------------------------------------------------------------- */\n/* Context — shares separator variant between siblings */\n/* -------------------------------------------------------------------- */\n\ntype SeparatorVariant = 'chevron' | 'slash';\n\ninterface BreadcrumbContextValue {\n separator: SeparatorVariant;\n}\n\nconst BreadcrumbContext = createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\n/* -------------------------------------------------------------------- */\n/* Root — <nav aria-label> wrapper + truncation engine */\n/* -------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps extends Omit<\n ComponentPropsWithoutRef<'nav'>,\n 'id'\n> {\n /** Override the default `aria-label` (falls back to translated `ui.navigation.breadcrumb.label`). */\n 'aria-label'?: string;\n /** Separator glyph between items. @default 'chevron' */\n separator?: SeparatorVariant;\n /** Maximum number of visible crumbs before collapsing. @default 4 */\n maxItems?: number;\n /** Items kept visible at the start. @default 1 */\n itemsBeforeCollapse?: number;\n /** Items kept visible at the end. @default 1 */\n itemsAfterCollapse?: number;\n /** If true, disables collapse behaviour. */\n disableCollapse?: boolean;\n /**\n * Consumer-supplied instance id, surfaced as `data-component-id` so an\n * agent / UI bridge can address this instance.\n */\n id?: string;\n}\n\n/**\n * Imperative handle for agent-readiness.\n *\n * Items expose their stable id (`BreadcrumbItem` `id` prop, falling back\n * to the `BreadcrumbLink` href) and href — never their visible label,\n * which may contain PHI (see PRS §26 §6.1).\n */\nexport interface BreadcrumbHandle {\n getItems: () => Array<{ id: string; href?: string }>;\n navigateTo: (id: string) => void;\n}\n\nconst Breadcrumb = forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n children,\n className,\n 'aria-label': ariaLabel,\n separator = 'chevron',\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n disableCollapse = false,\n id,\n ...rest\n },\n ref,\n ) => {\n const { t } = useTranslation();\n\n const items = useMemo(() => extractAgentItems(children), [children]);\n\n const handle = useMemo<BreadcrumbHandle>(\n () => ({\n getItems: () => items,\n navigateTo: (targetId: string) => {\n const hit = items.find((i) => i.id === targetId);\n if (!hit?.href) return;\n if (typeof window === 'undefined') return;\n // Same allow-list as the BreadcrumbLink renderer — never honour\n // `javascript:` / `data:` URLs.\n const trimmed = hit.href.trim();\n if (/^\\s*javascript:/i.test(trimmed)) return;\n window.location.assign(trimmed);\n },\n }),\n [items],\n );\n const innerRef = useRef<HTMLElement>(null);\n useImperativeHandle(ref, () => innerRef.current as HTMLElement, []);\n useAgentRegistration(breadcrumbAgent, handle, id);\n\n return (\n <BreadcrumbContext.Provider value={{ separator }}>\n <nav\n ref={innerRef}\n id={id}\n aria-label={ariaLabel ?? t('navigation.breadcrumb.label')}\n data-component=\"breadcrumb\"\n data-component-id={id}\n className={className}\n {...rest}\n >\n <BreadcrumbList\n maxItems={maxItems}\n itemsBeforeCollapse={itemsBeforeCollapse}\n itemsAfterCollapse={itemsAfterCollapse}\n disableCollapse={disableCollapse}\n >\n {children}\n </BreadcrumbList>\n </nav>\n </BreadcrumbContext.Provider>\n );\n },\n);\nBreadcrumb.displayName = 'Breadcrumb';\n\n/**\n * Walks the Breadcrumb children to collect `{ id, href }` for the agent\n * handle. The id is taken from the BreadcrumbItem's `id` prop, falling\n * back to the inner BreadcrumbLink's href (or an index string as a last\n * resort). Labels are never read — they may contain PHI.\n */\nfunction extractAgentItems(\n children: ReactNode,\n): Array<{ id: string; href?: string }> {\n const out: Array<{ id: string; href?: string }> = [];\n let index = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n // Only collect Items. Anything else (separators, custom wrappers) is\n // skipped — the agent contract addresses crumbs, not chrome.\n if (child.type !== BreadcrumbItem) return;\n const itemProps = child.props as BreadcrumbItemProps & {\n id?: string;\n children?: ReactNode;\n };\n let href: string | undefined;\n Children.forEach(itemProps.children, (grandchild) => {\n if (href) return;\n if (!isValidElement(grandchild)) return;\n if (grandchild.type !== BreadcrumbLink) return;\n const linkProps = grandchild.props as BreadcrumbLinkProps;\n if (typeof linkProps.href === 'string') href = linkProps.href;\n });\n const id = itemProps.id ?? href ?? String(index);\n out.push({ id, href });\n index += 1;\n });\n return out;\n}\n\n/* -------------------------------------------------------------------- */\n/* List — walks its children, injects separators & ellipsis */\n/* -------------------------------------------------------------------- */\n\nconst listClasses = [\n 'ds:flex ds:flex-wrap ds:items-center',\n 'ds:gap-[var(--spacing-xs)]',\n 'ds:text-[var(--font-size-sm)] ds:text-[var(--muted-foreground)]',\n 'ds:ps-0 ds:m-0',\n 'ds:list-none',\n].join(' ');\n\nexport interface BreadcrumbListProps extends ComponentPropsWithoutRef<'ol'> {\n maxItems?: number;\n itemsBeforeCollapse?: number;\n itemsAfterCollapse?: number;\n disableCollapse?: boolean;\n}\n\nconst BreadcrumbList = forwardRef<HTMLOListElement, BreadcrumbListProps>(\n (\n {\n children,\n className,\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 1,\n disableCollapse = false,\n ...rest\n },\n ref,\n ) => {\n const arr = Children.toArray(children).filter((c) =>\n isValidElement(c),\n ) as ReactElement[];\n const total = arr.length;\n\n const shouldCollapse =\n !disableCollapse &&\n total > maxItems &&\n itemsBeforeCollapse + itemsAfterCollapse < total;\n\n const renderItem = (child: ReactElement, isLast: boolean, key: string) =>\n cloneElement(child, {\n isCurrent: (child.props as BreadcrumbItemProps).isCurrent ?? isLast,\n key,\n } as Partial<BreadcrumbItemProps>);\n\n const renderSeparatorIf = (condition: boolean, key: string) =>\n condition ? <BreadcrumbSeparator key={key} /> : null;\n\n const nodes: ReactNode[] = [];\n if (!shouldCollapse) {\n arr.forEach((child, i) => {\n const isLast = i === total - 1;\n nodes.push(renderItem(child, isLast, `item-${i}`));\n nodes.push(renderSeparatorIf(!isLast, `sep-${i}`));\n });\n } else {\n const before = arr.slice(0, itemsBeforeCollapse);\n const after = arr.slice(total - itemsAfterCollapse);\n const hidden = arr.slice(itemsBeforeCollapse, total - itemsAfterCollapse);\n\n before.forEach((child, i) => {\n nodes.push(renderItem(child, false, `b-${i}`));\n nodes.push(renderSeparatorIf(true, `b-sep-${i}`));\n });\n\n nodes.push(\n <BreadcrumbItem key=\"ellipsis\">\n <BreadcrumbEllipsis hiddenItems={hidden} />\n </BreadcrumbItem>,\n );\n nodes.push(renderSeparatorIf(true, 'ellipsis-sep'));\n\n after.forEach((child, i) => {\n const isLast = i === after.length - 1;\n nodes.push(renderItem(child, isLast, `a-${i}`));\n nodes.push(renderSeparatorIf(!isLast, `a-sep-${i}`));\n });\n }\n\n return (\n <ol\n ref={ref}\n className={[listClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {nodes}\n </ol>\n );\n },\n);\nBreadcrumbList.displayName = 'BreadcrumbList';\n\n/* -------------------------------------------------------------------- */\n/* Item — <li> marks current when `isCurrent` */\n/* -------------------------------------------------------------------- */\n\nconst itemClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:[max-inline-size:16rem]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:py-[var(--spacing-xs)]',\n].join(' ');\n\nexport interface BreadcrumbItemProps extends ComponentPropsWithoutRef<'li'> {\n /** Set automatically by `BreadcrumbList` on the final item. */\n isCurrent?: boolean;\n}\n\nconst BreadcrumbItem = forwardRef<HTMLLIElement, BreadcrumbItemProps>(\n ({ children, className, isCurrent = false, id, ...rest }, ref) => {\n // Derive an agent crumb id: explicit `id` prop, else the inner link's\n // href. Labels are never used — they may contain PHI (PRS §26 §6.1).\n let derived: string | undefined = id;\n if (!derived) {\n Children.forEach(children, (child) => {\n if (derived) return;\n if (!isValidElement(child)) return;\n if (child.type !== BreadcrumbLink) return;\n const linkProps = child.props as BreadcrumbLinkProps;\n if (typeof linkProps.href === 'string') derived = linkProps.href;\n });\n }\n return (\n <li\n ref={ref}\n id={id}\n data-crumb-id={derived}\n className={[itemClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {Children.map(children, (child) =>\n isValidElement(child) &&\n (child.type === BreadcrumbLink ||\n (child.props as { _link?: boolean })?._link)\n ? cloneElement(child as ReactElement<BreadcrumbLinkProps>, {\n isCurrent,\n })\n : child,\n )}\n </li>\n );\n },\n);\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\n/* -------------------------------------------------------------------- */\n/* Link — renders <a>, or plain text when current */\n/* -------------------------------------------------------------------- */\n\nconst linkClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:[max-inline-size:16rem]',\n 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap',\n 'ds:break-normal',\n 'ds:text-[var(--muted-foreground)] ds:no-underline',\n 'ds:hover:text-[var(--foreground)] ds:hover:underline',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n].join(' ');\n\nconst currentClasses = [\n 'ds:inline-flex ds:items-center',\n 'ds:[max-inline-size:16rem]',\n 'ds:overflow-hidden ds:text-ellipsis ds:whitespace-nowrap',\n 'ds:break-normal',\n 'ds:text-[var(--foreground)] ds:font-[var(--font-weight-semibold)]',\n 'ds:min-h-[var(--min-target-size)] ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n].join(' ');\n\nexport interface BreadcrumbLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Use Radix `Slot` so consumers can pass a router link. */\n asChild?: boolean;\n /** Set by the parent Item when this is the current page. */\n isCurrent?: boolean;\n}\n\nconst BreadcrumbLink = forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n (\n { asChild = false, isCurrent = false, className, children, ...rest },\n ref,\n ) => {\n const { t } = useTranslation();\n\n if (isCurrent) {\n return (\n <span\n aria-current=\"page\"\n aria-label={\n (rest['aria-label'] as string | undefined) ??\n t('navigation.breadcrumb.current')\n }\n className={[currentClasses, className].filter(Boolean).join(' ')}\n >\n {children}\n </span>\n );\n }\n\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={[linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <a\n ref={ref}\n className={[linkClasses, className].filter(Boolean).join(' ')}\n {...rest}\n >\n {children}\n </a>\n );\n },\n);\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\n/* -------------------------------------------------------------------- */\n/* Separator */\n/* -------------------------------------------------------------------- */\n\nconst separatorVariants = cva(\n [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:text-[var(--muted-foreground)]',\n 'ds:ms-[var(--spacing-xs)] ds:me-[var(--spacing-xs)]',\n 'ds:select-none',\n ].join(' '),\n {\n variants: {\n variant: {\n chevron: '',\n slash: '',\n },\n },\n defaultVariants: { variant: 'chevron' },\n },\n);\n\nexport interface BreadcrumbSeparatorProps\n extends\n Omit<ComponentPropsWithoutRef<'li'>, 'children'>,\n VariantProps<typeof separatorVariants> {\n children?: ReactNode;\n}\n\nconst BreadcrumbSeparator = forwardRef<HTMLLIElement, BreadcrumbSeparatorProps>(\n ({ className, variant, children, ...rest }, ref) => {\n const ctx = useContext(BreadcrumbContext);\n const resolved = variant ?? ctx.separator;\n const defaultGlyph =\n resolved === 'slash' ? (\n <span aria-hidden=\"true\">/</span>\n ) : (\n <ChevronRight\n aria-hidden=\"true\"\n className=\"ds:size-4 ds:rtl:-scale-x-100\"\n />\n );\n return (\n <li\n ref={ref}\n aria-hidden=\"true\"\n role=\"presentation\"\n className={separatorVariants({ variant: resolved, className })}\n {...rest}\n >\n {children ?? defaultGlyph}\n </li>\n );\n },\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\n/* -------------------------------------------------------------------- */\n/* Ellipsis — opens a Radix DropdownMenu with hidden crumbs */\n/* -------------------------------------------------------------------- */\n\nconst ellipsisTriggerClasses = [\n 'ds:inline-flex ds:items-center ds:justify-center',\n 'ds:min-w-[var(--min-target-size)] ds:min-h-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--muted-foreground)]',\n 'ds:hover:text-[var(--foreground)]',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-[var(--ring)] ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\nconst ellipsisContentClasses = [\n 'ds:z-[var(--z-dropdown)] ds:min-w-[12rem] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-[var(--border)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:p-[var(--spacing-xs)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95 ds:motion-reduce:animate-none',\n].join(' ');\n\nconst ellipsisItemClasses = [\n 'ds:flex ds:items-center',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-[var(--foreground)] ds:cursor-pointer ds:select-none',\n 'ds:data-[highlighted]:bg-[var(--muted)] ds:data-[highlighted]:text-[var(--foreground)]',\n 'ds:outline-none',\n].join(' ');\n\nexport interface BreadcrumbEllipsisProps extends ComponentPropsWithoutRef<'button'> {\n /** Hidden crumb elements rendered inside the dropdown menu. */\n hiddenItems?: ReactElement[];\n}\n\nconst BreadcrumbEllipsis = forwardRef<\n HTMLButtonElement,\n BreadcrumbEllipsisProps\n>(({ className, hiddenItems = [], ...rest }, ref) => {\n const { t } = useTranslation();\n const showPath = t('navigation.breadcrumb.showPath');\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n <button\n ref={ref}\n type=\"button\"\n aria-label={showPath}\n className={[ellipsisTriggerClasses, className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <MoreHorizontal aria-hidden=\"true\" className=\"ds:size-4\" />\n <span className=\"ds:sr-only\">{showPath}</span>\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n className={ellipsisContentClasses}\n align=\"start\"\n sideOffset={6}\n >\n {hiddenItems.map((item, i) => {\n // Extract the anchor inside the hidden BreadcrumbItem (if any)\n const linkChild = extractLink(item);\n return (\n <DropdownMenu.Item\n key={`hidden-${i}`}\n asChild\n className={ellipsisItemClasses}\n >\n {linkChild ?? <span>{item}</span>}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n});\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\n/**\n * Walks a `BreadcrumbItem` to find the first child whose type is\n * `BreadcrumbLink` and returns the link rendered as a plain `<a>` so the\n * dropdown item can adopt its navigational behaviour.\n */\nfunction extractLink(item: ReactElement): ReactElement | null {\n let found: ReactElement | null = null;\n const itemChildren = (item.props as { children?: ReactNode }).children;\n Children.forEach(itemChildren, (child) => {\n if (found) return;\n if (!isValidElement(child)) return;\n if (child.type === BreadcrumbLink) {\n const linkProps = child.props as BreadcrumbLinkProps & {\n children?: ReactNode;\n };\n const href =\n typeof linkProps.href === 'string' ? linkProps.href : undefined;\n const safeHref = href && /^\\s*javascript:/i.test(href) ? undefined : href;\n found = (\n <a\n href={safeHref}\n onClick={\n linkProps.onClick as AnchorHTMLAttributes<HTMLAnchorElement>['onClick']\n }\n >\n {linkProps.children}\n </a>\n );\n }\n });\n return found;\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"],"names":["breadcrumbAgent","handle","args","BreadcrumbContext","createContext","Breadcrumb","forwardRef","children","className","ariaLabel","separator","maxItems","itemsBeforeCollapse","itemsAfterCollapse","disableCollapse","id","rest","ref","t","useTranslation","items","useMemo","extractAgentItems","targetId","hit","i","trimmed","innerRef","useRef","useImperativeHandle","useAgentRegistration","jsx","BreadcrumbList","out","index","Children","child","isValidElement","BreadcrumbItem","itemProps","href","grandchild","BreadcrumbLink","linkProps","listClasses","arr","total","shouldCollapse","renderItem","isLast","key","cloneElement","renderSeparatorIf","condition","BreadcrumbSeparator","nodes","before","after","hidden","BreadcrumbEllipsis","itemClasses","isCurrent","derived","_a","linkClasses","currentClasses","asChild","Slot","separatorVariants","cva","variant","ctx","useContext","resolved","defaultGlyph","ChevronRight","ellipsisTriggerClasses","ellipsisContentClasses","ellipsisItemClasses","hiddenItems","showPath","jsxs","DropdownMenu","MoreHorizontal","item","linkChild","extractLink","found","itemChildren","safeHref"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as a, jsx as l } from "react/jsx-runtime";
2
2
  import { forwardRef as p } from "react";
3
- import { D as r } from "./dialog-Cee13rHU.js";
3
+ import { D as r } from "./dialog-DOYgd75U.js";
4
4
  const u = p(
5
5
  ({
6
6
  trigger: i,
@@ -37,4 +37,4 @@ u.displayName = "CalculatorDialog";
37
37
  export {
38
38
  u as C
39
39
  };
40
- //# sourceMappingURL=calculator-dialog-B74fqpFZ.js.map
40
+ //# sourceMappingURL=calculator-dialog-DdexHrTP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculator-dialog-B74fqpFZ.js","sources":["../../src/components/calculator-dialog/calculator-dialog.tsx"],"sourcesContent":["/* ------------------------------------------------------------------ */\n/* CalculatorDialog — shared modal wrapper for the calculator toolset. */\n/* */\n/* Rather than baking Dialog wiring into every calculator, this single */\n/* wrapper composes the kit `Dialog` and hosts ANY calculator (or any */\n/* content) as children. Every calculator therefore gains a modal */\n/* presentation for free: */\n/* */\n/* <CalculatorDialog */\n/* trigger={<Button>Open BMI calculator</Button>} */\n/* title=\"BMI calculator\"> */\n/* <BmiCalculator /> */\n/* </CalculatorDialog> */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, type ReactNode } from 'react';\nimport { Dialog, type DialogContentProps } from '../dialog';\n\nexport interface CalculatorDialogProps {\n /** The element that opens the modal (rendered via `Dialog.Trigger asChild`). */\n trigger: ReactNode;\n /** Modal heading — also names the dialog for assistive tech. */\n title: string;\n /** Optional supporting line under the title. */\n description?: string;\n /** The calculator (or any content) shown inside the modal. */\n children: ReactNode;\n /** Dialog size. Calculators default to `lg` to fit inputs + result. */\n size?: DialogContentProps['size'];\n /** Controlled open state. */\n open?: boolean;\n /** Uncontrolled initial open state. */\n defaultOpen?: boolean;\n /** Open-state change handler. */\n onOpenChange?: (open: boolean) => void;\n /** Opaque instance id, forwarded to the dialog content. */\n id?: string;\n /** Extra class names on the modal body wrapper. */\n className?: string;\n}\n\nexport const CalculatorDialog = forwardRef<\n HTMLDivElement,\n CalculatorDialogProps\n>(\n (\n {\n trigger,\n title,\n description,\n children,\n size = 'lg',\n open,\n defaultOpen,\n onOpenChange,\n id,\n className,\n },\n ref,\n ) => {\n return (\n <Dialog\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n id={id}\n >\n <Dialog.Trigger asChild>{trigger}</Dialog.Trigger>\n <Dialog.Content ref={ref} size={size}>\n <Dialog.Header>\n <Dialog.Title>{title}</Dialog.Title>\n {description ? (\n <Dialog.Description>{description}</Dialog.Description>\n ) : null}\n </Dialog.Header>\n <div data-component=\"calculator-dialog\" className={className}>\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n },\n);\n\nCalculatorDialog.displayName = 'CalculatorDialog';\n"],"names":["CalculatorDialog","forwardRef","trigger","title","description","children","size","open","defaultOpen","onOpenChange","id","className","ref","jsxs","Dialog","jsx"],"mappings":";;;AAyCO,MAAMA,IAAmBC;AAAA,EAI9B,CACE;AAAA,IACE,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,MAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,IAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,GAEFC,MAGE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,aAAAC;AAAA,MACA,cAAAC;AAAA,MACA,IAAAC;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAK,EAACD,EAAO,SAAP,EAAe,SAAO,IAAE,UAAAZ,GAAQ;AAAA,QACjC,gBAAAW,EAACC,EAAO,SAAP,EAAe,KAAAF,GAAU,MAAAN,GACxB,UAAA;AAAA,UAAA,gBAAAO,EAACC,EAAO,QAAP,EACC,UAAA;AAAA,YAAA,gBAAAC,EAACD,EAAO,OAAP,EAAc,UAAAX,EAAA,CAAM;AAAA,YACpBC,IACC,gBAAAW,EAACD,EAAO,aAAP,EAAoB,aAAY,IAC/B;AAAA,UAAA,GACN;AAAA,UACA,gBAAAC,EAAC,OAAA,EAAI,kBAAe,qBAAoB,WAAAJ,GACrC,UAAAN,EAAA,CACH;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAL,EAAiB,cAAc;"}
1
+ {"version":3,"file":"calculator-dialog-DdexHrTP.js","sources":["../../src/components/calculator-dialog/calculator-dialog.tsx"],"sourcesContent":["/* ------------------------------------------------------------------ */\n/* CalculatorDialog — shared modal wrapper for the calculator toolset. */\n/* */\n/* Rather than baking Dialog wiring into every calculator, this single */\n/* wrapper composes the kit `Dialog` and hosts ANY calculator (or any */\n/* content) as children. Every calculator therefore gains a modal */\n/* presentation for free: */\n/* */\n/* <CalculatorDialog */\n/* trigger={<Button>Open BMI calculator</Button>} */\n/* title=\"BMI calculator\"> */\n/* <BmiCalculator /> */\n/* </CalculatorDialog> */\n/* ------------------------------------------------------------------ */\n\nimport { forwardRef, type ReactNode } from 'react';\nimport { Dialog, type DialogContentProps } from '../dialog';\n\nexport interface CalculatorDialogProps {\n /** The element that opens the modal (rendered via `Dialog.Trigger asChild`). */\n trigger: ReactNode;\n /** Modal heading — also names the dialog for assistive tech. */\n title: string;\n /** Optional supporting line under the title. */\n description?: string;\n /** The calculator (or any content) shown inside the modal. */\n children: ReactNode;\n /** Dialog size. Calculators default to `lg` to fit inputs + result. */\n size?: DialogContentProps['size'];\n /** Controlled open state. */\n open?: boolean;\n /** Uncontrolled initial open state. */\n defaultOpen?: boolean;\n /** Open-state change handler. */\n onOpenChange?: (open: boolean) => void;\n /** Opaque instance id, forwarded to the dialog content. */\n id?: string;\n /** Extra class names on the modal body wrapper. */\n className?: string;\n}\n\nexport const CalculatorDialog = forwardRef<\n HTMLDivElement,\n CalculatorDialogProps\n>(\n (\n {\n trigger,\n title,\n description,\n children,\n size = 'lg',\n open,\n defaultOpen,\n onOpenChange,\n id,\n className,\n },\n ref,\n ) => {\n return (\n <Dialog\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n id={id}\n >\n <Dialog.Trigger asChild>{trigger}</Dialog.Trigger>\n <Dialog.Content ref={ref} size={size}>\n <Dialog.Header>\n <Dialog.Title>{title}</Dialog.Title>\n {description ? (\n <Dialog.Description>{description}</Dialog.Description>\n ) : null}\n </Dialog.Header>\n <div data-component=\"calculator-dialog\" className={className}>\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n },\n);\n\nCalculatorDialog.displayName = 'CalculatorDialog';\n"],"names":["CalculatorDialog","forwardRef","trigger","title","description","children","size","open","defaultOpen","onOpenChange","id","className","ref","jsxs","Dialog","jsx"],"mappings":";;;AAyCO,MAAMA,IAAmBC;AAAA,EAI9B,CACE;AAAA,IACE,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,MAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,IAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,GAEFC,MAGE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,aAAAC;AAAA,MACA,cAAAC;AAAA,MACA,IAAAC;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAK,EAACD,EAAO,SAAP,EAAe,SAAO,IAAE,UAAAZ,GAAQ;AAAA,QACjC,gBAAAW,EAACC,EAAO,SAAP,EAAe,KAAAF,GAAU,MAAAN,GACxB,UAAA;AAAA,UAAA,gBAAAO,EAACC,EAAO,QAAP,EACC,UAAA;AAAA,YAAA,gBAAAC,EAACD,EAAO,OAAP,EAAc,UAAAX,EAAA,CAAM;AAAA,YACpBC,IACC,gBAAAW,EAACD,EAAO,aAAP,EAAoB,aAAY,IAC/B;AAAA,UAAA,GACN;AAAA,UACA,gBAAAC,EAAC,OAAA,EAAI,kBAAe,qBAAoB,WAAAJ,GACrC,UAAAN,EAAA,CACH;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAL,EAAiB,cAAc;"}
@@ -1,13 +1,13 @@
1
- import { jsxs as T, jsx as c } from "react/jsx-runtime";
2
- import { forwardRef as Q, useId as X, useMemo as d, useRef as tt, useState as P, useEffect as $, useImperativeHandle as et } from "react";
3
- import { c as ot } from "./index-D2ZczOXr.js";
4
- import { useTranslation as at } from "react-i18next";
5
- import rt from "react-apexcharts";
6
- import k from "apexcharts";
7
- import { u as nt, g as G } from "./apexcharts-theme-BJigns_V.js";
8
- import { u as st } from "./use-prefers-reduced-motion-BMwIQRjB.js";
9
- import { u as it } from "./registry-nPAVE19X.js";
10
- const ct = {
1
+ import { jsxs as x, jsx as c } from "react/jsx-runtime";
2
+ import { forwardRef as X, useId as tt, useMemo as d, useRef as et, useState as $, useEffect as k, useImperativeHandle as ot } from "react";
3
+ import { c as at } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as rt } from "react-i18next";
5
+ import nt from "react-apexcharts";
6
+ import G from "apexcharts";
7
+ import { u as st, g as H } from "./apexcharts-theme-BJigns_V.js";
8
+ import { u as it } from "./use-prefers-reduced-motion-BMwIQRjB.js";
9
+ import { u as ct } from "./registry-nPAVE19X.js";
10
+ const dt = {
11
11
  id: "chart",
12
12
  capabilities: [],
13
13
  state: {},
@@ -34,7 +34,7 @@ const ct = {
34
34
  description: "Sourced from the id prop."
35
35
  }
36
36
  }
37
- }, dt = ot("ds:relative ds:block ds:w-full", {
37
+ }, lt = at("ds:relative ds:block ds:w-full", {
38
38
  variants: {
39
39
  density: {
40
40
  compact: "ds:min-h-[var(--chart-min-height-compact)]",
@@ -46,65 +46,66 @@ const ct = {
46
46
  }
47
47
  },
48
48
  defaultVariants: { density: "comfortable" }
49
- }), lt = [
49
+ }), mt = [
50
50
  "verticalLines",
51
51
  "horizontalLines",
52
52
  "slantedLines",
53
53
  "squares",
54
54
  "circles"
55
- ], mt = ["line", "bar", "area"], ut = ["pie", "donut", "radialBar"];
56
- function x(r) {
57
- return ut.includes(r);
55
+ ], ut = ["line", "bar", "area"], ht = ["pie", "donut", "radialBar"];
56
+ function R(r) {
57
+ return ht.includes(r);
58
58
  }
59
- function ht(r) {
60
- return mt.includes(r);
59
+ function pt(r) {
60
+ return ut.includes(r);
61
61
  }
62
- function pt(r, l) {
63
- return x(l) ? [
62
+ function ft(r, l) {
63
+ return R(l) ? [
64
64
  {
65
65
  name: "",
66
66
  data: r
67
67
  }
68
68
  ] : r;
69
69
  }
70
- const ft = Q(
70
+ const bt = X(
71
71
  ({
72
72
  title: r,
73
73
  id: l,
74
74
  type: o,
75
75
  series: p,
76
- categories: v,
77
- labels: g,
78
- height: L,
79
- width: H,
80
- patterns: O = !1,
81
- toolbar: R = !1,
82
- locale: _,
76
+ categories: g,
77
+ labels: v,
78
+ height: O,
79
+ width: _,
80
+ patterns: A = !1,
81
+ colors: T,
82
+ toolbar: S = !1,
83
+ locale: M,
83
84
  radialValueFormatter: m,
84
- density: M,
85
- className: U
86
- }, D) => {
87
- const { t: a, i18n: W } = at(), A = X(), u = d(
88
- () => `chart-${A.replace(/[^a-zA-Z0-9-_]/g, "")}`,
89
- [A]
90
- ), S = `${u}-summary`, y = tt(null), [z, Y] = P(0);
91
- nt(y);
92
- const h = _ ?? W.language ?? "en", [N, Z] = P(
85
+ density: U,
86
+ className: D
87
+ }, W) => {
88
+ const { t: a, i18n: Y } = rt(), z = tt(), u = d(
89
+ () => `chart-${z.replace(/[^a-zA-Z0-9-_]/g, "")}`,
90
+ [z]
91
+ ), y = `${u}-summary`, I = et(null), [N, Z] = $(0);
92
+ st(I);
93
+ const h = M ?? Y.language ?? "en", [B, j] = $(
93
94
  () => {
94
95
  try {
95
- return G();
96
+ return H();
96
97
  } catch {
97
98
  return {};
98
99
  }
99
100
  }
100
101
  );
101
- $(() => {
102
+ k(() => {
102
103
  if (typeof document > "u") return;
103
104
  let t;
104
105
  const e = new MutationObserver(() => {
105
106
  clearTimeout(t), t = setTimeout(() => {
106
107
  try {
107
- Z(G());
108
+ j(H());
108
109
  } catch {
109
110
  }
110
111
  }, 50);
@@ -115,36 +116,36 @@ const ft = Q(
115
116
  }), () => {
116
117
  clearTimeout(t), e.disconnect();
117
118
  };
118
- }, []), $(() => {
119
- const t = y.current;
119
+ }, []), k(() => {
120
+ const t = I.current;
120
121
  if (!t || typeof ResizeObserver > "u") return;
121
122
  const e = new ResizeObserver((n) => {
122
123
  const s = n[0];
123
- s && Y(Math.floor(s.contentRect.width));
124
+ s && Z(Math.floor(s.contentRect.width));
124
125
  });
125
126
  return e.observe(t), () => e.disconnect();
126
127
  }, []);
127
- const I = d(
128
+ const C = d(
128
129
  () => ({
129
130
  async dataURI() {
130
- const t = k.getChartByID(u);
131
+ const t = G.getChartByID(u);
131
132
  return t ? (await t.dataURI()).imgURI : "";
132
133
  },
133
134
  updateSeries(t) {
134
- const e = k.getChartByID(u);
135
- e && (x(o), e.updateSeries(t));
135
+ const e = G.getChartByID(u);
136
+ e && (R(o), e.updateSeries(t));
136
137
  }
137
138
  }),
138
139
  [u, o]
139
140
  );
140
- et(D, () => I, [I]), it(ct, I, l);
141
- const C = typeof document < "u" && document.documentElement.dir === "rtl", B = d(
142
- () => pt(p, o),
141
+ ot(W, () => C, [C]), ct(dt, C, l);
142
+ const w = typeof document < "u" && document.documentElement.dir === "rtl", E = d(
143
+ () => ft(p, o),
143
144
  [p, o]
144
145
  ), f = d(
145
146
  () => new Intl.NumberFormat(h),
146
147
  [h]
147
- ), E = d(
148
+ ), P = d(
148
149
  () => ({
149
150
  name: h,
150
151
  options: {
@@ -163,24 +164,24 @@ const ft = Q(
163
164
  }
164
165
  }),
165
166
  [h, a]
166
- ), w = st(), j = d(() => {
167
+ ), L = it(), q = d(() => {
167
168
  var n, s, b;
168
- const t = N, e = {
169
+ const t = B, e = {
169
170
  ...t,
170
171
  chart: {
171
172
  ...t.chart,
172
173
  id: u,
173
- toolbar: { show: R },
174
- zoom: { enabled: R },
174
+ toolbar: { show: S },
175
+ zoom: { enabled: S },
175
176
  animations: {
176
- enabled: !w,
177
- dynamicAnimation: { enabled: !w }
177
+ enabled: !L,
178
+ dynamicAnimation: { enabled: !L }
178
179
  },
179
- locales: [E],
180
+ locales: [P],
180
181
  defaultLocale: h,
181
182
  parentHeightOffset: 0
182
183
  },
183
- labels: g,
184
+ labels: v,
184
185
  legend: {
185
186
  ...t.legend,
186
187
  position: "bottom",
@@ -188,7 +189,7 @@ const ft = Q(
188
189
  // to the chart's own text flow. For RTL we flip via `yaxis.opposite`
189
190
  // and ApexCharts' own `direction: 'rtl'` handling; legend stays anchored
190
191
  // to the inline-start by asking for 'left' on LTR and 'right' on RTL.
191
- horizontalAlign: C ? "right" : "left",
192
+ horizontalAlign: w ? "right" : "left",
192
193
  fontFamily: "inherit"
193
194
  },
194
195
  tooltip: {
@@ -201,12 +202,12 @@ const ft = Q(
201
202
  text: a("chart.noData")
202
203
  }
203
204
  };
204
- if (ht(o) && (e.xaxis = {
205
+ if (T && T.length > 0 && (e.colors = T), pt(o) && (e.xaxis = {
205
206
  ...t.xaxis,
206
- categories: v ?? []
207
+ categories: g ?? []
207
208
  }, e.yaxis = {
208
209
  ...t.yaxis,
209
- opposite: C,
210
+ opposite: w,
210
211
  labels: {
211
212
  formatter: (i) => f.format(i)
212
213
  }
@@ -223,17 +224,17 @@ const ft = Q(
223
224
  ...((n = i.radialBar) == null ? void 0 : n.dataLabels) ?? {},
224
225
  value: {
225
226
  ...((b = (s = i.radialBar) == null ? void 0 : s.dataLabels) == null ? void 0 : b.value) ?? {},
226
- formatter: (K) => m(Number(K))
227
+ formatter: (Q) => m(Number(Q))
227
228
  }
228
229
  }
229
230
  }
230
231
  };
231
232
  }
232
- return O ? e.fill = {
233
+ return A ? e.fill = {
233
234
  type: "pattern",
234
235
  opacity: o === "area" ? 0.3 : 1,
235
236
  pattern: {
236
- style: [...lt],
237
+ style: [...mt],
237
238
  strokeWidth: 2
238
239
  }
239
240
  } : o === "area" && (e.fill = {
@@ -241,69 +242,70 @@ const ft = Q(
241
242
  opacity: 0.3
242
243
  }), e;
243
244
  }, [
244
- N,
245
+ B,
245
246
  u,
246
- R,
247
- w,
248
- E,
247
+ S,
248
+ L,
249
+ P,
249
250
  h,
250
- g,
251
+ v,
251
252
  f,
252
253
  a,
253
254
  o,
254
- v,
255
- C,
256
- O,
255
+ g,
256
+ w,
257
+ A,
258
+ T,
257
259
  m
258
- ]), q = H ?? (z > 0 ? z : "100%"), V = L ?? 320, F = d(() => {
259
- const t = x(o) ? g ?? [] : v ?? [], e = B;
260
- return /* @__PURE__ */ T("table", { id: S, className: "ds:sr-only", children: [
260
+ ]), V = _ ?? (N > 0 ? N : "100%"), F = O ?? 320, J = d(() => {
261
+ const t = R(o) ? v ?? [] : g ?? [], e = E;
262
+ return /* @__PURE__ */ x("table", { id: y, className: "ds:sr-only", children: [
261
263
  /* @__PURE__ */ c("caption", { children: r }),
262
- /* @__PURE__ */ c("thead", { children: /* @__PURE__ */ T("tr", { children: [
264
+ /* @__PURE__ */ c("thead", { children: /* @__PURE__ */ x("tr", { children: [
263
265
  /* @__PURE__ */ c("th", { scope: "col", children: a("chart.table.series") }),
264
266
  t.map((n, s) => /* @__PURE__ */ c("th", { scope: "col", children: n }, `${n}-${s}`))
265
267
  ] }) }),
266
- /* @__PURE__ */ c("tbody", { children: e.map((n, s) => /* @__PURE__ */ T("tr", { children: [
268
+ /* @__PURE__ */ c("tbody", { children: e.map((n, s) => /* @__PURE__ */ x("tr", { children: [
267
269
  /* @__PURE__ */ c("th", { scope: "row", children: n.name || a("chart.table.value") }),
268
270
  n.data.map((b, i) => /* @__PURE__ */ c("td", { children: o === "radialBar" && m ? m(b) : f.format(b) }, `${s}-${i}`))
269
271
  ] }, `${n.name}-${s}`)) })
270
272
  ] });
271
273
  }, [
272
274
  o,
273
- B,
274
- g,
275
+ E,
275
276
  v,
276
- S,
277
+ g,
278
+ y,
277
279
  r,
278
280
  a,
279
281
  f,
280
282
  m
281
- ]), J = d(() => (x(o), p), [p, o]);
282
- return /* @__PURE__ */ T(
283
+ ]), K = d(() => (R(o), p), [p, o]);
284
+ return /* @__PURE__ */ x(
283
285
  "div",
284
286
  {
285
- ref: y,
287
+ ref: I,
286
288
  role: "img",
287
289
  "aria-label": r,
288
- "aria-describedby": S,
289
- className: dt({
290
+ "aria-describedby": y,
291
+ className: lt({
290
292
  // Explicit height wins over the density min-height unless the
291
293
  // caller also asked for a density explicitly.
292
- density: M ?? (L !== void 0 ? "none" : void 0),
293
- className: U
294
+ density: U ?? (O !== void 0 ? "none" : void 0),
295
+ className: D
294
296
  }),
295
297
  "data-component": "chart",
296
298
  "data-component-id": l,
297
299
  children: [
298
- F,
300
+ J,
299
301
  /* @__PURE__ */ c(
300
- rt,
302
+ nt,
301
303
  {
302
304
  type: o,
303
- series: J,
304
- options: j,
305
- width: q,
306
- height: V,
305
+ series: K,
306
+ options: q,
307
+ width: V,
308
+ height: F,
307
309
  "aria-hidden": "true"
308
310
  }
309
311
  )
@@ -312,10 +314,10 @@ const ft = Q(
312
314
  );
313
315
  }
314
316
  );
315
- ft.displayName = "Chart";
317
+ bt.displayName = "Chart";
316
318
  export {
317
- ft as C,
318
- dt as a,
319
- ct as c
319
+ bt as C,
320
+ lt as a,
321
+ dt as c
320
322
  };
321
- //# sourceMappingURL=chart-Cbt0_sKv.js.map
323
+ //# sourceMappingURL=chart-Cg3e9EH9.js.map