@mediquo/medicore 0.1.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 (907) hide show
  1. package/README.md +89 -0
  2. package/dist/components/advisor-contact/advisor-contact.d.ts +39 -0
  3. package/dist/components/advisor-contact/advisor-contact.js +94 -0
  4. package/dist/components/advisor-contact/advisor-contact.js.map +1 -0
  5. package/dist/components/advisor-contact/index.d.ts +1 -0
  6. package/dist/components/announcement/announcement-dialog.d.ts +39 -0
  7. package/dist/components/announcement/announcement-dialog.js +107 -0
  8. package/dist/components/announcement/announcement-dialog.js.map +1 -0
  9. package/dist/components/announcement/announcement-illustration.d.ts +9 -0
  10. package/dist/components/announcement/announcement-illustration.js +58 -0
  11. package/dist/components/announcement/announcement-illustration.js.map +1 -0
  12. package/dist/components/announcement/index.d.ts +2 -0
  13. package/dist/components/app-shell/app-shell.d.ts +74 -0
  14. package/dist/components/app-shell/app-shell.js +208 -0
  15. package/dist/components/app-shell/app-shell.js.map +1 -0
  16. package/dist/components/app-shell/index.d.ts +1 -0
  17. package/dist/components/appointment-row/appointment-row.d.ts +59 -0
  18. package/dist/components/appointment-row/appointment-row.js +160 -0
  19. package/dist/components/appointment-row/appointment-row.js.map +1 -0
  20. package/dist/components/appointment-row/index.d.ts +1 -0
  21. package/dist/components/auth-panel/auth-panel.d.ts +20 -0
  22. package/dist/components/auth-panel/auth-panel.js +36 -0
  23. package/dist/components/auth-panel/auth-panel.js.map +1 -0
  24. package/dist/components/auth-panel/index.d.ts +1 -0
  25. package/dist/components/availability-column/availability-column.d.ts +28 -0
  26. package/dist/components/availability-column/availability-column.js +57 -0
  27. package/dist/components/availability-column/availability-column.js.map +1 -0
  28. package/dist/components/availability-column/index.d.ts +1 -0
  29. package/dist/components/availability-row/availability-row.d.ts +36 -0
  30. package/dist/components/availability-row/availability-row.js +60 -0
  31. package/dist/components/availability-row/availability-row.js.map +1 -0
  32. package/dist/components/availability-row/index.d.ts +1 -0
  33. package/dist/components/avatar/avatar.d.ts +57 -0
  34. package/dist/components/avatar/avatar.js +115 -0
  35. package/dist/components/avatar/avatar.js.map +1 -0
  36. package/dist/components/avatar/index.d.ts +1 -0
  37. package/dist/components/badge/badge.d.ts +20 -0
  38. package/dist/components/badge/badge.js +42 -0
  39. package/dist/components/badge/badge.js.map +1 -0
  40. package/dist/components/badge/index.d.ts +1 -0
  41. package/dist/components/banner/banner.d.ts +32 -0
  42. package/dist/components/banner/banner.js +93 -0
  43. package/dist/components/banner/banner.js.map +1 -0
  44. package/dist/components/banner/index.d.ts +1 -0
  45. package/dist/components/bottom-bar/bottom-bar.d.ts +41 -0
  46. package/dist/components/bottom-bar/bottom-bar.js +76 -0
  47. package/dist/components/bottom-bar/bottom-bar.js.map +1 -0
  48. package/dist/components/bottom-bar/index.d.ts +1 -0
  49. package/dist/components/brand-mark/brand-mark.d.ts +22 -0
  50. package/dist/components/brand-mark/brand-mark.js +72 -0
  51. package/dist/components/brand-mark/brand-mark.js.map +1 -0
  52. package/dist/components/brand-mark/index.d.ts +1 -0
  53. package/dist/components/breadcrumb/breadcrumb.d.ts +36 -0
  54. package/dist/components/breadcrumb/breadcrumb.js +70 -0
  55. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  56. package/dist/components/breadcrumb/index.d.ts +1 -0
  57. package/dist/components/button/button.d.ts +29 -0
  58. package/dist/components/button/button.js +104 -0
  59. package/dist/components/button/button.js.map +1 -0
  60. package/dist/components/button/index.d.ts +1 -0
  61. package/dist/components/card/card.d.ts +84 -0
  62. package/dist/components/card/card.js +157 -0
  63. package/dist/components/card/card.js.map +1 -0
  64. package/dist/components/card/index.d.ts +1 -0
  65. package/dist/components/card-appointment/card-appointment.d.ts +58 -0
  66. package/dist/components/card-appointment/card-appointment.js +136 -0
  67. package/dist/components/card-appointment/card-appointment.js.map +1 -0
  68. package/dist/components/card-appointment/index.d.ts +1 -0
  69. package/dist/components/card-article/card-article.d.ts +28 -0
  70. package/dist/components/card-article/card-article.js +46 -0
  71. package/dist/components/card-article/card-article.js.map +1 -0
  72. package/dist/components/card-article/index.d.ts +1 -0
  73. package/dist/components/card-professional/card-professional.d.ts +56 -0
  74. package/dist/components/card-professional/card-professional.js +77 -0
  75. package/dist/components/card-professional/card-professional.js.map +1 -0
  76. package/dist/components/card-professional/index.d.ts +1 -0
  77. package/dist/components/card-professional-mini/card-professional-mini.d.ts +22 -0
  78. package/dist/components/card-professional-mini/card-professional-mini.js +37 -0
  79. package/dist/components/card-professional-mini/card-professional-mini.js.map +1 -0
  80. package/dist/components/card-professional-mini/index.d.ts +1 -0
  81. package/dist/components/card-program/card-program.d.ts +45 -0
  82. package/dist/components/card-program/card-program.js +142 -0
  83. package/dist/components/card-program/card-program.js.map +1 -0
  84. package/dist/components/card-program/index.d.ts +1 -0
  85. package/dist/components/card-service-option/card-service-option.d.ts +33 -0
  86. package/dist/components/card-service-option/card-service-option.js +49 -0
  87. package/dist/components/card-service-option/card-service-option.js.map +1 -0
  88. package/dist/components/card-service-option/index.d.ts +1 -0
  89. package/dist/components/card-testimonial/card-testimonial.d.ts +17 -0
  90. package/dist/components/card-testimonial/card-testimonial.js +36 -0
  91. package/dist/components/card-testimonial/card-testimonial.js.map +1 -0
  92. package/dist/components/card-testimonial/index.d.ts +1 -0
  93. package/dist/components/chat/chat-attachment.d.ts +34 -0
  94. package/dist/components/chat/chat-attachment.js +90 -0
  95. package/dist/components/chat/chat-attachment.js.map +1 -0
  96. package/dist/components/chat/chat-bubble.d.ts +49 -0
  97. package/dist/components/chat/chat-bubble.js +102 -0
  98. package/dist/components/chat/chat-bubble.js.map +1 -0
  99. package/dist/components/chat/chat-composer.d.ts +40 -0
  100. package/dist/components/chat/chat-composer.js +114 -0
  101. package/dist/components/chat/chat-composer.js.map +1 -0
  102. package/dist/components/chat/chat-conversation-row.d.ts +42 -0
  103. package/dist/components/chat/chat-conversation-row.js +104 -0
  104. package/dist/components/chat/chat-conversation-row.js.map +1 -0
  105. package/dist/components/chat/chat-date-separator.d.ts +15 -0
  106. package/dist/components/chat/chat-date-separator.js +29 -0
  107. package/dist/components/chat/chat-date-separator.js.map +1 -0
  108. package/dist/components/chat/chat-delivery-status.d.ts +21 -0
  109. package/dist/components/chat/chat-delivery-status.js +43 -0
  110. package/dist/components/chat/chat-delivery-status.js.map +1 -0
  111. package/dist/components/chat/chat-launcher.d.ts +24 -0
  112. package/dist/components/chat/chat-launcher.js +52 -0
  113. package/dist/components/chat/chat-launcher.js.map +1 -0
  114. package/dist/components/chat/chat-message-list.d.ts +13 -0
  115. package/dist/components/chat/chat-message-list.js +23 -0
  116. package/dist/components/chat/chat-message-list.js.map +1 -0
  117. package/dist/components/chat/chat-room-header.d.ts +33 -0
  118. package/dist/components/chat/chat-room-header.js +53 -0
  119. package/dist/components/chat/chat-room-header.js.map +1 -0
  120. package/dist/components/chat/chat-typing-indicator.d.ts +20 -0
  121. package/dist/components/chat/chat-typing-indicator.js +61 -0
  122. package/dist/components/chat/chat-typing-indicator.js.map +1 -0
  123. package/dist/components/chat/index.d.ts +10 -0
  124. package/dist/components/checkbox/checkbox-field.d.ts +25 -0
  125. package/dist/components/checkbox/checkbox-field.js +62 -0
  126. package/dist/components/checkbox/checkbox-field.js.map +1 -0
  127. package/dist/components/checkbox/checkbox.d.ts +28 -0
  128. package/dist/components/checkbox/checkbox.js +62 -0
  129. package/dist/components/checkbox/checkbox.js.map +1 -0
  130. package/dist/components/checkbox/index.d.ts +2 -0
  131. package/dist/components/chip/chip.d.ts +60 -0
  132. package/dist/components/chip/chip.js +101 -0
  133. package/dist/components/chip/chip.js.map +1 -0
  134. package/dist/components/chip/index.d.ts +1 -0
  135. package/dist/components/date-badge/date-badge.d.ts +15 -0
  136. package/dist/components/date-badge/date-badge.js +35 -0
  137. package/dist/components/date-badge/date-badge.js.map +1 -0
  138. package/dist/components/date-badge/index.d.ts +1 -0
  139. package/dist/components/day-cell/day-cell.d.ts +45 -0
  140. package/dist/components/day-cell/day-cell.js +124 -0
  141. package/dist/components/day-cell/day-cell.js.map +1 -0
  142. package/dist/components/day-cell/index.d.ts +1 -0
  143. package/dist/components/divider/divider.d.ts +23 -0
  144. package/dist/components/divider/divider.js +49 -0
  145. package/dist/components/divider/divider.js.map +1 -0
  146. package/dist/components/divider/index.d.ts +1 -0
  147. package/dist/components/empty-state/empty-state.d.ts +53 -0
  148. package/dist/components/empty-state/empty-state.js +57 -0
  149. package/dist/components/empty-state/empty-state.js.map +1 -0
  150. package/dist/components/empty-state/index.d.ts +1 -0
  151. package/dist/components/field/field-context.d.ts +19 -0
  152. package/dist/components/field/field-context.js +10 -0
  153. package/dist/components/field/field-context.js.map +1 -0
  154. package/dist/components/field/field.d.ts +47 -0
  155. package/dist/components/field/field.js +116 -0
  156. package/dist/components/field/field.js.map +1 -0
  157. package/dist/components/field/index.d.ts +1 -0
  158. package/dist/components/footer/footer.d.ts +29 -0
  159. package/dist/components/footer/footer.js +88 -0
  160. package/dist/components/footer/footer.js.map +1 -0
  161. package/dist/components/footer/index.d.ts +1 -0
  162. package/dist/components/health-record/health-record.d.ts +88 -0
  163. package/dist/components/health-record/health-record.js +255 -0
  164. package/dist/components/health-record/health-record.js.map +1 -0
  165. package/dist/components/health-record/index.d.ts +1 -0
  166. package/dist/components/hero-greeting/hero-greeting.d.ts +17 -0
  167. package/dist/components/hero-greeting/hero-greeting.js +29 -0
  168. package/dist/components/hero-greeting/hero-greeting.js.map +1 -0
  169. package/dist/components/hero-greeting/index.d.ts +1 -0
  170. package/dist/components/icon-button/icon-button.d.ts +37 -0
  171. package/dist/components/icon-button/icon-button.js +64 -0
  172. package/dist/components/icon-button/icon-button.js.map +1 -0
  173. package/dist/components/icon-button/index.d.ts +1 -0
  174. package/dist/components/icon-container/icon-container.d.ts +29 -0
  175. package/dist/components/icon-container/icon-container.js +49 -0
  176. package/dist/components/icon-container/icon-container.js.map +1 -0
  177. package/dist/components/icon-container/index.d.ts +1 -0
  178. package/dist/components/included-item/included-item.d.ts +10 -0
  179. package/dist/components/included-item/included-item.js +37 -0
  180. package/dist/components/included-item/included-item.js.map +1 -0
  181. package/dist/components/included-item/index.d.ts +1 -0
  182. package/dist/components/input/control-styles.d.ts +34 -0
  183. package/dist/components/input/control-styles.js +36 -0
  184. package/dist/components/input/control-styles.js.map +1 -0
  185. package/dist/components/input/index.d.ts +1 -0
  186. package/dist/components/input/input.d.ts +35 -0
  187. package/dist/components/input/input.js +123 -0
  188. package/dist/components/input/input.js.map +1 -0
  189. package/dist/components/link/index.d.ts +1 -0
  190. package/dist/components/link/link.d.ts +52 -0
  191. package/dist/components/link/link.js +94 -0
  192. package/dist/components/link/link.js.map +1 -0
  193. package/dist/components/list-row/index.d.ts +1 -0
  194. package/dist/components/list-row/list-row.d.ts +47 -0
  195. package/dist/components/list-row/list-row.js +71 -0
  196. package/dist/components/list-row/list-row.js.map +1 -0
  197. package/dist/components/logo/index.d.ts +1 -0
  198. package/dist/components/logo/logo.d.ts +13 -0
  199. package/dist/components/logo/logo.js +48 -0
  200. package/dist/components/logo/logo.js.map +1 -0
  201. package/dist/components/menu/index.d.ts +1 -0
  202. package/dist/components/menu/menu.d.ts +79 -0
  203. package/dist/components/menu/menu.js +250 -0
  204. package/dist/components/menu/menu.js.map +1 -0
  205. package/dist/components/mobile-header/index.d.ts +1 -0
  206. package/dist/components/mobile-header/mobile-header.d.ts +49 -0
  207. package/dist/components/mobile-header/mobile-header.js +84 -0
  208. package/dist/components/mobile-header/mobile-header.js.map +1 -0
  209. package/dist/components/modal/confirm-modal.d.ts +32 -0
  210. package/dist/components/modal/confirm-modal.js +78 -0
  211. package/dist/components/modal/confirm-modal.js.map +1 -0
  212. package/dist/components/modal/index.d.ts +2 -0
  213. package/dist/components/modal/modal.d.ts +103 -0
  214. package/dist/components/modal/modal.js +248 -0
  215. package/dist/components/modal/modal.js.map +1 -0
  216. package/dist/components/modal/use-media-query.d.ts +7 -0
  217. package/dist/components/modal/use-media-query.js +22 -0
  218. package/dist/components/modal/use-media-query.js.map +1 -0
  219. package/dist/components/nav-item/index.d.ts +1 -0
  220. package/dist/components/nav-item/nav-item.d.ts +54 -0
  221. package/dist/components/nav-item/nav-item.js +124 -0
  222. package/dist/components/nav-item/nav-item.js.map +1 -0
  223. package/dist/components/otp-input/index.d.ts +1 -0
  224. package/dist/components/otp-input/otp-input.d.ts +40 -0
  225. package/dist/components/otp-input/otp-input.js +152 -0
  226. package/dist/components/otp-input/otp-input.js.map +1 -0
  227. package/dist/components/page-header/index.d.ts +1 -0
  228. package/dist/components/page-header/page-header.d.ts +24 -0
  229. package/dist/components/page-header/page-header.js +41 -0
  230. package/dist/components/page-header/page-header.js.map +1 -0
  231. package/dist/components/phone-input/index.d.ts +1 -0
  232. package/dist/components/phone-input/phone-input.d.ts +46 -0
  233. package/dist/components/phone-input/phone-input.js +219 -0
  234. package/dist/components/phone-input/phone-input.js.map +1 -0
  235. package/dist/components/promo-app/index.d.ts +1 -0
  236. package/dist/components/promo-app/promo-app.d.ts +29 -0
  237. package/dist/components/promo-app/promo-app.js +51 -0
  238. package/dist/components/promo-app/promo-app.js.map +1 -0
  239. package/dist/components/radio/field-item-label.d.ts +13 -0
  240. package/dist/components/radio/field-item-label.js +29 -0
  241. package/dist/components/radio/field-item-label.js.map +1 -0
  242. package/dist/components/radio/index.d.ts +1 -0
  243. package/dist/components/radio/radio.d.ts +38 -0
  244. package/dist/components/radio/radio.js +90 -0
  245. package/dist/components/radio/radio.js.map +1 -0
  246. package/dist/components/radio/use-field-group-label.d.ts +7 -0
  247. package/dist/components/radio/use-field-group-label.js +16 -0
  248. package/dist/components/radio/use-field-group-label.js.map +1 -0
  249. package/dist/components/rating/index.d.ts +1 -0
  250. package/dist/components/rating/rating.d.ts +23 -0
  251. package/dist/components/rating/rating.js +93 -0
  252. package/dist/components/rating/rating.js.map +1 -0
  253. package/dist/components/section-header/index.d.ts +1 -0
  254. package/dist/components/section-header/section-header.d.ts +37 -0
  255. package/dist/components/section-header/section-header.js +60 -0
  256. package/dist/components/section-header/section-header.js.map +1 -0
  257. package/dist/components/segmented-control/index.d.ts +1 -0
  258. package/dist/components/segmented-control/segmented-control.d.ts +34 -0
  259. package/dist/components/segmented-control/segmented-control.js +51 -0
  260. package/dist/components/segmented-control/segmented-control.js.map +1 -0
  261. package/dist/components/select/index.d.ts +2 -0
  262. package/dist/components/select/native-select.d.ts +30 -0
  263. package/dist/components/select/native-select.js +83 -0
  264. package/dist/components/select/native-select.js.map +1 -0
  265. package/dist/components/select/select.d.ts +49 -0
  266. package/dist/components/select/select.js +125 -0
  267. package/dist/components/select/select.js.map +1 -0
  268. package/dist/components/selection-card/index.d.ts +1 -0
  269. package/dist/components/selection-card/selection-card.d.ts +31 -0
  270. package/dist/components/selection-card/selection-card.js +90 -0
  271. package/dist/components/selection-card/selection-card.js.map +1 -0
  272. package/dist/components/severity-indicator/index.d.ts +1 -0
  273. package/dist/components/severity-indicator/severity-indicator.d.ts +18 -0
  274. package/dist/components/severity-indicator/severity-indicator.js +64 -0
  275. package/dist/components/severity-indicator/severity-indicator.js.map +1 -0
  276. package/dist/components/severity-scale/index.d.ts +1 -0
  277. package/dist/components/severity-scale/severity-scale.d.ts +17 -0
  278. package/dist/components/severity-scale/severity-scale.js +22 -0
  279. package/dist/components/severity-scale/severity-scale.js.map +1 -0
  280. package/dist/components/sidebar/index.d.ts +1 -0
  281. package/dist/components/sidebar/sidebar.d.ts +99 -0
  282. package/dist/components/sidebar/sidebar.js +228 -0
  283. package/dist/components/sidebar/sidebar.js.map +1 -0
  284. package/dist/components/skeleton/index.d.ts +1 -0
  285. package/dist/components/skeleton/skeleton.d.ts +33 -0
  286. package/dist/components/skeleton/skeleton.js +47 -0
  287. package/dist/components/skeleton/skeleton.js.map +1 -0
  288. package/dist/components/social-button/index.d.ts +1 -0
  289. package/dist/components/social-button/social-button.d.ts +29 -0
  290. package/dist/components/social-button/social-button.js +53 -0
  291. package/dist/components/social-button/social-button.js.map +1 -0
  292. package/dist/components/spinner/index.d.ts +1 -0
  293. package/dist/components/spinner/spinner.d.ts +20 -0
  294. package/dist/components/spinner/spinner.js +54 -0
  295. package/dist/components/spinner/spinner.js.map +1 -0
  296. package/dist/components/stat-tile/index.d.ts +1 -0
  297. package/dist/components/stat-tile/stat-tile.d.ts +15 -0
  298. package/dist/components/stat-tile/stat-tile.js +28 -0
  299. package/dist/components/stat-tile/stat-tile.js.map +1 -0
  300. package/dist/components/step-indicator/index.d.ts +1 -0
  301. package/dist/components/step-indicator/step-indicator.d.ts +17 -0
  302. package/dist/components/step-indicator/step-indicator.js +35 -0
  303. package/dist/components/step-indicator/step-indicator.js.map +1 -0
  304. package/dist/components/store-badge/index.d.ts +1 -0
  305. package/dist/components/store-badge/store-badge.d.ts +22 -0
  306. package/dist/components/store-badge/store-badge.js +40 -0
  307. package/dist/components/store-badge/store-badge.js.map +1 -0
  308. package/dist/components/switch/index.d.ts +1 -0
  309. package/dist/components/switch/switch.d.ts +23 -0
  310. package/dist/components/switch/switch.js +67 -0
  311. package/dist/components/switch/switch.js.map +1 -0
  312. package/dist/components/table/index.d.ts +1 -0
  313. package/dist/components/table/table.d.ts +85 -0
  314. package/dist/components/table/table.js +175 -0
  315. package/dist/components/table/table.js.map +1 -0
  316. package/dist/components/tabs/index.d.ts +1 -0
  317. package/dist/components/tabs/tabs.d.ts +58 -0
  318. package/dist/components/tabs/tabs.js +89 -0
  319. package/dist/components/tabs/tabs.js.map +1 -0
  320. package/dist/components/textarea/index.d.ts +1 -0
  321. package/dist/components/textarea/textarea.d.ts +25 -0
  322. package/dist/components/textarea/textarea.js +79 -0
  323. package/dist/components/textarea/textarea.js.map +1 -0
  324. package/dist/components/time-slot/index.d.ts +1 -0
  325. package/dist/components/time-slot/time-slot.d.ts +50 -0
  326. package/dist/components/time-slot/time-slot.js +75 -0
  327. package/dist/components/time-slot/time-slot.js.map +1 -0
  328. package/dist/components/toast/index.d.ts +1 -0
  329. package/dist/components/toast/toast.d.ts +60 -0
  330. package/dist/components/toast/toast.js +159 -0
  331. package/dist/components/toast/toast.js.map +1 -0
  332. package/dist/components/tooltip/index.d.ts +1 -0
  333. package/dist/components/tooltip/tooltip.d.ts +40 -0
  334. package/dist/components/tooltip/tooltip.js +110 -0
  335. package/dist/components/tooltip/tooltip.js.map +1 -0
  336. package/dist/components/video/index.d.ts +4 -0
  337. package/dist/components/video/video-control-button.d.ts +33 -0
  338. package/dist/components/video/video-control-button.js +119 -0
  339. package/dist/components/video/video-control-button.js.map +1 -0
  340. package/dist/components/video/video-label.d.ts +14 -0
  341. package/dist/components/video/video-label.js +25 -0
  342. package/dist/components/video/video-label.js.map +1 -0
  343. package/dist/components/video/video-stage.d.ts +39 -0
  344. package/dist/components/video/video-stage.js +96 -0
  345. package/dist/components/video/video-stage.js.map +1 -0
  346. package/dist/components/video/video-tile.d.ts +37 -0
  347. package/dist/components/video/video-tile.js +61 -0
  348. package/dist/components/video/video-tile.js.map +1 -0
  349. package/dist/icons/create-icon.d.ts +18 -0
  350. package/dist/icons/create-icon.js +46 -0
  351. package/dist/icons/create-icon.js.map +1 -0
  352. package/dist/icons/generated/activity-heart.d.ts +1 -0
  353. package/dist/icons/generated/activity-heart.js +10 -0
  354. package/dist/icons/generated/activity-heart.js.map +1 -0
  355. package/dist/icons/generated/activity.d.ts +1 -0
  356. package/dist/icons/generated/activity.js +10 -0
  357. package/dist/icons/generated/activity.js.map +1 -0
  358. package/dist/icons/generated/alert-circle.d.ts +1 -0
  359. package/dist/icons/generated/alert-circle.js +10 -0
  360. package/dist/icons/generated/alert-circle.js.map +1 -0
  361. package/dist/icons/generated/alert-triangle.d.ts +1 -0
  362. package/dist/icons/generated/alert-triangle.js +10 -0
  363. package/dist/icons/generated/alert-triangle.js.map +1 -0
  364. package/dist/icons/generated/allergy-peanut.d.ts +1 -0
  365. package/dist/icons/generated/allergy-peanut.js +16 -0
  366. package/dist/icons/generated/allergy-peanut.js.map +1 -0
  367. package/dist/icons/generated/annotation-alert.d.ts +1 -0
  368. package/dist/icons/generated/annotation-alert.js +10 -0
  369. package/dist/icons/generated/annotation-alert.js.map +1 -0
  370. package/dist/icons/generated/annotation-check.d.ts +1 -0
  371. package/dist/icons/generated/annotation-check.js +10 -0
  372. package/dist/icons/generated/annotation-check.js.map +1 -0
  373. package/dist/icons/generated/annotation-info.d.ts +1 -0
  374. package/dist/icons/generated/annotation-info.js +10 -0
  375. package/dist/icons/generated/annotation-info.js.map +1 -0
  376. package/dist/icons/generated/annotation-question.d.ts +1 -0
  377. package/dist/icons/generated/annotation-question.js +10 -0
  378. package/dist/icons/generated/annotation-question.js.map +1 -0
  379. package/dist/icons/generated/annotation.d.ts +1 -0
  380. package/dist/icons/generated/annotation.js +10 -0
  381. package/dist/icons/generated/annotation.js.map +1 -0
  382. package/dist/icons/generated/arrow-circle-down.d.ts +1 -0
  383. package/dist/icons/generated/arrow-circle-down.js +10 -0
  384. package/dist/icons/generated/arrow-circle-down.js.map +1 -0
  385. package/dist/icons/generated/arrow-circle-left.d.ts +1 -0
  386. package/dist/icons/generated/arrow-circle-left.js +10 -0
  387. package/dist/icons/generated/arrow-circle-left.js.map +1 -0
  388. package/dist/icons/generated/arrow-circle-right.d.ts +1 -0
  389. package/dist/icons/generated/arrow-circle-right.js +10 -0
  390. package/dist/icons/generated/arrow-circle-right.js.map +1 -0
  391. package/dist/icons/generated/arrow-circle-up.d.ts +1 -0
  392. package/dist/icons/generated/arrow-circle-up.js +10 -0
  393. package/dist/icons/generated/arrow-circle-up.js.map +1 -0
  394. package/dist/icons/generated/arrow-narrow-down.d.ts +1 -0
  395. package/dist/icons/generated/arrow-narrow-down.js +10 -0
  396. package/dist/icons/generated/arrow-narrow-down.js.map +1 -0
  397. package/dist/icons/generated/arrow-narrow-left.d.ts +1 -0
  398. package/dist/icons/generated/arrow-narrow-left.js +10 -0
  399. package/dist/icons/generated/arrow-narrow-left.js.map +1 -0
  400. package/dist/icons/generated/arrow-narrow-right.d.ts +1 -0
  401. package/dist/icons/generated/arrow-narrow-right.js +10 -0
  402. package/dist/icons/generated/arrow-narrow-right.js.map +1 -0
  403. package/dist/icons/generated/arrow-narrow-up.d.ts +1 -0
  404. package/dist/icons/generated/arrow-narrow-up.js +10 -0
  405. package/dist/icons/generated/arrow-narrow-up.js.map +1 -0
  406. package/dist/icons/generated/arrow-right.d.ts +1 -0
  407. package/dist/icons/generated/arrow-right.js +10 -0
  408. package/dist/icons/generated/arrow-right.js.map +1 -0
  409. package/dist/icons/generated/bar-chart-01.d.ts +1 -0
  410. package/dist/icons/generated/bar-chart-01.js +10 -0
  411. package/dist/icons/generated/bar-chart-01.js.map +1 -0
  412. package/dist/icons/generated/bar-chart-02.d.ts +1 -0
  413. package/dist/icons/generated/bar-chart-02.js +10 -0
  414. package/dist/icons/generated/bar-chart-02.js.map +1 -0
  415. package/dist/icons/generated/bar-chart-03.d.ts +1 -0
  416. package/dist/icons/generated/bar-chart-03.js +10 -0
  417. package/dist/icons/generated/bar-chart-03.js.map +1 -0
  418. package/dist/icons/generated/bell-01.d.ts +1 -0
  419. package/dist/icons/generated/bell-01.js +10 -0
  420. package/dist/icons/generated/bell-01.js.map +1 -0
  421. package/dist/icons/generated/bell-02.d.ts +1 -0
  422. package/dist/icons/generated/bell-02.js +10 -0
  423. package/dist/icons/generated/bell-02.js.map +1 -0
  424. package/dist/icons/generated/bookmark.d.ts +1 -0
  425. package/dist/icons/generated/bookmark.js +10 -0
  426. package/dist/icons/generated/bookmark.js.map +1 -0
  427. package/dist/icons/generated/broken-heart.d.ts +1 -0
  428. package/dist/icons/generated/broken-heart.js +10 -0
  429. package/dist/icons/generated/broken-heart.js.map +1 -0
  430. package/dist/icons/generated/calendar-chat.d.ts +1 -0
  431. package/dist/icons/generated/calendar-chat.js +13 -0
  432. package/dist/icons/generated/calendar-chat.js.map +1 -0
  433. package/dist/icons/generated/calendar-check-01.d.ts +1 -0
  434. package/dist/icons/generated/calendar-check-01.js +10 -0
  435. package/dist/icons/generated/calendar-check-01.js.map +1 -0
  436. package/dist/icons/generated/calendar-check-02.d.ts +1 -0
  437. package/dist/icons/generated/calendar-check-02.js +10 -0
  438. package/dist/icons/generated/calendar-check-02.js.map +1 -0
  439. package/dist/icons/generated/calendar-heart-01.d.ts +1 -0
  440. package/dist/icons/generated/calendar-heart-01.js +10 -0
  441. package/dist/icons/generated/calendar-heart-01.js.map +1 -0
  442. package/dist/icons/generated/calendar-minus-01.d.ts +1 -0
  443. package/dist/icons/generated/calendar-minus-01.js +10 -0
  444. package/dist/icons/generated/calendar-minus-01.js.map +1 -0
  445. package/dist/icons/generated/calendar-minus-02.d.ts +1 -0
  446. package/dist/icons/generated/calendar-minus-02.js +10 -0
  447. package/dist/icons/generated/calendar-minus-02.js.map +1 -0
  448. package/dist/icons/generated/calendar-plus-01.d.ts +1 -0
  449. package/dist/icons/generated/calendar-plus-01.js +10 -0
  450. package/dist/icons/generated/calendar-plus-01.js.map +1 -0
  451. package/dist/icons/generated/calendar-plus-02.d.ts +1 -0
  452. package/dist/icons/generated/calendar-plus-02.js +10 -0
  453. package/dist/icons/generated/calendar-plus-02.js.map +1 -0
  454. package/dist/icons/generated/calendar.d.ts +1 -0
  455. package/dist/icons/generated/calendar.js +10 -0
  456. package/dist/icons/generated/calendar.js.map +1 -0
  457. package/dist/icons/generated/camera-01.d.ts +1 -0
  458. package/dist/icons/generated/camera-01.js +13 -0
  459. package/dist/icons/generated/camera-01.js.map +1 -0
  460. package/dist/icons/generated/camera-off.d.ts +1 -0
  461. package/dist/icons/generated/camera-off.js +10 -0
  462. package/dist/icons/generated/camera-off.js.map +1 -0
  463. package/dist/icons/generated/certificate-02.d.ts +1 -0
  464. package/dist/icons/generated/certificate-02.js +10 -0
  465. package/dist/icons/generated/certificate-02.js.map +1 -0
  466. package/dist/icons/generated/check-circle.d.ts +1 -0
  467. package/dist/icons/generated/check-circle.js +10 -0
  468. package/dist/icons/generated/check-circle.js.map +1 -0
  469. package/dist/icons/generated/check-heart.d.ts +1 -0
  470. package/dist/icons/generated/check-heart.js +10 -0
  471. package/dist/icons/generated/check-heart.js.map +1 -0
  472. package/dist/icons/generated/check-square.d.ts +1 -0
  473. package/dist/icons/generated/check-square.js +10 -0
  474. package/dist/icons/generated/check-square.js.map +1 -0
  475. package/dist/icons/generated/check-verified-02.d.ts +1 -0
  476. package/dist/icons/generated/check-verified-02.js +10 -0
  477. package/dist/icons/generated/check-verified-02.js.map +1 -0
  478. package/dist/icons/generated/check.d.ts +1 -0
  479. package/dist/icons/generated/check.js +7 -0
  480. package/dist/icons/generated/check.js.map +1 -0
  481. package/dist/icons/generated/chevron-down.d.ts +1 -0
  482. package/dist/icons/generated/chevron-down.js +10 -0
  483. package/dist/icons/generated/chevron-down.js.map +1 -0
  484. package/dist/icons/generated/chevron-left.d.ts +1 -0
  485. package/dist/icons/generated/chevron-left.js +10 -0
  486. package/dist/icons/generated/chevron-left.js.map +1 -0
  487. package/dist/icons/generated/chevron-right.d.ts +1 -0
  488. package/dist/icons/generated/chevron-right.js +10 -0
  489. package/dist/icons/generated/chevron-right.js.map +1 -0
  490. package/dist/icons/generated/chevron-up.d.ts +1 -0
  491. package/dist/icons/generated/chevron-up.js +10 -0
  492. package/dist/icons/generated/chevron-up.js.map +1 -0
  493. package/dist/icons/generated/clipboard-check.d.ts +1 -0
  494. package/dist/icons/generated/clipboard-check.js +10 -0
  495. package/dist/icons/generated/clipboard-check.js.map +1 -0
  496. package/dist/icons/generated/clock.d.ts +1 -0
  497. package/dist/icons/generated/clock.js +10 -0
  498. package/dist/icons/generated/clock.js.map +1 -0
  499. package/dist/icons/generated/copy-01.d.ts +1 -0
  500. package/dist/icons/generated/copy-01.js +10 -0
  501. package/dist/icons/generated/copy-01.js.map +1 -0
  502. package/dist/icons/generated/credit-card-01.d.ts +1 -0
  503. package/dist/icons/generated/credit-card-01.js +10 -0
  504. package/dist/icons/generated/credit-card-01.js.map +1 -0
  505. package/dist/icons/generated/credit-card-02.d.ts +1 -0
  506. package/dist/icons/generated/credit-card-02.js +10 -0
  507. package/dist/icons/generated/credit-card-02.js.map +1 -0
  508. package/dist/icons/generated/credit-card-check.d.ts +1 -0
  509. package/dist/icons/generated/credit-card-check.js +10 -0
  510. package/dist/icons/generated/credit-card-check.js.map +1 -0
  511. package/dist/icons/generated/currency-euro.d.ts +1 -0
  512. package/dist/icons/generated/currency-euro.js +10 -0
  513. package/dist/icons/generated/currency-euro.js.map +1 -0
  514. package/dist/icons/generated/dots-horizontal.d.ts +1 -0
  515. package/dist/icons/generated/dots-horizontal.js +14 -0
  516. package/dist/icons/generated/dots-horizontal.js.map +1 -0
  517. package/dist/icons/generated/dots-vertical.d.ts +1 -0
  518. package/dist/icons/generated/dots-vertical.js +14 -0
  519. package/dist/icons/generated/dots-vertical.js.map +1 -0
  520. package/dist/icons/generated/download-02.d.ts +1 -0
  521. package/dist/icons/generated/download-02.js +10 -0
  522. package/dist/icons/generated/download-02.js.map +1 -0
  523. package/dist/icons/generated/download-cloud-01.d.ts +1 -0
  524. package/dist/icons/generated/download-cloud-01.js +10 -0
  525. package/dist/icons/generated/download-cloud-01.js.map +1 -0
  526. package/dist/icons/generated/edit-01.d.ts +1 -0
  527. package/dist/icons/generated/edit-01.js +10 -0
  528. package/dist/icons/generated/edit-01.js.map +1 -0
  529. package/dist/icons/generated/edit-05.d.ts +1 -0
  530. package/dist/icons/generated/edit-05.js +10 -0
  531. package/dist/icons/generated/edit-05.js.map +1 -0
  532. package/dist/icons/generated/eye-off.d.ts +1 -0
  533. package/dist/icons/generated/eye-off.js +10 -0
  534. package/dist/icons/generated/eye-off.js.map +1 -0
  535. package/dist/icons/generated/eye.d.ts +1 -0
  536. package/dist/icons/generated/eye.js +13 -0
  537. package/dist/icons/generated/eye.js.map +1 -0
  538. package/dist/icons/generated/face-content.d.ts +1 -0
  539. package/dist/icons/generated/face-content.js +10 -0
  540. package/dist/icons/generated/face-content.js.map +1 -0
  541. package/dist/icons/generated/face-frown.d.ts +1 -0
  542. package/dist/icons/generated/face-frown.js +10 -0
  543. package/dist/icons/generated/face-frown.js.map +1 -0
  544. package/dist/icons/generated/face-happy.d.ts +1 -0
  545. package/dist/icons/generated/face-happy.js +10 -0
  546. package/dist/icons/generated/face-happy.js.map +1 -0
  547. package/dist/icons/generated/face-id.d.ts +1 -0
  548. package/dist/icons/generated/face-id.js +10 -0
  549. package/dist/icons/generated/face-id.js.map +1 -0
  550. package/dist/icons/generated/female.d.ts +1 -0
  551. package/dist/icons/generated/female.js +10 -0
  552. package/dist/icons/generated/female.js.map +1 -0
  553. package/dist/icons/generated/file-06.d.ts +1 -0
  554. package/dist/icons/generated/file-06.js +10 -0
  555. package/dist/icons/generated/file-06.js.map +1 -0
  556. package/dist/icons/generated/file-lock-02.d.ts +1 -0
  557. package/dist/icons/generated/file-lock-02.js +10 -0
  558. package/dist/icons/generated/file-lock-02.js.map +1 -0
  559. package/dist/icons/generated/filter-funnel-01.d.ts +1 -0
  560. package/dist/icons/generated/filter-funnel-01.js +10 -0
  561. package/dist/icons/generated/filter-funnel-01.js.map +1 -0
  562. package/dist/icons/generated/filter-lines.d.ts +1 -0
  563. package/dist/icons/generated/filter-lines.js +10 -0
  564. package/dist/icons/generated/filter-lines.js.map +1 -0
  565. package/dist/icons/generated/fingerprint-01.d.ts +1 -0
  566. package/dist/icons/generated/fingerprint-01.js +10 -0
  567. package/dist/icons/generated/fingerprint-01.js.map +1 -0
  568. package/dist/icons/generated/fingerprint-04.d.ts +1 -0
  569. package/dist/icons/generated/fingerprint-04.js +10 -0
  570. package/dist/icons/generated/fingerprint-04.js.map +1 -0
  571. package/dist/icons/generated/flag-01.d.ts +1 -0
  572. package/dist/icons/generated/flag-01.js +10 -0
  573. package/dist/icons/generated/flag-01.js.map +1 -0
  574. package/dist/icons/generated/flash-off.d.ts +1 -0
  575. package/dist/icons/generated/flash-off.js +10 -0
  576. package/dist/icons/generated/flash-off.js.map +1 -0
  577. package/dist/icons/generated/flash.d.ts +1 -0
  578. package/dist/icons/generated/flash.js +10 -0
  579. package/dist/icons/generated/flash.js.map +1 -0
  580. package/dist/icons/generated/flip-backward.d.ts +1 -0
  581. package/dist/icons/generated/flip-backward.js +10 -0
  582. package/dist/icons/generated/flip-backward.js.map +1 -0
  583. package/dist/icons/generated/globe-01.d.ts +1 -0
  584. package/dist/icons/generated/globe-01.js +10 -0
  585. package/dist/icons/generated/globe-01.js.map +1 -0
  586. package/dist/icons/generated/globe-04.d.ts +1 -0
  587. package/dist/icons/generated/globe-04.js +10 -0
  588. package/dist/icons/generated/globe-04.js.map +1 -0
  589. package/dist/icons/generated/heart.d.ts +1 -0
  590. package/dist/icons/generated/heart.js +17 -0
  591. package/dist/icons/generated/heart.js.map +1 -0
  592. package/dist/icons/generated/help-circle.d.ts +1 -0
  593. package/dist/icons/generated/help-circle.js +10 -0
  594. package/dist/icons/generated/help-circle.js.map +1 -0
  595. package/dist/icons/generated/help-square.d.ts +1 -0
  596. package/dist/icons/generated/help-square.js +10 -0
  597. package/dist/icons/generated/help-square.js.map +1 -0
  598. package/dist/icons/generated/home-02.d.ts +1 -0
  599. package/dist/icons/generated/home-02.js +10 -0
  600. package/dist/icons/generated/home-02.js.map +1 -0
  601. package/dist/icons/generated/hourglass-01.d.ts +1 -0
  602. package/dist/icons/generated/hourglass-01.js +10 -0
  603. package/dist/icons/generated/hourglass-01.js.map +1 -0
  604. package/dist/icons/generated/image-01.d.ts +1 -0
  605. package/dist/icons/generated/image-01.js +10 -0
  606. package/dist/icons/generated/image-01.js.map +1 -0
  607. package/dist/icons/generated/image-03.d.ts +1 -0
  608. package/dist/icons/generated/image-03.js +10 -0
  609. package/dist/icons/generated/image-03.js.map +1 -0
  610. package/dist/icons/generated/image-check.d.ts +1 -0
  611. package/dist/icons/generated/image-check.js +10 -0
  612. package/dist/icons/generated/image-check.js.map +1 -0
  613. package/dist/icons/generated/image-plus.d.ts +1 -0
  614. package/dist/icons/generated/image-plus.js +10 -0
  615. package/dist/icons/generated/image-plus.js.map +1 -0
  616. package/dist/icons/generated/inbox-01.d.ts +1 -0
  617. package/dist/icons/generated/inbox-01.js +10 -0
  618. package/dist/icons/generated/inbox-01.js.map +1 -0
  619. package/dist/icons/generated/info-circle.d.ts +1 -0
  620. package/dist/icons/generated/info-circle.js +10 -0
  621. package/dist/icons/generated/info-circle.js.map +1 -0
  622. package/dist/icons/generated/info-square.d.ts +1 -0
  623. package/dist/icons/generated/info-square.js +10 -0
  624. package/dist/icons/generated/info-square.js.map +1 -0
  625. package/dist/icons/generated/key-02.d.ts +1 -0
  626. package/dist/icons/generated/key-02.js +10 -0
  627. package/dist/icons/generated/key-02.js.map +1 -0
  628. package/dist/icons/generated/link-01.d.ts +1 -0
  629. package/dist/icons/generated/link-01.js +10 -0
  630. package/dist/icons/generated/link-01.js.map +1 -0
  631. package/dist/icons/generated/link-03.d.ts +1 -0
  632. package/dist/icons/generated/link-03.js +10 -0
  633. package/dist/icons/generated/link-03.js.map +1 -0
  634. package/dist/icons/generated/link-broken-01.d.ts +1 -0
  635. package/dist/icons/generated/link-broken-01.js +10 -0
  636. package/dist/icons/generated/link-broken-01.js.map +1 -0
  637. package/dist/icons/generated/link-external-01.d.ts +1 -0
  638. package/dist/icons/generated/link-external-01.js +10 -0
  639. package/dist/icons/generated/link-external-01.js.map +1 -0
  640. package/dist/icons/generated/loading-01.d.ts +1 -0
  641. package/dist/icons/generated/loading-01.js +10 -0
  642. package/dist/icons/generated/loading-01.js.map +1 -0
  643. package/dist/icons/generated/lock-01.d.ts +1 -0
  644. package/dist/icons/generated/lock-01.js +10 -0
  645. package/dist/icons/generated/lock-01.js.map +1 -0
  646. package/dist/icons/generated/lock-03.d.ts +1 -0
  647. package/dist/icons/generated/lock-03.js +10 -0
  648. package/dist/icons/generated/lock-03.js.map +1 -0
  649. package/dist/icons/generated/lock-unlocked-01.d.ts +1 -0
  650. package/dist/icons/generated/lock-unlocked-01.js +10 -0
  651. package/dist/icons/generated/lock-unlocked-01.js.map +1 -0
  652. package/dist/icons/generated/log-in-01.d.ts +1 -0
  653. package/dist/icons/generated/log-in-01.js +10 -0
  654. package/dist/icons/generated/log-in-01.js.map +1 -0
  655. package/dist/icons/generated/log-out-01.d.ts +1 -0
  656. package/dist/icons/generated/log-out-01.js +10 -0
  657. package/dist/icons/generated/log-out-01.js.map +1 -0
  658. package/dist/icons/generated/mail-01.d.ts +1 -0
  659. package/dist/icons/generated/mail-01.js +10 -0
  660. package/dist/icons/generated/mail-01.js.map +1 -0
  661. package/dist/icons/generated/mail-02.d.ts +1 -0
  662. package/dist/icons/generated/mail-02.js +10 -0
  663. package/dist/icons/generated/mail-02.js.map +1 -0
  664. package/dist/icons/generated/male.d.ts +1 -0
  665. package/dist/icons/generated/male.js +10 -0
  666. package/dist/icons/generated/male.js.map +1 -0
  667. package/dist/icons/generated/marker-pin-01.d.ts +1 -0
  668. package/dist/icons/generated/marker-pin-01.js +13 -0
  669. package/dist/icons/generated/marker-pin-01.js.map +1 -0
  670. package/dist/icons/generated/medical-circle.d.ts +1 -0
  671. package/dist/icons/generated/medical-circle.js +13 -0
  672. package/dist/icons/generated/medical-circle.js.map +1 -0
  673. package/dist/icons/generated/medical-cross.d.ts +1 -0
  674. package/dist/icons/generated/medical-cross.js +10 -0
  675. package/dist/icons/generated/medical-cross.js.map +1 -0
  676. package/dist/icons/generated/medical-square.d.ts +1 -0
  677. package/dist/icons/generated/medical-square.js +13 -0
  678. package/dist/icons/generated/medical-square.js.map +1 -0
  679. package/dist/icons/generated/menu-01.d.ts +1 -0
  680. package/dist/icons/generated/menu-01.js +10 -0
  681. package/dist/icons/generated/menu-01.js.map +1 -0
  682. package/dist/icons/generated/message-alert-square.d.ts +1 -0
  683. package/dist/icons/generated/message-alert-square.js +10 -0
  684. package/dist/icons/generated/message-alert-square.js.map +1 -0
  685. package/dist/icons/generated/message-check-square.d.ts +1 -0
  686. package/dist/icons/generated/message-check-square.js +10 -0
  687. package/dist/icons/generated/message-check-square.js.map +1 -0
  688. package/dist/icons/generated/message-notification-square.d.ts +1 -0
  689. package/dist/icons/generated/message-notification-square.js +10 -0
  690. package/dist/icons/generated/message-notification-square.js.map +1 -0
  691. package/dist/icons/generated/message-plus-square.d.ts +1 -0
  692. package/dist/icons/generated/message-plus-square.js +10 -0
  693. package/dist/icons/generated/message-plus-square.js.map +1 -0
  694. package/dist/icons/generated/message-question-square.d.ts +1 -0
  695. package/dist/icons/generated/message-question-square.js +10 -0
  696. package/dist/icons/generated/message-question-square.js.map +1 -0
  697. package/dist/icons/generated/message-smile-square.d.ts +1 -0
  698. package/dist/icons/generated/message-smile-square.js +10 -0
  699. package/dist/icons/generated/message-smile-square.js.map +1 -0
  700. package/dist/icons/generated/message-x-square.d.ts +1 -0
  701. package/dist/icons/generated/message-x-square.js +10 -0
  702. package/dist/icons/generated/message-x-square.js.map +1 -0
  703. package/dist/icons/generated/message.d.ts +1 -0
  704. package/dist/icons/generated/message.js +10 -0
  705. package/dist/icons/generated/message.js.map +1 -0
  706. package/dist/icons/generated/microphone-01.d.ts +1 -0
  707. package/dist/icons/generated/microphone-01.js +10 -0
  708. package/dist/icons/generated/microphone-01.js.map +1 -0
  709. package/dist/icons/generated/microphone-off-01.d.ts +1 -0
  710. package/dist/icons/generated/microphone-off-01.js +10 -0
  711. package/dist/icons/generated/microphone-off-01.js.map +1 -0
  712. package/dist/icons/generated/microscope.d.ts +1 -0
  713. package/dist/icons/generated/microscope.js +10 -0
  714. package/dist/icons/generated/microscope.js.map +1 -0
  715. package/dist/icons/generated/minus.d.ts +1 -0
  716. package/dist/icons/generated/minus.js +7 -0
  717. package/dist/icons/generated/minus.js.map +1 -0
  718. package/dist/icons/generated/paperclip.d.ts +1 -0
  719. package/dist/icons/generated/paperclip.js +10 -0
  720. package/dist/icons/generated/paperclip.js.map +1 -0
  721. package/dist/icons/generated/passport.d.ts +1 -0
  722. package/dist/icons/generated/passport.js +10 -0
  723. package/dist/icons/generated/passport.js.map +1 -0
  724. package/dist/icons/generated/pause-circle.d.ts +1 -0
  725. package/dist/icons/generated/pause-circle.js +10 -0
  726. package/dist/icons/generated/pause-circle.js.map +1 -0
  727. package/dist/icons/generated/phone-02.d.ts +1 -0
  728. package/dist/icons/generated/phone-02.js +10 -0
  729. package/dist/icons/generated/phone-02.js.map +1 -0
  730. package/dist/icons/generated/phone.d.ts +1 -0
  731. package/dist/icons/generated/phone.js +10 -0
  732. package/dist/icons/generated/phone.js.map +1 -0
  733. package/dist/icons/generated/pill.d.ts +1 -0
  734. package/dist/icons/generated/pill.js +10 -0
  735. package/dist/icons/generated/pill.js.map +1 -0
  736. package/dist/icons/generated/pin-01.d.ts +1 -0
  737. package/dist/icons/generated/pin-01.js +10 -0
  738. package/dist/icons/generated/pin-01.js.map +1 -0
  739. package/dist/icons/generated/pin-02.d.ts +1 -0
  740. package/dist/icons/generated/pin-02.js +10 -0
  741. package/dist/icons/generated/pin-02.js.map +1 -0
  742. package/dist/icons/generated/play.d.ts +1 -0
  743. package/dist/icons/generated/play.js +10 -0
  744. package/dist/icons/generated/play.js.map +1 -0
  745. package/dist/icons/generated/plus-circle.d.ts +1 -0
  746. package/dist/icons/generated/plus-circle.js +10 -0
  747. package/dist/icons/generated/plus-circle.js.map +1 -0
  748. package/dist/icons/generated/plus-square.d.ts +1 -0
  749. package/dist/icons/generated/plus-square.js +10 -0
  750. package/dist/icons/generated/plus-square.js.map +1 -0
  751. package/dist/icons/generated/plus.d.ts +1 -0
  752. package/dist/icons/generated/plus.js +7 -0
  753. package/dist/icons/generated/plus.js.map +1 -0
  754. package/dist/icons/generated/prescription.d.ts +1 -0
  755. package/dist/icons/generated/prescription.js +10 -0
  756. package/dist/icons/generated/prescription.js.map +1 -0
  757. package/dist/icons/generated/receipt-check.d.ts +1 -0
  758. package/dist/icons/generated/receipt-check.js +10 -0
  759. package/dist/icons/generated/receipt-check.js.map +1 -0
  760. package/dist/icons/generated/receipt.d.ts +1 -0
  761. package/dist/icons/generated/receipt.js +10 -0
  762. package/dist/icons/generated/receipt.js.map +1 -0
  763. package/dist/icons/generated/refresh-ccw-01.d.ts +1 -0
  764. package/dist/icons/generated/refresh-ccw-01.js +10 -0
  765. package/dist/icons/generated/refresh-ccw-01.js.map +1 -0
  766. package/dist/icons/generated/refresh-ccw-02.d.ts +1 -0
  767. package/dist/icons/generated/refresh-ccw-02.js +10 -0
  768. package/dist/icons/generated/refresh-ccw-02.js.map +1 -0
  769. package/dist/icons/generated/reverse-left.d.ts +1 -0
  770. package/dist/icons/generated/reverse-left.js +10 -0
  771. package/dist/icons/generated/reverse-left.js.map +1 -0
  772. package/dist/icons/generated/scan.d.ts +1 -0
  773. package/dist/icons/generated/scan.js +10 -0
  774. package/dist/icons/generated/scan.js.map +1 -0
  775. package/dist/icons/generated/search-lg.d.ts +1 -0
  776. package/dist/icons/generated/search-lg.js +10 -0
  777. package/dist/icons/generated/search-lg.js.map +1 -0
  778. package/dist/icons/generated/search-md.d.ts +1 -0
  779. package/dist/icons/generated/search-md.js +10 -0
  780. package/dist/icons/generated/search-md.js.map +1 -0
  781. package/dist/icons/generated/search-sm.d.ts +1 -0
  782. package/dist/icons/generated/search-sm.js +10 -0
  783. package/dist/icons/generated/search-sm.js.map +1 -0
  784. package/dist/icons/generated/send-01.d.ts +1 -0
  785. package/dist/icons/generated/send-01.js +10 -0
  786. package/dist/icons/generated/send-01.js.map +1 -0
  787. package/dist/icons/generated/settings-02.d.ts +1 -0
  788. package/dist/icons/generated/settings-02.js +13 -0
  789. package/dist/icons/generated/settings-02.js.map +1 -0
  790. package/dist/icons/generated/settings-04.d.ts +1 -0
  791. package/dist/icons/generated/settings-04.js +10 -0
  792. package/dist/icons/generated/settings-04.js.map +1 -0
  793. package/dist/icons/generated/share-01.d.ts +1 -0
  794. package/dist/icons/generated/share-01.js +10 -0
  795. package/dist/icons/generated/share-01.js.map +1 -0
  796. package/dist/icons/generated/share-03.d.ts +1 -0
  797. package/dist/icons/generated/share-03.js +10 -0
  798. package/dist/icons/generated/share-03.js.map +1 -0
  799. package/dist/icons/generated/share-06.d.ts +1 -0
  800. package/dist/icons/generated/share-06.js +10 -0
  801. package/dist/icons/generated/share-06.js.map +1 -0
  802. package/dist/icons/generated/share-07.d.ts +1 -0
  803. package/dist/icons/generated/share-07.js +10 -0
  804. package/dist/icons/generated/share-07.js.map +1 -0
  805. package/dist/icons/generated/shield-tick.d.ts +1 -0
  806. package/dist/icons/generated/shield-tick.js +10 -0
  807. package/dist/icons/generated/shield-tick.js.map +1 -0
  808. package/dist/icons/generated/slash-circle-01.d.ts +1 -0
  809. package/dist/icons/generated/slash-circle-01.js +10 -0
  810. package/dist/icons/generated/slash-circle-01.js.map +1 -0
  811. package/dist/icons/generated/star-01.d.ts +1 -0
  812. package/dist/icons/generated/star-01.js +10 -0
  813. package/dist/icons/generated/star-01.js.map +1 -0
  814. package/dist/icons/generated/star-04.d.ts +1 -0
  815. package/dist/icons/generated/star-04.js +10 -0
  816. package/dist/icons/generated/star-04.js.map +1 -0
  817. package/dist/icons/generated/star-06.d.ts +1 -0
  818. package/dist/icons/generated/star-06.js +10 -0
  819. package/dist/icons/generated/star-06.js.map +1 -0
  820. package/dist/icons/generated/stethoscope-doctor.d.ts +1 -0
  821. package/dist/icons/generated/stethoscope-doctor.js +14 -0
  822. package/dist/icons/generated/stethoscope-doctor.js.map +1 -0
  823. package/dist/icons/generated/tag-01.d.ts +1 -0
  824. package/dist/icons/generated/tag-01.js +10 -0
  825. package/dist/icons/generated/tag-01.js.map +1 -0
  826. package/dist/icons/generated/thumbs-down.d.ts +1 -0
  827. package/dist/icons/generated/thumbs-down.js +10 -0
  828. package/dist/icons/generated/thumbs-down.js.map +1 -0
  829. package/dist/icons/generated/thumbs-up.d.ts +1 -0
  830. package/dist/icons/generated/thumbs-up.js +10 -0
  831. package/dist/icons/generated/thumbs-up.js.map +1 -0
  832. package/dist/icons/generated/trash-01.d.ts +1 -0
  833. package/dist/icons/generated/trash-01.js +10 -0
  834. package/dist/icons/generated/trash-01.js.map +1 -0
  835. package/dist/icons/generated/trash-02.d.ts +1 -0
  836. package/dist/icons/generated/trash-02.js +10 -0
  837. package/dist/icons/generated/trash-02.js.map +1 -0
  838. package/dist/icons/generated/upload-01.d.ts +1 -0
  839. package/dist/icons/generated/upload-01.js +10 -0
  840. package/dist/icons/generated/upload-01.js.map +1 -0
  841. package/dist/icons/generated/user-01.d.ts +1 -0
  842. package/dist/icons/generated/user-01.js +10 -0
  843. package/dist/icons/generated/user-01.js.map +1 -0
  844. package/dist/icons/generated/user-03.d.ts +1 -0
  845. package/dist/icons/generated/user-03.js +10 -0
  846. package/dist/icons/generated/user-03.js.map +1 -0
  847. package/dist/icons/generated/user-check-01.d.ts +1 -0
  848. package/dist/icons/generated/user-check-01.js +10 -0
  849. package/dist/icons/generated/user-check-01.js.map +1 -0
  850. package/dist/icons/generated/user-check-02.d.ts +1 -0
  851. package/dist/icons/generated/user-check-02.js +10 -0
  852. package/dist/icons/generated/user-check-02.js.map +1 -0
  853. package/dist/icons/generated/user-edit.d.ts +1 -0
  854. package/dist/icons/generated/user-edit.js +10 -0
  855. package/dist/icons/generated/user-edit.js.map +1 -0
  856. package/dist/icons/generated/user-plus-01.d.ts +1 -0
  857. package/dist/icons/generated/user-plus-01.js +10 -0
  858. package/dist/icons/generated/user-plus-01.js.map +1 -0
  859. package/dist/icons/generated/user-square.d.ts +1 -0
  860. package/dist/icons/generated/user-square.js +10 -0
  861. package/dist/icons/generated/user-square.js.map +1 -0
  862. package/dist/icons/generated/users-02.d.ts +1 -0
  863. package/dist/icons/generated/users-02.js +10 -0
  864. package/dist/icons/generated/users-02.js.map +1 -0
  865. package/dist/icons/generated/video-recorder-off.d.ts +1 -0
  866. package/dist/icons/generated/video-recorder-off.js +10 -0
  867. package/dist/icons/generated/video-recorder-off.js.map +1 -0
  868. package/dist/icons/generated/video-recorder.d.ts +1 -0
  869. package/dist/icons/generated/video-recorder.js +13 -0
  870. package/dist/icons/generated/video-recorder.js.map +1 -0
  871. package/dist/icons/generated/virus.d.ts +1 -0
  872. package/dist/icons/generated/virus.js +10 -0
  873. package/dist/icons/generated/virus.js.map +1 -0
  874. package/dist/icons/generated/weight.d.ts +1 -0
  875. package/dist/icons/generated/weight.js +15 -0
  876. package/dist/icons/generated/weight.js.map +1 -0
  877. package/dist/icons/generated/x-close.d.ts +1 -0
  878. package/dist/icons/generated/x-close.js +10 -0
  879. package/dist/icons/generated/x-close.js.map +1 -0
  880. package/dist/icons/generated/x.d.ts +1 -0
  881. package/dist/icons/generated/x.js +7 -0
  882. package/dist/icons/generated/x.js.map +1 -0
  883. package/dist/icons/generated/zap.d.ts +1 -0
  884. package/dist/icons/generated/zap.js +10 -0
  885. package/dist/icons/generated/zap.js.map +1 -0
  886. package/dist/icons/index.d.ts +182 -0
  887. package/dist/icons/index.js +542 -0
  888. package/dist/icons/index.js.map +1 -0
  889. package/dist/index.d.ts +73 -0
  890. package/dist/index.js +263 -0
  891. package/dist/index.js.map +1 -0
  892. package/dist/lib/cn.d.ts +2 -0
  893. package/dist/lib/cn.js +51 -0
  894. package/dist/lib/cn.js.map +1 -0
  895. package/dist/provider/index.d.ts +2 -0
  896. package/dist/provider/labels.d.ts +97 -0
  897. package/dist/provider/labels.js +99 -0
  898. package/dist/provider/labels.js.map +1 -0
  899. package/dist/provider/medicore-provider.d.ts +10 -0
  900. package/dist/provider/medicore-provider.js +19 -0
  901. package/dist/provider/medicore-provider.js.map +1 -0
  902. package/dist/styles/primitives.css +59 -0
  903. package/dist/styles/theme.css +15 -0
  904. package/dist/styles/tokens.css +253 -0
  905. package/dist/styles/typography.css +115 -0
  906. package/dist/styles/utilities.css +37 -0
  907. package/package.json +80 -0
@@ -0,0 +1,49 @@
1
+ import type { ComponentProps, ReactNode } from "react";
2
+ import { type ChatDeliveryState } from "./chat-delivery-status";
3
+ /** `incoming`: the professional (left, `surface`) · `outgoing`: the patient (right, `brand-subtle`). */
4
+ export type ChatMessageDirection = "incoming" | "outgoing";
5
+ /** Delivery of an outgoing message. `failed` is the state the old chat didn't have. */
6
+ export type ChatMessageStatus = ChatDeliveryState | "failed";
7
+ /**
8
+ * The bubble shape shared by messages, attachments and the typing indicator: 12px
9
+ * radius with the corner on the speaker's side closed to 4 instead of a drawn tail,
10
+ * and a max width of 272 (a line longer than ~45 characters reads badly).
11
+ */
12
+ export declare const chatBubbleVariants: (props?: ({
13
+ direction?: "incoming" | "outgoing" | null | undefined;
14
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
+ export interface ChatBubbleProps extends Omit<ComponentProps<"div">, "children"> {
16
+ /** Default `incoming`. */
17
+ direction?: ChatMessageDirection;
18
+ /** The message. 16px: in a medical chat people read dosage instructions. */
19
+ children: ReactNode;
20
+ /** Visible time, "21:32". */
21
+ time: string;
22
+ /** Machine-readable moment for `<time>` (ISO 8601). */
23
+ dateTime?: string;
24
+ /**
25
+ * Who wrote it, for screen readers ("Dra. Laura Martín"). Always pass it for
26
+ * incoming messages; outgoing ones default to "Tú".
27
+ */
28
+ sender?: string;
29
+ /**
30
+ * Outgoing only (an incoming message that fails never arrives). `failed` draws the
31
+ * red border and "No se ha enviado. Toca para reintentar." instead of the time.
32
+ */
33
+ status?: ChatMessageStatus;
34
+ /** Overrides the screen-reader text of the delivery status ("Leído a las 21:34"). */
35
+ statusLabel?: string;
36
+ /** With `status="failed"`: the failure message becomes a button that retries. */
37
+ onRetry?: () => void;
38
+ }
39
+ /**
40
+ * A chat message. Incoming on the left in `surface`, outgoing on the right in
41
+ * `brand-subtle`: the patient is always the purple one.
42
+ *
43
+ * - It shrinks with short messages and stops at 272px (`max-width`, not a width).
44
+ * - The outgoing time is `text-brand`, not grey: grey on `brand-subtle` is 4.45:1.
45
+ * - Screen readers hear who sent it and when before the text ("Dra. Laura Martín,
46
+ * a las 21:32: …"); the visible time is hidden from them so it isn't read twice.
47
+ * - Put the bubbles inside a `ChatMessageList` (`role="log"`).
48
+ */
49
+ export declare function ChatBubble({ direction, children, time, dateTime, sender, status, statusLabel, onRetry, className, ...props }: ChatBubbleProps): React.JSX.Element;
@@ -0,0 +1,102 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { AlertCircleIcon } from "../../icons/generated/alert-circle.js";
4
+ import { cn } from "../../lib/cn.js";
5
+ import { ChatDeliveryStatus } from "./chat-delivery-status.js";
6
+ import { useMediCoreLabels } from "../../provider/medicore-provider.js";
7
+ const chatBubbleVariants = cva(
8
+ "flex min-w-0 max-w-68 flex-col gap-1 rounded-xl",
9
+ {
10
+ variants: {
11
+ direction: {
12
+ incoming: "rounded-bl-sm bg-surface",
13
+ outgoing: "rounded-br-sm bg-brand-subtle"
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ direction: "incoming"
18
+ }
19
+ }
20
+ );
21
+ function ChatBubble({
22
+ direction = "incoming",
23
+ children,
24
+ time,
25
+ dateTime,
26
+ sender,
27
+ status,
28
+ statusLabel,
29
+ onRetry,
30
+ className,
31
+ ...props
32
+ }) {
33
+ const labels = useMediCoreLabels();
34
+ const outgoing = direction === "outgoing";
35
+ const failed = outgoing && status === "failed";
36
+ const senderName = sender ?? (outgoing ? labels.chatYou : void 0);
37
+ const failure = /* @__PURE__ */ jsxs(Fragment, { children: [
38
+ /* @__PURE__ */ jsx(AlertCircleIcon, { size: "sm" }),
39
+ labels.chatFailed
40
+ ] });
41
+ return /* @__PURE__ */ jsx(
42
+ "div",
43
+ {
44
+ "data-slot": "chat-bubble",
45
+ "data-direction": direction,
46
+ "data-status": outgoing ? status : void 0,
47
+ className: cn(
48
+ "flex w-full",
49
+ outgoing ? "justify-end" : "justify-start",
50
+ className
51
+ ),
52
+ ...props,
53
+ children: /* @__PURE__ */ jsxs(
54
+ "div",
55
+ {
56
+ className: cn(
57
+ chatBubbleVariants({ direction }),
58
+ "px-3 py-2",
59
+ failed && "border border-text-error"
60
+ ),
61
+ children: [
62
+ /* @__PURE__ */ jsxs("div", { className: "whitespace-pre-line break-words text-body-default text-text-primary", children: [
63
+ senderName && /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
64
+ labels.chatMessageFrom(senderName, time),
65
+ " "
66
+ ] }),
67
+ children
68
+ ] }),
69
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-end gap-1", children: failed ? onRetry ? /* @__PURE__ */ jsx(
70
+ "button",
71
+ {
72
+ type: "button",
73
+ onClick: onRetry,
74
+ className: "touch-target inline-flex cursor-pointer items-center gap-1 rounded-xs text-left text-caption-default text-text-error focus-ring",
75
+ children: failure
76
+ }
77
+ ) : /* @__PURE__ */ jsx("p", { className: "flex items-center gap-1 text-caption-default text-text-error", children: failure }) : /* @__PURE__ */ jsxs(Fragment, { children: [
78
+ /* @__PURE__ */ jsx(
79
+ "time",
80
+ {
81
+ "aria-hidden": true,
82
+ dateTime,
83
+ className: cn(
84
+ "text-caption-default",
85
+ outgoing ? "text-text-brand" : "text-text-secondary"
86
+ ),
87
+ children: time
88
+ }
89
+ ),
90
+ outgoing && status && status !== "failed" && /* @__PURE__ */ jsx(ChatDeliveryStatus, { status, label: statusLabel })
91
+ ] }) })
92
+ ]
93
+ }
94
+ )
95
+ }
96
+ );
97
+ }
98
+ export {
99
+ ChatBubble,
100
+ chatBubbleVariants
101
+ };
102
+ //# sourceMappingURL=chat-bubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-bubble.js","sources":["../../../src/components/chat/chat-bubble.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { AlertCircleIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport {\n type ChatDeliveryState,\n ChatDeliveryStatus,\n} from \"./chat-delivery-status\";\n\n/** `incoming`: the professional (left, `surface`) · `outgoing`: the patient (right, `brand-subtle`). */\nexport type ChatMessageDirection = \"incoming\" | \"outgoing\";\n\n/** Delivery of an outgoing message. `failed` is the state the old chat didn't have. */\nexport type ChatMessageStatus = ChatDeliveryState | \"failed\";\n\n/**\n * The bubble shape shared by messages, attachments and the typing indicator: 12px\n * radius with the corner on the speaker's side closed to 4 instead of a drawn tail,\n * and a max width of 272 (a line longer than ~45 characters reads badly).\n */\nexport const chatBubbleVariants = cva(\n \"flex min-w-0 max-w-68 flex-col gap-1 rounded-xl\",\n {\n variants: {\n direction: {\n incoming: \"rounded-bl-sm bg-surface\",\n outgoing: \"rounded-br-sm bg-brand-subtle\",\n },\n },\n defaultVariants: {\n direction: \"incoming\",\n },\n },\n);\n\nexport interface ChatBubbleProps\n extends Omit<ComponentProps<\"div\">, \"children\"> {\n /** Default `incoming`. */\n direction?: ChatMessageDirection;\n /** The message. 16px: in a medical chat people read dosage instructions. */\n children: ReactNode;\n /** Visible time, \"21:32\". */\n time: string;\n /** Machine-readable moment for `<time>` (ISO 8601). */\n dateTime?: string;\n /**\n * Who wrote it, for screen readers (\"Dra. Laura Martín\"). Always pass it for\n * incoming messages; outgoing ones default to \"Tú\".\n */\n sender?: string;\n /**\n * Outgoing only (an incoming message that fails never arrives). `failed` draws the\n * red border and \"No se ha enviado. Toca para reintentar.\" instead of the time.\n */\n status?: ChatMessageStatus;\n /** Overrides the screen-reader text of the delivery status (\"Leído a las 21:34\"). */\n statusLabel?: string;\n /** With `status=\"failed\"`: the failure message becomes a button that retries. */\n onRetry?: () => void;\n}\n\n/**\n * A chat message. Incoming on the left in `surface`, outgoing on the right in\n * `brand-subtle`: the patient is always the purple one.\n *\n * - It shrinks with short messages and stops at 272px (`max-width`, not a width).\n * - The outgoing time is `text-brand`, not grey: grey on `brand-subtle` is 4.45:1.\n * - Screen readers hear who sent it and when before the text (\"Dra. Laura Martín,\n * a las 21:32: …\"); the visible time is hidden from them so it isn't read twice.\n * - Put the bubbles inside a `ChatMessageList` (`role=\"log\"`).\n */\nexport function ChatBubble({\n direction = \"incoming\",\n children,\n time,\n dateTime,\n sender,\n status,\n statusLabel,\n onRetry,\n className,\n ...props\n}: ChatBubbleProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const outgoing = direction === \"outgoing\";\n const failed = outgoing && status === \"failed\";\n const senderName = sender ?? (outgoing ? labels.chatYou : undefined);\n\n const failure = (\n <>\n <AlertCircleIcon size=\"sm\" />\n {labels.chatFailed}\n </>\n );\n\n return (\n <div\n data-slot=\"chat-bubble\"\n data-direction={direction}\n data-status={outgoing ? status : undefined}\n className={cn(\n \"flex w-full\",\n outgoing ? \"justify-end\" : \"justify-start\",\n className,\n )}\n {...props}\n >\n <div\n className={cn(\n chatBubbleVariants({ direction }),\n \"px-3 py-2\",\n failed && \"border border-text-error\",\n )}\n >\n <div className=\"whitespace-pre-line break-words text-body-default text-text-primary\">\n {senderName && (\n <span className=\"sr-only\">\n {labels.chatMessageFrom(senderName, time)}{\" \"}\n </span>\n )}\n {children}\n </div>\n\n <div className=\"flex items-center justify-end gap-1\">\n {failed ? (\n onRetry ? (\n <button\n type=\"button\"\n onClick={onRetry}\n className=\"touch-target inline-flex cursor-pointer items-center gap-1 rounded-xs text-left text-caption-default text-text-error focus-ring\"\n >\n {failure}\n </button>\n ) : (\n <p className=\"flex items-center gap-1 text-caption-default text-text-error\">\n {failure}\n </p>\n )\n ) : (\n <>\n <time\n aria-hidden\n dateTime={dateTime}\n className={cn(\n \"text-caption-default\",\n outgoing ? \"text-text-brand\" : \"text-text-secondary\",\n )}\n >\n {time}\n </time>\n {outgoing && status && status !== \"failed\" && (\n <ChatDeliveryStatus status={status} label={statusLabel} />\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;AAsBO,MAAM,qBAAqB;AAAA,EAChC;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,WAAW;AAAA,QACT,UAAU;AAAA,QACV,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,iBAAiB;AAAA,MACf,WAAW;AAAA,IAAA;AAAA,EACb;AAEJ;AAsCO,SAAS,WAAW;AAAA,EACzB,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAuC;AACrC,QAAM,SAAS,kBAAA;AACf,QAAM,WAAW,cAAc;AAC/B,QAAM,SAAS,YAAY,WAAW;AACtC,QAAM,aAAa,WAAW,WAAW,OAAO,UAAU;AAE1D,QAAM,UACJ,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA,oBAAC,iBAAA,EAAgB,MAAK,KAAA,CAAK;AAAA,IAC1B,OAAO;AAAA,EAAA,GACV;AAGF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,kBAAgB;AAAA,MAChB,eAAa,WAAW,SAAS;AAAA,MACjC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,gBAAgB;AAAA,QAC3B;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW;AAAA,YACT,mBAAmB,EAAE,WAAW;AAAA,YAChC;AAAA,YACA,UAAU;AAAA,UAAA;AAAA,UAGZ,UAAA;AAAA,YAAA,qBAAC,OAAA,EAAI,WAAU,uEACZ,UAAA;AAAA,cAAA,cACC,qBAAC,QAAA,EAAK,WAAU,WACb,UAAA;AAAA,gBAAA,OAAO,gBAAgB,YAAY,IAAI;AAAA,gBAAG;AAAA,cAAA,GAC7C;AAAA,cAED;AAAA,YAAA,GACH;AAAA,YAEA,oBAAC,OAAA,EAAI,WAAU,uCACZ,mBACC,UACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT,WAAU;AAAA,gBAET,UAAA;AAAA,cAAA;AAAA,YAAA,IAGH,oBAAC,KAAA,EAAE,WAAU,gEACV,UAAA,QAAA,CACH,IAGF,qBAAA,UAAA,EACE,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,eAAW;AAAA,kBACX;AAAA,kBACA,WAAW;AAAA,oBACT;AAAA,oBACA,WAAW,oBAAoB;AAAA,kBAAA;AAAA,kBAGhC,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEF,YAAY,UAAU,WAAW,gCAC/B,oBAAA,EAAmB,QAAgB,OAAO,YAAA,CAAa;AAAA,YAAA,EAAA,CAE5D,EAAA,CAEJ;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,40 @@
1
+ import { type ComponentProps, type ReactNode } from "react";
2
+ export interface ChatComposerProps extends Omit<ComponentProps<"div">, "children" | "defaultValue"> {
3
+ /** Controlled text. */
4
+ value?: string;
5
+ /** Initial text when uncontrolled. */
6
+ defaultValue?: string;
7
+ onValueChange?: (value: string) => void;
8
+ /**
9
+ * Called with the trimmed text on the send button or Enter (Shift+Enter adds a
10
+ * line). The field then empties (`onValueChange("")` when controlled).
11
+ */
12
+ onSend: (message: string) => void;
13
+ /**
14
+ * Shows the paperclip ("Adjuntar archivo"): open your file picker here — a photo of
15
+ * the lesion, a report, a previous prescription.
16
+ */
17
+ onAttach?: () => void;
18
+ /** Defaults to "Escribe un mensaje". It is also the field's accessible name. */
19
+ placeholder?: string;
20
+ /**
21
+ * The consultation has ended and nobody would read the message: the field goes
22
+ * away and the composer says why, with a way out.
23
+ */
24
+ closed?: boolean;
25
+ /** With `closed`. Defaults to "Esta consulta ha finalizado.". */
26
+ closedMessage?: ReactNode;
27
+ /** With `closed`: a `Link` ("Pedir otra consulta"). */
28
+ closedAction?: ReactNode;
29
+ }
30
+ /**
31
+ * Where the patient writes: attach · field · send.
32
+ *
33
+ * - Send is disabled while the field is empty and turns on as soon as there is
34
+ * text: an always-on send button that does nothing is a button that lies.
35
+ * - Attach is a paperclip, not a "+": it says exactly what it does.
36
+ * - The field grows with the text up to 5 lines and then scrolls; the buttons stay
37
+ * at the bottom, not centred.
38
+ * - Text at 16px: below 16 iOS zooms in when the field is focused.
39
+ */
40
+ export declare function ChatComposer({ value, defaultValue, onValueChange, onSend, onAttach, placeholder, closed, closedMessage, closedAction, className, ...props }: ChatComposerProps): React.JSX.Element;
@@ -0,0 +1,114 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { PaperclipIcon } from "../../icons/generated/paperclip.js";
4
+ import { Send01Icon } from "../../icons/generated/send-01.js";
5
+ import { cn } from "../../lib/cn.js";
6
+ import { selfControlStates, controlPlaceholder } from "../input/control-styles.js";
7
+ import { useMediCoreLabels } from "../../provider/medicore-provider.js";
8
+ import { IconButton } from "../icon-button/icon-button.js";
9
+ function ChatComposer({
10
+ value,
11
+ defaultValue = "",
12
+ onValueChange,
13
+ onSend,
14
+ onAttach,
15
+ placeholder,
16
+ closed = false,
17
+ closedMessage,
18
+ closedAction,
19
+ className,
20
+ ...props
21
+ }) {
22
+ const labels = useMediCoreLabels();
23
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
24
+ const text = value ?? uncontrolledValue;
25
+ const canSend = text.trim().length > 0;
26
+ const setText = (next) => {
27
+ if (value === void 0) {
28
+ setUncontrolledValue(next);
29
+ }
30
+ onValueChange?.(next);
31
+ };
32
+ const send = () => {
33
+ if (!canSend) {
34
+ return;
35
+ }
36
+ onSend(text.trim());
37
+ setText("");
38
+ };
39
+ const handleKeyDown = (event) => {
40
+ if (event.key === "Enter" && !event.shiftKey && !event.nativeEvent.isComposing) {
41
+ event.preventDefault();
42
+ send();
43
+ }
44
+ };
45
+ const fieldLabel = placeholder ?? labels.chatComposerPlaceholder;
46
+ return /* @__PURE__ */ jsx(
47
+ "div",
48
+ {
49
+ "data-slot": "chat-composer",
50
+ "data-closed": closed || void 0,
51
+ className: cn(
52
+ "border-border-subtle border-t bg-background p-3",
53
+ className
54
+ ),
55
+ ...props,
56
+ children: closed ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1 text-center", children: [
57
+ /* @__PURE__ */ jsx("p", { className: "text-body-small text-text-secondary", children: closedMessage ?? labels.chatClosed }),
58
+ closedAction
59
+ ] }) : /* @__PURE__ */ jsxs(
60
+ "form",
61
+ {
62
+ className: "flex items-end gap-2",
63
+ onSubmit: (event) => {
64
+ event.preventDefault();
65
+ send();
66
+ },
67
+ children: [
68
+ onAttach && /* @__PURE__ */ jsx(
69
+ IconButton,
70
+ {
71
+ variant: "ghost",
72
+ icon: /* @__PURE__ */ jsx(PaperclipIcon, {}),
73
+ "aria-label": labels.chatAttach,
74
+ onClick: onAttach
75
+ }
76
+ ),
77
+ /* @__PURE__ */ jsx(
78
+ "textarea",
79
+ {
80
+ "data-slot": "chat-composer-field",
81
+ rows: 1,
82
+ value: text,
83
+ placeholder: fieldLabel,
84
+ "aria-label": fieldLabel,
85
+ onChange: (event) => setText(event.currentTarget.value),
86
+ onKeyDown: handleKeyDown,
87
+ className: cn(
88
+ "block max-h-36 min-h-control-md min-w-0 flex-1 resize-none overflow-y-auto field-sizing-content",
89
+ "rounded-3xl border border-border-input bg-surface px-4 py-2.5 text-body-default text-text-primary",
90
+ "ring-1 ring-transparent ring-inset transition-[border-color,box-shadow]",
91
+ controlPlaceholder,
92
+ selfControlStates
93
+ )
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsx(
97
+ IconButton,
98
+ {
99
+ type: "submit",
100
+ icon: /* @__PURE__ */ jsx(Send01Icon, {}),
101
+ "aria-label": labels.chatSend,
102
+ disabled: !canSend
103
+ }
104
+ )
105
+ ]
106
+ }
107
+ )
108
+ }
109
+ );
110
+ }
111
+ export {
112
+ ChatComposer
113
+ };
114
+ //# sourceMappingURL=chat-composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-composer.js","sources":["../../../src/components/chat/chat-composer.tsx"],"sourcesContent":["import {\n type ComponentProps,\n type KeyboardEvent,\n type ReactNode,\n useState,\n} from \"react\";\n\nimport { PaperclipIcon, Send01Icon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport { IconButton } from \"../icon-button\";\nimport { controlPlaceholder, selfControlStates } from \"../input/control-styles\";\n\nexport interface ChatComposerProps\n extends Omit<ComponentProps<\"div\">, \"children\" | \"defaultValue\"> {\n /** Controlled text. */\n value?: string;\n /** Initial text when uncontrolled. */\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n /**\n * Called with the trimmed text on the send button or Enter (Shift+Enter adds a\n * line). The field then empties (`onValueChange(\"\")` when controlled).\n */\n onSend: (message: string) => void;\n /**\n * Shows the paperclip (\"Adjuntar archivo\"): open your file picker here — a photo of\n * the lesion, a report, a previous prescription.\n */\n onAttach?: () => void;\n /** Defaults to \"Escribe un mensaje\". It is also the field's accessible name. */\n placeholder?: string;\n /**\n * The consultation has ended and nobody would read the message: the field goes\n * away and the composer says why, with a way out.\n */\n closed?: boolean;\n /** With `closed`. Defaults to \"Esta consulta ha finalizado.\". */\n closedMessage?: ReactNode;\n /** With `closed`: a `Link` (\"Pedir otra consulta\"). */\n closedAction?: ReactNode;\n}\n\n/**\n * Where the patient writes: attach · field · send.\n *\n * - Send is disabled while the field is empty and turns on as soon as there is\n * text: an always-on send button that does nothing is a button that lies.\n * - Attach is a paperclip, not a \"+\": it says exactly what it does.\n * - The field grows with the text up to 5 lines and then scrolls; the buttons stay\n * at the bottom, not centred.\n * - Text at 16px: below 16 iOS zooms in when the field is focused.\n */\nexport function ChatComposer({\n value,\n defaultValue = \"\",\n onValueChange,\n onSend,\n onAttach,\n placeholder,\n closed = false,\n closedMessage,\n closedAction,\n className,\n ...props\n}: ChatComposerProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const text = value ?? uncontrolledValue;\n const canSend = text.trim().length > 0;\n\n const setText = (next: string): void => {\n if (value === undefined) {\n setUncontrolledValue(next);\n }\n onValueChange?.(next);\n };\n\n const send = (): void => {\n if (!canSend) {\n return;\n }\n onSend(text.trim());\n setText(\"\");\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>): void => {\n if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n !event.nativeEvent.isComposing\n ) {\n event.preventDefault();\n send();\n }\n };\n\n const fieldLabel = placeholder ?? labels.chatComposerPlaceholder;\n\n return (\n <div\n data-slot=\"chat-composer\"\n data-closed={closed || undefined}\n className={cn(\n \"border-border-subtle border-t bg-background p-3\",\n className,\n )}\n {...props}\n >\n {closed ? (\n <div className=\"flex flex-col items-center gap-1 text-center\">\n <p className=\"text-body-small text-text-secondary\">\n {closedMessage ?? labels.chatClosed}\n </p>\n {closedAction}\n </div>\n ) : (\n <form\n className=\"flex items-end gap-2\"\n onSubmit={(event) => {\n event.preventDefault();\n send();\n }}\n >\n {onAttach && (\n <IconButton\n variant=\"ghost\"\n icon={<PaperclipIcon />}\n aria-label={labels.chatAttach}\n onClick={onAttach}\n />\n )}\n <textarea\n data-slot=\"chat-composer-field\"\n rows={1}\n value={text}\n placeholder={fieldLabel}\n aria-label={fieldLabel}\n onChange={(event) => setText(event.currentTarget.value)}\n onKeyDown={handleKeyDown}\n className={cn(\n \"block max-h-36 min-h-control-md min-w-0 flex-1 resize-none overflow-y-auto field-sizing-content\",\n \"rounded-3xl border border-border-input bg-surface px-4 py-2.5 text-body-default text-text-primary\",\n \"ring-1 ring-transparent ring-inset transition-[border-color,box-shadow]\",\n controlPlaceholder,\n selfControlStates,\n )}\n />\n <IconButton\n type=\"submit\"\n icon={<Send01Icon />}\n aria-label={labels.chatSend}\n disabled={!canSend}\n />\n </form>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAqDO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyC;AACvC,QAAM,SAAS,kBAAA;AACf,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,YAAY;AACvE,QAAM,OAAO,SAAS;AACtB,QAAM,UAAU,KAAK,KAAA,EAAO,SAAS;AAErC,QAAM,UAAU,CAAC,SAAuB;AACtC,QAAI,UAAU,QAAW;AACvB,2BAAqB,IAAI;AAAA,IAC3B;AACA,oBAAgB,IAAI;AAAA,EACtB;AAEA,QAAM,OAAO,MAAY;AACvB,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AACA,WAAO,KAAK,MAAM;AAClB,YAAQ,EAAE;AAAA,EACZ;AAEA,QAAM,gBAAgB,CAAC,UAAoD;AACzE,QACE,MAAM,QAAQ,WACd,CAAC,MAAM,YACP,CAAC,MAAM,YAAY,aACnB;AACA,YAAM,eAAA;AACN,WAAA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,aAAa,eAAe,OAAO;AAEzC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAa,UAAU;AAAA,MACvB,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA,SACC,qBAAC,OAAA,EAAI,WAAU,gDACb,UAAA;AAAA,QAAA,oBAAC,KAAA,EAAE,WAAU,uCACV,UAAA,iBAAiB,OAAO,YAC3B;AAAA,QACC;AAAA,MAAA,EAAA,CACH,IAEA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,UAAU,CAAC,UAAU;AACnB,kBAAM,eAAA;AACN,iBAAA;AAAA,UACF;AAAA,UAEC,UAAA;AAAA,YAAA,YACC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,0BAAO,eAAA,EAAc;AAAA,gBACrB,cAAY,OAAO;AAAA,gBACnB,SAAS;AAAA,cAAA;AAAA,YAAA;AAAA,YAGb;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,aAAU;AAAA,gBACV,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,aAAa;AAAA,gBACb,cAAY;AAAA,gBACZ,UAAU,CAAC,UAAU,QAAQ,MAAM,cAAc,KAAK;AAAA,gBACtD,WAAW;AAAA,gBACX,WAAW;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,YAEF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,0BAAO,YAAA,EAAW;AAAA,gBAClB,cAAY,OAAO;AAAA,gBACnB,UAAU,CAAC;AAAA,cAAA;AAAA,YAAA;AAAA,UACb;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,42 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import type { ComponentProps, MouseEventHandler, ReactNode } from "react";
3
+ export type ChatConversationState = "read" | "unread" | "selected";
4
+ export interface ChatConversationRowProps extends Omit<ComponentProps<"li">, "onClick"> {
5
+ /** The other person: "Dra. Laura Martín". It names the link. */
6
+ name: ReactNode;
7
+ /**
8
+ * The last message, always: without it people have to open every chat to know if
9
+ * something is pending. One line.
10
+ */
11
+ preview: ReactNode;
12
+ /** Time of the last message, "10:04" (or "Ayer", "lunes"). */
13
+ time: string;
14
+ /** Machine-readable moment for `<time>` (ISO 8601). */
15
+ dateTime?: string;
16
+ /** `<Avatar size={40} src alt="" />`: the name is already next to it. */
17
+ avatar?: ReactNode;
18
+ /**
19
+ * Unread messages. Above 0 the row is unread: the preview goes Medium in
20
+ * `text-primary`, the counter appears and the link's name says it ("Dra. Laura
21
+ * Martín, 2 mensajes sin leer").
22
+ */
23
+ unreadCount?: number;
24
+ /**
25
+ * Desktop, with the conversation open on the right: brand fill plus the 3px rail
26
+ * (`brand-subtle` on white alone is 1.14:1) and `aria-current="page"`.
27
+ */
28
+ selected?: boolean;
29
+ /** The conversation's URL: the whole row is the link. */
30
+ href?: string;
31
+ /** Router links: `render={<Link to="…" />}`. */
32
+ render?: useRender.RenderProp;
33
+ onClick?: MouseEventHandler<HTMLElement>;
34
+ }
35
+ /**
36
+ * A conversation in the chat list: avatar · name + time · last message + unread
37
+ * counter. It is an `<li>`: put the rows in a `<ul>`.
38
+ *
39
+ * Unread shows without colour (weight and the counter); the purple time only
40
+ * reinforces it. The time is `text-secondary`, never the brand's decorative hint.
41
+ */
42
+ export declare function ChatConversationRow({ name, preview, time, dateTime, avatar, unreadCount, selected, href, render, onClick, className, ...props }: ChatConversationRowProps): React.JSX.Element;
@@ -0,0 +1,104 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { cn } from "../../lib/cn.js";
4
+ import { useMediCoreLabels } from "../../provider/medicore-provider.js";
5
+ import { Badge } from "../badge/badge.js";
6
+ function ChatConversationRow({
7
+ name,
8
+ preview,
9
+ time,
10
+ dateTime,
11
+ avatar,
12
+ unreadCount = 0,
13
+ selected = false,
14
+ href,
15
+ render,
16
+ onClick,
17
+ className,
18
+ ...props
19
+ }) {
20
+ const labels = useMediCoreLabels();
21
+ const unread = unreadCount > 0;
22
+ const state = selected ? "selected" : unread ? "unread" : "read";
23
+ const isLink = Boolean(href || render);
24
+ const target = useRender({
25
+ render,
26
+ defaultTagName: isLink ? "a" : "button",
27
+ props: {
28
+ "data-slot": "chat-conversation-row-target",
29
+ href,
30
+ onClick,
31
+ type: isLink ? void 0 : "button",
32
+ "aria-current": selected ? "page" : void 0,
33
+ className: cn(
34
+ "block w-full cursor-pointer truncate text-left outline-none",
35
+ "after:absolute after:inset-0",
36
+ "focus-visible:after:outline-2 focus-visible:after:outline-border-focus focus-visible:after:-outline-offset-2"
37
+ ),
38
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
39
+ name,
40
+ unread && /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
41
+ ", ",
42
+ labels.chatUnreadMessages(unreadCount)
43
+ ] })
44
+ ] })
45
+ }
46
+ });
47
+ return /* @__PURE__ */ jsxs(
48
+ "li",
49
+ {
50
+ "data-slot": "chat-conversation-row",
51
+ "data-state": state,
52
+ className: cn(
53
+ "relative flex min-h-18 items-center gap-3 bg-background px-4 py-3 transition-colors",
54
+ selected ? "bg-brand-subtle" : "hover:bg-surface",
55
+ className
56
+ ),
57
+ ...props,
58
+ children: [
59
+ selected && /* @__PURE__ */ jsx(
60
+ "span",
61
+ {
62
+ "aria-hidden": true,
63
+ className: "absolute inset-y-0 left-0 w-0.75 bg-text-brand"
64
+ }
65
+ ),
66
+ avatar,
67
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
68
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
69
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1 text-label-strong text-text-primary", children: target }),
70
+ /* @__PURE__ */ jsx(
71
+ "time",
72
+ {
73
+ dateTime,
74
+ className: cn(
75
+ "shrink-0 text-caption-default",
76
+ selected ? "text-text-primary" : unread ? "text-text-brand" : "text-text-secondary"
77
+ ),
78
+ children: time
79
+ }
80
+ )
81
+ ] }),
82
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
83
+ /* @__PURE__ */ jsx(
84
+ "p",
85
+ {
86
+ className: cn(
87
+ "min-w-0 flex-1 truncate",
88
+ unread ? "text-label-strong" : "text-body-small",
89
+ unread || selected ? "text-text-primary" : "text-text-secondary"
90
+ ),
91
+ children: preview
92
+ }
93
+ ),
94
+ unread && /* @__PURE__ */ jsx(Badge, { variant: "brand", "aria-hidden": true, children: unreadCount })
95
+ ] })
96
+ ] })
97
+ ]
98
+ }
99
+ );
100
+ }
101
+ export {
102
+ ChatConversationRow
103
+ };
104
+ //# sourceMappingURL=chat-conversation-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-conversation-row.js","sources":["../../../src/components/chat/chat-conversation-row.tsx"],"sourcesContent":["import { useRender } from \"@base-ui/react/use-render\";\nimport type { ComponentProps, MouseEventHandler, ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport { Badge } from \"../badge\";\n\nexport type ChatConversationState = \"read\" | \"unread\" | \"selected\";\n\nexport interface ChatConversationRowProps\n extends Omit<ComponentProps<\"li\">, \"onClick\"> {\n /** The other person: \"Dra. Laura Martín\". It names the link. */\n name: ReactNode;\n /**\n * The last message, always: without it people have to open every chat to know if\n * something is pending. One line.\n */\n preview: ReactNode;\n /** Time of the last message, \"10:04\" (or \"Ayer\", \"lunes\"). */\n time: string;\n /** Machine-readable moment for `<time>` (ISO 8601). */\n dateTime?: string;\n /** `<Avatar size={40} src alt=\"\" />`: the name is already next to it. */\n avatar?: ReactNode;\n /**\n * Unread messages. Above 0 the row is unread: the preview goes Medium in\n * `text-primary`, the counter appears and the link's name says it (\"Dra. Laura\n * Martín, 2 mensajes sin leer\").\n */\n unreadCount?: number;\n /**\n * Desktop, with the conversation open on the right: brand fill plus the 3px rail\n * (`brand-subtle` on white alone is 1.14:1) and `aria-current=\"page\"`.\n */\n selected?: boolean;\n /** The conversation's URL: the whole row is the link. */\n href?: string;\n /** Router links: `render={<Link to=\"…\" />}`. */\n render?: useRender.RenderProp;\n onClick?: MouseEventHandler<HTMLElement>;\n}\n\n/**\n * A conversation in the chat list: avatar · name + time · last message + unread\n * counter. It is an `<li>`: put the rows in a `<ul>`.\n *\n * Unread shows without colour (weight and the counter); the purple time only\n * reinforces it. The time is `text-secondary`, never the brand's decorative hint.\n */\nexport function ChatConversationRow({\n name,\n preview,\n time,\n dateTime,\n avatar,\n unreadCount = 0,\n selected = false,\n href,\n render,\n onClick,\n className,\n ...props\n}: ChatConversationRowProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const unread = unreadCount > 0;\n const state: ChatConversationState = selected\n ? \"selected\"\n : unread\n ? \"unread\"\n : \"read\";\n const isLink = Boolean(href || render);\n\n const target = useRender({\n render,\n defaultTagName: isLink ? \"a\" : \"button\",\n props: {\n \"data-slot\": \"chat-conversation-row-target\",\n href,\n onClick,\n type: isLink ? undefined : \"button\",\n \"aria-current\": selected ? \"page\" : undefined,\n className: cn(\n \"block w-full cursor-pointer truncate text-left outline-none\",\n \"after:absolute after:inset-0\",\n \"focus-visible:after:outline-2 focus-visible:after:outline-border-focus focus-visible:after:-outline-offset-2\",\n ),\n children: (\n <>\n {name}\n {unread && (\n <span className=\"sr-only\">\n , {labels.chatUnreadMessages(unreadCount)}\n </span>\n )}\n </>\n ),\n },\n });\n\n return (\n <li\n data-slot=\"chat-conversation-row\"\n data-state={state}\n className={cn(\n \"relative flex min-h-18 items-center gap-3 bg-background px-4 py-3 transition-colors\",\n selected ? \"bg-brand-subtle\" : \"hover:bg-surface\",\n className,\n )}\n {...props}\n >\n {selected && (\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 w-0.75 bg-text-brand\"\n />\n )}\n {avatar}\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div className=\"flex items-center gap-2\">\n <div className=\"min-w-0 flex-1 text-label-strong text-text-primary\">\n {target}\n </div>\n <time\n dateTime={dateTime}\n className={cn(\n \"shrink-0 text-caption-default\",\n selected\n ? \"text-text-primary\"\n : unread\n ? \"text-text-brand\"\n : \"text-text-secondary\",\n )}\n >\n {time}\n </time>\n </div>\n <div className=\"flex items-center gap-2\">\n <p\n className={cn(\n \"min-w-0 flex-1 truncate\",\n unread ? \"text-label-strong\" : \"text-body-small\",\n unread || selected ? \"text-text-primary\" : \"text-text-secondary\",\n )}\n >\n {preview}\n </p>\n {unread && (\n <Badge variant=\"brand\" aria-hidden>\n {unreadCount}\n </Badge>\n )}\n </div>\n </div>\n </li>\n );\n}\n"],"names":[],"mappings":";;;;;AAiDO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAgD;AAC9C,QAAM,SAAS,kBAAA;AACf,QAAM,SAAS,cAAc;AAC7B,QAAM,QAA+B,WACjC,aACA,SACE,WACA;AACN,QAAM,SAAS,QAAQ,QAAQ,MAAM;AAErC,QAAM,SAAS,UAAU;AAAA,IACvB;AAAA,IACA,gBAAgB,SAAS,MAAM;AAAA,IAC/B,OAAO;AAAA,MACL,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,MAAM,SAAS,SAAY;AAAA,MAC3B,gBAAgB,WAAW,SAAS;AAAA,MACpC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,UACE,qBAAA,UAAA,EACG,UAAA;AAAA,QAAA;AAAA,QACA,UACC,qBAAC,QAAA,EAAK,WAAU,WAAU,UAAA;AAAA,UAAA;AAAA,UACrB,OAAO,mBAAmB,WAAW;AAAA,QAAA,EAAA,CAC1C;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAEJ,CACD;AAED,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,WAAW;AAAA,QACT;AAAA,QACA,WAAW,oBAAoB;AAAA,QAC/B;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,YACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAGb;AAAA,QACD,qBAAC,OAAA,EAAI,WAAU,wCACb,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,YAAA,oBAAC,OAAA,EAAI,WAAU,sDACZ,UAAA,QACH;AAAA,YACA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA,WAAW;AAAA,kBACT;AAAA,kBACA,WACI,sBACA,SACE,oBACA;AAAA,gBAAA;AAAA,gBAGP,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACH,GACF;AAAA,UACA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA,SAAS,sBAAsB;AAAA,kBAC/B,UAAU,WAAW,sBAAsB;AAAA,gBAAA;AAAA,gBAG5C,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAEF,UACC,oBAAC,OAAA,EAAM,SAAQ,SAAQ,eAAW,MAC/B,UAAA,YAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,15 @@
1
+ import type { ComponentProps, ReactNode } from "react";
2
+ export interface ChatDateSeparatorProps extends Omit<ComponentProps<"div">, "children"> {
3
+ /**
4
+ * "Hoy", "Ayer", or the full day from the day before yesterday on ("lunes, 28 de
5
+ * septiembre"). Never only the numeric date: "28/09" makes people count.
6
+ */
7
+ children: ReactNode;
8
+ /** Machine-readable day for `<time>` (`2026-09-28`). */
9
+ dateTime?: string;
10
+ }
11
+ /**
12
+ * Date pill between messages: `text-secondary` on `surface-raised` (4.60:1).
13
+ * It goes inside the `ChatMessageList`, before the first message of each day.
14
+ */
15
+ export declare function ChatDateSeparator({ children, dateTime, className, ...props }: ChatDateSeparatorProps): React.JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/cn.js";
3
+ function ChatDateSeparator({
4
+ children,
5
+ dateTime,
6
+ className,
7
+ ...props
8
+ }) {
9
+ return /* @__PURE__ */ jsx(
10
+ "div",
11
+ {
12
+ "data-slot": "chat-date-separator",
13
+ className: cn("flex justify-center py-2", className),
14
+ ...props,
15
+ children: /* @__PURE__ */ jsx(
16
+ "time",
17
+ {
18
+ dateTime,
19
+ className: "rounded-full bg-surface-raised px-3 py-1 text-caption-default text-text-secondary",
20
+ children
21
+ }
22
+ )
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ ChatDateSeparator
28
+ };
29
+ //# sourceMappingURL=chat-date-separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-date-separator.js","sources":["../../../src/components/chat/chat-date-separator.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nexport interface ChatDateSeparatorProps\n extends Omit<ComponentProps<\"div\">, \"children\"> {\n /**\n * \"Hoy\", \"Ayer\", or the full day from the day before yesterday on (\"lunes, 28 de\n * septiembre\"). Never only the numeric date: \"28/09\" makes people count.\n */\n children: ReactNode;\n /** Machine-readable day for `<time>` (`2026-09-28`). */\n dateTime?: string;\n}\n\n/**\n * Date pill between messages: `text-secondary` on `surface-raised` (4.60:1).\n * It goes inside the `ChatMessageList`, before the first message of each day.\n */\nexport function ChatDateSeparator({\n children,\n dateTime,\n className,\n ...props\n}: ChatDateSeparatorProps): React.JSX.Element {\n return (\n <div\n data-slot=\"chat-date-separator\"\n className={cn(\"flex justify-center py-2\", className)}\n {...props}\n >\n <time\n dateTime={dateTime}\n className=\"rounded-full bg-surface-raised px-3 py-1 text-caption-default text-text-secondary\"\n >\n {children}\n </time>\n </div>\n );\n}\n"],"names":[],"mappings":";;AAmBO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA8C;AAC5C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,4BAA4B,SAAS;AAAA,MAClD,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,WAAU;AAAA,UAET;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,21 @@
1
+ import type { ComponentProps } from "react";
2
+ /** `sending`: clock · `sent`: one check · `read`: two checks. */
3
+ export type ChatDeliveryState = "sending" | "sent" | "read";
4
+ export interface ChatDeliveryStatusProps extends Omit<ComponentProps<"span">, "children"> {
5
+ status: ChatDeliveryState;
6
+ /**
7
+ * What a screen reader hears. Defaults to "Enviando" / "Enviado" / "Leído"; pass
8
+ * the full sentence when you know when it was read ("Leído a las 21:34").
9
+ */
10
+ label?: string;
11
+ }
12
+ /**
13
+ * Delivery status of a message the patient sent. Sent and read differ by SHAPE
14
+ * (one or two checks), not by colour: both are `text-brand`, 8.49:1 on the
15
+ * outgoing bubble.
16
+ *
17
+ * In health "read" matters more than in a messaging app: it tells the person the
18
+ * professional has seen what they wrote. The state is also in text for screen
19
+ * readers, never only in the icon.
20
+ */
21
+ export declare function ChatDeliveryStatus({ status, label, className, ...props }: ChatDeliveryStatusProps): React.JSX.Element;
@@ -0,0 +1,43 @@
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import { CheckIcon } from "../../icons/generated/check.js";
3
+ import { ClockIcon } from "../../icons/generated/clock.js";
4
+ import { cn } from "../../lib/cn.js";
5
+ import { useMediCoreLabels } from "../../provider/medicore-provider.js";
6
+ function ChatDeliveryStatus({
7
+ status,
8
+ label,
9
+ className,
10
+ ...props
11
+ }) {
12
+ const labels = useMediCoreLabels();
13
+ const text = label ?? {
14
+ sending: labels.chatSending,
15
+ sent: labels.chatSent,
16
+ read: labels.chatRead
17
+ }[status];
18
+ return /* @__PURE__ */ jsxs(
19
+ "span",
20
+ {
21
+ "data-slot": "chat-delivery-status",
22
+ "data-status": status,
23
+ className: cn(
24
+ "relative inline-flex h-4 w-5 shrink-0 items-center justify-center text-text-brand",
25
+ className
26
+ ),
27
+ ...props,
28
+ children: [
29
+ status === "sending" && /* @__PURE__ */ jsx(ClockIcon, { size: "sm" }),
30
+ status === "sent" && /* @__PURE__ */ jsx(CheckIcon, { size: "sm" }),
31
+ status === "read" && /* @__PURE__ */ jsxs(Fragment, { children: [
32
+ /* @__PURE__ */ jsx(CheckIcon, { size: "sm", className: "absolute top-0 -left-px" }),
33
+ /* @__PURE__ */ jsx(CheckIcon, { size: "sm", className: "absolute top-0 left-1.25" })
34
+ ] }),
35
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: text })
36
+ ]
37
+ }
38
+ );
39
+ }
40
+ export {
41
+ ChatDeliveryStatus
42
+ };
43
+ //# sourceMappingURL=chat-delivery-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-delivery-status.js","sources":["../../../src/components/chat/chat-delivery-status.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\n\nimport { CheckIcon, ClockIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\n\n/** `sending`: clock · `sent`: one check · `read`: two checks. */\nexport type ChatDeliveryState = \"sending\" | \"sent\" | \"read\";\n\nexport interface ChatDeliveryStatusProps\n extends Omit<ComponentProps<\"span\">, \"children\"> {\n status: ChatDeliveryState;\n /**\n * What a screen reader hears. Defaults to \"Enviando\" / \"Enviado\" / \"Leído\"; pass\n * the full sentence when you know when it was read (\"Leído a las 21:34\").\n */\n label?: string;\n}\n\n/**\n * Delivery status of a message the patient sent. Sent and read differ by SHAPE\n * (one or two checks), not by colour: both are `text-brand`, 8.49:1 on the\n * outgoing bubble.\n *\n * In health \"read\" matters more than in a messaging app: it tells the person the\n * professional has seen what they wrote. The state is also in text for screen\n * readers, never only in the icon.\n */\nexport function ChatDeliveryStatus({\n status,\n label,\n className,\n ...props\n}: ChatDeliveryStatusProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const text =\n label ??\n {\n sending: labels.chatSending,\n sent: labels.chatSent,\n read: labels.chatRead,\n }[status];\n\n return (\n <span\n data-slot=\"chat-delivery-status\"\n data-status={status}\n className={cn(\n \"relative inline-flex h-4 w-5 shrink-0 items-center justify-center text-text-brand\",\n className,\n )}\n {...props}\n >\n {status === \"sending\" && <ClockIcon size=\"sm\" />}\n {status === \"sent\" && <CheckIcon size=\"sm\" />}\n {status === \"read\" && (\n <>\n <CheckIcon size=\"sm\" className=\"absolute top-0 -left-px\" />\n <CheckIcon size=\"sm\" className=\"absolute top-0 left-1.25\" />\n </>\n )}\n <span className=\"sr-only\">{text}</span>\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;AA4BO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA+C;AAC7C,QAAM,SAAS,kBAAA;AACf,QAAM,OACJ,SACA;AAAA,IACE,SAAS,OAAO;AAAA,IAChB,MAAM,OAAO;AAAA,IACb,MAAM,OAAO;AAAA,EAAA,EACb,MAAM;AAEV,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,WAAW,aAAa,oBAAC,WAAA,EAAU,MAAK,MAAK;AAAA,QAC7C,WAAW,UAAU,oBAAC,WAAA,EAAU,MAAK,MAAK;AAAA,QAC1C,WAAW,UACV,qBAAA,UAAA,EACE,UAAA;AAAA,UAAA,oBAAC,WAAA,EAAU,MAAK,MAAK,WAAU,2BAA0B;AAAA,UACzD,oBAAC,WAAA,EAAU,MAAK,MAAK,WAAU,2BAAA,CAA2B;AAAA,QAAA,GAC5D;AAAA,QAEF,oBAAC,QAAA,EAAK,WAAU,WAAW,UAAA,KAAA,CAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGtC;"}