@alfadocs/ui-kit 0.70.0 → 0.71.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 (304) hide show
  1. package/dist/_chunks/address-fields-CPbFJ8e8.js +246 -0
  2. package/dist/_chunks/{ai-prompt-input-CuhTo9mh.js → ai-prompt-input-V4DdOeqv.js} +2 -2
  3. package/dist/_chunks/{alia-sidebar-B47qRQb5.js → alia-sidebar-DvIUzIX9.js} +107 -106
  4. package/dist/_chunks/{anatomy-scheme-CJB6dI6p.js → anatomy-scheme-CXSk11UJ.js} +2 -2
  5. package/dist/_chunks/{app-frame-BYx1gcV7.js → app-frame-DIEMIC5V.js} +67 -56
  6. package/dist/_chunks/{appointment-card-C06aZqA7.js → appointment-card-DVaeJNVB.js} +82 -98
  7. package/dist/_chunks/{appointment-timeline-BJM0S_Fg.js → appointment-timeline-PJgnrjFb.js} +159 -157
  8. package/dist/_chunks/{appointment-tray-DRRw5ROi.js → appointment-tray-B16QPGbm.js} +2 -2
  9. package/dist/_chunks/{audio-recorder-Cpdk5qpQ.js → audio-recorder-DNDsOLqO.js} +2 -2
  10. package/dist/_chunks/{autocomplete-DOeGouCL.js → autocomplete-BrONKN8l.js} +168 -146
  11. package/dist/_chunks/{bishop-score-DnYWtZa_.js → bishop-score-Cym_TeQY.js} +2 -2
  12. package/dist/_chunks/{booking-DUBI0oqt.js → booking-C7do4vaR.js} +4 -4
  13. package/dist/_chunks/{button-group-Ciq6J4IW.js → button-group-CvEnVzY7.js} +32 -35
  14. package/dist/_chunks/{care-plan-card-C5sTfY9G.js → care-plan-card-DzPDYgtK.js} +3 -3
  15. package/dist/_chunks/{care-plan-entry-card-CXnxGCWA.js → care-plan-entry-card-CEnQy7YP.js} +3 -3
  16. package/dist/_chunks/care-plan-header-DcXFXWit.js +198 -0
  17. package/dist/_chunks/{chat-message-3V54YipB.js → chat-message-DzpcJR-q.js} +25 -23
  18. package/dist/_chunks/city-input-Dkgaak7I.js +169 -0
  19. package/dist/_chunks/clipboard-list-S7s-MXQq.js +25 -0
  20. package/dist/_chunks/{combobox-Clum7gJ1.js → combobox-DnqSF0IH.js} +131 -114
  21. package/dist/_chunks/connection-status-CY1HV8Wg.js +108 -0
  22. package/dist/_chunks/control-room-rail-FAQZrGVL.js +333 -0
  23. package/dist/_chunks/country-select-BwUZQvTa.js +709 -0
  24. package/dist/_chunks/editable-currency-cell-renderer-CGELrkIj.js +410 -0
  25. package/dist/_chunks/{entity-card-9_62gY7l.js → entity-card-DmrgYSEX.js} +4 -4
  26. package/dist/_chunks/entity-summary-CaM1Y-xE.js +291 -0
  27. package/dist/_chunks/field-array-siUZzfYe.js +146 -0
  28. package/dist/_chunks/{field-value-NXYczdpO.js → field-value-3jMM0uDx.js} +2 -2
  29. package/dist/_chunks/{gestational-age-calculator-CF2ISaYQ.js → gestational-age-calculator-DKzEV5Qi.js} +2 -2
  30. package/dist/_chunks/iban-input-B0TWzR1R.js +436 -0
  31. package/dist/_chunks/icon-picker-0B7KhrF1.js +272 -0
  32. package/dist/_chunks/image-cropper-D9jqJy19.js +367 -0
  33. package/dist/_chunks/{link-cell-renderer-CTXqtXV-.js → link-cell-renderer-De_SLjSq.js} +262 -261
  34. package/dist/_chunks/list-checks-BUs75d_o.js +18 -0
  35. package/dist/_chunks/{marketplace-app-shell-Skhfp6vK.js → marketplace-app-shell-BGqkywsi.js} +3 -3
  36. package/dist/_chunks/message-card-DsHFFiL1.js +319 -0
  37. package/dist/_chunks/{message-tray-DwrBLJlf.js → message-tray-C0a6CL1_.js} +172 -135
  38. package/dist/_chunks/{multi-select-BdHHDrRN.js → multi-select-WE4S9FIF.js} +75 -63
  39. package/dist/_chunks/nav-grid-9xphY3FM.js +169 -0
  40. package/dist/_chunks/notes-panel-DXiMfuvp.js +320 -0
  41. package/dist/_chunks/notification-card-BMqNzCIt.js +290 -0
  42. package/dist/_chunks/{notification-tray-AEun6DN2.js → notification-tray-BmUlCx3g.js} +201 -166
  43. package/dist/_chunks/{operator-hero-CR0Rqh4-.js → operator-hero-BO8TqzX2.js} +2 -2
  44. package/dist/_chunks/panel-header-D313n_9-.js +105 -0
  45. package/dist/_chunks/{patient-details-Dlhqb5ig.js → patient-details-DgfTJimE.js} +280 -196
  46. package/dist/_chunks/{patient-search-Be6cLrHR.js → patient-search-CSWQKOSP.js} +2 -2
  47. package/dist/_chunks/{patient-shell-DV3XEtIB.js → patient-shell-BMwsIKlW.js} +3 -3
  48. package/dist/_chunks/{patient-summary-card-WySCMwwA.js → patient-summary-card-D4NdgYJB.js} +27 -12
  49. package/dist/_chunks/{patient-table-CHxf3Oqk.js → patient-table-CERknpd8.js} +3 -3
  50. package/dist/_chunks/{payment-request-card-BcZJwu9z.js → payment-request-card-Blf-MFNY.js} +2 -2
  51. package/dist/_chunks/permission-matrix-Bw5oexUt.js +174 -0
  52. package/dist/_chunks/position-grid-CcvqHaKN.js +169 -0
  53. package/dist/_chunks/postal-code-input-UCOYuRY2.js +192 -0
  54. package/dist/_chunks/{practice-results-C6qDfxos.js → practice-results-El5Z-oVp.js} +2 -2
  55. package/dist/_chunks/{pregnancy-dating-CRVWswD-.js → pregnancy-dating-CunHrOpO.js} +2 -2
  56. package/dist/_chunks/{product-hub-panel-e6pW220e.js → product-hub-panel-DtU7KXxm.js} +257 -217
  57. package/dist/_chunks/province-select-D_TZvix3.js +261 -0
  58. package/dist/_chunks/{public-header.agent-DqkqA-ca.js → public-header.agent-TxmC_x1I.js} +2 -2
  59. package/dist/_chunks/radiograph-panel.agent-tWjN2nHX.js +553 -0
  60. package/dist/_chunks/reviews-panel-DxkSrgMl.js +559 -0
  61. package/dist/_chunks/rich-text-editor-C8tyGjfb.js +2621 -0
  62. package/dist/_chunks/{scroll-area-5wNK0Cyz.js → scroll-area-BZOvUhwQ.js} +2 -2
  63. package/dist/_chunks/{select-DMLG44F5.js → select-KsyRr8WH.js} +114 -102
  64. package/dist/_chunks/{sheet-BxsE7eQm.js → sheet-umkfZjF6.js} +53 -42
  65. package/dist/_chunks/{sidebar-DY9jGjgt.js → sidebar-QCp9wHNP.js} +125 -113
  66. package/dist/_chunks/{tabs-BxcOziCo.js → tabs-CYZVKKDl.js} +2 -2
  67. package/dist/_chunks/task-card-DCdsI0ZT.js +189 -0
  68. package/dist/_chunks/{task-tray-qOEQflu4.js → task-tray-DNVejijD.js} +2 -2
  69. package/dist/_chunks/tasks-panel-C9odmawT.js +757 -0
  70. package/dist/_chunks/token-insert-menu-CFQqTe_n.js +147 -0
  71. package/dist/_chunks/{ai-tools-rail-B5NEghsp.js → tool-rail-BZx0-yIr.js} +152 -139
  72. package/dist/_chunks/{tooth-scheme-BhQoPNBD.js → tooth-scheme-DJZtzfeY.js} +470 -468
  73. package/dist/_chunks/{transcript-panel-3THQX6nJ.js → transcript-panel-CHGHHHdT.js} +95 -83
  74. package/dist/_chunks/{unit-converter-YEpD9evj.js → unit-converter-CwlZbfdn.js} +2 -2
  75. package/dist/_chunks/{workflow-map-Dy8mLCqF.js → workflow-map-M8MBBHQm.js} +106 -118
  76. package/dist/agent-catalog.json +2062 -226
  77. package/dist/agent-i18n/en.json +206 -8
  78. package/dist/components/_shared/option.d.ts +2 -0
  79. package/dist/components/_shared/patient-fields.d.ts +1 -1
  80. package/dist/components/address-fields/address-fields.agent.d.ts +9 -0
  81. package/dist/components/address-fields/address-fields.d.ts +29 -0
  82. package/dist/components/address-fields/index.d.ts +5 -0
  83. package/dist/components/address-fields/index.js +6 -0
  84. package/dist/components/ai-prompt-input/index.js +1 -1
  85. package/dist/components/anatomy-scheme/index.js +1 -1
  86. package/dist/components/app-frame/app-frame.d.ts +2 -2
  87. package/dist/components/app-frame/index.js +1 -1
  88. package/dist/components/appointment-card/index.js +2 -2
  89. package/dist/components/appointment-timeline/index.js +1 -1
  90. package/dist/components/audio-recorder/index.js +1 -1
  91. package/dist/components/autocomplete/autocomplete.d.ts +10 -0
  92. package/dist/components/autocomplete/index.js +1 -1
  93. package/dist/components/bishop-score/index.js +1 -1
  94. package/dist/components/booking/index.js +1 -1
  95. package/dist/components/button-group/index.js +1 -1
  96. package/dist/components/care-plan-card/index.js +1 -1
  97. package/dist/components/care-plan-entry-card/index.js +1 -1
  98. package/dist/components/care-plan-header/care-plan-header.d.ts +16 -5
  99. package/dist/components/care-plan-header/index.js +1 -1
  100. package/dist/components/chat-message/index.js +1 -1
  101. package/dist/components/city-input/city-input.agent.d.ts +8 -0
  102. package/dist/components/city-input/city-input.d.ts +57 -0
  103. package/dist/components/city-input/index.d.ts +5 -0
  104. package/dist/components/city-input/index.js +6 -0
  105. package/dist/components/combobox/combobox.d.ts +17 -0
  106. package/dist/components/combobox/index.js +1 -1
  107. package/dist/components/connection-status/connection-status.agent.d.ts +4 -0
  108. package/dist/components/connection-status/connection-status.d.ts +36 -0
  109. package/dist/components/connection-status/index.d.ts +4 -0
  110. package/dist/components/connection-status/index.js +6 -0
  111. package/dist/components/control-room-rail/control-room-context.d.ts +5 -5
  112. package/dist/components/control-room-rail/control-room-rail.agent.d.ts +4 -0
  113. package/dist/components/control-room-rail/control-room-rail.d.ts +5 -5
  114. package/dist/components/control-room-rail/index.d.ts +1 -0
  115. package/dist/components/control-room-rail/index.js +4 -3
  116. package/dist/components/counter/counter.d.ts +1 -1
  117. package/dist/components/country-select/country-select.agent.d.ts +8 -0
  118. package/dist/components/country-select/country-select.d.ts +51 -0
  119. package/dist/components/country-select/index.d.ts +6 -0
  120. package/dist/components/country-select/index.js +9 -0
  121. package/dist/components/country-select/iso-3166.d.ts +15 -0
  122. package/dist/components/data-table/cell-renderers/reorder-cell-renderer.d.ts +34 -0
  123. package/dist/components/data-table/index.d.ts +2 -0
  124. package/dist/components/data-table/index.js +13 -11
  125. package/dist/components/entity-summary/entity-summary.agent.d.ts +4 -0
  126. package/dist/components/entity-summary/entity-summary.d.ts +53 -4
  127. package/dist/components/entity-summary/index.js +1 -1
  128. package/dist/components/field-array/field-array.agent.d.ts +4 -0
  129. package/dist/components/field-array/field-array.d.ts +45 -0
  130. package/dist/components/field-array/index.d.ts +4 -0
  131. package/dist/components/field-array/index.js +6 -0
  132. package/dist/components/freemium-paywall/freemium-paywall.d.ts +1 -1
  133. package/dist/components/gestational-age-calculator/index.js +1 -1
  134. package/dist/components/iban-input/iban-input.agent.d.ts +4 -0
  135. package/dist/components/iban-input/iban-input.d.ts +51 -0
  136. package/dist/components/iban-input/index.d.ts +5 -0
  137. package/dist/components/iban-input/index.js +13 -0
  138. package/dist/components/iban-input/is-valid-iban.d.ts +31 -0
  139. package/dist/components/icon-picker/icon-picker.agent.d.ts +4 -0
  140. package/dist/components/icon-picker/icon-picker.d.ts +41 -0
  141. package/dist/components/icon-picker/index.d.ts +4 -0
  142. package/dist/components/icon-picker/index.js +6 -0
  143. package/dist/components/image-cropper/crop-geometry.d.ts +30 -0
  144. package/dist/components/image-cropper/image-cropper.agent.d.ts +4 -0
  145. package/dist/components/image-cropper/image-cropper.d.ts +32 -0
  146. package/dist/components/image-cropper/index.d.ts +5 -0
  147. package/dist/components/image-cropper/index.js +11 -0
  148. package/dist/components/index.d.ts +16 -1
  149. package/dist/components/message-card/index.js +1 -1
  150. package/dist/components/message-card/message-card.d.ts +14 -0
  151. package/dist/components/message-tray/index.js +1 -1
  152. package/dist/components/message-tray/message-tray.d.ts +4 -0
  153. package/dist/components/multi-select/index.js +1 -1
  154. package/dist/components/nav-grid/index.d.ts +4 -0
  155. package/dist/components/nav-grid/index.js +7 -0
  156. package/dist/components/nav-grid/nav-grid.agent.d.ts +4 -0
  157. package/dist/components/nav-grid/nav-grid.d.ts +41 -0
  158. package/dist/components/notes-panel/index.js +1 -1
  159. package/dist/components/notes-panel/notes-panel.agent.d.ts +4 -0
  160. package/dist/components/notes-panel/notes-panel.d.ts +30 -0
  161. package/dist/components/notification-card/index.js +1 -1
  162. package/dist/components/notification-card/notification-card.d.ts +15 -0
  163. package/dist/components/notification-tray/index.js +1 -1
  164. package/dist/components/notification-tray/notification-tray.d.ts +4 -0
  165. package/dist/components/operator-hero/index.js +1 -1
  166. package/dist/components/panel-header/index.d.ts +3 -0
  167. package/dist/components/panel-header/index.js +7 -0
  168. package/dist/components/panel-header/panel-header.d.ts +41 -0
  169. package/dist/components/patient-details/index.js +1 -1
  170. package/dist/components/patient-search/index.js +1 -1
  171. package/dist/components/patient-summary-card/index.js +1 -1
  172. package/dist/components/patient-table/index.js +1 -1
  173. package/dist/components/payment-card/index.js +1 -1
  174. package/dist/components/permission-matrix/index.d.ts +4 -0
  175. package/dist/components/permission-matrix/index.js +7 -0
  176. package/dist/components/permission-matrix/permission-matrix.agent.d.ts +4 -0
  177. package/dist/components/permission-matrix/permission-matrix.d.ts +47 -0
  178. package/dist/components/position-grid/index.d.ts +4 -0
  179. package/dist/components/position-grid/index.js +7 -0
  180. package/dist/components/position-grid/position-grid.agent.d.ts +4 -0
  181. package/dist/components/position-grid/position-grid.d.ts +39 -0
  182. package/dist/components/postal-code-input/index.d.ts +5 -0
  183. package/dist/components/postal-code-input/index.js +6 -0
  184. package/dist/components/postal-code-input/postal-code-input.agent.d.ts +8 -0
  185. package/dist/components/postal-code-input/postal-code-input.d.ts +27 -0
  186. package/dist/components/practice-results/index.js +1 -1
  187. package/dist/components/pregnancy-dating/index.js +1 -1
  188. package/dist/components/product-hub-tray/index.js +1 -1
  189. package/dist/components/product-hub-tray/product-hub-tray.d.ts +13 -1
  190. package/dist/components/province-select/index.d.ts +6 -0
  191. package/dist/components/province-select/index.js +7 -0
  192. package/dist/components/province-select/it-provinces.d.ts +8 -0
  193. package/dist/components/province-select/province-select.agent.d.ts +8 -0
  194. package/dist/components/province-select/province-select.d.ts +38 -0
  195. package/dist/components/public-footer/public-footer.d.ts +1 -1
  196. package/dist/components/public-header/index.js +1 -1
  197. package/dist/components/radiograph-panel/index.js +1 -1
  198. package/dist/components/reviews-panel/index.js +1 -1
  199. package/dist/components/rich-text-editor/editor-toolbar.d.ts +17 -0
  200. package/dist/components/rich-text-editor/index.js +1 -1
  201. package/dist/components/scroll-area/index.js +1 -1
  202. package/dist/components/select/index.js +1 -1
  203. package/dist/components/select/select.d.ts +8 -2
  204. package/dist/components/sheet/index.js +1 -1
  205. package/dist/components/sidebar/index.js +1 -1
  206. package/dist/components/skeleton/skeleton.d.ts +1 -1
  207. package/dist/components/tabs/index.js +1 -1
  208. package/dist/components/task-card/index.js +1 -1
  209. package/dist/components/task-card/task-card.d.ts +14 -6
  210. package/dist/components/task-tray/index.js +1 -1
  211. package/dist/components/tasks-panel/index.d.ts +4 -0
  212. package/dist/components/tasks-panel/index.js +6 -0
  213. package/dist/components/tasks-panel/tasks-panel.agent.d.ts +4 -0
  214. package/dist/components/tasks-panel/tasks-panel.d.ts +152 -0
  215. package/dist/components/token-insert-menu/index.d.ts +4 -0
  216. package/dist/components/token-insert-menu/index.js +6 -0
  217. package/dist/components/token-insert-menu/token-insert-menu.agent.d.ts +4 -0
  218. package/dist/components/token-insert-menu/token-insert-menu.d.ts +33 -0
  219. package/dist/components/tool-rail/index.d.ts +4 -0
  220. package/dist/components/tool-rail/index.js +6 -0
  221. package/dist/components/tool-rail/tool-rail.agent.d.ts +4 -0
  222. package/dist/components/{ai-tools-rail/ai-tools-rail.d.ts → tool-rail/tool-rail.d.ts} +29 -12
  223. package/dist/components/tooth-scheme/index.js +1 -1
  224. package/dist/components/tooth-scheme/tooth-scheme.d.ts +9 -0
  225. package/dist/components/transcript-panel/index.js +1 -1
  226. package/dist/components/transcript-panel/transcript-panel.d.ts +2 -2
  227. package/dist/components/unit-converter/index.js +1 -1
  228. package/dist/components/workflow/index.js +1 -1
  229. package/dist/hooks/use-edge-resize.d.ts +2 -2
  230. package/dist/i18n/locales/ar.d.ts +167 -2
  231. package/dist/i18n/locales/ar.js +157 -5
  232. package/dist/i18n/locales/de.d.ts +167 -2
  233. package/dist/i18n/locales/de.js +159 -5
  234. package/dist/i18n/locales/el.d.ts +167 -2
  235. package/dist/i18n/locales/el.js +164 -5
  236. package/dist/i18n/locales/en.d.ts +167 -2
  237. package/dist/i18n/locales/en.js +170 -5
  238. package/dist/i18n/locales/es.d.ts +167 -2
  239. package/dist/i18n/locales/es.js +156 -5
  240. package/dist/i18n/locales/fr.d.ts +167 -2
  241. package/dist/i18n/locales/fr.js +159 -5
  242. package/dist/i18n/locales/hi.d.ts +167 -2
  243. package/dist/i18n/locales/hi.js +155 -5
  244. package/dist/i18n/locales/it.d.ts +167 -2
  245. package/dist/i18n/locales/it.js +159 -5
  246. package/dist/i18n/locales/ja.d.ts +167 -2
  247. package/dist/i18n/locales/ja.js +160 -5
  248. package/dist/i18n/locales/nl.d.ts +167 -2
  249. package/dist/i18n/locales/nl.js +152 -5
  250. package/dist/i18n/locales/pl.d.ts +167 -2
  251. package/dist/i18n/locales/pl.js +160 -5
  252. package/dist/i18n/locales/pt.d.ts +167 -2
  253. package/dist/i18n/locales/pt.js +164 -5
  254. package/dist/i18n/locales/ro.d.ts +167 -2
  255. package/dist/i18n/locales/ro.js +164 -5
  256. package/dist/i18n/locales/ru.d.ts +167 -2
  257. package/dist/i18n/locales/ru.js +157 -5
  258. package/dist/i18n/locales/sq.d.ts +167 -2
  259. package/dist/i18n/locales/sq.js +161 -5
  260. package/dist/i18n/locales/sv.d.ts +167 -2
  261. package/dist/i18n/locales/sv.js +159 -5
  262. package/dist/i18n/locales/tr.d.ts +167 -2
  263. package/dist/i18n/locales/tr.js +157 -5
  264. package/dist/i18n/locales/zh.d.ts +167 -2
  265. package/dist/i18n/locales/zh.js +152 -5
  266. package/dist/index.js +823 -755
  267. package/dist/locales/ar.json +170 -5
  268. package/dist/locales/de.json +170 -5
  269. package/dist/locales/el.json +170 -5
  270. package/dist/locales/en.json +170 -5
  271. package/dist/locales/es.json +170 -5
  272. package/dist/locales/fr.json +170 -5
  273. package/dist/locales/hi.json +170 -5
  274. package/dist/locales/it.json +170 -5
  275. package/dist/locales/ja.json +170 -5
  276. package/dist/locales/nl.json +170 -5
  277. package/dist/locales/pl.json +170 -5
  278. package/dist/locales/pt.json +170 -5
  279. package/dist/locales/ro.json +170 -5
  280. package/dist/locales/ru.json +170 -5
  281. package/dist/locales/sq.json +170 -5
  282. package/dist/locales/sv.json +170 -5
  283. package/dist/locales/tr.json +170 -5
  284. package/dist/locales/zh.json +170 -5
  285. package/dist/patterns/alia-assistant/alia-types.d.ts +9 -0
  286. package/dist/patterns/alia-assistant/index.js +1 -1
  287. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  288. package/dist/patterns/patient-shell/index.js +1 -1
  289. package/dist/tokens.css +9 -1
  290. package/package.json +65 -5
  291. package/dist/_chunks/care-plan-header-BUwqDTtz.js +0 -206
  292. package/dist/_chunks/control-room-rail-Y8ryLYsP.js +0 -229
  293. package/dist/_chunks/editable-currency-cell-renderer-C9twtALM.js +0 -328
  294. package/dist/_chunks/entity-summary-BxRjFh_4.js +0 -138
  295. package/dist/_chunks/message-card-Bx4GmLvf.js +0 -277
  296. package/dist/_chunks/notes-panel-ay8_lPrA.js +0 -158
  297. package/dist/_chunks/notification-card-D2jiKSJJ.js +0 -259
  298. package/dist/_chunks/radiograph-panel.agent-CAX-C3g3.js +0 -558
  299. package/dist/_chunks/reviews-panel-Dq7LMDcH.js +0 -555
  300. package/dist/_chunks/rich-text-editor-DlCqPixb.js +0 -2158
  301. package/dist/_chunks/task-card-BwY9jaV1.js +0 -124
  302. package/dist/components/ai-tools-rail/ai-tools-rail.agent.d.ts +0 -4
  303. package/dist/components/ai-tools-rail/index.d.ts +0 -4
  304. package/dist/components/ai-tools-rail/index.js +0 -6
@@ -1,26 +1,28 @@
1
- import { jsx as e, jsxs as r, Fragment as S } from "react/jsx-runtime";
2
- import { forwardRef as F, useRef as w, useMemo as G, useImperativeHandle as J } from "react";
3
- import { c as b } from "./index-D2ZczOXr.js";
4
- import { useTranslation as R } from "react-i18next";
5
- import { E as se } from "./empty-state-BLy7tigq.js";
6
- import { L as Q } from "./link-DrD_cRUg.js";
7
- import { S as W } from "./separator-CYU_bGFn.js";
8
- import { i as _ } from "./is-safe-url-DkETxeHz.js";
9
- import { u as X } from "./registry-DvAUVLHh.js";
10
- import * as C from "@radix-ui/react-popover";
11
- import { u as ae } from "./use-controllable-state-BiY4xTzM.js";
12
- import { I as te } from "./icon-button-LqoiKcUN.js";
13
- import { S as z } from "./skeleton-CZbwyJAA.js";
14
- import { T as re } from "./timestamp-BV2lC-wV.js";
15
- import { s as de } from "./safe-image-src-DstKgCo7.js";
16
- import { c as ne } from "./createLucideIcon-CrFbzy84.js";
1
+ import { jsx as e, jsxs as r, Fragment as V } from "react/jsx-runtime";
2
+ import { forwardRef as F, useRef as T, useMemo as G, useImperativeHandle as X } from "react";
3
+ import { c as x } from "./index-D2ZczOXr.js";
4
+ import { useTranslation as L } from "react-i18next";
5
+ import { E as ae } from "./empty-state-BLy7tigq.js";
6
+ import { L as A } from "./link-DrD_cRUg.js";
7
+ import { S as _ } from "./separator-CYU_bGFn.js";
8
+ import { i as W } from "./is-safe-url-DkETxeHz.js";
9
+ import { u as J } from "./registry-DvAUVLHh.js";
10
+ import * as j from "@radix-ui/react-popover";
11
+ import { u as te } from "./use-controllable-state-BiY4xTzM.js";
12
+ import { I as Q } from "./icon-button-LqoiKcUN.js";
13
+ import { S as re } from "./scroll-area-BZOvUhwQ.js";
14
+ import { S as R } from "./skeleton-CZbwyJAA.js";
15
+ import { T as de } from "./timestamp-BV2lC-wV.js";
16
+ import { s as ne } from "./safe-image-src-DstKgCo7.js";
17
+ import { c as oe } from "./createLucideIcon-CrFbzy84.js";
18
+ import { X as ie } from "./x-CCcI3eJp.js";
17
19
  /**
18
20
  * @license lucide-react v1.8.0 - ISC
19
21
  *
20
22
  * This source code is licensed under the ISC license.
21
23
  * See the LICENSE file in the root directory of this source tree.
22
24
  */
23
- const oe = [
25
+ const ce = [
24
26
  ["path", { d: "M12 7v14", key: "1akyts" }],
25
27
  ["path", { d: "M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8", key: "1sqzm4" }],
26
28
  [
@@ -28,7 +30,7 @@ const oe = [
28
30
  { d: "M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5", key: "kc0143" }
29
31
  ],
30
32
  ["rect", { x: "3", y: "7", width: "18", height: "4", rx: "1", key: "1hberx" }]
31
- ], V = ne("gift", oe), ie = {
33
+ ], O = oe("gift", ce), le = {
32
34
  id: "product-hub-tray",
33
35
  capabilities: ["open", "close"],
34
36
  state: {
@@ -75,7 +77,7 @@ const oe = [
75
77
  description: "Stable release id emitted on each rendered release row inside the tray."
76
78
  }
77
79
  }
78
- }, le = b(
80
+ }, pe = x(
79
81
  "ds:relative ds:inline-flex ds:items-center",
80
82
  {
81
83
  variants: {
@@ -88,7 +90,7 @@ const oe = [
88
90
  size: "md"
89
91
  }
90
92
  }
91
- ), ce = b(
93
+ ), ue = x(
92
94
  [
93
95
  "ds:flex ds:flex-col",
94
96
  "ds:bg-[var(--popover)] ds:text-[var(--popover-foreground)]",
@@ -120,7 +122,7 @@ const oe = [
120
122
  size: "md"
121
123
  }
122
124
  }
123
- ), ue = b(
125
+ ), me = x(
124
126
  [
125
127
  // Anchored to the top-end corner of the trigger, nudged outward so
126
128
  // the gift glyph isn't covered.
@@ -136,9 +138,11 @@ const oe = [
136
138
  "ds:pointer-events-none ds:select-none",
137
139
  "ds:forced-colors:outline ds:forced-colors:outline-1 ds:forced-colors:outline-[CanvasText]"
138
140
  ].join(" ")
139
- ), pe = b(
141
+ ), fe = x(
140
142
  [
141
- "ds:relative ds:flex ds:items-start",
143
+ // `group` so the hover/focus-revealed close button can react to the whole
144
+ // row, not just itself.
145
+ "ds:group ds:relative ds:flex ds:items-start",
142
146
  "ds:rounded-[var(--radius-sm)]",
143
147
  "ds:text-start",
144
148
  "ds:transition-colors ds:motion-reduce:transition-none"
@@ -149,17 +153,28 @@ const oe = [
149
153
  tray: "ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]",
150
154
  panel: "ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]"
151
155
  },
156
+ // Unseen no longer tints the background — the read/new state is carried
157
+ // by the leading-corner Gift indicator instead, matching the
158
+ // notification / message cards.
152
159
  unseen: {
153
- true: "ds:bg-[color:var(--accent)]/5 ds:hover:bg-[color:var(--accent)]/10",
160
+ true: "ds:hover:bg-[color:var(--muted)]/40",
154
161
  false: "ds:hover:bg-[color:var(--muted)]/40"
162
+ },
163
+ // Row chrome: flat (inside a bordered tray/panel) vs elevated (own card
164
+ // on a rail). Mirrors AppointmentCard / NotificationCard so the Inbox
165
+ // feed reads consistently with the other rail panels.
166
+ surface: {
167
+ flat: "",
168
+ elevated: "ds:border ds:border-[color:var(--card-border)] ds:[.theme-accessible_&]:border-2 ds:shadow-[var(--shadow-sm)]"
155
169
  }
156
170
  },
157
171
  defaultVariants: {
158
172
  density: "tray",
159
- unseen: !1
173
+ unseen: !1,
174
+ surface: "flat"
160
175
  }
161
176
  }
162
- ), $ = b(
177
+ ), $ = x(
163
178
  [
164
179
  "ds:shrink-0 ds:rounded-[var(--radius-sm)] ds:object-cover",
165
180
  // Tile backdrop so transparent / still-loading thumbnails keep a
@@ -178,7 +193,7 @@ const oe = [
178
193
  density: "tray"
179
194
  }
180
195
  }
181
- ), me = [
196
+ ), ve = [
182
197
  "ds:focus-visible:outline-none",
183
198
  "ds:after:content-[''] ds:after:absolute ds:after:inset-0 ds:after:rounded-[var(--radius-sm)]",
184
199
  "ds:after:pointer-events-auto",
@@ -191,90 +206,108 @@ const oe = [
191
206
  function Y({
192
207
  item: s,
193
208
  density: a = "tray",
194
- locale: o,
195
- onActivate: i,
196
- className: l,
197
- ...u
209
+ surface: i = "flat",
210
+ locale: m,
211
+ onActivate: o,
212
+ onDismiss: c,
213
+ className: f,
214
+ ...v
198
215
  }) {
199
- const { t: p } = R(), m = de(s.imageUrl), y = !!s.url && _(s.url), d = !!s.unseen, f = d ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: p("productHubTray.unseenLabel", ", new") }) : null;
216
+ const { t: u } = L(), n = ne(s.imageUrl), w = !!s.url && W(s.url), l = !!s.unseen, N = a === "panel" ? "ds:top-[var(--spacing-md)] ds:end-[var(--spacing-md)]" : "ds:top-[var(--spacing-sm)] ds:end-[var(--spacing-sm)]", g = l ? /* @__PURE__ */ e("span", { className: "ds:sr-only", children: u("productHubTray.unseenLabel", ", new") }) : null;
200
217
  return /* @__PURE__ */ r(
201
218
  "div",
202
219
  {
203
220
  role: "listitem",
204
221
  "data-component": "product-hub-update",
205
222
  "data-update-id": s.id,
206
- "data-unseen": d ? "true" : "false",
207
- className: pe({ density: a, unseen: d, className: l }),
208
- ...u,
223
+ "data-unseen": l ? "true" : "false",
224
+ className: fe({ density: a, unseen: l, surface: i, className: f }),
225
+ ...v,
209
226
  children: [
210
- m ? /* @__PURE__ */ e(
211
- "img",
212
- {
213
- src: m,
214
- alt: "",
215
- "aria-hidden": "true",
216
- referrerPolicy: "no-referrer",
217
- loading: "lazy",
218
- className: $({ density: a })
219
- }
220
- ) : /* @__PURE__ */ e(
221
- "span",
222
- {
223
- "aria-hidden": "true",
224
- className: `${$({ density: a })} ds:inline-flex ds:items-center ds:justify-center ds:text-[color:var(--muted-foreground)] ds:[&>svg]:size-5`,
225
- children: /* @__PURE__ */ e(V, {})
226
- }
227
- ),
227
+ /* @__PURE__ */ r("span", { className: "ds:relative ds:shrink-0", children: [
228
+ n ? /* @__PURE__ */ e(
229
+ "img",
230
+ {
231
+ src: n,
232
+ alt: "",
233
+ "aria-hidden": "true",
234
+ referrerPolicy: "no-referrer",
235
+ loading: "lazy",
236
+ className: $({ density: a })
237
+ }
238
+ ) : /* @__PURE__ */ e(
239
+ "span",
240
+ {
241
+ "aria-hidden": "true",
242
+ className: `${$({ density: a })} ds:inline-flex ds:items-center ds:justify-center ds:text-[color:var(--muted-foreground)] ds:[&>svg]:size-5`,
243
+ children: /* @__PURE__ */ e(O, {})
244
+ }
245
+ ),
246
+ l ? /* @__PURE__ */ e(
247
+ "span",
248
+ {
249
+ "aria-hidden": "true",
250
+ "data-testid": "product-hub-unseen-dot",
251
+ className: "ds:absolute ds:top-[calc(var(--spacing-xs)*-1)] ds:end-[calc(var(--spacing-xs)*-1)] ds:z-[1] ds:block ds:size-[calc(var(--spacing-sm)+var(--spacing-xs))] ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)] ds:ring-2 ds:ring-[color:var(--card)] ds:forced-colors:bg-[Highlight]"
252
+ }
253
+ ) : null
254
+ ] }),
228
255
  /* @__PURE__ */ r("div", { className: "ds:min-w-0 ds:flex-1 ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
229
- /* @__PURE__ */ r("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-xs)] type-title-item ds:text-[color:var(--foreground)]", children: [
230
- d ? /* @__PURE__ */ e(
231
- "span",
256
+ /* @__PURE__ */ e("span", { className: "ds:flex ds:items-center ds:gap-[var(--spacing-sm)] type-title-item ds:text-[color:var(--foreground)]", children: w ? (
257
+ // A real (non-display:contents) anchor so the row is reliably
258
+ // keyboard-focusable; the ::after stretch keeps the whole row
259
+ // clickable and carries the focus ring.
260
+ /* @__PURE__ */ r(
261
+ "a",
232
262
  {
233
- "aria-hidden": "true",
234
- "data-testid": "product-hub-unseen-dot",
235
- className: "ds:inline-block ds:size-1.5 ds:shrink-0 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--primary)] ds:forced-colors:bg-[Highlight]"
263
+ href: s.url,
264
+ target: "_blank",
265
+ rel: "noopener noreferrer",
266
+ className: `${ve} ds:min-w-0 ds:flex-1 ds:no-underline ds:text-[color:var(--foreground)]`,
267
+ onClick: () => o == null ? void 0 : o(s),
268
+ children: [
269
+ /* @__PURE__ */ e("span", { className: "ds:block ds:truncate ds:font-semibold", children: s.title }),
270
+ g,
271
+ /* @__PURE__ */ e("span", { className: "ds:sr-only", children: u("productHubTray.opensInNewTab", "(opens in a new tab)") })
272
+ ]
236
273
  }
237
- ) : null,
238
- y ? (
239
- // A real (non-display:contents) anchor so the row is reliably
240
- // keyboard-focusable; the ::after stretch keeps the whole row
241
- // clickable and carries the focus ring.
242
- /* @__PURE__ */ r(
243
- "a",
244
- {
245
- href: s.url,
246
- target: "_blank",
247
- rel: "noopener noreferrer",
248
- className: `${me} ds:min-w-0 ds:flex-1 ds:no-underline ds:text-[color:var(--foreground)]`,
249
- onClick: () => i == null ? void 0 : i(s),
250
- children: [
251
- /* @__PURE__ */ e("span", { className: "ds:block ds:truncate ds:font-semibold", children: s.title }),
252
- f,
253
- /* @__PURE__ */ e("span", { className: "ds:sr-only", children: p("productHubTray.opensInNewTab", "(opens in a new tab)") })
254
- ]
255
- }
256
- )
257
- ) : /* @__PURE__ */ r(S, { children: [
258
- /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:flex-1 ds:truncate ds:font-semibold", children: s.title }),
259
- f
260
- ] })
261
- ] }),
274
+ )
275
+ ) : /* @__PURE__ */ r(V, { children: [
276
+ /* @__PURE__ */ e("span", { className: "ds:min-w-0 ds:flex-1 ds:truncate ds:font-semibold", children: s.title }),
277
+ g
278
+ ] }) }),
262
279
  s.summary ? /* @__PURE__ */ e("p", { className: "ds:m-0 type-body-sm ds:text-[color:var(--muted-foreground)] ds:[overflow:hidden] ds:[display:-webkit-box] ds:[-webkit-box-orient:vertical] ds:[-webkit-line-clamp:2] ds:break-words", children: s.summary }) : null,
263
280
  s.dateIso ? /* @__PURE__ */ e(
264
- re,
281
+ de,
265
282
  {
266
283
  value: s.dateIso,
267
284
  format: "absolute",
268
- locale: o,
285
+ locale: m,
269
286
  className: "ds:italic ds:text-[color:var(--muted-foreground)]"
270
287
  }
271
288
  ) : null
272
- ] })
289
+ ] }),
290
+ c ? /* @__PURE__ */ e(
291
+ "span",
292
+ {
293
+ className: "ds:absolute ds:z-[2] ds:opacity-0 ds:pointer-events-none ds:transition-opacity ds:motion-reduce:transition-none ds:group-hover:opacity-100 ds:group-hover:pointer-events-auto ds:group-focus-within:opacity-100 ds:group-focus-within:pointer-events-auto " + N,
294
+ children: /* @__PURE__ */ e(
295
+ Q,
296
+ {
297
+ icon: /* @__PURE__ */ e(ie, {}),
298
+ intent: "ghost",
299
+ size: "sm",
300
+ "aria-label": u("productHubTray.dismiss", "Dismiss update"),
301
+ onClick: () => c(s)
302
+ }
303
+ )
304
+ }
305
+ ) : null
273
306
  ]
274
307
  }
275
308
  );
276
309
  }
277
- function j({
310
+ function I({
278
311
  density: s = "tray"
279
312
  }) {
280
313
  return /* @__PURE__ */ r(
@@ -284,7 +317,7 @@ function j({
284
317
  className: s === "panel" ? "ds:flex ds:items-start ds:gap-[var(--spacing-md)] ds:p-[var(--spacing-md)]" : "ds:flex ds:items-start ds:gap-[var(--spacing-sm)] ds:p-[var(--spacing-sm)]",
285
318
  children: [
286
319
  /* @__PURE__ */ e(
287
- z,
320
+ R,
288
321
  {
289
322
  variant: "rounded",
290
323
  width: s === "panel" ? "3rem" : "2.5rem",
@@ -292,9 +325,9 @@ function j({
292
325
  }
293
326
  ),
294
327
  /* @__PURE__ */ r("div", { className: "ds:flex-1 ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: [
295
- /* @__PURE__ */ e(z, { variant: "text", size: "md", width: "60%" }),
296
- /* @__PURE__ */ e(z, { variant: "text", size: "sm", width: "90%" }),
297
- /* @__PURE__ */ e(z, { variant: "text", size: "sm", width: "30%" })
328
+ /* @__PURE__ */ e(R, { variant: "text", size: "md", width: "60%" }),
329
+ /* @__PURE__ */ e(R, { variant: "text", size: "sm", width: "90%" }),
330
+ /* @__PURE__ */ e(R, { variant: "text", size: "sm", width: "30%" })
298
331
  ] })
299
332
  ]
300
333
  }
@@ -311,11 +344,11 @@ function Z({ children: s }) {
311
344
  }
312
345
  );
313
346
  }
314
- function fe(s, a) {
347
+ function ge(s, a) {
315
348
  return s > 99 ? a : String(s);
316
349
  }
317
- function ve() {
318
- const { t: s } = R();
350
+ function he() {
351
+ const { t: s } = L();
319
352
  return /* @__PURE__ */ r(
320
353
  "div",
321
354
  {
@@ -328,7 +361,7 @@ function ve() {
328
361
  {
329
362
  "aria-hidden": "true",
330
363
  className: "ds:inline-flex ds:items-center ds:justify-center ds:size-10 ds:rounded-[var(--radius-full)] ds:bg-[color:var(--muted)] ds:text-[color:var(--muted-foreground)] ds:[&>svg]:size-5",
331
- children: /* @__PURE__ */ e(V, {})
364
+ children: /* @__PURE__ */ e(O, {})
332
365
  }
333
366
  ),
334
367
  /* @__PURE__ */ e("p", { className: "type-title-item ds:text-[color:var(--foreground)]", children: s("productHubTray.emptyTitle", "No product updates yet") }),
@@ -340,79 +373,79 @@ function ve() {
340
373
  }
341
374
  );
342
375
  }
343
- const ge = F(
376
+ const be = F(
344
377
  ({
345
378
  id: s,
346
379
  items: a,
347
- hubUrl: o,
348
- loading: i = !1,
349
- error: l,
350
- unseenCount: u,
351
- onOpenChange: p,
352
- onItemActivate: m,
353
- triggerLabel: y,
354
- maxVisible: d = 10,
355
- emptyState: f,
356
- defaultOpen: I = !1,
357
- locale: L,
358
- align: O = "end",
380
+ hubUrl: i,
381
+ loading: m = !1,
382
+ error: o,
383
+ unseenCount: c,
384
+ onOpenChange: f,
385
+ onItemActivate: v,
386
+ triggerLabel: u,
387
+ maxVisible: n = 10,
388
+ emptyState: w,
389
+ defaultOpen: l = !1,
390
+ locale: N,
391
+ align: g = "end",
359
392
  side: M = "bottom",
360
- size: c = "md",
361
- className: N,
362
- ...H
363
- }, T) => {
364
- const { t: n } = R(), [v, g] = ae({
365
- defaultValue: I,
366
- onChange: p
367
- }), k = v ?? !1, t = u ?? a.filter((h) => h.unseen).length, P = y ?? (t > 0 ? n("productHubTray.triggerLabel", {
393
+ size: p = "md",
394
+ className: k,
395
+ ...P
396
+ }, z) => {
397
+ const { t: d } = L(), [h, b] = te({
398
+ defaultValue: l,
399
+ onChange: f
400
+ }), C = h ?? !1, t = c ?? a.filter((y) => y.unseen).length, S = u ?? (t > 0 ? d("productHubTray.triggerLabel", {
368
401
  count: t,
369
402
  defaultValue: "What's new, {{count}} unseen updates"
370
- }) : n("productHubTray.triggerLabelNone", "What's new")), U = fe(
403
+ }) : d("productHubTray.triggerLabelNone", "What's new")), U = ge(
371
404
  t,
372
- n("productHubTray.badgeCountOverflow", "99+")
373
- ), K = a.slice(0, Math.max(0, d)), A = !l && !i && K.length > 0, q = o && _(o) ? o : void 0, E = w(a);
405
+ d("productHubTray.badgeCountOverflow", "99+")
406
+ ), K = a.slice(0, Math.max(0, n)), ee = !o && !m && K.length > 0, q = i && W(i) ? i : void 0, E = T(a);
374
407
  E.current = a;
375
- const B = w(u);
376
- B.current = u;
377
- const ee = G(
408
+ const B = T(c);
409
+ B.current = c;
410
+ const se = G(
378
411
  () => ({
379
- open: () => g(!0),
380
- close: () => g(!1),
381
- getUnseenCount: () => B.current ?? E.current.filter((h) => h.unseen).length
412
+ open: () => b(!0),
413
+ close: () => b(!1),
414
+ getUnseenCount: () => B.current ?? E.current.filter((y) => y.unseen).length
382
415
  }),
383
- [g]
384
- ), D = w(null);
385
- J(T, () => D.current, []), X(ie, ee, s);
386
- let x;
387
- return l ? x = /* @__PURE__ */ e(Z, { children: l }) : i ? x = /* @__PURE__ */ r(S, { children: [
388
- /* @__PURE__ */ e(j, {}),
389
- /* @__PURE__ */ e(j, {}),
390
- /* @__PURE__ */ e(j, {})
391
- ] }) : K.length === 0 ? x = f ?? /* @__PURE__ */ e(ve, {}) : x = K.map((h) => /* @__PURE__ */ e(
416
+ [b]
417
+ ), D = T(null);
418
+ X(z, () => D.current, []), J(le, se, s);
419
+ let H;
420
+ return o ? H = /* @__PURE__ */ e(Z, { children: o }) : m ? H = /* @__PURE__ */ r(V, { children: [
421
+ /* @__PURE__ */ e(I, {}),
422
+ /* @__PURE__ */ e(I, {}),
423
+ /* @__PURE__ */ e(I, {})
424
+ ] }) : K.length === 0 ? H = w ?? /* @__PURE__ */ e(he, {}) : H = K.map((y) => /* @__PURE__ */ e(
392
425
  Y,
393
426
  {
394
- item: h,
427
+ item: y,
395
428
  density: "tray",
396
- locale: L,
397
- onActivate: m
429
+ locale: N,
430
+ onActivate: v
398
431
  },
399
- h.id
432
+ y.id
400
433
  )), /* @__PURE__ */ e(
401
434
  "div",
402
435
  {
403
436
  ref: D,
404
437
  "data-component": "product-hub-tray",
405
438
  "data-component-id": s,
406
- className: [le({ size: c }), N].filter(Boolean).join(" "),
407
- ...H,
408
- children: /* @__PURE__ */ r(C.Root, { open: k, onOpenChange: g, children: [
409
- /* @__PURE__ */ e(C.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
410
- te,
439
+ className: [pe({ size: p }), k].filter(Boolean).join(" "),
440
+ ...P,
441
+ children: /* @__PURE__ */ r(j.Root, { open: C, onOpenChange: b, children: [
442
+ /* @__PURE__ */ e(j.Trigger, { asChild: !0, children: /* @__PURE__ */ e(
443
+ Q,
411
444
  {
412
- icon: /* @__PURE__ */ e(V, {}),
445
+ icon: /* @__PURE__ */ e(O, {}),
413
446
  intent: "outline",
414
- size: c === "sm" ? "sm" : "md",
415
- "aria-label": P,
447
+ size: p === "sm" ? "sm" : "md",
448
+ "aria-label": S,
416
449
  "aria-haspopup": "dialog"
417
450
  }
418
451
  ) }),
@@ -421,35 +454,42 @@ const ge = F(
421
454
  {
422
455
  "aria-hidden": "true",
423
456
  "data-testid": "product-hub-tray-badge",
424
- className: ue(),
457
+ className: me(),
425
458
  children: U
426
459
  }
427
460
  ) : null,
428
- /* @__PURE__ */ e(C.Portal, { children: /* @__PURE__ */ r(
429
- C.Content,
461
+ /* @__PURE__ */ e(j.Portal, { children: /* @__PURE__ */ r(
462
+ j.Content,
430
463
  {
431
464
  role: "dialog",
432
- "aria-label": n("productHubTray.panelTitle", "What's new"),
465
+ "aria-label": d("productHubTray.panelTitle", "What's new"),
433
466
  side: M,
434
- align: O,
467
+ align: g,
435
468
  sideOffset: 8,
436
469
  collisionPadding: 16,
437
- className: ce({ size: c }),
470
+ className: ue({ size: p }),
438
471
  children: [
439
- /* @__PURE__ */ e("div", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e("h3", { className: "ds:m-0 type-title-card ds:text-[color:var(--foreground)]", children: n("productHubTray.panelTitle", "What's new") }) }),
440
- /* @__PURE__ */ e(W, {}),
472
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:items-center ds:justify-between ds:gap-[var(--spacing-sm)] ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e("h3", { className: "ds:m-0 type-title-card ds:text-[color:var(--foreground)]", children: d("productHubTray.panelTitle", "What's new") }) }),
473
+ /* @__PURE__ */ e(_, {}),
441
474
  /* @__PURE__ */ e(
442
- "div",
475
+ re,
443
476
  {
444
- role: A ? "list" : void 0,
445
- "data-max-visible": d,
446
- className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:overflow-y-auto ds:pt-[var(--spacing-xs)] ds:flex-1 ds:sm:flex-none ds:sm:[max-block-size:var(--product-hub-tray-max-block-size,24rem)]",
447
- children: x
477
+ orientation: "vertical",
478
+ className: "ds:flex-1 ds:sm:flex-none ds:sm:[max-block-size:var(--product-hub-tray-max-block-size,24rem)]",
479
+ children: /* @__PURE__ */ e(
480
+ "div",
481
+ {
482
+ role: ee ? "list" : void 0,
483
+ "data-max-visible": n,
484
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:pt-[var(--spacing-xs)]",
485
+ children: H
486
+ }
487
+ )
448
488
  }
449
489
  ),
450
- q ? /* @__PURE__ */ r(S, { children: [
451
- /* @__PURE__ */ e(W, {}),
452
- /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e(Q, { href: q, external: !0, children: n("productHubTray.openHub", "Open in Product Hub") }) })
490
+ q ? /* @__PURE__ */ r(V, { children: [
491
+ /* @__PURE__ */ e(_, {}),
492
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:pt-[var(--spacing-sm)] ds:pb-[var(--spacing-xs)]", children: /* @__PURE__ */ e(A, { href: q, external: !0, children: d("productHubTray.openHub", "Open in Product Hub") }) })
453
493
  ] }) : null
454
494
  ]
455
495
  }
@@ -459,8 +499,8 @@ const ge = F(
459
499
  );
460
500
  }
461
501
  );
462
- ge.displayName = "ProductHubTray";
463
- const he = {
502
+ be.displayName = "ProductHubTray";
503
+ const ye = {
464
504
  id: "product-hub-panel",
465
505
  // selectItem activates one release row (fires the host hook) without
466
506
  // persisting a stored selection → `pick`, not `select_single`.
@@ -520,7 +560,7 @@ const he = {
520
560
  description: "Stable release id emitted on each rendered release row inside the panel."
521
561
  }
522
562
  }
523
- }, be = b(
563
+ }, xe = x(
524
564
  [
525
565
  "ds:flex ds:flex-col",
526
566
  "ds:rounded-[var(--radius-md)]",
@@ -540,99 +580,99 @@ const he = {
540
580
  surface: "elevated"
541
581
  }
542
582
  }
543
- ), ye = F(
583
+ ), we = F(
544
584
  ({
545
585
  id: s,
546
586
  items: a,
547
- hubUrl: o,
548
- loading: i = !1,
549
- error: l,
550
- title: u,
551
- description: p,
552
- maxVisible: m = 5,
553
- emptyState: y,
554
- onItemActivate: d,
555
- locale: f,
556
- surface: I = "elevated",
557
- className: L,
558
- ...O
587
+ hubUrl: i,
588
+ loading: m = !1,
589
+ error: o,
590
+ title: c,
591
+ description: f,
592
+ maxVisible: v = 5,
593
+ emptyState: u,
594
+ onItemActivate: n,
595
+ locale: w,
596
+ surface: l = "elevated",
597
+ className: N,
598
+ ...g
559
599
  }, M) => {
560
- const { t: c } = R(), N = u ?? c("productHubPanel.title", "What's new"), H = a.slice(0, Math.max(0, m)), T = o && _(o) ? o : void 0;
561
- let n;
562
- l ? n = /* @__PURE__ */ e(Z, { children: l }) : i ? n = /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-sm)] ds:pt-0", children: [0, 1, 2].map((t) => /* @__PURE__ */ e(j, { density: "panel" }, t)) }) : H.length === 0 ? n = y ?? /* @__PURE__ */ e("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ e(
563
- se,
600
+ const { t: p } = L(), k = c ?? p("productHubPanel.title", "What's new"), P = a.slice(0, Math.max(0, v)), z = i && W(i) ? i : void 0;
601
+ let d;
602
+ o ? d = /* @__PURE__ */ e(Z, { children: o }) : m ? d = /* @__PURE__ */ e("div", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-sm)] ds:pt-0", children: [0, 1, 2].map((t) => /* @__PURE__ */ e(I, { density: "panel" }, t)) }) : P.length === 0 ? d = u ?? /* @__PURE__ */ e("div", { className: "ds:p-[var(--spacing-md)]", children: /* @__PURE__ */ e(
603
+ ae,
564
604
  {
565
605
  variant: "first-use",
566
606
  size: "sm",
567
- title: c("productHubPanel.emptyTitle", "No product updates yet"),
568
- description: c(
607
+ title: p("productHubPanel.emptyTitle", "No product updates yet"),
608
+ description: p(
569
609
  "productHubPanel.emptyDescription",
570
610
  "New releases and improvements will appear here."
571
611
  )
572
612
  }
573
- ) }) : n = /* @__PURE__ */ e(
613
+ ) }) : d = /* @__PURE__ */ e(
574
614
  "div",
575
615
  {
576
616
  role: "list",
577
- "data-max-visible": m,
617
+ "data-max-visible": v,
578
618
  className: "ds:flex ds:flex-col ds:gap-[var(--spacing-xs)] ds:p-[var(--spacing-sm)] ds:pt-0",
579
- children: H.map((t) => /* @__PURE__ */ e(
619
+ children: P.map((t) => /* @__PURE__ */ e(
580
620
  Y,
581
621
  {
582
622
  item: t,
583
623
  density: "panel",
584
- locale: f,
585
- onActivate: d
624
+ locale: w,
625
+ onActivate: n
586
626
  },
587
627
  t.id
588
628
  ))
589
629
  }
590
630
  );
591
- const v = w(a);
592
- v.current = a;
593
- const g = G(
631
+ const h = T(a);
632
+ h.current = a;
633
+ const b = G(
594
634
  () => ({
595
- getItems: () => v.current.map((t) => ({ id: t.id, unseen: !!t.unseen })),
596
- getUnseenCount: () => v.current.filter((t) => t.unseen).length,
635
+ getItems: () => h.current.map((t) => ({ id: t.id, unseen: !!t.unseen })),
636
+ getUnseenCount: () => h.current.filter((t) => t.unseen).length,
597
637
  selectItem: (t) => {
598
- const P = v.current.find((U) => U.id === t);
599
- P && (d == null || d(P));
638
+ const S = h.current.find((U) => U.id === t);
639
+ S && (n == null || n(S));
600
640
  }
601
641
  }),
602
- [d]
603
- ), k = w(null);
604
- return J(M, () => k.current, []), X(he, g, s), /* @__PURE__ */ r(
642
+ [n]
643
+ ), C = T(null);
644
+ return X(M, () => C.current, []), J(ye, b, s), /* @__PURE__ */ r(
605
645
  "section",
606
646
  {
607
- ref: k,
608
- "aria-label": N,
647
+ ref: C,
648
+ "aria-label": k,
609
649
  "data-component": "product-hub-panel",
610
650
  "data-component-id": s,
611
- className: be({ surface: I, className: L }),
612
- ...O,
651
+ className: xe({ surface: l, className: N }),
652
+ ...g,
613
653
  children: [
614
654
  /* @__PURE__ */ r("header", { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-2xs)] ds:p-[var(--spacing-md)] ds:pb-[var(--spacing-sm)]", children: [
615
655
  /* @__PURE__ */ r("h2", { className: "ds:m-0 ds:flex ds:items-center ds:gap-[var(--spacing-xs)] ds:text-start type-title-section ds:text-[color:var(--foreground)]", children: [
616
- /* @__PURE__ */ e(V, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
617
- N
656
+ /* @__PURE__ */ e(O, { "aria-hidden": "true", className: "ds:size-5 ds:shrink-0" }),
657
+ k
618
658
  ] }),
619
- p ? /* @__PURE__ */ e("p", { className: "ds:m-0 ds:text-start type-body-sm ds:text-[color:var(--muted-foreground)]", children: p }) : null
659
+ f ? /* @__PURE__ */ e("p", { className: "ds:m-0 ds:text-start type-body-sm ds:text-[color:var(--muted-foreground)]", children: f }) : null
620
660
  ] }),
621
- n,
622
- T ? /* @__PURE__ */ r(S, { children: [
623
- /* @__PURE__ */ e(W, {}),
624
- /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:p-[var(--spacing-sm)]", children: /* @__PURE__ */ e(Q, { href: T, external: !0, children: c("productHubPanel.openHub", "Open in Product Hub") }) })
661
+ d,
662
+ z ? /* @__PURE__ */ r(V, { children: [
663
+ /* @__PURE__ */ e(_, {}),
664
+ /* @__PURE__ */ e("div", { className: "ds:flex ds:justify-center ds:p-[var(--spacing-sm)]", children: /* @__PURE__ */ e(A, { href: z, external: !0, children: p("productHubPanel.openHub", "Open in Product Hub") }) })
625
665
  ] }) : null
626
666
  ]
627
667
  }
628
668
  );
629
669
  }
630
670
  );
631
- ye.displayName = "ProductHubPanel";
671
+ we.displayName = "ProductHubPanel";
632
672
  export {
633
- ye as P,
634
- ge as a,
635
- ie as b,
636
- he as p
673
+ we as P,
674
+ be as a,
675
+ le as b,
676
+ ye as p
637
677
  };
638
- //# sourceMappingURL=product-hub-panel-e6pW220e.js.map
678
+ //# sourceMappingURL=product-hub-panel-DtU7KXxm.js.map