@alfadocs/ui-kit-debug 1.31.0 → 1.33.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 (310) hide show
  1. package/dist/_chunks/{agenda-card-pdN49pMu.js → agenda-card-DVz3jwTf.js} +2 -2
  2. package/dist/_chunks/{agenda-card-pdN49pMu.js.map → agenda-card-DVz3jwTf.js.map} +1 -1
  3. package/dist/_chunks/{agenda-tray-BweO8pDo.js → agenda-tray-1oDWCJdB.js} +2 -2
  4. package/dist/_chunks/{agenda-tray-BweO8pDo.js.map → agenda-tray-1oDWCJdB.js.map} +1 -1
  5. package/dist/_chunks/{ai-prompt-input-CrHr-5H8.js → ai-prompt-input-Dt7tpCBh.js} +2 -2
  6. package/dist/_chunks/{ai-prompt-input-CrHr-5H8.js.map → ai-prompt-input-Dt7tpCBh.js.map} +1 -1
  7. package/dist/_chunks/{alia-sidebar-BWcWZivN.js → alia-sidebar-D18kp3p9.js} +3 -3
  8. package/dist/_chunks/{alia-sidebar-BWcWZivN.js.map → alia-sidebar-D18kp3p9.js.map} +1 -1
  9. package/dist/_chunks/{anamnesis-summary-rows-DMO3MWSt.js → anamnesis-summary-rows-BYgyp_i2.js} +6 -6
  10. package/dist/_chunks/{anamnesis-summary-rows-DMO3MWSt.js.map → anamnesis-summary-rows-BYgyp_i2.js.map} +1 -1
  11. package/dist/_chunks/{appointment-card-CvUFFEdS.js → appointment-card-D-oj_ugh.js} +2 -2
  12. package/dist/_chunks/{appointment-card-CvUFFEdS.js.map → appointment-card-D-oj_ugh.js.map} +1 -1
  13. package/dist/_chunks/{appointment-timeline-DsMZY7U9.js → appointment-timeline-CymGHyIP.js} +2 -2
  14. package/dist/_chunks/{appointment-timeline-DsMZY7U9.js.map → appointment-timeline-CymGHyIP.js.map} +1 -1
  15. package/dist/_chunks/{appointment-tray-Z2GaOIYQ.js → appointment-tray-DCk8gHod.js} +2 -2
  16. package/dist/_chunks/{appointment-tray-Z2GaOIYQ.js.map → appointment-tray-DCk8gHod.js.map} +1 -1
  17. package/dist/_chunks/{audio-recorder-DXG6LTtO.js → audio-recorder-11wClczr.js} +2 -2
  18. package/dist/_chunks/{audio-recorder-DXG6LTtO.js.map → audio-recorder-11wClczr.js.map} +1 -1
  19. package/dist/_chunks/{avatar-BNQNhoyL.js → avatar-CkDeQOSI.js} +37 -37
  20. package/dist/_chunks/avatar-CkDeQOSI.js.map +1 -0
  21. package/dist/_chunks/{balance-badge-cell-CX6b0ML4.js → balance-badge-cell-DhBtFRoW.js} +4 -4
  22. package/dist/_chunks/{balance-badge-cell-CX6b0ML4.js.map → balance-badge-cell-DhBtFRoW.js.map} +1 -1
  23. package/dist/_chunks/{bishop-score-CJUVBfAu.js → bishop-score-CAl7C5hm.js} +2 -2
  24. package/dist/_chunks/{bishop-score-CJUVBfAu.js.map → bishop-score-CAl7C5hm.js.map} +1 -1
  25. package/dist/_chunks/{bmi-calculator-CcH6upht.js → bmi-calculator-Dwkih9a4.js} +3 -3
  26. package/dist/_chunks/{bmi-calculator-CcH6upht.js.map → bmi-calculator-Dwkih9a4.js.map} +1 -1
  27. package/dist/_chunks/{booking-jGzRUETo.js → booking-BqkEtsKx.js} +777 -747
  28. package/dist/_chunks/{booking-jGzRUETo.js.map → booking-BqkEtsKx.js.map} +1 -1
  29. package/dist/_chunks/{calculator-dialog-12d3Sxaz.js → calculator-dialog-C0ixc3SU.js} +2 -2
  30. package/dist/_chunks/{calculator-dialog-12d3Sxaz.js.map → calculator-dialog-C0ixc3SU.js.map} +1 -1
  31. package/dist/_chunks/{calendar-BNQKpxhE.js → calendar-Dgvl5L4T.js} +2 -2
  32. package/dist/_chunks/{calendar-BNQKpxhE.js.map → calendar-Dgvl5L4T.js.map} +1 -1
  33. package/dist/_chunks/{calendar-workspace-Dy1jHBvG.js → calendar-workspace-BX-zDyVR.js} +14 -14
  34. package/dist/_chunks/{calendar-workspace-Dy1jHBvG.js.map → calendar-workspace-BX-zDyVR.js.map} +1 -1
  35. package/dist/_chunks/{care-plan-card-CQVboTn1.js → care-plan-card-CZW476Kg.js} +2 -2
  36. package/dist/_chunks/{care-plan-card-CQVboTn1.js.map → care-plan-card-CZW476Kg.js.map} +1 -1
  37. package/dist/_chunks/{care-plan-entry-card-jxHkzez5.js → care-plan-entry-card-BMUYagEw.js} +2 -2
  38. package/dist/_chunks/{care-plan-entry-card-jxHkzez5.js.map → care-plan-entry-card-BMUYagEw.js.map} +1 -1
  39. package/dist/_chunks/{chat-message-DBQu10rs.js → chat-message-C-8UU2av.js} +2 -2
  40. package/dist/_chunks/{chat-message-DBQu10rs.js.map → chat-message-C-8UU2av.js.map} +1 -1
  41. package/dist/_chunks/{clinical-note-card-yCTR9DB6.js → clinical-note-card-D2WTV2CO.js} +2 -2
  42. package/dist/_chunks/{clinical-note-card-yCTR9DB6.js.map → clinical-note-card-D2WTV2CO.js.map} +1 -1
  43. package/dist/_chunks/{data-table-DB5BiVQ0.js → data-table-DC96JJIq.js} +2 -2
  44. package/dist/_chunks/{data-table-DB5BiVQ0.js.map → data-table-DC96JJIq.js.map} +1 -1
  45. package/dist/_chunks/{dependent-selector-cJlJFAKD.js → dependent-selector-yTKKsuc9.js} +2 -2
  46. package/dist/_chunks/{dependent-selector-cJlJFAKD.js.map → dependent-selector-yTKKsuc9.js.map} +1 -1
  47. package/dist/_chunks/{dialog-UbKJCi1X.js → dialog-BJiLqhx6.js} +54 -46
  48. package/dist/_chunks/dialog-BJiLqhx6.js.map +1 -0
  49. package/dist/_chunks/{document-preview-CDb-n_W7.js → document-preview-BrhMHNh8.js} +2 -2
  50. package/dist/_chunks/{document-preview-CDb-n_W7.js.map → document-preview-BrhMHNh8.js.map} +1 -1
  51. package/dist/_chunks/{due-date-calculator-BtgWeFqp.js → due-date-calculator-CxgK8vzt.js} +3 -3
  52. package/dist/_chunks/{due-date-calculator-BtgWeFqp.js.map → due-date-calculator-CxgK8vzt.js.map} +1 -1
  53. package/dist/_chunks/{entity-summary-B_vO5Ur4.js → entity-summary-5o768XLU.js} +2 -2
  54. package/dist/_chunks/{entity-summary-B_vO5Ur4.js.map → entity-summary-5o768XLU.js.map} +1 -1
  55. package/dist/_chunks/{file-manager-Cd8V9IcZ.js → file-manager-CI2Qn8qW.js} +3 -3
  56. package/dist/_chunks/{file-manager-Cd8V9IcZ.js.map → file-manager-CI2Qn8qW.js.map} +1 -1
  57. package/dist/_chunks/{gestational-age-calculator-KdMg9z9H.js → gestational-age-calculator-CZHVrERT.js} +4 -4
  58. package/dist/_chunks/{gestational-age-calculator-KdMg9z9H.js.map → gestational-age-calculator-CZHVrERT.js.map} +1 -1
  59. package/dist/_chunks/{link-cell-renderer-tWEOv3Sc.js → link-cell-renderer-BEpMNtAa.js} +3 -3
  60. package/dist/_chunks/{link-cell-renderer-tWEOv3Sc.js.map → link-cell-renderer-BEpMNtAa.js.map} +1 -1
  61. package/dist/_chunks/{marketplace-app-shell-C4AjQmvz.js → marketplace-app-shell-CK_ND8Tr.js} +2 -2
  62. package/dist/_chunks/{marketplace-app-shell-C4AjQmvz.js.map → marketplace-app-shell-CK_ND8Tr.js.map} +1 -1
  63. package/dist/_chunks/{message-card-D8GB4FdF.js → message-card-BUMv16un.js} +2 -2
  64. package/dist/_chunks/{message-card-D8GB4FdF.js.map → message-card-BUMv16un.js.map} +1 -1
  65. package/dist/_chunks/{message-tray-CGIRQjx5.js → message-tray-0zsv27xX.js} +2 -2
  66. package/dist/_chunks/{message-tray-CGIRQjx5.js.map → message-tray-0zsv27xX.js.map} +1 -1
  67. package/dist/_chunks/{muscle-scheme-BSJsI4-I.js → muscle-scheme-UVz_x4iE.js} +2 -2
  68. package/dist/_chunks/{muscle-scheme-BSJsI4-I.js.map → muscle-scheme-UVz_x4iE.js.map} +1 -1
  69. package/dist/_chunks/{notes-panel-am6e-Lwh.js → notes-panel-C4G-mhZ9.js} +3 -3
  70. package/dist/_chunks/{notes-panel-am6e-Lwh.js.map → notes-panel-C4G-mhZ9.js.map} +1 -1
  71. package/dist/_chunks/{operator-hero-BnFv-Uef.js → operator-hero-D7-iiFQ9.js} +2 -2
  72. package/dist/_chunks/{operator-hero-BnFv-Uef.js.map → operator-hero-D7-iiFQ9.js.map} +1 -1
  73. package/dist/_chunks/{optical-prescription-BvwuqTpl.js → optical-prescription-DUJOhKz_.js} +2 -2
  74. package/dist/_chunks/{optical-prescription-BvwuqTpl.js.map → optical-prescription-DUJOhKz_.js.map} +1 -1
  75. package/dist/_chunks/{patient-details-CdfursHt.js → patient-details-BGiawUHd.js} +3 -3
  76. package/dist/_chunks/{patient-details-CdfursHt.js.map → patient-details-BGiawUHd.js.map} +1 -1
  77. package/dist/_chunks/{patient-summary-card-C9WBwct-.js → patient-summary-card--CT_gbaQ.js} +2 -2
  78. package/dist/_chunks/{patient-summary-card-C9WBwct-.js.map → patient-summary-card--CT_gbaQ.js.map} +1 -1
  79. package/dist/_chunks/{periodontal-diagnosis-HrFsVi-C.js → periodontal-diagnosis-lEwA8wqX.js} +3 -3
  80. package/dist/_chunks/{periodontal-diagnosis-HrFsVi-C.js.map → periodontal-diagnosis-lEwA8wqX.js.map} +1 -1
  81. package/dist/_chunks/{practice-profile-hero-YQ7h2K4o.js → practice-profile-hero-DQyDvpJL.js} +2 -2
  82. package/dist/_chunks/{practice-profile-hero-YQ7h2K4o.js.map → practice-profile-hero-DQyDvpJL.js.map} +1 -1
  83. package/dist/_chunks/{practice-results-CxIsU2YO.js → practice-results-DjEzPgAK.js} +2 -2
  84. package/dist/_chunks/{practice-results-CxIsU2YO.js.map → practice-results-DjEzPgAK.js.map} +1 -1
  85. package/dist/_chunks/{pregnancy-dating-m-c05DOI.js → pregnancy-dating-n5j5dAKy.js} +4 -4
  86. package/dist/_chunks/{pregnancy-dating-m-c05DOI.js.map → pregnancy-dating-n5j5dAKy.js.map} +1 -1
  87. package/dist/_chunks/{pregnancy-weight-gain-CJwbs9W-.js → pregnancy-weight-gain-D5A8vPjj.js} +3 -3
  88. package/dist/_chunks/{pregnancy-weight-gain-CJwbs9W-.js.map → pregnancy-weight-gain-D5A8vPjj.js.map} +1 -1
  89. package/dist/_chunks/qr-code-DOJs4suh.js +750 -0
  90. package/dist/_chunks/qr-code-DOJs4suh.js.map +1 -0
  91. package/dist/_chunks/radio-DNRe6H_8.js +193 -0
  92. package/dist/_chunks/radio-DNRe6H_8.js.map +1 -0
  93. package/dist/_chunks/radio-group-DyVBgnA3.js +297 -0
  94. package/dist/_chunks/radio-group-DyVBgnA3.js.map +1 -0
  95. package/dist/_chunks/{radiograph-panel.agent-ByM9M3qm.js → radiograph-panel.agent-o4jwEJPC.js} +2 -2
  96. package/dist/_chunks/{radiograph-panel.agent-ByM9M3qm.js.map → radiograph-panel.agent-o4jwEJPC.js.map} +1 -1
  97. package/dist/_chunks/{rich-text-editor-VJATL1Tk.js → rich-text-editor-CQ7yZdG3.js} +2 -2
  98. package/dist/_chunks/{rich-text-editor-VJATL1Tk.js.map → rich-text-editor-CQ7yZdG3.js.map} +1 -1
  99. package/dist/_chunks/select-CLSUnKjF.js +520 -0
  100. package/dist/_chunks/select-CLSUnKjF.js.map +1 -0
  101. package/dist/_chunks/signature-request-vihDT8On.js +2232 -0
  102. package/dist/_chunks/signature-request-vihDT8On.js.map +1 -0
  103. package/dist/_chunks/{tabs-DqKtTIjZ.js → tabs-BnRaLT0y.js} +2 -2
  104. package/dist/_chunks/{tabs-DqKtTIjZ.js.map → tabs-BnRaLT0y.js.map} +1 -1
  105. package/dist/_chunks/{tasks-panel-DPCNaRko.js → tasks-panel-DQuaVvl5.js} +2 -2
  106. package/dist/_chunks/{tasks-panel-DPCNaRko.js.map → tasks-panel-DQuaVvl5.js.map} +1 -1
  107. package/dist/_chunks/{timeline-u-2t9t_M.js → timeline-Bs9Erxlo.js} +2 -2
  108. package/dist/_chunks/{timeline-u-2t9t_M.js.map → timeline-Bs9Erxlo.js.map} +1 -1
  109. package/dist/_chunks/{tooth-scheme-C9jssOmy.js → tooth-scheme-Qe7LO5Di.js} +2 -2
  110. package/dist/_chunks/{tooth-scheme-C9jssOmy.js.map → tooth-scheme-Qe7LO5Di.js.map} +1 -1
  111. package/dist/_chunks/{unit-converter-C6jMjqL9.js → unit-converter-BTgU50gk.js} +2 -2
  112. package/dist/_chunks/{unit-converter-C6jMjqL9.js.map → unit-converter-BTgU50gk.js.map} +1 -1
  113. package/dist/_chunks/{widget-picker-em4xGgv0.js → widget-picker-DvUkBemi.js} +2 -2
  114. package/dist/_chunks/{widget-picker-em4xGgv0.js.map → widget-picker-DvUkBemi.js.map} +1 -1
  115. package/dist/agent-catalog.json +316 -20
  116. package/dist/agent-i18n/en.json +18 -8
  117. package/dist/components/agenda-card/index.js +1 -1
  118. package/dist/components/agenda-tray/index.js +1 -1
  119. package/dist/components/ai-prompt-input/index.js +1 -1
  120. package/dist/components/appointment-card/index.js +2 -2
  121. package/dist/components/appointment-timeline/index.js +1 -1
  122. package/dist/components/audio-recorder/index.js +1 -1
  123. package/dist/components/avatar/avatar.d.ts +2 -0
  124. package/dist/components/avatar/avatar.d.ts.map +1 -1
  125. package/dist/components/avatar/index.js +1 -1
  126. package/dist/components/bishop-score/index.js +1 -1
  127. package/dist/components/bmi-calculator/index.js +1 -1
  128. package/dist/components/booking/booking.d.ts.map +1 -1
  129. package/dist/components/booking/index.js +1 -1
  130. package/dist/components/calculator-dialog/index.js +1 -1
  131. package/dist/components/calendar/index.js +1 -1
  132. package/dist/components/care-plan-card/index.js +1 -1
  133. package/dist/components/care-plan-entry-card/index.js +1 -1
  134. package/dist/components/chat-message/index.js +1 -1
  135. package/dist/components/clinical-note-card/index.js +1 -1
  136. package/dist/components/data-table/index.js +2 -2
  137. package/dist/components/dependent-selector/index.js +1 -1
  138. package/dist/components/dialog/dialog.d.ts +9 -0
  139. package/dist/components/dialog/dialog.d.ts.map +1 -1
  140. package/dist/components/dialog/index.js +1 -1
  141. package/dist/components/document-preview/index.js +1 -1
  142. package/dist/components/due-date-calculator/index.js +1 -1
  143. package/dist/components/entity-summary/index.js +1 -1
  144. package/dist/components/file-manager/index.js +1 -1
  145. package/dist/components/gestational-age-calculator/index.js +1 -1
  146. package/dist/components/message-card/index.js +1 -1
  147. package/dist/components/message-tray/index.js +1 -1
  148. package/dist/components/muscle-scheme/index.js +1 -1
  149. package/dist/components/notes-panel/index.js +1 -1
  150. package/dist/components/operator-hero/index.js +1 -1
  151. package/dist/components/optical-prescription/index.js +1 -1
  152. package/dist/components/patient-details/index.js +1 -1
  153. package/dist/components/patient-summary-card/index.js +1 -1
  154. package/dist/components/patient-table/index.js +1 -1
  155. package/dist/components/periodontal-diagnosis/index.js +1 -1
  156. package/dist/components/practice-profile-hero/index.js +1 -1
  157. package/dist/components/practice-results/index.js +1 -1
  158. package/dist/components/pregnancy-dating/index.js +1 -1
  159. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  160. package/dist/components/qr-code/index.js +1 -1
  161. package/dist/components/qr-code/qr-encode.d.ts +14 -16
  162. package/dist/components/qr-code/qr-encode.d.ts.map +1 -1
  163. package/dist/components/radio/index.js +1 -1
  164. package/dist/components/radio-group/index.js +2 -2
  165. package/dist/components/radio-group/radio-group-context.d.ts +4 -1
  166. package/dist/components/radio-group/radio-group-context.d.ts.map +1 -1
  167. package/dist/components/radio-group/radio-group.agent.d.ts.map +1 -1
  168. package/dist/components/radio-group/radio-group.d.ts +13 -1
  169. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  170. package/dist/components/radio-group/radio.d.ts +24 -1
  171. package/dist/components/radio-group/radio.d.ts.map +1 -1
  172. package/dist/components/radiograph-panel/index.js +1 -1
  173. package/dist/components/rich-text-editor/index.js +1 -1
  174. package/dist/components/select/index.js +1 -1
  175. package/dist/components/select/select.agent.d.ts.map +1 -1
  176. package/dist/components/select/select.d.ts +33 -0
  177. package/dist/components/select/select.d.ts.map +1 -1
  178. package/dist/components/skeleton-scheme/index.js +1 -1
  179. package/dist/components/tabs/index.js +1 -1
  180. package/dist/components/tasks-panel/index.js +1 -1
  181. package/dist/components/timeline/index.js +1 -1
  182. package/dist/components/tooth-scheme/index.js +1 -1
  183. package/dist/components/unit-converter/index.js +1 -1
  184. package/dist/components/widget-picker/index.js +1 -1
  185. package/dist/i18n/locales/ar.d.ts +68 -0
  186. package/dist/i18n/locales/ar.d.ts.map +1 -1
  187. package/dist/i18n/locales/ar.js +69 -1
  188. package/dist/i18n/locales/ar.js.map +1 -1
  189. package/dist/i18n/locales/de.d.ts +68 -0
  190. package/dist/i18n/locales/de.d.ts.map +1 -1
  191. package/dist/i18n/locales/de.js +71 -1
  192. package/dist/i18n/locales/de.js.map +1 -1
  193. package/dist/i18n/locales/el.d.ts +68 -0
  194. package/dist/i18n/locales/el.d.ts.map +1 -1
  195. package/dist/i18n/locales/el.js +69 -1
  196. package/dist/i18n/locales/el.js.map +1 -1
  197. package/dist/i18n/locales/en.d.ts +68 -0
  198. package/dist/i18n/locales/en.d.ts.map +1 -1
  199. package/dist/i18n/locales/en.js +69 -1
  200. package/dist/i18n/locales/en.js.map +1 -1
  201. package/dist/i18n/locales/es.d.ts +68 -0
  202. package/dist/i18n/locales/es.d.ts.map +1 -1
  203. package/dist/i18n/locales/es.js +69 -1
  204. package/dist/i18n/locales/es.js.map +1 -1
  205. package/dist/i18n/locales/fr.d.ts +68 -0
  206. package/dist/i18n/locales/fr.d.ts.map +1 -1
  207. package/dist/i18n/locales/fr.js +69 -1
  208. package/dist/i18n/locales/fr.js.map +1 -1
  209. package/dist/i18n/locales/hi.d.ts +68 -0
  210. package/dist/i18n/locales/hi.d.ts.map +1 -1
  211. package/dist/i18n/locales/hi.js +69 -1
  212. package/dist/i18n/locales/hi.js.map +1 -1
  213. package/dist/i18n/locales/it.d.ts +68 -0
  214. package/dist/i18n/locales/it.d.ts.map +1 -1
  215. package/dist/i18n/locales/it.js +69 -1
  216. package/dist/i18n/locales/it.js.map +1 -1
  217. package/dist/i18n/locales/ja.d.ts +68 -0
  218. package/dist/i18n/locales/ja.d.ts.map +1 -1
  219. package/dist/i18n/locales/ja.js +69 -1
  220. package/dist/i18n/locales/ja.js.map +1 -1
  221. package/dist/i18n/locales/nl.d.ts +68 -0
  222. package/dist/i18n/locales/nl.d.ts.map +1 -1
  223. package/dist/i18n/locales/nl.js +69 -1
  224. package/dist/i18n/locales/nl.js.map +1 -1
  225. package/dist/i18n/locales/pl.d.ts +68 -0
  226. package/dist/i18n/locales/pl.d.ts.map +1 -1
  227. package/dist/i18n/locales/pl.js +69 -1
  228. package/dist/i18n/locales/pl.js.map +1 -1
  229. package/dist/i18n/locales/pt.d.ts +68 -0
  230. package/dist/i18n/locales/pt.d.ts.map +1 -1
  231. package/dist/i18n/locales/pt.js +69 -1
  232. package/dist/i18n/locales/pt.js.map +1 -1
  233. package/dist/i18n/locales/ro.d.ts +68 -0
  234. package/dist/i18n/locales/ro.d.ts.map +1 -1
  235. package/dist/i18n/locales/ro.js +69 -1
  236. package/dist/i18n/locales/ro.js.map +1 -1
  237. package/dist/i18n/locales/ru.d.ts +68 -0
  238. package/dist/i18n/locales/ru.d.ts.map +1 -1
  239. package/dist/i18n/locales/ru.js +69 -1
  240. package/dist/i18n/locales/ru.js.map +1 -1
  241. package/dist/i18n/locales/sq.d.ts +68 -0
  242. package/dist/i18n/locales/sq.d.ts.map +1 -1
  243. package/dist/i18n/locales/sq.js +69 -1
  244. package/dist/i18n/locales/sq.js.map +1 -1
  245. package/dist/i18n/locales/sv.d.ts +68 -0
  246. package/dist/i18n/locales/sv.d.ts.map +1 -1
  247. package/dist/i18n/locales/sv.js +69 -1
  248. package/dist/i18n/locales/sv.js.map +1 -1
  249. package/dist/i18n/locales/tr.d.ts +68 -0
  250. package/dist/i18n/locales/tr.d.ts.map +1 -1
  251. package/dist/i18n/locales/tr.js +69 -1
  252. package/dist/i18n/locales/tr.js.map +1 -1
  253. package/dist/i18n/locales/zh.d.ts +68 -0
  254. package/dist/i18n/locales/zh.d.ts.map +1 -1
  255. package/dist/i18n/locales/zh.js +69 -1
  256. package/dist/i18n/locales/zh.js.map +1 -1
  257. package/dist/index.js +57 -57
  258. package/dist/locales/ar.json +69 -1
  259. package/dist/locales/de.json +69 -1
  260. package/dist/locales/el.json +69 -1
  261. package/dist/locales/en.json +69 -1
  262. package/dist/locales/es.json +69 -1
  263. package/dist/locales/fr.json +69 -1
  264. package/dist/locales/hi.json +69 -1
  265. package/dist/locales/it.json +69 -1
  266. package/dist/locales/ja.json +69 -1
  267. package/dist/locales/nl.json +69 -1
  268. package/dist/locales/pl.json +69 -1
  269. package/dist/locales/pt.json +69 -1
  270. package/dist/locales/ro.json +69 -1
  271. package/dist/locales/ru.json +69 -1
  272. package/dist/locales/sq.json +69 -1
  273. package/dist/locales/sv.json +69 -1
  274. package/dist/locales/tr.json +69 -1
  275. package/dist/locales/zh.json +69 -1
  276. package/dist/patterns/alia-assistant/index.js +1 -1
  277. package/dist/patterns/anamnesis/index.js +1 -1
  278. package/dist/patterns/calendar/index.js +1 -1
  279. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  280. package/dist/patterns/signature-request/channel-meta.d.ts +27 -0
  281. package/dist/patterns/signature-request/channel-meta.d.ts.map +1 -0
  282. package/dist/patterns/signature-request/index.d.ts +1 -1
  283. package/dist/patterns/signature-request/index.d.ts.map +1 -1
  284. package/dist/patterns/signature-request/index.js +1 -1
  285. package/dist/patterns/signature-request/load-status.d.ts +13 -0
  286. package/dist/patterns/signature-request/load-status.d.ts.map +1 -0
  287. package/dist/patterns/signature-request/person-grid.d.ts +32 -0
  288. package/dist/patterns/signature-request/person-grid.d.ts.map +1 -0
  289. package/dist/patterns/signature-request/required-documents.d.ts +127 -0
  290. package/dist/patterns/signature-request/required-documents.d.ts.map +1 -0
  291. package/dist/patterns/signature-request/signature-history.d.ts +57 -0
  292. package/dist/patterns/signature-request/signature-history.d.ts.map +1 -0
  293. package/dist/patterns/signature-request/signature-outcome.d.ts +29 -0
  294. package/dist/patterns/signature-request/signature-outcome.d.ts.map +1 -0
  295. package/dist/patterns/signature-request/signature-request.d.ts +390 -26
  296. package/dist/patterns/signature-request/signature-request.d.ts.map +1 -1
  297. package/dist/tokens.css +1 -1
  298. package/package.json +3 -1
  299. package/dist/_chunks/avatar-BNQNhoyL.js.map +0 -1
  300. package/dist/_chunks/dialog-UbKJCi1X.js.map +0 -1
  301. package/dist/_chunks/qr-code-CPkEs5mG.js +0 -574
  302. package/dist/_chunks/qr-code-CPkEs5mG.js.map +0 -1
  303. package/dist/_chunks/radio-TWf9Q-mp.js +0 -108
  304. package/dist/_chunks/radio-TWf9Q-mp.js.map +0 -1
  305. package/dist/_chunks/radio-group-rXDJADzW.js +0 -175
  306. package/dist/_chunks/radio-group-rXDJADzW.js.map +0 -1
  307. package/dist/_chunks/select-Bi8zril7.js +0 -471
  308. package/dist/_chunks/select-Bi8zril7.js.map +0 -1
  309. package/dist/_chunks/signature-request-C-IsbkPf.js +0 -417
  310. package/dist/_chunks/signature-request-C-IsbkPf.js.map +0 -1
@@ -0,0 +1,520 @@
1
+ import { jsx as e, jsxs as l } from "react/jsx-runtime";
2
+ import { forwardRef as r, useId as ye, useContext as xe, useState as M, useRef as U, useMemo as Se } from "react";
3
+ import { u as Ne } from "./registry-DvAUVLHh.js";
4
+ import * as a from "@radix-ui/react-select";
5
+ import { c as O } from "./index-D2ZczOXr.js";
6
+ import { useTranslation as we } from "react-i18next";
7
+ import { u as Ce, F as ze } from "./form-field-context-B3APVHKx.js";
8
+ import { g as Ie } from "./group-options-BvKhQ3xb.js";
9
+ import { C as je } from "./chevron-up-umRGgtJA.js";
10
+ import { C as W } from "./chevron-down-DWE7GSq9.js";
11
+ import { C as ke } from "./check-DrFSN__t.js";
12
+ import { u as Te } from "./use-direction-Dp8h70PP.js";
13
+ import { X as Ve } from "./x-B5YnXwCz.js";
14
+ const Re = {
15
+ id: "select",
16
+ // Persisted single choice (value state + set_value) → select_single + set_value,
17
+ // plus open/close of the option list.
18
+ capabilities: ["select_single", "set_value", "open", "close"],
19
+ state: {
20
+ value: {
21
+ type: "string",
22
+ descriptionKey: "ui.agent.select.state.value",
23
+ description: "Currently selected option value, or empty string when none.",
24
+ read: (s) => s.getValue()
25
+ },
26
+ isOpen: {
27
+ type: "boolean",
28
+ descriptionKey: "ui.agent.select.state.isOpen",
29
+ description: "Whether the option list is open.",
30
+ read: (s) => s.isOpen()
31
+ }
32
+ },
33
+ actions: {
34
+ set_value: {
35
+ // Persists the chosen option — reversible by selecting another value.
36
+ safety: "write",
37
+ argsType: "{ value: string }",
38
+ argsSchema: {
39
+ type: "object",
40
+ properties: {
41
+ value: { type: "string", description: "Option value to select." }
42
+ },
43
+ required: ["value"]
44
+ },
45
+ idempotent: !0,
46
+ descriptionKey: "ui.agent.select.actions.setValue",
47
+ description: "Select the option with the given value. A value that is not among the options, or belongs to a disabled option, is ignored and the selection stays as it was.",
48
+ examples: [{ args: { value: "it" }, note: 'Select the "it" option.' }],
49
+ invoke: (s, t) => {
50
+ s.setValue(t.value);
51
+ }
52
+ },
53
+ clear: {
54
+ // Discards the persisted choice — destructive (loses the selection).
55
+ safety: "destructive",
56
+ idempotent: !0,
57
+ descriptionKey: "ui.agent.select.actions.clear",
58
+ description: "Clear the current selection.",
59
+ invoke: (s) => {
60
+ s.clear();
61
+ }
62
+ },
63
+ open: {
64
+ safety: "read",
65
+ idempotent: !0,
66
+ descriptionKey: "ui.agent.select.actions.open",
67
+ description: "Open the option list.",
68
+ invoke: (s) => {
69
+ s.open();
70
+ }
71
+ },
72
+ close: {
73
+ safety: "read",
74
+ idempotent: !0,
75
+ descriptionKey: "ui.agent.select.actions.close",
76
+ description: "Close the option list.",
77
+ invoke: (s) => {
78
+ s.close();
79
+ }
80
+ }
81
+ },
82
+ domHooks: {
83
+ root: {
84
+ attr: "data-component",
85
+ value: "select",
86
+ description: "Marks the Select trigger."
87
+ },
88
+ instanceId: {
89
+ attr: "data-component-id",
90
+ sourceProp: "id",
91
+ description: "Sourced from the id prop."
92
+ },
93
+ item: {
94
+ attr: "data-option-id",
95
+ description: "Stable opaque option value emitted on each rendered option."
96
+ }
97
+ }
98
+ }, E = O(
99
+ [
100
+ "ds:group ds:inline-flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:w-full",
101
+ "ds:rounded-[var(--radius-sm)] ds:border ds:border-border ds:bg-input",
102
+ "ds:shadow-[var(--shadow-input)]",
103
+ "ds:text-foreground ds:placeholder:text-muted-foreground",
104
+ "ds:data-[placeholder]:text-muted-foreground",
105
+ "ds:transition-[colors,box-shadow] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
106
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
107
+ "ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
108
+ "ds:forced-colors:focus-visible:outline-[CanvasText]",
109
+ "ds:disabled:cursor-not-allowed ds:disabled:opacity-50"
110
+ ].join(" "),
111
+ {
112
+ variants: {
113
+ size: {
114
+ sm: "ds:h-8 ds:ps-3 ds:pe-3 ds:text-[length:var(--font-size-sm)]",
115
+ md: "ds:h-[var(--min-target-size)] ds:ps-3 ds:pe-3 ds:text-[length:var(--font-size-base)]",
116
+ lg: "ds:h-12 ds:ps-4 ds:pe-4 ds:text-[length:var(--font-size-lg)]"
117
+ },
118
+ tone: {
119
+ default: "",
120
+ error: "ds:border-destructive ds:focus-visible:outline-destructive"
121
+ }
122
+ },
123
+ defaultVariants: {
124
+ size: "md",
125
+ tone: "default"
126
+ }
127
+ }
128
+ ), Be = O(
129
+ [
130
+ "ds:z-[var(--z-dropdown)] ds:overflow-hidden",
131
+ "ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background ds:text-foreground",
132
+ "ds:shadow-[var(--shadow-lg)]",
133
+ "ds:animate-in ds:fade-in ds:zoom-in-95",
134
+ "ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out",
135
+ "ds:data-[state=closed]:zoom-out-95",
136
+ "ds:data-[side=bottom]:slide-in-from-top-2",
137
+ "ds:data-[side=top]:slide-in-from-bottom-2",
138
+ "ds:motion-reduce:animate-none"
139
+ ].join(" ")
140
+ ), Oe = O(
141
+ [
142
+ "ds:relative ds:flex ds:cursor-pointer ds:items-center",
143
+ "ds:rounded-[var(--radius-sm)]",
144
+ "ds:text-foreground ds:outline-none ds:select-none",
145
+ "ds:data-[highlighted]:bg-muted ds:data-[highlighted]:text-foreground",
146
+ "ds:data-[disabled]:pointer-events-none ds:data-[disabled]:opacity-50"
147
+ ].join(" "),
148
+ {
149
+ variants: {
150
+ size: {
151
+ sm: "ds:min-h-8 ds:ps-8 ds:pe-3 ds:text-[length:var(--font-size-sm)]",
152
+ md: "ds:min-h-[var(--min-target-size)] ds:ps-8 ds:pe-3 ds:text-[length:var(--font-size-base)]",
153
+ lg: "ds:min-h-12 ds:ps-10 ds:pe-4 ds:text-[length:var(--font-size-lg)]"
154
+ }
155
+ },
156
+ defaultVariants: {
157
+ size: "md"
158
+ }
159
+ }
160
+ ), De = [
161
+ "ds:ps-8 ds:pe-3 ds:py-1.5",
162
+ "type-eyebrow ds:text-muted-foreground",
163
+ "ds:sticky ds:top-0 ds:bg-background"
164
+ ].join(" "), Fe = {
165
+ sm: "ds:size-3.5",
166
+ md: "ds:size-4",
167
+ lg: "ds:size-5"
168
+ }, Ke = {
169
+ sm: "ds:start-2",
170
+ md: "ds:start-2",
171
+ lg: "ds:start-3"
172
+ };
173
+ function Pe(...s) {
174
+ return (t) => {
175
+ for (const d of s)
176
+ d && (typeof d == "function" ? d(t) : d.current = t);
177
+ };
178
+ }
179
+ const X = (s) => /* @__PURE__ */ e(a.Root, { ...s });
180
+ X.displayName = "Select.Root";
181
+ const J = r(
182
+ ({ size: s, tone: t, className: d, children: c, ...u }, i) => /* @__PURE__ */ e(
183
+ a.Trigger,
184
+ {
185
+ ref: i,
186
+ className: E({ size: s, tone: t, className: d }),
187
+ ...u,
188
+ children: c
189
+ }
190
+ )
191
+ );
192
+ J.displayName = "Select.Trigger";
193
+ const Q = r((s, t) => /* @__PURE__ */ e(a.Value, { ref: t, ...s }));
194
+ Q.displayName = "Select.Value";
195
+ const D = r(
196
+ ({
197
+ className: s,
198
+ children: t,
199
+ position: d = "popper",
200
+ sideOffset: c = 4,
201
+ container: u,
202
+ ...i
203
+ }, S) => /* @__PURE__ */ e(a.Portal, { container: u ?? void 0, children: /* @__PURE__ */ l(
204
+ a.Content,
205
+ {
206
+ ref: S,
207
+ position: d,
208
+ sideOffset: c,
209
+ "data-component": "select-content",
210
+ className: Be({ className: s }),
211
+ ...i,
212
+ children: [
213
+ /* @__PURE__ */ e(a.ScrollUpButton, { className: "ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default", children: /* @__PURE__ */ e(je, { "aria-hidden": "true", className: "ds:size-4" }) }),
214
+ t,
215
+ /* @__PURE__ */ e(a.ScrollDownButton, { className: "ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default", children: /* @__PURE__ */ e(W, { "aria-hidden": "true", className: "ds:size-4" }) })
216
+ ]
217
+ }
218
+ ) })
219
+ );
220
+ D.displayName = "Select.Content";
221
+ const F = r(({ className: s, ...t }, d) => /* @__PURE__ */ e(
222
+ a.Viewport,
223
+ {
224
+ ref: d,
225
+ className: ["ds:p-1", s].filter(Boolean).join(" "),
226
+ ...t
227
+ }
228
+ ));
229
+ F.displayName = "Select.Viewport";
230
+ const K = r(
231
+ ({
232
+ size: s = "md",
233
+ className: t,
234
+ children: d,
235
+ startAdornment: c,
236
+ endContent: u,
237
+ description: i,
238
+ ...S
239
+ }, C) => {
240
+ const z = Ke[s ?? "md"], I = Fe[s ?? "md"], h = ye(), p = i != null && i !== "", v = p ? "ds:group-data-[disabled]/select-item:opacity-50" : "", N = u ? (
241
+ // Radix points the item's `aria-labelledby` at `ItemText`, so
242
+ // anything rendered outside it is dropped from the accessible
243
+ // name — a price there would be visible but never announced.
244
+ // It therefore goes INSIDE `ItemText`, wrapped in a flex row so
245
+ // `ms-auto` still pins it to the inline-end (and flips in RTL).
246
+ //
247
+ // The trade-off is deliberate: Radix mirrors `ItemText` into the
248
+ // closed trigger, so the selected item's trailing content shows
249
+ // there too. For the case this exists for — a price — that reads
250
+ // as a feature, not a leak. The wrapper is rendered ONLY when
251
+ // `endContent` is supplied, so every existing item keeps its
252
+ // previous DOM exactly.
253
+ //
254
+ // `asChild` is required, not stylistic. `SelectItemText`
255
+ // destructures `className` and `style` off its props and never
256
+ // applies them, so styling it directly is silently discarded.
257
+ // It must also GROW: as a plain flex item of the row it sizes to
258
+ // its content, leaving `ms-auto` no free space to absorb, and the
259
+ // chip would sit against the label instead of the row's end —
260
+ // the ragged column this change exists to remove. `asChild` makes
261
+ // our own span become the ItemText element, so `flex-1` lands.
262
+ /* @__PURE__ */ e(a.ItemText, { asChild: !0, children: /* @__PURE__ */ l(
263
+ "span",
264
+ {
265
+ className: `ds:flex ds:flex-1 ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)] ${v}`,
266
+ children: [
267
+ /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:truncate", children: d }),
268
+ /* @__PURE__ */ e("span", { className: "ds:inline-flex ds:items-center ds:ms-auto ds:shrink-0", children: u })
269
+ ]
270
+ }
271
+ ) })
272
+ ) : p ? /* @__PURE__ */ e(a.ItemText, { asChild: !0, children: /* @__PURE__ */ e("span", { className: v, children: d }) }) : /* @__PURE__ */ e(a.ItemText, { children: d });
273
+ return /* @__PURE__ */ l(
274
+ a.Item,
275
+ {
276
+ ref: C,
277
+ "aria-describedby": p ? h : void 0,
278
+ className: Oe({
279
+ size: s,
280
+ className: p ? [
281
+ "ds:group/select-item ds:data-[disabled]:!opacity-100",
282
+ t
283
+ ].filter(Boolean).join(" ") : t
284
+ }),
285
+ ...S,
286
+ children: [
287
+ /* @__PURE__ */ e(
288
+ "span",
289
+ {
290
+ className: `ds:absolute ${z} ds:inline-flex ds:items-center ds:justify-center ${v}`,
291
+ "aria-hidden": "true",
292
+ children: /* @__PURE__ */ e(a.ItemIndicator, { children: /* @__PURE__ */ e(ke, { className: I }) })
293
+ }
294
+ ),
295
+ c ? (
296
+ // Decorative by contract — accessible name comes from the item text.
297
+ /* @__PURE__ */ e(
298
+ "span",
299
+ {
300
+ "aria-hidden": "true",
301
+ className: `ds:inline-flex ds:items-center ds:shrink-0 ds:me-[var(--spacing-xs)] ${v}`,
302
+ children: c
303
+ }
304
+ )
305
+ ) : null,
306
+ p ? /* @__PURE__ */ l("span", { className: "ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:py-[var(--spacing-xs)]", children: [
307
+ N,
308
+ /* @__PURE__ */ e(
309
+ "span",
310
+ {
311
+ id: h,
312
+ className: "type-meta ds:text-muted-foreground",
313
+ children: i
314
+ }
315
+ )
316
+ ] }) : N
317
+ ]
318
+ }
319
+ );
320
+ }
321
+ );
322
+ K.displayName = "Select.Item";
323
+ const Y = r((s, t) => /* @__PURE__ */ e(a.ItemText, { ref: t, ...s }));
324
+ Y.displayName = "Select.ItemText";
325
+ const Z = r((s, t) => /* @__PURE__ */ e(a.Group, { ref: t, ...s }));
326
+ Z.displayName = "Select.Group";
327
+ const P = r(({ className: s, ...t }, d) => /* @__PURE__ */ e(
328
+ a.Label,
329
+ {
330
+ ref: d,
331
+ className: [De, s].filter(Boolean).join(" "),
332
+ ...t
333
+ }
334
+ ));
335
+ P.displayName = "Select.Label";
336
+ const ee = r(({ className: s, ...t }, d) => /* @__PURE__ */ e(
337
+ a.Separator,
338
+ {
339
+ ref: d,
340
+ className: ["ds:my-1 ds:h-px ds:bg-border", s].filter(Boolean).join(" "),
341
+ ...t
342
+ }
343
+ ));
344
+ ee.displayName = "Select.Separator";
345
+ const se = r(function({
346
+ options: t,
347
+ value: d,
348
+ defaultValue: c,
349
+ onValueChange: u,
350
+ placeholder: i,
351
+ clearable: S = !1,
352
+ disabled: C,
353
+ required: z,
354
+ name: I,
355
+ id: h,
356
+ size: p = "md",
357
+ tone: v = "default",
358
+ className: N,
359
+ container: te,
360
+ "aria-label": $,
361
+ "aria-describedby": ae,
362
+ adornmentInTrigger: de = !1,
363
+ showDescriptions: ne = !1
364
+ }, oe) {
365
+ var _;
366
+ const { t: j } = we(), b = Ce(), f = xe(ze) !== null, [ie, w] = M(
367
+ d ?? c ?? ""
368
+ ), y = d !== void 0, x = y ? d : ie, [k, T] = M(!1), A = U(x);
369
+ A.current = x;
370
+ const re = h ?? (f ? b.id : void 0), G = (f ? b.disabled : !1) || !!C, le = (f ? b.required : !1) || !!z, q = f ? b.invalid : !1, ce = q ? "error" : v, ue = [f ? b.describedBy : void 0, ae].filter(Boolean).join(" ") || void 0, L = de ? (_ = t.find((n) => n.value === x)) == null ? void 0 : _.startAdornment : void 0, V = U(null), pe = Pe(oe, V), me = Te(V), o = u, fe = (n) => {
371
+ y || w(n), o == null || o(n);
372
+ }, ge = (n) => {
373
+ var g;
374
+ n.preventDefault(), n.stopPropagation(), y || w(""), o == null || o(""), (g = V.current) == null || g.focus();
375
+ }, R = i ?? j("inputs.select.placeholder", "Select…"), he = S && !!x && !G, ve = Ie(t), be = Se(
376
+ () => ({
377
+ getValue: () => A.current,
378
+ setValue: (n) => {
379
+ const g = t.find((B) => B.value === n);
380
+ !g || g.disabled || (y || w(n), o == null || o(n));
381
+ },
382
+ clear: () => {
383
+ y || w(""), o == null || o("");
384
+ },
385
+ open: () => T(!0),
386
+ close: () => T(!1),
387
+ isOpen: () => k
388
+ }),
389
+ [o, y, k, t]
390
+ );
391
+ return Ne(Re, be, h), /* @__PURE__ */ l(
392
+ a.Root,
393
+ {
394
+ value: x === "" ? void 0 : x,
395
+ onValueChange: fe,
396
+ open: k,
397
+ onOpenChange: T,
398
+ disabled: G,
399
+ required: le,
400
+ name: I,
401
+ dir: me,
402
+ children: [
403
+ /* @__PURE__ */ l(
404
+ a.Trigger,
405
+ {
406
+ ref: pe,
407
+ id: re,
408
+ "aria-label": $ ?? (f ? void 0 : R),
409
+ "aria-labelledby": !$ && f ? `${b.id}-label` : void 0,
410
+ "aria-describedby": ue,
411
+ "aria-invalid": q || void 0,
412
+ "data-component": "select",
413
+ "data-component-id": h,
414
+ className: E({
415
+ size: p,
416
+ tone: ce,
417
+ className: N
418
+ }),
419
+ children: [
420
+ L ? /* @__PURE__ */ l("span", { className: "ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]", children: [
421
+ /* @__PURE__ */ e(
422
+ "span",
423
+ {
424
+ "aria-hidden": "true",
425
+ "data-select-trigger-adornment": "",
426
+ className: "ds:inline-flex ds:shrink-0 ds:items-center",
427
+ children: L
428
+ }
429
+ ),
430
+ /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:truncate ds:text-start", children: /* @__PURE__ */ e(a.Value, { placeholder: R }) })
431
+ ] }) : /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:truncate ds:text-start", children: /* @__PURE__ */ e(a.Value, { placeholder: R }) }),
432
+ /* @__PURE__ */ l("span", { className: "ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]", children: [
433
+ he ? /* @__PURE__ */ e(
434
+ "button",
435
+ {
436
+ type: "button",
437
+ "aria-label": j("inputs.select.clear", "Clear selection"),
438
+ onClick: ge,
439
+ onPointerDown: (n) => n.stopPropagation(),
440
+ onKeyDown: (n) => {
441
+ (n.key === "Enter" || n.key === " ") && n.stopPropagation();
442
+ },
443
+ className: [
444
+ "ds:inline-flex ds:items-center ds:justify-center ds:rounded-[var(--radius-sm)]",
445
+ "ds:text-muted-foreground ds:hover:text-foreground",
446
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
447
+ "ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid",
448
+ "ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]",
449
+ "ds:size-4"
450
+ ].join(" "),
451
+ children: /* @__PURE__ */ e(Ve, { "aria-hidden": "true", className: "ds:size-3.5" })
452
+ }
453
+ ) : null,
454
+ /* @__PURE__ */ e(a.Icon, { asChild: !0, children: /* @__PURE__ */ e(
455
+ W,
456
+ {
457
+ "aria-hidden": "true",
458
+ className: [
459
+ "ds:size-4 ds:shrink-0 ds:text-muted-foreground",
460
+ "ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none",
461
+ "ds:group-data-[state=open]:rotate-180"
462
+ ].join(" ")
463
+ }
464
+ ) })
465
+ ] })
466
+ ]
467
+ }
468
+ ),
469
+ /* @__PURE__ */ e(D, { container: te, children: /* @__PURE__ */ e(F, { children: t.length === 0 ? /* @__PURE__ */ e("div", { className: "ds:ps-8 ds:pe-3 ds:py-2 type-body-sm ds:text-muted-foreground", children: j("inputs.select.noOptions", "No options") }) : ve.map(({ group: n, items: g }, B) => {
470
+ const H = g.map((m) => /* @__PURE__ */ e(
471
+ K,
472
+ {
473
+ value: m.value,
474
+ disabled: m.disabled,
475
+ size: p,
476
+ "data-option-id": m.value,
477
+ startAdornment: m.startAdornment,
478
+ endContent: m.endContent,
479
+ description: ne ? m.description : void 0,
480
+ children: m.label
481
+ },
482
+ m.value
483
+ ));
484
+ return n ? /* @__PURE__ */ l(a.Group, { children: [
485
+ /* @__PURE__ */ e(P, { children: n }),
486
+ H
487
+ ] }, `group-${n}`) : /* @__PURE__ */ e(a.Group, { children: H }, `group-${B}`);
488
+ }) }) })
489
+ ]
490
+ }
491
+ );
492
+ });
493
+ se.displayName = "Select";
494
+ const $e = Object.assign(se, {
495
+ Root: X,
496
+ Trigger: J,
497
+ Value: Q,
498
+ Content: D,
499
+ Viewport: F,
500
+ Item: K,
501
+ ItemText: Y,
502
+ Group: Z,
503
+ Label: P,
504
+ Separator: ee
505
+ }), Qe = $e;
506
+ export {
507
+ Qe as S,
508
+ D as a,
509
+ Z as b,
510
+ K as c,
511
+ Y as d,
512
+ P as e,
513
+ X as f,
514
+ ee as g,
515
+ J as h,
516
+ Q as i,
517
+ F as j,
518
+ E as s
519
+ };
520
+ //# sourceMappingURL=select-CLSUnKjF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-CLSUnKjF.js","sources":["../../src/components/select/select.agent.ts","../../src/components/select/select.tsx"],"sourcesContent":["/* -------------------------------------------------------------------- */\n/* Agent adapter — Select. */\n/* */\n/* See `src/docs/26-agent-readiness.mdx` for the contract. */\n/* -------------------------------------------------------------------- */\n\nimport type { AgentAdapter } from '../../agent/types';\nimport type { SelectHandle } from './select';\n\nexport const selectAgent: AgentAdapter<SelectHandle> = {\n id: 'select',\n // Persisted single choice (value state + set_value) → select_single + set_value,\n // plus open/close of the option list.\n capabilities: ['select_single', 'set_value', 'open', 'close'],\n state: {\n value: {\n type: 'string',\n descriptionKey: 'ui.agent.select.state.value',\n description:\n 'Currently selected option value, or empty string when none.',\n read: (handle) => handle.getValue(),\n },\n isOpen: {\n type: 'boolean',\n descriptionKey: 'ui.agent.select.state.isOpen',\n description: 'Whether the option list is open.',\n read: (handle) => handle.isOpen(),\n },\n },\n actions: {\n set_value: {\n // Persists the chosen option — reversible by selecting another value.\n safety: 'write',\n argsType: '{ value: string }',\n argsSchema: {\n type: 'object',\n properties: {\n value: { type: 'string', description: 'Option value to select.' },\n },\n required: ['value'],\n },\n idempotent: true,\n descriptionKey: 'ui.agent.select.actions.setValue',\n description:\n 'Select the option with the given value. A value that is not among the options, or belongs to a disabled option, is ignored and the selection stays as it was.',\n examples: [{ args: { value: 'it' }, note: 'Select the \"it\" option.' }],\n invoke: (handle, args: { value: string }) => {\n handle.setValue(args.value);\n },\n },\n clear: {\n // Discards the persisted choice — destructive (loses the selection).\n safety: 'destructive',\n idempotent: true,\n descriptionKey: 'ui.agent.select.actions.clear',\n description: 'Clear the current selection.',\n invoke: (handle) => {\n handle.clear();\n },\n },\n open: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.select.actions.open',\n description: 'Open the option list.',\n invoke: (handle) => {\n handle.open();\n },\n },\n close: {\n safety: 'read',\n idempotent: true,\n descriptionKey: 'ui.agent.select.actions.close',\n description: 'Close the option list.',\n invoke: (handle) => {\n handle.close();\n },\n },\n },\n domHooks: {\n root: {\n attr: 'data-component',\n value: 'select',\n description: 'Marks the Select trigger.',\n },\n instanceId: {\n attr: 'data-component-id',\n sourceProp: 'id',\n description: 'Sourced from the id prop.',\n },\n item: {\n attr: 'data-option-id',\n description:\n 'Stable opaque option value emitted on each rendered option.',\n },\n },\n};\n","import {\n forwardRef,\n useContext,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type MutableRefObject,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { useAgentRegistration } from '../../agent';\nimport { selectAgent } from './select.agent';\n\n/** Agent-readiness curated handle for Select. */\nexport interface SelectHandle {\n getValue: () => string;\n setValue: (value: string) => void;\n clear: () => void;\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n}\nimport * as RadixSelect from '@radix-ui/react-select';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Check, ChevronDown, ChevronUp, X } from 'lucide-react';\nimport {\n FormFieldContext,\n useFormField,\n} from '../form-field/form-field-context';\nimport type { OptionShape } from '../_shared/option';\nimport { groupOptions } from '../_shared/group-options';\nimport { useDirection } from '../_shared/use-direction';\n\nconst selectTriggerVariants = cva(\n [\n 'ds:group ds:inline-flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:w-full',\n 'ds:rounded-[var(--radius-sm)] ds:border ds:border-border ds:bg-input',\n 'ds:shadow-[var(--shadow-input)]',\n 'ds:text-foreground ds:placeholder:text-muted-foreground',\n 'ds:data-[placeholder]:text-muted-foreground',\n 'ds:transition-[colors,box-shadow] ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:forced-colors:focus-visible:outline-[CanvasText]',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:h-8 ds:ps-3 ds:pe-3 ds:text-[length:var(--font-size-sm)]',\n md: 'ds:h-[var(--min-target-size)] ds:ps-3 ds:pe-3 ds:text-[length:var(--font-size-base)]',\n lg: 'ds:h-12 ds:ps-4 ds:pe-4 ds:text-[length:var(--font-size-lg)]',\n },\n tone: {\n default: '',\n error: 'ds:border-destructive ds:focus-visible:outline-destructive',\n },\n },\n defaultVariants: {\n size: 'md',\n tone: 'default',\n },\n },\n);\n\nconst selectContentVariants = cva(\n [\n 'ds:z-[var(--z-dropdown)] ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)] ds:border ds:border-border ds:bg-background ds:text-foreground',\n 'ds:shadow-[var(--shadow-lg)]',\n 'ds:animate-in ds:fade-in ds:zoom-in-95',\n 'ds:data-[state=closed]:animate-out ds:data-[state=closed]:fade-out',\n 'ds:data-[state=closed]:zoom-out-95',\n 'ds:data-[side=bottom]:slide-in-from-top-2',\n 'ds:data-[side=top]:slide-in-from-bottom-2',\n 'ds:motion-reduce:animate-none',\n ].join(' '),\n);\n\nconst selectItemVariants = cva(\n [\n 'ds:relative ds:flex ds:cursor-pointer ds:items-center',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:text-foreground ds:outline-none ds:select-none',\n 'ds:data-[highlighted]:bg-muted ds:data-[highlighted]:text-foreground',\n 'ds:data-[disabled]:pointer-events-none ds:data-[disabled]:opacity-50',\n ].join(' '),\n {\n variants: {\n size: {\n sm: 'ds:min-h-8 ds:ps-8 ds:pe-3 ds:text-[length:var(--font-size-sm)]',\n md: 'ds:min-h-[var(--min-target-size)] ds:ps-8 ds:pe-3 ds:text-[length:var(--font-size-base)]',\n lg: 'ds:min-h-12 ds:ps-10 ds:pe-4 ds:text-[length:var(--font-size-lg)]',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n);\n\nconst selectLabelClasses = [\n 'ds:ps-8 ds:pe-3 ds:py-1.5',\n 'type-eyebrow ds:text-muted-foreground',\n 'ds:sticky ds:top-0 ds:bg-background',\n].join(' ');\n\nconst iconSizeByItemSize = {\n sm: 'ds:size-3.5',\n md: 'ds:size-4',\n lg: 'ds:size-5',\n} as const;\n\nconst itemIndicatorStartByItemSize = {\n sm: 'ds:start-2',\n md: 'ds:start-2',\n lg: 'ds:start-3',\n} as const;\n\nfunction composeRefs<T>(\n ...refs: Array<Ref<T> | undefined | null>\n): (node: T | null) => void {\n return (node: T | null) => {\n for (const r of refs) {\n if (!r) continue;\n if (typeof r === 'function') {\n r(node);\n } else {\n (r as MutableRefObject<T | null>).current = node;\n }\n }\n };\n}\n\n// ---------------------------------------------------------------------------\n// Compound sub-components — thin `forwardRef` wrappers over Radix parts.\n// ---------------------------------------------------------------------------\n\ntype SelectRootProps = ComponentPropsWithoutRef<typeof RadixSelect.Root>;\n\nconst SelectRoot = (props: SelectRootProps) => <RadixSelect.Root {...props} />;\nSelectRoot.displayName = 'Select.Root';\n\ntype SelectTriggerElement = ElementRef<typeof RadixSelect.Trigger>;\ntype SelectTriggerProps = ComponentPropsWithoutRef<typeof RadixSelect.Trigger> &\n VariantProps<typeof selectTriggerVariants>;\n\nconst SelectTrigger = forwardRef<SelectTriggerElement, SelectTriggerProps>(\n ({ size, tone, className, children, ...props }, ref) => (\n <RadixSelect.Trigger\n ref={ref}\n className={selectTriggerVariants({ size, tone, className })}\n {...props}\n >\n {children}\n </RadixSelect.Trigger>\n ),\n);\nSelectTrigger.displayName = 'Select.Trigger';\n\ntype SelectValueProps = ComponentPropsWithoutRef<typeof RadixSelect.Value>;\n\nconst SelectValue = forwardRef<\n ElementRef<typeof RadixSelect.Value>,\n SelectValueProps\n>((props, ref) => <RadixSelect.Value ref={ref} {...props} />);\nSelectValue.displayName = 'Select.Value';\n\ntype SelectContentProps = ComponentPropsWithoutRef<\n typeof RadixSelect.Content\n> & {\n container?: HTMLElement | null;\n};\n\nconst SelectContent = forwardRef<\n ElementRef<typeof RadixSelect.Content>,\n SelectContentProps\n>(\n (\n {\n className,\n children,\n position = 'popper',\n sideOffset = 4,\n container,\n ...props\n },\n ref,\n ) => (\n <RadixSelect.Portal container={container ?? undefined}>\n <RadixSelect.Content\n ref={ref}\n position={position}\n sideOffset={sideOffset}\n data-component=\"select-content\"\n className={selectContentVariants({ className })}\n {...props}\n >\n <RadixSelect.ScrollUpButton className=\"ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default\">\n <ChevronUp aria-hidden=\"true\" className=\"ds:size-4\" />\n </RadixSelect.ScrollUpButton>\n {children}\n <RadixSelect.ScrollDownButton className=\"ds:flex ds:items-center ds:justify-center ds:h-6 ds:bg-background ds:cursor-default\">\n <ChevronDown aria-hidden=\"true\" className=\"ds:size-4\" />\n </RadixSelect.ScrollDownButton>\n </RadixSelect.Content>\n </RadixSelect.Portal>\n ),\n);\nSelectContent.displayName = 'Select.Content';\n\ntype SelectViewportProps = ComponentPropsWithoutRef<\n typeof RadixSelect.Viewport\n>;\n\nconst SelectViewport = forwardRef<\n ElementRef<typeof RadixSelect.Viewport>,\n SelectViewportProps\n>(({ className, ...props }, ref) => (\n <RadixSelect.Viewport\n ref={ref}\n className={['ds:p-1', className].filter(Boolean).join(' ')}\n {...props}\n />\n));\nSelectViewport.displayName = 'Select.Viewport';\n\ntype SelectItemProps = ComponentPropsWithoutRef<typeof RadixSelect.Item> &\n VariantProps<typeof selectItemVariants> & {\n /** Optional leading visual rendered before the item text (e.g. a Flag). */\n startAdornment?: ReactNode;\n /**\n * Trailing content pinned to the inline-end of the item (e.g. a\n * price Badge). Unlike `startAdornment` this is NOT `aria-hidden`,\n * because it carries meaning rather than decoration.\n *\n * It renders INSIDE `RadixSelect.ItemText`, because Radix builds the\n * item's accessible name from that element alone — content placed\n * outside it is shown but never announced. A consequence worth\n * knowing: Radix mirrors `ItemText` into the closed trigger, so the\n * selected item's trailing content appears there too.\n */\n endContent?: ReactNode;\n /**\n * A second line under the label, e.g. why an option is disabled. It is\n * the option's accessible description, outside `ItemText`, so it is\n * neither part of the name nor mirrored into the trigger. It does not\n * fade with a disabled option, so the reason stays readable.\n */\n description?: ReactNode;\n };\n\nconst SelectItem = forwardRef<\n ElementRef<typeof RadixSelect.Item>,\n SelectItemProps\n>(\n (\n {\n size = 'md',\n className,\n children,\n startAdornment,\n endContent,\n description,\n ...props\n },\n ref,\n ) => {\n const indicatorStart = itemIndicatorStartByItemSize[size ?? 'md'];\n const iconSize = iconSizeByItemSize[size ?? 'md'];\n const descriptionId = useId();\n const hasDescription =\n description !== undefined && description !== null && description !== '';\n // With a description, a disabled option fades its label, not the whole\n // row, so the reason under it stays at full contrast.\n const fade = hasDescription\n ? 'ds:group-data-[disabled]/select-item:opacity-50'\n : '';\n const itemText = endContent ? (\n // Radix points the item's `aria-labelledby` at `ItemText`, so\n // anything rendered outside it is dropped from the accessible\n // name — a price there would be visible but never announced.\n // It therefore goes INSIDE `ItemText`, wrapped in a flex row so\n // `ms-auto` still pins it to the inline-end (and flips in RTL).\n //\n // The trade-off is deliberate: Radix mirrors `ItemText` into the\n // closed trigger, so the selected item's trailing content shows\n // there too. For the case this exists for — a price — that reads\n // as a feature, not a leak. The wrapper is rendered ONLY when\n // `endContent` is supplied, so every existing item keeps its\n // previous DOM exactly.\n //\n // `asChild` is required, not stylistic. `SelectItemText`\n // destructures `className` and `style` off its props and never\n // applies them, so styling it directly is silently discarded.\n // It must also GROW: as a plain flex item of the row it sizes to\n // its content, leaving `ms-auto` no free space to absorb, and the\n // chip would sit against the label instead of the row's end —\n // the ragged column this change exists to remove. `asChild` makes\n // our own span become the ItemText element, so `flex-1` lands.\n <RadixSelect.ItemText asChild>\n <span\n className={`ds:flex ds:flex-1 ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)] ${fade}`}\n >\n <span className=\"ds:min-w-0 ds:truncate\">{children}</span>\n <span className=\"ds:inline-flex ds:items-center ds:ms-auto ds:shrink-0\">\n {endContent}\n </span>\n </span>\n </RadixSelect.ItemText>\n ) : hasDescription ? (\n <RadixSelect.ItemText asChild>\n <span className={fade}>{children}</span>\n </RadixSelect.ItemText>\n ) : (\n <RadixSelect.ItemText>{children}</RadixSelect.ItemText>\n );\n return (\n <RadixSelect.Item\n ref={ref}\n aria-describedby={hasDescription ? descriptionId : undefined}\n className={selectItemVariants({\n size,\n className: hasDescription\n ? [\n 'ds:group/select-item ds:data-[disabled]:!opacity-100',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n : className,\n })}\n {...props}\n >\n <span\n className={`ds:absolute ${indicatorStart} ds:inline-flex ds:items-center ds:justify-center ${fade}`}\n aria-hidden=\"true\"\n >\n <RadixSelect.ItemIndicator>\n <Check className={iconSize} />\n </RadixSelect.ItemIndicator>\n </span>\n {startAdornment ? (\n // Decorative by contract — accessible name comes from the item text.\n <span\n aria-hidden=\"true\"\n className={`ds:inline-flex ds:items-center ds:shrink-0 ds:me-[var(--spacing-xs)] ${fade}`}\n >\n {startAdornment}\n </span>\n ) : null}\n {hasDescription ? (\n <span className=\"ds:flex ds:min-w-0 ds:flex-1 ds:flex-col ds:py-[var(--spacing-xs)]\">\n {itemText}\n <span\n id={descriptionId}\n className=\"type-meta ds:text-muted-foreground\"\n >\n {description}\n </span>\n </span>\n ) : (\n itemText\n )}\n </RadixSelect.Item>\n );\n },\n);\nSelectItem.displayName = 'Select.Item';\n\ntype SelectItemTextProps = ComponentPropsWithoutRef<\n typeof RadixSelect.ItemText\n>;\n\nconst SelectItemText = forwardRef<\n ElementRef<typeof RadixSelect.ItemText>,\n SelectItemTextProps\n>((props, ref) => <RadixSelect.ItemText ref={ref} {...props} />);\nSelectItemText.displayName = 'Select.ItemText';\n\ntype SelectGroupProps = ComponentPropsWithoutRef<typeof RadixSelect.Group>;\n\nconst SelectGroup = forwardRef<\n ElementRef<typeof RadixSelect.Group>,\n SelectGroupProps\n>((props, ref) => <RadixSelect.Group ref={ref} {...props} />);\nSelectGroup.displayName = 'Select.Group';\n\ntype SelectLabelProps = ComponentPropsWithoutRef<typeof RadixSelect.Label>;\n\nconst SelectLabel = forwardRef<\n ElementRef<typeof RadixSelect.Label>,\n SelectLabelProps\n>(({ className, ...props }, ref) => (\n <RadixSelect.Label\n ref={ref}\n className={[selectLabelClasses, className].filter(Boolean).join(' ')}\n {...props}\n />\n));\nSelectLabel.displayName = 'Select.Label';\n\ntype SelectSeparatorProps = ComponentPropsWithoutRef<\n typeof RadixSelect.Separator\n>;\n\nconst SelectSeparator = forwardRef<\n ElementRef<typeof RadixSelect.Separator>,\n SelectSeparatorProps\n>(({ className, ...props }, ref) => (\n <RadixSelect.Separator\n ref={ref}\n className={['ds:my-1 ds:h-px ds:bg-border', className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n />\n));\nSelectSeparator.displayName = 'Select.Separator';\n\n// ---------------------------------------------------------------------------\n// Convenience form — `<Select options={[{value, label, group?}]} />`.\n// ---------------------------------------------------------------------------\n\nexport type SelectOption<T extends string = string> = OptionShape<T>;\n\nexport interface SelectProps<T extends string = string> {\n options: SelectOption<T>[];\n value?: T | '';\n defaultValue?: T;\n onValueChange?: (value: T | '') => void;\n placeholder?: string;\n clearable?: boolean;\n disabled?: boolean;\n required?: boolean;\n name?: string;\n id?: string;\n size?: 'sm' | 'md' | 'lg';\n tone?: 'default' | 'error';\n 'aria-label'?: string;\n /**\n * Extra ids describing the trigger, e.g. a visually hidden reason why an\n * option is disabled (a disabled option cannot take focus, so its own\n * description is never announced). Joined after any FormField ids.\n */\n 'aria-describedby'?: string;\n /**\n * Show the selected option's `startAdornment` in the trigger, before its\n * label, e.g. a channel icon. Off by default. Decorative, like the\n * adornment in the list.\n */\n adornmentInTrigger?: boolean;\n /**\n * Render each option's `description` as a second line under its label,\n * wired as the option's accessible description. Off by default: without\n * it `description` is ignored, as in 1.30.0, so existing lists keep\n * their layout.\n */\n showDescriptions?: boolean;\n className?: string;\n /**\n * Portal target for the listbox. Defaults to `document.body`, which is\n * almost always correct.\n *\n * You do not need this to fix stacking. `--z-dropdown` and `--z-popover`\n * are one layer, so a Select nested inside a Popover already paints over it\n * by portal order (the listbox mounts last). Only pass a container when the\n * listbox must live inside a specific subtree — e.g. a shadow root, or a\n * scroll container that would otherwise clip it.\n */\n container?: HTMLElement | null;\n}\n\nconst SelectImpl = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n {\n options,\n value,\n defaultValue,\n onValueChange,\n placeholder,\n clearable = false,\n disabled,\n required,\n name,\n id,\n size = 'md',\n tone = 'default',\n className,\n container,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n adornmentInTrigger = false,\n showDescriptions = false,\n },\n ref,\n) {\n const { t } = useTranslation();\n const ctx = useFormField();\n const inFormField = useContext(FormFieldContext) !== null;\n\n const [internalValue, setInternalValue] = useState<string>(\n value ?? defaultValue ?? '',\n );\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const [openState, setOpenState] = useState<boolean>(false);\n const currentValueRef = useRef<string>(currentValue);\n currentValueRef.current = currentValue;\n\n const triggerId = id ?? (inFormField ? ctx.id : undefined);\n const effectiveDisabled =\n (inFormField ? ctx.disabled : false) || Boolean(disabled);\n const effectiveRequired =\n (inFormField ? ctx.required : false) || Boolean(required);\n const effectiveInvalid = inFormField ? ctx.invalid : false;\n const effectiveTone = effectiveInvalid ? 'error' : tone;\n const describedBy =\n [inFormField ? ctx.describedBy : undefined, ariaDescribedBy]\n .filter(Boolean)\n .join(' ') || undefined;\n const triggerAdornment = adornmentInTrigger\n ? options.find((option) => option.value === currentValue)?.startAdornment\n : undefined;\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const composedTriggerRef = composeRefs(ref, triggerRef);\n const dir = useDirection(triggerRef);\n\n const emitValue = onValueChange as ((value: string) => void) | undefined;\n\n const handleValueChange = (next: string) => {\n if (!isControlled) setInternalValue(next);\n emitValue?.(next);\n };\n\n const handleClear: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n event.preventDefault();\n event.stopPropagation();\n if (!isControlled) setInternalValue('');\n emitValue?.('');\n triggerRef.current?.focus();\n };\n\n const resolvedPlaceholder =\n placeholder ?? t('inputs.select.placeholder', 'Select…');\n\n const showClear = clearable && !!currentValue && !effectiveDisabled;\n\n const groups = groupOptions(options);\n\n const agentHandle = useMemo<SelectHandle>(\n () => ({\n getValue: () => currentValueRef.current,\n setValue: (next) => {\n // Only what a user could pick: a listed option that is not disabled.\n const picked = options.find((option) => option.value === next);\n if (!picked || picked.disabled) return;\n if (!isControlled) setInternalValue(next);\n emitValue?.(next);\n },\n clear: () => {\n if (!isControlled) setInternalValue('');\n emitValue?.('');\n },\n open: () => setOpenState(true),\n close: () => setOpenState(false),\n isOpen: () => openState,\n }),\n [emitValue, isControlled, openState, options],\n );\n useAgentRegistration(selectAgent, agentHandle, id);\n\n return (\n <RadixSelect.Root\n value={currentValue === '' ? undefined : currentValue}\n onValueChange={handleValueChange}\n open={openState}\n onOpenChange={setOpenState}\n disabled={effectiveDisabled}\n required={effectiveRequired}\n name={name}\n dir={dir}\n >\n <RadixSelect.Trigger\n ref={composedTriggerRef}\n id={triggerId}\n aria-label={\n ariaLabel ?? (!inFormField ? resolvedPlaceholder : undefined)\n }\n aria-labelledby={\n !ariaLabel && inFormField ? `${ctx.id}-label` : undefined\n }\n aria-describedby={describedBy}\n aria-invalid={effectiveInvalid || undefined}\n data-component=\"select\"\n data-component-id={id}\n className={selectTriggerVariants({\n size,\n tone: effectiveTone,\n className,\n })}\n >\n {/* min-w-0 lets the flex child shrink; truncate clips long values\n to one line with an ellipsis instead of wrapping the trigger. */}\n {triggerAdornment ? (\n <span className=\"ds:flex ds:min-w-0 ds:items-center ds:gap-[var(--spacing-sm)]\">\n {/* Decorative, as in the list: the name is the label. */}\n <span\n aria-hidden=\"true\"\n data-select-trigger-adornment=\"\"\n className=\"ds:inline-flex ds:shrink-0 ds:items-center\"\n >\n {triggerAdornment}\n </span>\n <span className=\"ds:min-w-0 ds:truncate ds:text-start\">\n <RadixSelect.Value placeholder={resolvedPlaceholder} />\n </span>\n </span>\n ) : (\n <span className=\"ds:min-w-0 ds:truncate ds:text-start\">\n <RadixSelect.Value placeholder={resolvedPlaceholder} />\n </span>\n )}\n <span className=\"ds:ms-auto ds:inline-flex ds:items-center ds:gap-[var(--spacing-xs)]\">\n {showClear ? (\n <button\n type=\"button\"\n aria-label={t('inputs.select.clear', 'Clear selection')}\n onClick={handleClear}\n onPointerDown={(event) => event.stopPropagation()}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n }}\n className={[\n 'ds:inline-flex ds:items-center ds:justify-center ds:rounded-[var(--radius-sm)]',\n 'ds:text-muted-foreground ds:hover:text-foreground',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:focus-visible:outline-[length:var(--focus-ring-width)] ds:focus-visible:outline-solid',\n 'ds:focus-visible:outline-ring ds:focus-visible:outline-offset-[length:var(--focus-ring-offset)]',\n 'ds:size-4',\n ].join(' ')}\n >\n <X aria-hidden=\"true\" className=\"ds:size-3.5\" />\n </button>\n ) : null}\n <RadixSelect.Icon asChild>\n <ChevronDown\n aria-hidden=\"true\"\n className={[\n 'ds:size-4 ds:shrink-0 ds:text-muted-foreground',\n 'ds:transition-transform ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n 'ds:group-data-[state=open]:rotate-180',\n ].join(' ')}\n />\n </RadixSelect.Icon>\n </span>\n </RadixSelect.Trigger>\n <SelectContent container={container}>\n <SelectViewport>\n {options.length === 0 ? (\n <div className=\"ds:ps-8 ds:pe-3 ds:py-2 type-body-sm ds:text-muted-foreground\">\n {t('inputs.select.noOptions', 'No options')}\n </div>\n ) : (\n groups.map(({ group, items }, groupIndex) => {\n const body = items.map((option) => (\n <SelectItem\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n size={size}\n data-option-id={option.value}\n startAdornment={option.startAdornment}\n endContent={option.endContent}\n description={\n showDescriptions ? option.description : undefined\n }\n >\n {option.label}\n </SelectItem>\n ));\n if (!group) {\n return (\n <RadixSelect.Group key={`group-${groupIndex}`}>\n {body}\n </RadixSelect.Group>\n );\n }\n return (\n <RadixSelect.Group key={`group-${group}`}>\n <SelectLabel>{group}</SelectLabel>\n {body}\n </RadixSelect.Group>\n );\n })\n )}\n </SelectViewport>\n </SelectContent>\n </RadixSelect.Root>\n );\n});\nSelectImpl.displayName = 'Select';\n\ninterface SelectComponent {\n <T extends string = string>(\n props: SelectProps<T> & { ref?: Ref<HTMLButtonElement> },\n ): ReactElement | null;\n displayName?: string;\n Root: typeof SelectRoot;\n Trigger: typeof SelectTrigger;\n Value: typeof SelectValue;\n Content: typeof SelectContent;\n Viewport: typeof SelectViewport;\n Item: typeof SelectItem;\n ItemText: typeof SelectItemText;\n Group: typeof SelectGroup;\n Label: typeof SelectLabel;\n Separator: typeof SelectSeparator;\n}\n\nconst SelectWithStatics = Object.assign(SelectImpl, {\n Root: SelectRoot,\n Trigger: SelectTrigger,\n Value: SelectValue,\n Content: SelectContent,\n Viewport: SelectViewport,\n Item: SelectItem,\n ItemText: SelectItemText,\n Group: SelectGroup,\n Label: SelectLabel,\n Separator: SelectSeparator,\n}) as unknown as SelectComponent;\n\nexport const Select = SelectWithStatics;\n\nexport {\n SelectRoot,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectViewport,\n SelectItem,\n SelectItemText,\n SelectGroup,\n SelectLabel,\n SelectSeparator,\n};\n\nexport { selectTriggerVariants, selectContentVariants, selectItemVariants };\n\nexport type {\n SelectTriggerProps,\n SelectContentProps,\n SelectItemProps,\n SelectLabelProps,\n SelectRootProps,\n};\n\nexport type { ReactNode };\n"],"names":["selectAgent","handle","args","selectTriggerVariants","cva","selectContentVariants","selectItemVariants","selectLabelClasses","iconSizeByItemSize","itemIndicatorStartByItemSize","composeRefs","refs","node","r","SelectRoot","props","jsx","RadixSelect","SelectTrigger","forwardRef","size","tone","className","children","ref","SelectValue","SelectContent","position","sideOffset","container","jsxs","ChevronUp","ChevronDown","SelectViewport","SelectItem","startAdornment","endContent","description","indicatorStart","iconSize","descriptionId","useId","hasDescription","fade","itemText","Check","SelectItemText","SelectGroup","SelectLabel","SelectSeparator","SelectImpl","options","value","defaultValue","onValueChange","placeholder","clearable","disabled","required","name","id","ariaLabel","ariaDescribedBy","adornmentInTrigger","showDescriptions","t","useTranslation","ctx","useFormField","inFormField","useContext","FormFieldContext","internalValue","setInternalValue","useState","isControlled","currentValue","openState","setOpenState","currentValueRef","useRef","triggerId","effectiveDisabled","effectiveRequired","effectiveInvalid","effectiveTone","describedBy","triggerAdornment","_a","option","triggerRef","composedTriggerRef","dir","useDirection","emitValue","handleValueChange","next","handleClear","event","resolvedPlaceholder","showClear","groups","groupOptions","agentHandle","useMemo","picked","useAgentRegistration","X","group","items","groupIndex","body","SelectWithStatics","Select"],"mappings":"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"}