@alfadocs/ui-kit 0.1.4 → 0.1.6

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 (275) hide show
  1. package/README.md +26 -0
  2. package/dist/_chunks/{agenda-card-C_hQGErS.js → agenda-card-DIWDvWum.js} +10 -10
  3. package/dist/_chunks/agenda-card-DIWDvWum.js.map +1 -0
  4. package/dist/_chunks/{agenda-tray-CBaVMJLO.js → agenda-tray-BqQZwiHc.js} +5 -5
  5. package/dist/_chunks/{agenda-tray-CBaVMJLO.js.map → agenda-tray-BqQZwiHc.js.map} +1 -1
  6. package/dist/_chunks/{ai-prompt-input-K94oVLG2.js → ai-prompt-input-CI27KmZ1.js} +4 -4
  7. package/dist/_chunks/ai-prompt-input-CI27KmZ1.js.map +1 -0
  8. package/dist/_chunks/{alert-rOM4EG0P.js → alert-BlOUMkXj.js} +39 -39
  9. package/dist/_chunks/alert-BlOUMkXj.js.map +1 -0
  10. package/dist/_chunks/{audio-recorder-Cn8z2zC9.js → audio-recorder-B-8SKgKn.js} +5 -5
  11. package/dist/_chunks/{audio-recorder-Cn8z2zC9.js.map → audio-recorder-B-8SKgKn.js.map} +1 -1
  12. package/dist/_chunks/{autocomplete.agent-DRrp-Rsx.js → autocomplete.agent-DqOy0_1P.js} +31 -31
  13. package/dist/_chunks/autocomplete.agent-DqOy0_1P.js.map +1 -0
  14. package/dist/_chunks/{avatar-Biffh-_H.js → avatar-Dcr6XuDQ.js} +19 -19
  15. package/dist/_chunks/avatar-Dcr6XuDQ.js.map +1 -0
  16. package/dist/_chunks/{balance-cell-renderer-CiyezQhi.js → balance-cell-renderer-BRWt3neo.js} +166 -166
  17. package/dist/_chunks/balance-cell-renderer-BRWt3neo.js.map +1 -0
  18. package/dist/_chunks/breadcrumb-D6xpsP7n.js +293 -0
  19. package/dist/_chunks/breadcrumb-D6xpsP7n.js.map +1 -0
  20. package/dist/_chunks/{button-7dTew-IV.js → button-7mLWcMp_.js} +9 -9
  21. package/dist/_chunks/{button-7dTew-IV.js.map → button-7mLWcMp_.js.map} +1 -1
  22. package/dist/_chunks/{calendar-BkDeDTaX.js → calendar-nGEgelJs.js} +100 -100
  23. package/dist/_chunks/calendar-nGEgelJs.js.map +1 -0
  24. package/dist/_chunks/{chat-input-xiBIujMv.js → chat-input-DsIrWM4f.js} +2 -2
  25. package/dist/_chunks/{chat-input-xiBIujMv.js.map → chat-input-DsIrWM4f.js.map} +1 -1
  26. package/dist/_chunks/{chat-message-BtxUyugB.js → chat-message-ByouZpPP.js} +3 -3
  27. package/dist/_chunks/{chat-message-BtxUyugB.js.map → chat-message-ByouZpPP.js.map} +1 -1
  28. package/dist/_chunks/{checkbox-Ni6C_KJg.js → checkbox-DNK4qS2_.js} +13 -13
  29. package/dist/_chunks/checkbox-DNK4qS2_.js.map +1 -0
  30. package/dist/_chunks/{checkbox-group-BFZ4oN5t.js → checkbox-group-CWpGZEF6.js} +13 -13
  31. package/dist/_chunks/checkbox-group-CWpGZEF6.js.map +1 -0
  32. package/dist/_chunks/{collapsible-fFMqzpdL.js → collapsible-D4LOdLxp.js} +18 -18
  33. package/dist/_chunks/collapsible-D4LOdLxp.js.map +1 -0
  34. package/dist/_chunks/{color-picker-Cl3KdjJd.js → color-picker-e9PmpaGH.js} +161 -161
  35. package/dist/_chunks/color-picker-e9PmpaGH.js.map +1 -0
  36. package/dist/_chunks/{combobox.agent-DjdivI3X.js → combobox.agent-ByobCLJ_.js} +28 -28
  37. package/dist/_chunks/combobox.agent-ByobCLJ_.js.map +1 -0
  38. package/dist/_chunks/{command-palette.agent-BUjzr2ET.js → command-palette.agent-js2rxgeR.js} +117 -117
  39. package/dist/_chunks/command-palette.agent-js2rxgeR.js.map +1 -0
  40. package/dist/_chunks/{description-list-C_1NX8P3.js → description-list-DvJbp6Yg.js} +2 -2
  41. package/dist/_chunks/{description-list-C_1NX8P3.js.map → description-list-DvJbp6Yg.js.map} +1 -1
  42. package/dist/_chunks/{dialog.agent-C2lP9H0h.js → dialog.agent-DEG_fVzG.js} +42 -42
  43. package/dist/_chunks/dialog.agent-DEG_fVzG.js.map +1 -0
  44. package/dist/_chunks/{dropdown-menu-2HgU1Emf.js → dropdown-menu-JNo66A-j.js} +2 -2
  45. package/dist/_chunks/dropdown-menu-JNo66A-j.js.map +1 -0
  46. package/dist/_chunks/{empty-state-BHrItOiE.js → empty-state-DQPtRp2b.js} +2 -2
  47. package/dist/_chunks/{empty-state-BHrItOiE.js.map → empty-state-DQPtRp2b.js.map} +1 -1
  48. package/dist/_chunks/{file-upload.agent-LlC0W468.js → file-upload.agent-B9AN82LA.js} +2 -2
  49. package/dist/_chunks/{file-upload.agent-LlC0W468.js.map → file-upload.agent-B9AN82LA.js.map} +1 -1
  50. package/dist/_chunks/{freemium-paywall-Dr9aOtOC.js → freemium-paywall-CkefGLM_.js} +4 -4
  51. package/dist/_chunks/{freemium-paywall-Dr9aOtOC.js.map → freemium-paywall-CkefGLM_.js.map} +1 -1
  52. package/dist/_chunks/{header-BpU9U-1X.js → header-BGn1mRp8.js} +2 -2
  53. package/dist/_chunks/{header-BpU9U-1X.js.map → header-BGn1mRp8.js.map} +1 -1
  54. package/dist/_chunks/{icon-button-CNjWCD1X.js → icon-button-Wnnde5lc.js} +6 -6
  55. package/dist/_chunks/icon-button-Wnnde5lc.js.map +1 -0
  56. package/dist/_chunks/input-surface-u4QB0lxe.js +32 -0
  57. package/dist/_chunks/input-surface-u4QB0lxe.js.map +1 -0
  58. package/dist/_chunks/{key-value-pair-C9hpjC_B.js → key-value-pair-JRFS9Xrh.js} +10 -10
  59. package/dist/_chunks/key-value-pair-JRFS9Xrh.js.map +1 -0
  60. package/dist/_chunks/{leo-sidebar-CNjZqljo.js → leo-sidebar-Bh3dPDTQ.js} +64 -64
  61. package/dist/_chunks/leo-sidebar-Bh3dPDTQ.js.map +1 -0
  62. package/dist/_chunks/{message-card-CZzNO4ov.js → message-card-qAp2-WQK.js} +12 -12
  63. package/dist/_chunks/message-card-qAp2-WQK.js.map +1 -0
  64. package/dist/_chunks/{message-tray-BWbjXW3F.js → message-tray-VaLpQU5t.js} +5 -5
  65. package/dist/_chunks/{message-tray-BWbjXW3F.js.map → message-tray-VaLpQU5t.js.map} +1 -1
  66. package/dist/_chunks/{multi-select.agent-BSGEW10d.js → multi-select.agent-CNsyW3n9.js} +66 -66
  67. package/dist/_chunks/multi-select.agent-CNsyW3n9.js.map +1 -0
  68. package/dist/_chunks/navigation-menu-EVFau1O2.js +180 -0
  69. package/dist/_chunks/navigation-menu-EVFau1O2.js.map +1 -0
  70. package/dist/_chunks/{notification-card-DgW-vVg-.js → notification-card-BF2_veHy.js} +11 -11
  71. package/dist/_chunks/notification-card-BF2_veHy.js.map +1 -0
  72. package/dist/_chunks/{notification-tray-CKUgl2jc.js → notification-tray-Bq-08ReD.js} +5 -5
  73. package/dist/_chunks/{notification-tray-CKUgl2jc.js.map → notification-tray-Bq-08ReD.js.map} +1 -1
  74. package/dist/_chunks/{number-input-BPPhekLu.js → number-input-DjpT_RXJ.js} +46 -46
  75. package/dist/_chunks/number-input-DjpT_RXJ.js.map +1 -0
  76. package/dist/_chunks/pagination.agent-oEaqmtx5.js +380 -0
  77. package/dist/_chunks/pagination.agent-oEaqmtx5.js.map +1 -0
  78. package/dist/_chunks/{password-input-DAT5HQth.js → password-input-DJDVznWH.js} +5 -5
  79. package/dist/_chunks/password-input-DJDVznWH.js.map +1 -0
  80. package/dist/_chunks/{patient-shell-BzHhg6uA.js → patient-shell-DP54y6rc.js} +5 -5
  81. package/dist/_chunks/{patient-shell-BzHhg6uA.js.map → patient-shell-DP54y6rc.js.map} +1 -1
  82. package/dist/_chunks/{payment-form-YlxrCpZQ.js → payment-form-hcl-gGrp.js} +2 -2
  83. package/dist/_chunks/{payment-form-YlxrCpZQ.js.map → payment-form-hcl-gGrp.js.map} +1 -1
  84. package/dist/_chunks/{pdf-viewer.agent-sMned5Xn.js → pdf-viewer.agent-CfIHhcHx.js} +3 -3
  85. package/dist/_chunks/{pdf-viewer.agent-sMned5Xn.js.map → pdf-viewer.agent-CfIHhcHx.js.map} +1 -1
  86. package/dist/_chunks/{phone-input-BuRe5PyI.js → phone-input-DE_39q65.js} +103 -103
  87. package/dist/_chunks/phone-input-DE_39q65.js.map +1 -0
  88. package/dist/_chunks/{popover-Ds1iOdiv.js → popover-DvAtFOi-.js} +2 -2
  89. package/dist/_chunks/{popover-Ds1iOdiv.js.map → popover-DvAtFOi-.js.map} +1 -1
  90. package/dist/_chunks/{privacy-lock-up2ervfF.js → privacy-lock-DS6QRo2N.js} +3 -3
  91. package/dist/_chunks/{privacy-lock-up2ervfF.js.map → privacy-lock-DS6QRo2N.js.map} +1 -1
  92. package/dist/_chunks/{progress-D4ELgHG3.js → progress-B4Of_pzz.js} +57 -57
  93. package/dist/_chunks/progress-B4Of_pzz.js.map +1 -0
  94. package/dist/_chunks/{radio-XSSNX3Af.js → radio-cs8N1wJi.js} +29 -29
  95. package/dist/_chunks/radio-cs8N1wJi.js.map +1 -0
  96. package/dist/_chunks/{radio-group-DBrUOPcy.js → radio-group-BIUbpWml.js} +3 -3
  97. package/dist/_chunks/radio-group-BIUbpWml.js.map +1 -0
  98. package/dist/_chunks/{scroll-area-HIq0hJyJ.js → scroll-area-DLr5w9Dd.js} +9 -9
  99. package/dist/_chunks/scroll-area-DLr5w9Dd.js.map +1 -0
  100. package/dist/_chunks/{search-bar-9Zbew4yM.js → search-bar-fcGqDFW3.js} +30 -30
  101. package/dist/_chunks/{search-bar-9Zbew4yM.js.map → search-bar-fcGqDFW3.js.map} +1 -1
  102. package/dist/_chunks/{search-input-CtkWITO2.js → search-input-BVMCONyN.js} +2 -2
  103. package/dist/_chunks/{search-input-CtkWITO2.js.map → search-input-BVMCONyN.js.map} +1 -1
  104. package/dist/_chunks/{select-DdAOtomN.js → select-IY_JQa-F.js} +50 -50
  105. package/dist/_chunks/select-IY_JQa-F.js.map +1 -0
  106. package/dist/_chunks/{sheet-D7GRhnWw.js → sheet-BhNpLHc9.js} +8 -8
  107. package/dist/_chunks/sheet-BhNpLHc9.js.map +1 -0
  108. package/dist/_chunks/{sidebar-Dc2ffrbf.js → sidebar-OVzwN3jE.js} +294 -294
  109. package/dist/_chunks/sidebar-OVzwN3jE.js.map +1 -0
  110. package/dist/_chunks/{sign-in-with-alfadocs-button-BotwPDcW.js → sign-in-with-alfadocs-button-BN_FPGHT.js} +2 -2
  111. package/dist/_chunks/{sign-in-with-alfadocs-button-BotwPDcW.js.map → sign-in-with-alfadocs-button-BN_FPGHT.js.map} +1 -1
  112. package/dist/_chunks/{skeleton-DAdPFx9d.js → skeleton-dtqyF09N.js} +8 -8
  113. package/dist/_chunks/skeleton-dtqyF09N.js.map +1 -0
  114. package/dist/_chunks/{slot-grid-WHc5A8-z.js → slot-grid-D_l5VsHG.js} +5 -5
  115. package/dist/_chunks/{slot-grid-WHc5A8-z.js.map → slot-grid-D_l5VsHG.js.map} +1 -1
  116. package/dist/_chunks/{stepper-accordion-2_7Pw0tC.js → stepper-accordion-CGog0JSF.js} +64 -64
  117. package/dist/_chunks/stepper-accordion-CGog0JSF.js.map +1 -0
  118. package/dist/_chunks/{stepper-calendar-CWZcFgt_.js → stepper-calendar-_fLOAjus.js} +7 -7
  119. package/dist/_chunks/{stepper-calendar-CWZcFgt_.js.map → stepper-calendar-_fLOAjus.js.map} +1 -1
  120. package/dist/_chunks/{switch-DhSORO9C.js → switch-aN2EYxHh.js} +4 -4
  121. package/dist/_chunks/switch-aN2EYxHh.js.map +1 -0
  122. package/dist/_chunks/{tabs.agent-BtaNGxRh.js → tabs.agent-BpbVA-Zh.js} +55 -55
  123. package/dist/_chunks/tabs.agent-BpbVA-Zh.js.map +1 -0
  124. package/dist/_chunks/{tag--uLKOb9f.js → tag-BqidXKo3.js} +2 -2
  125. package/dist/_chunks/tag-BqidXKo3.js.map +1 -0
  126. package/dist/_chunks/{task-card-BeSuntXP.js → task-card-yW7tKlG4.js} +17 -17
  127. package/dist/_chunks/task-card-yW7tKlG4.js.map +1 -0
  128. package/dist/_chunks/{task-tray-pRk6u8Ik.js → task-tray-BzahI5FQ.js} +5 -5
  129. package/dist/_chunks/{task-tray-pRk6u8Ik.js.map → task-tray-BzahI5FQ.js.map} +1 -1
  130. package/dist/_chunks/{text-area-xf9-6iDf.js → text-area-DmKSd2DG.js} +2 -2
  131. package/dist/_chunks/text-area-DmKSd2DG.js.map +1 -0
  132. package/dist/_chunks/{text-input-exh7VD7D.js → text-input-CRHvl5zk.js} +19 -19
  133. package/dist/_chunks/text-input-CRHvl5zk.js.map +1 -0
  134. package/dist/_chunks/{theme-toggle-CJgA6G24.js → theme-toggle-COHFwO2H.js} +4 -4
  135. package/dist/_chunks/{theme-toggle-CJgA6G24.js.map → theme-toggle-COHFwO2H.js.map} +1 -1
  136. package/dist/_chunks/{timeline-DIueH4TJ.js → timeline-RgAIzpMd.js} +2 -2
  137. package/dist/_chunks/{timeline-DIueH4TJ.js.map → timeline-RgAIzpMd.js.map} +1 -1
  138. package/dist/_chunks/{toast-q0SlabGr.js → toast-lOhJDKOH.js} +12 -12
  139. package/dist/_chunks/{toast-q0SlabGr.js.map → toast-lOhJDKOH.js.map} +1 -1
  140. package/dist/_chunks/{transcript-panel-DFnhbrlQ.js → transcript-panel-CNbVGG9L.js} +59 -59
  141. package/dist/_chunks/transcript-panel-CNbVGG9L.js.map +1 -0
  142. package/dist/_chunks/{visually-hidden-BlkhaZWe.js → visually-hidden-Bw7vBHLm.js} +6 -6
  143. package/dist/_chunks/{visually-hidden-BlkhaZWe.js.map → visually-hidden-Bw7vBHLm.js.map} +1 -1
  144. package/dist/_chunks/{warning-stack-DCmO0R07.js → warning-stack-8Pa3pekh.js} +24 -24
  145. package/dist/_chunks/warning-stack-8Pa3pekh.js.map +1 -0
  146. package/dist/_chunks/{workflow-map-CAM6Uy_J.js → workflow-map-DGJwVcO-.js} +106 -106
  147. package/dist/_chunks/workflow-map-DGJwVcO-.js.map +1 -0
  148. package/dist/agent-catalog.json +1 -1
  149. package/dist/components/_shared/input-surface.d.ts +11 -11
  150. package/dist/components/agenda-card/index.js +1 -1
  151. package/dist/components/agenda-tray/index.js +1 -1
  152. package/dist/components/ai-prompt-input/index.js +1 -1
  153. package/dist/components/alert/index.js +1 -1
  154. package/dist/components/audio-recorder/index.js +1 -1
  155. package/dist/components/autocomplete/index.js +1 -1
  156. package/dist/components/avatar/index.js +1 -1
  157. package/dist/components/breadcrumb/index.js +1 -1
  158. package/dist/components/button/index.js +2 -2
  159. package/dist/components/calendar/index.js +1 -1
  160. package/dist/components/chat-input/index.js +1 -1
  161. package/dist/components/chat-message/index.js +1 -1
  162. package/dist/components/checkbox/index.js +1 -1
  163. package/dist/components/checkbox-group/index.js +1 -1
  164. package/dist/components/collapsible/index.js +1 -1
  165. package/dist/components/color-picker/index.js +1 -1
  166. package/dist/components/combobox/index.js +1 -1
  167. package/dist/components/command-palette/index.js +1 -1
  168. package/dist/components/data-table/index.js +1 -1
  169. package/dist/components/description-list/index.js +1 -1
  170. package/dist/components/dialog/index.js +1 -1
  171. package/dist/components/dropdown-menu/index.js +1 -1
  172. package/dist/components/empty-state/index.js +1 -1
  173. package/dist/components/file-upload/index.js +1 -1
  174. package/dist/components/freemium-paywall/index.js +1 -1
  175. package/dist/components/header/index.js +1 -1
  176. package/dist/components/icon-button/index.js +1 -1
  177. package/dist/components/key-value-pair/index.js +1 -1
  178. package/dist/components/message-card/index.js +1 -1
  179. package/dist/components/message-tray/index.js +1 -1
  180. package/dist/components/multi-select/index.js +1 -1
  181. package/dist/components/navigation-menu/index.js +1 -1
  182. package/dist/components/notification-card/index.js +1 -1
  183. package/dist/components/notification-tray/index.js +1 -1
  184. package/dist/components/number-input/index.js +1 -1
  185. package/dist/components/pagination/index.js +1 -1
  186. package/dist/components/password-input/index.js +1 -1
  187. package/dist/components/payment-form/index.js +1 -1
  188. package/dist/components/pdf-viewer/index.js +1 -1
  189. package/dist/components/phone-input/index.js +1 -1
  190. package/dist/components/popover/index.js +1 -1
  191. package/dist/components/privacy-lock/index.js +1 -1
  192. package/dist/components/progress/index.js +1 -1
  193. package/dist/components/radio/index.js +1 -1
  194. package/dist/components/radio-group/index.js +2 -2
  195. package/dist/components/scroll-area/index.js +1 -1
  196. package/dist/components/search-bar/index.js +1 -1
  197. package/dist/components/search-input/index.js +1 -1
  198. package/dist/components/select/index.js +1 -1
  199. package/dist/components/sheet/index.js +1 -1
  200. package/dist/components/sidebar/index.js +1 -1
  201. package/dist/components/sign-in-with-alfadocs-button/index.js +1 -1
  202. package/dist/components/skeleton/index.js +1 -1
  203. package/dist/components/slot-grid/index.js +1 -1
  204. package/dist/components/stepper-accordion/index.js +1 -1
  205. package/dist/components/stepper-calendar/index.js +1 -1
  206. package/dist/components/switch/index.js +1 -1
  207. package/dist/components/tabs/index.js +1 -1
  208. package/dist/components/tag/index.js +1 -1
  209. package/dist/components/task-card/index.js +1 -1
  210. package/dist/components/task-tray/index.js +1 -1
  211. package/dist/components/text-area/index.js +1 -1
  212. package/dist/components/text-input/index.js +1 -1
  213. package/dist/components/theme-toggle/index.js +1 -1
  214. package/dist/components/timeline/index.js +1 -1
  215. package/dist/components/toast/index.js +1 -1
  216. package/dist/components/transcript-panel/index.js +1 -1
  217. package/dist/components/visually-hidden/index.js +1 -1
  218. package/dist/components/warning-stack/index.js +1 -1
  219. package/dist/components/workflow/index.js +1 -1
  220. package/dist/index.js +72 -72
  221. package/dist/patterns/leo-assistant/index.js +1 -1
  222. package/dist/patterns/leo-assistant/leo-sidebar.d.ts.map +1 -1
  223. package/dist/patterns/patient-shell/index.js +1 -1
  224. package/dist/tokens.css +1 -1
  225. package/package.json +1 -1
  226. package/dist/_chunks/agenda-card-C_hQGErS.js.map +0 -1
  227. package/dist/_chunks/ai-prompt-input-K94oVLG2.js.map +0 -1
  228. package/dist/_chunks/alert-rOM4EG0P.js.map +0 -1
  229. package/dist/_chunks/autocomplete.agent-DRrp-Rsx.js.map +0 -1
  230. package/dist/_chunks/avatar-Biffh-_H.js.map +0 -1
  231. package/dist/_chunks/balance-cell-renderer-CiyezQhi.js.map +0 -1
  232. package/dist/_chunks/breadcrumb-CcZovmIq.js +0 -293
  233. package/dist/_chunks/breadcrumb-CcZovmIq.js.map +0 -1
  234. package/dist/_chunks/calendar-BkDeDTaX.js.map +0 -1
  235. package/dist/_chunks/checkbox-Ni6C_KJg.js.map +0 -1
  236. package/dist/_chunks/checkbox-group-BFZ4oN5t.js.map +0 -1
  237. package/dist/_chunks/collapsible-fFMqzpdL.js.map +0 -1
  238. package/dist/_chunks/color-picker-Cl3KdjJd.js.map +0 -1
  239. package/dist/_chunks/combobox.agent-DjdivI3X.js.map +0 -1
  240. package/dist/_chunks/command-palette.agent-BUjzr2ET.js.map +0 -1
  241. package/dist/_chunks/dialog.agent-C2lP9H0h.js.map +0 -1
  242. package/dist/_chunks/dropdown-menu-2HgU1Emf.js.map +0 -1
  243. package/dist/_chunks/icon-button-CNjWCD1X.js.map +0 -1
  244. package/dist/_chunks/input-surface-D5OMCB1W.js +0 -32
  245. package/dist/_chunks/input-surface-D5OMCB1W.js.map +0 -1
  246. package/dist/_chunks/key-value-pair-C9hpjC_B.js.map +0 -1
  247. package/dist/_chunks/leo-sidebar-CNjZqljo.js.map +0 -1
  248. package/dist/_chunks/message-card-CZzNO4ov.js.map +0 -1
  249. package/dist/_chunks/multi-select.agent-BSGEW10d.js.map +0 -1
  250. package/dist/_chunks/navigation-menu-DxOMvrKM.js +0 -180
  251. package/dist/_chunks/navigation-menu-DxOMvrKM.js.map +0 -1
  252. package/dist/_chunks/notification-card-DgW-vVg-.js.map +0 -1
  253. package/dist/_chunks/number-input-BPPhekLu.js.map +0 -1
  254. package/dist/_chunks/pagination.agent-CmA0Ocr5.js +0 -380
  255. package/dist/_chunks/pagination.agent-CmA0Ocr5.js.map +0 -1
  256. package/dist/_chunks/password-input-DAT5HQth.js.map +0 -1
  257. package/dist/_chunks/phone-input-BuRe5PyI.js.map +0 -1
  258. package/dist/_chunks/progress-D4ELgHG3.js.map +0 -1
  259. package/dist/_chunks/radio-XSSNX3Af.js.map +0 -1
  260. package/dist/_chunks/radio-group-DBrUOPcy.js.map +0 -1
  261. package/dist/_chunks/scroll-area-HIq0hJyJ.js.map +0 -1
  262. package/dist/_chunks/select-DdAOtomN.js.map +0 -1
  263. package/dist/_chunks/sheet-D7GRhnWw.js.map +0 -1
  264. package/dist/_chunks/sidebar-Dc2ffrbf.js.map +0 -1
  265. package/dist/_chunks/skeleton-DAdPFx9d.js.map +0 -1
  266. package/dist/_chunks/stepper-accordion-2_7Pw0tC.js.map +0 -1
  267. package/dist/_chunks/switch-DhSORO9C.js.map +0 -1
  268. package/dist/_chunks/tabs.agent-BtaNGxRh.js.map +0 -1
  269. package/dist/_chunks/tag--uLKOb9f.js.map +0 -1
  270. package/dist/_chunks/task-card-BeSuntXP.js.map +0 -1
  271. package/dist/_chunks/text-area-xf9-6iDf.js.map +0 -1
  272. package/dist/_chunks/text-input-exh7VD7D.js.map +0 -1
  273. package/dist/_chunks/transcript-panel-DFnhbrlQ.js.map +0 -1
  274. package/dist/_chunks/warning-stack-DCmO0R07.js.map +0 -1
  275. package/dist/_chunks/workflow-map-CAM6Uy_J.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { jsx as n, jsxs as c, Fragment as I } from "react/jsx-runtime";
1
+ import { jsx as s, jsxs as c, Fragment as I } from "react/jsx-runtime";
2
2
  import { forwardRef as u, useState as b, useEffect as B, useMemo as E, useCallback as z } from "react";
3
3
  import { _ as p, R as G } from "./index-4xgbg-sn.js";
4
4
  import * as f from "@radix-ui/react-dialog";
@@ -29,23 +29,23 @@ function R(e) {
29
29
  function te() {
30
30
  const [e, t] = b(!1);
31
31
  return B(() => {
32
- function a(r) {
33
- const o = r.target, l = o == null ? void 0 : o.tagName.toLowerCase();
34
- if ((l === "input" || l === "textarea" || (o == null ? void 0 : o.isContentEditable)) && !(e && r.key === "Escape")) return;
35
- const m = r.key === "k" || r.key === "K", v = r.metaKey || r.ctrlKey;
36
- m && v && (r.preventDefault(), t((y) => !y));
32
+ function a(n) {
33
+ const r = n.target, l = r == null ? void 0 : r.tagName.toLowerCase();
34
+ if ((l === "input" || l === "textarea" || (r == null ? void 0 : r.isContentEditable)) && !(e && n.key === "Escape")) return;
35
+ const m = n.key === "k" || n.key === "K", v = n.metaKey || n.ctrlKey;
36
+ m && v && (n.preventDefault(), t((y) => !y));
37
37
  }
38
38
  return document.addEventListener("keydown", a), () => document.removeEventListener("keydown", a);
39
39
  }, [e]), { open: e, setOpen: t };
40
40
  }
41
41
  const J = [
42
- "flex h-full w-full flex-col overflow-hidden",
43
- "rounded-[var(--radius-md)]",
44
- "bg-[var(--background)] text-[var(--foreground)]"
45
- ].join(" "), D = u(({ className: e, filter: t = O, ...a }, r) => /* @__PURE__ */ n(
42
+ "ds:flex ds:h-full ds:w-full ds:flex-col ds:overflow-hidden",
43
+ "ds:rounded-[var(--radius-md)]",
44
+ "ds:bg-[var(--background)] ds:text-[var(--foreground)]"
45
+ ].join(" "), D = u(({ className: e, filter: t = O, ...a }, n) => /* @__PURE__ */ s(
46
46
  p,
47
47
  {
48
- ref: r,
48
+ ref: n,
49
49
  filter: t,
50
50
  className: [J, e].filter(Boolean).join(" "),
51
51
  "data-component": "command-palette",
@@ -54,26 +54,26 @@ const J = [
54
54
  ));
55
55
  D.displayName = "CommandPalette";
56
56
  const V = [
57
- "flex items-center",
58
- "border-block-end border-[var(--border)]",
59
- "ps-[var(--spacing-md)] pe-[var(--spacing-sm)]"
57
+ "ds:flex ds:items-center",
58
+ "ds:border-block-end ds:border-[var(--border)]",
59
+ "ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-sm)]"
60
60
  ].join(" "), $ = [
61
- "flex w-full bg-transparent",
62
- "min-h-[var(--min-target-size)]",
63
- "text-[var(--font-size-base)] text-[var(--foreground)]",
64
- "placeholder:text-[var(--muted-foreground)]",
65
- "outline-none",
66
- "disabled:cursor-not-allowed disabled:opacity-50",
67
- "border-0"
68
- ].join(" "), M = u(({ className: e, placeholder: t, ...a }, r) => {
69
- const { t: o } = w();
61
+ "ds:flex ds:w-full ds:bg-transparent",
62
+ "ds:min-h-[var(--min-target-size)]",
63
+ "ds:text-[var(--font-size-base)] ds:text-[var(--foreground)]",
64
+ "ds:placeholder:text-[var(--muted-foreground)]",
65
+ "ds:outline-none",
66
+ "ds:disabled:cursor-not-allowed ds:disabled:opacity-50",
67
+ "ds:border-0"
68
+ ].join(" "), M = u(({ className: e, placeholder: t, ...a }, n) => {
69
+ const { t: r } = w();
70
70
  return /* @__PURE__ */ c("div", { className: V, children: [
71
- /* @__PURE__ */ n(F, { "aria-hidden": "true", className: "ds:size-4 ds:me-2 ds:text-[var(--muted-foreground)]" }),
72
- /* @__PURE__ */ n(
71
+ /* @__PURE__ */ s(F, { "aria-hidden": "true", className: "ds:size-4 ds:me-2 ds:text-[var(--muted-foreground)]" }),
72
+ /* @__PURE__ */ s(
73
73
  p.Input,
74
74
  {
75
- ref: r,
76
- placeholder: t ?? o("navigation.cmdk.placeholder", "Type a command or search…"),
75
+ ref: n,
76
+ placeholder: t ?? r("navigation.cmdk.placeholder", "Type a command or search…"),
77
77
  className: [$, e].filter(Boolean).join(" "),
78
78
  ...a
79
79
  }
@@ -81,7 +81,7 @@ const V = [
81
81
  ] });
82
82
  });
83
83
  M.displayName = "CommandInput";
84
- const P = u(({ className: e, ...t }, a) => /* @__PURE__ */ n(
84
+ const P = u(({ className: e, ...t }, a) => /* @__PURE__ */ s(
85
85
  p.List,
86
86
  {
87
87
  ref: a,
@@ -95,27 +95,27 @@ const P = u(({ className: e, ...t }, a) => /* @__PURE__ */ n(
95
95
  }
96
96
  ));
97
97
  P.displayName = "CommandList";
98
- const T = u(({ className: e, children: t, ...a }, r) => {
99
- const { t: o } = w();
100
- return /* @__PURE__ */ n(
98
+ const T = u(({ className: e, children: t, ...a }, n) => {
99
+ const { t: r } = w();
100
+ return /* @__PURE__ */ s(
101
101
  p.Empty,
102
102
  {
103
- ref: r,
103
+ ref: n,
104
104
  className: [
105
105
  "ds:py-[var(--spacing-lg)] ds:text-center",
106
106
  "type-body-sm ds:text-[var(--muted-foreground)]",
107
107
  e ?? ""
108
108
  ].filter(Boolean).join(" "),
109
109
  ...a,
110
- children: t ?? o("navigation.cmdk.empty", "No results found")
110
+ children: t ?? r("navigation.cmdk.empty", "No results found")
111
111
  }
112
112
  );
113
113
  });
114
114
  T.displayName = "CommandEmpty";
115
- const C = u(({ className: e, heading: t, ...a }, r) => /* @__PURE__ */ n(
115
+ const C = u(({ className: e, heading: t, ...a }, n) => /* @__PURE__ */ s(
116
116
  p.Group,
117
117
  {
118
- ref: r,
118
+ ref: n,
119
119
  heading: t,
120
120
  className: [
121
121
  "ds:overflow-hidden",
@@ -132,18 +132,18 @@ const C = u(({ className: e, heading: t, ...a }, r) => /* @__PURE__ */ n(
132
132
  ));
133
133
  C.displayName = "CommandGroup";
134
134
  const Q = [
135
- "relative flex items-center",
136
- "gap-[var(--spacing-sm)]",
137
- "min-h-[var(--min-target-size)]",
138
- "rounded-[var(--radius-sm)]",
139
- "ps-[var(--spacing-sm)] pe-[var(--spacing-sm)]",
140
- "text-[var(--font-size-sm)] text-[var(--foreground)]",
141
- "cursor-pointer select-none outline-none",
142
- "data-[selected=true]:bg-[var(--primary)] data-[selected=true]:text-[var(--primary-foreground)]",
143
- "data-[selected=true]:font-[var(--font-weight-semibold)]",
144
- "data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
145
- "transition-colors duration-[var(--animation-duration)] motion-reduce:transition-none"
146
- ].join(" "), x = u(({ className: e, ...t }, a) => /* @__PURE__ */ n(
135
+ "ds:relative ds:flex ds:items-center",
136
+ "ds:gap-[var(--spacing-sm)]",
137
+ "ds:min-h-[var(--min-target-size)]",
138
+ "ds:rounded-[var(--radius-sm)]",
139
+ "ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]",
140
+ "ds:text-[var(--font-size-sm)] ds:text-[var(--foreground)]",
141
+ "ds:cursor-pointer ds:select-none ds:outline-none",
142
+ "ds:data-[selected=true]:bg-[var(--primary)] ds:data-[selected=true]:text-[var(--primary-foreground)]",
143
+ "ds:data-[selected=true]:font-[var(--font-weight-semibold)]",
144
+ "ds:data-[disabled=true]:pointer-events-none ds:data-[disabled=true]:opacity-50",
145
+ "ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none"
146
+ ].join(" "), x = u(({ className: e, ...t }, a) => /* @__PURE__ */ s(
147
147
  p.Item,
148
148
  {
149
149
  ref: a,
@@ -152,7 +152,7 @@ const Q = [
152
152
  }
153
153
  ));
154
154
  x.displayName = "CommandItem";
155
- const A = u(({ className: e, ...t }, a) => /* @__PURE__ */ n(
155
+ const A = u(({ className: e, ...t }, a) => /* @__PURE__ */ s(
156
156
  p.Separator,
157
157
  {
158
158
  ref: a,
@@ -167,10 +167,10 @@ const A = u(({ className: e, ...t }, a) => /* @__PURE__ */ n(
167
167
  ));
168
168
  A.displayName = "CommandSeparator";
169
169
  const k = u(
170
- ({ className: e, children: t, ...a }, r) => /* @__PURE__ */ n(
170
+ ({ className: e, children: t, ...a }, n) => /* @__PURE__ */ s(
171
171
  "kbd",
172
172
  {
173
- ref: r,
173
+ ref: n,
174
174
  className: [
175
175
  "ds:ms-auto",
176
176
  "ds:inline-flex ds:items-center",
@@ -190,129 +190,129 @@ const k = u(
190
190
  k.displayName = "CommandShortcut";
191
191
  function W(e, t) {
192
192
  if (!t) return e;
193
- const a = h(e), r = h(t), o = a.indexOf(r);
194
- if (o === -1) return e;
195
- const l = e.slice(0, o), g = e.slice(o, o + r.length), m = e.slice(o + r.length);
193
+ const a = h(e), n = h(t), r = a.indexOf(n);
194
+ if (r === -1) return e;
195
+ const l = e.slice(0, r), g = e.slice(r, r + n.length), m = e.slice(r + n.length);
196
196
  return /* @__PURE__ */ c(I, { children: [
197
197
  l,
198
- /* @__PURE__ */ n("mark", { className: "ds:bg-[var(--accent)]/20 ds:text-inherit ds:rounded-[var(--radius-sm)] ds:px-[0.125em]", children: g }),
198
+ /* @__PURE__ */ s("mark", { className: "ds:bg-[var(--accent)]/20 ds:text-inherit ds:rounded-[var(--radius-sm)] ds:px-[0.125em]", children: g }),
199
199
  m
200
200
  ] });
201
201
  }
202
202
  const X = [
203
- "fixed inset-0 z-[var(--z-modal-backdrop)]",
204
- "bg-[var(--foreground)]/40 backdrop-blur-sm",
205
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
206
- "data-[state=open]:fade-in data-[state=closed]:fade-out",
207
- "motion-reduce:animate-none"
203
+ "ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]",
204
+ "ds:bg-[var(--foreground)]/40 ds:backdrop-blur-sm",
205
+ "ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
206
+ "ds:data-[state=open]:fade-in ds:data-[state=closed]:fade-out",
207
+ "ds:motion-reduce:animate-none"
208
208
  ].join(" "), Y = [
209
- "fixed z-[var(--z-modal)]",
209
+ "ds:fixed ds:z-[var(--z-modal)]",
210
210
  // Logical-inset arbitrary-value positioning: `inset-inline-start-1/2`
211
211
  // isn't a real Tailwind class (the generator maps fractions only to
212
212
  // `start-*`), so use `start-1/2` for horizontal and `top-*` for the
213
213
  // top offset — matching the working Dialog component.
214
- "top-[12vh] start-1/2 -translate-x-1/2 rtl:translate-x-1/2",
215
- "w-[92vw] max-w-[var(--dialog-width-lg)]",
216
- "rounded-[var(--radius-lg)]",
217
- "bg-[var(--background)] text-[var(--foreground)]",
218
- "shadow-[var(--shadow-xl)]",
219
- "border border-[var(--border)]",
220
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
221
- "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
222
- "motion-reduce:animate-none",
223
- "focus:outline-none"
224
- ].join(" "), _ = ({ children: e }) => /* @__PURE__ */ n("span", { className: "ds:sr-only", children: e });
225
- function ne({
214
+ "ds:top-[12vh] ds:start-1/2 ds:-translate-x-1/2 ds:rtl:translate-x-1/2",
215
+ "ds:w-[92vw] ds:max-w-[var(--dialog-width-lg)]",
216
+ "ds:rounded-[var(--radius-lg)]",
217
+ "ds:bg-[var(--background)] ds:text-[var(--foreground)]",
218
+ "ds:shadow-[var(--shadow-xl)]",
219
+ "ds:border ds:border-[var(--border)]",
220
+ "ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out",
221
+ "ds:data-[state=open]:zoom-in-95 ds:data-[state=closed]:zoom-out-95",
222
+ "ds:motion-reduce:animate-none",
223
+ "ds:focus:outline-none"
224
+ ].join(" "), _ = ({ children: e }) => /* @__PURE__ */ s("span", { className: "ds:sr-only", children: e });
225
+ function se({
226
226
  open: e,
227
227
  onOpenChange: t,
228
228
  commands: a,
229
- header: r
229
+ header: n
230
230
  }) {
231
- const { t: o } = w(), [l, g] = b(""), [m, v] = b(H);
231
+ const { t: r } = w(), [l, g] = b(""), [m, v] = b(H);
232
232
  B(() => {
233
233
  e || g("");
234
234
  }, [e]);
235
235
  const y = E(() => {
236
- const s = /* @__PURE__ */ new Map();
237
- return a.forEach((d) => {
238
- const i = s.get(d.group) ?? [];
239
- i.push(d), s.set(d.group, i);
240
- }), s;
236
+ const d = /* @__PURE__ */ new Map();
237
+ return a.forEach((i) => {
238
+ const o = d.get(i.group) ?? [];
239
+ o.push(i), d.set(i.group, o);
240
+ }), d;
241
241
  }, [a]), S = E(() => {
242
242
  if (l) return [];
243
- const s = new Map(a.map((d) => [d.id, d]));
244
- return m.map((d) => s.get(d)).filter(Boolean);
243
+ const d = new Map(a.map((i) => [i.id, i]));
244
+ return m.map((i) => d.get(i)).filter(Boolean);
245
245
  }, [a, m, l]), j = z(
246
- (s) => {
246
+ (d) => {
247
247
  t(!1);
248
- const d = [s.id, ...m.filter((i) => i !== s.id)].slice(0, N);
249
- v(d), R(d), setTimeout(() => s.onSelect(), 0);
248
+ const i = [d.id, ...m.filter((o) => o !== d.id)].slice(0, N);
249
+ v(i), R(i), setTimeout(() => d.onSelect(), 0);
250
250
  },
251
251
  [m, t]
252
252
  ), K = z(() => {
253
253
  v([]), R([]);
254
254
  }, []);
255
- return /* @__PURE__ */ n(f.Root, { open: e, onOpenChange: t, children: /* @__PURE__ */ c(f.Portal, { children: [
256
- /* @__PURE__ */ n(f.Overlay, { className: X }),
255
+ return /* @__PURE__ */ s(f.Root, { open: e, onOpenChange: t, children: /* @__PURE__ */ c(f.Portal, { children: [
256
+ /* @__PURE__ */ s(f.Overlay, { className: X }),
257
257
  /* @__PURE__ */ c(
258
258
  f.Content,
259
259
  {
260
260
  className: Y,
261
- "aria-label": o("navigation.cmdk.title", "Command palette"),
261
+ "aria-label": r("navigation.cmdk.title", "Command palette"),
262
262
  children: [
263
- /* @__PURE__ */ n(f.Title, { asChild: !0, children: /* @__PURE__ */ n(_, { children: o("navigation.cmdk.title", "Command palette") }) }),
264
- /* @__PURE__ */ n(f.Description, { asChild: !0, children: /* @__PURE__ */ n(_, { children: o(
263
+ /* @__PURE__ */ s(f.Title, { asChild: !0, children: /* @__PURE__ */ s(_, { children: r("navigation.cmdk.title", "Command palette") }) }),
264
+ /* @__PURE__ */ s(f.Description, { asChild: !0, children: /* @__PURE__ */ s(_, { children: r(
265
265
  "navigation.cmdk.description",
266
266
  "Search for commands, pages, and actions"
267
267
  ) }) }),
268
- /* @__PURE__ */ c(D, { label: o("navigation.cmdk.title", "Command palette"), children: [
269
- r,
270
- /* @__PURE__ */ n(M, { value: l, onValueChange: g }),
268
+ /* @__PURE__ */ c(D, { label: r("navigation.cmdk.title", "Command palette"), children: [
269
+ n,
270
+ /* @__PURE__ */ s(M, { value: l, onValueChange: g }),
271
271
  /* @__PURE__ */ c(P, { children: [
272
- /* @__PURE__ */ n(T, {}),
272
+ /* @__PURE__ */ s(T, {}),
273
273
  S.length > 0 ? /* @__PURE__ */ c(I, { children: [
274
- /* @__PURE__ */ c(C, { heading: o("navigation.cmdk.recents", "Recent"), children: [
275
- S.map((s) => /* @__PURE__ */ c(
274
+ /* @__PURE__ */ c(C, { heading: r("navigation.cmdk.recents", "Recent"), children: [
275
+ S.map((d) => /* @__PURE__ */ c(
276
276
  x,
277
277
  {
278
- value: `recent-${s.label}`,
279
- onSelect: () => j(s),
278
+ value: `recent-${d.label}`,
279
+ onSelect: () => j(d),
280
280
  children: [
281
- s.icon ? /* @__PURE__ */ n("span", { "aria-hidden": "true", children: s.icon }) : null,
282
- /* @__PURE__ */ n("span", { children: s.label }),
283
- s.shortcut ? /* @__PURE__ */ n(k, { children: s.shortcut }) : null
281
+ d.icon ? /* @__PURE__ */ s("span", { "aria-hidden": "true", children: d.icon }) : null,
282
+ /* @__PURE__ */ s("span", { children: d.label }),
283
+ d.shortcut ? /* @__PURE__ */ s(k, { children: d.shortcut }) : null
284
284
  ]
285
285
  },
286
- `recent-${s.id}`
286
+ `recent-${d.id}`
287
287
  )),
288
- /* @__PURE__ */ n(
288
+ /* @__PURE__ */ s(
289
289
  x,
290
290
  {
291
291
  value: "__clear-recents",
292
292
  onSelect: K,
293
- children: /* @__PURE__ */ n("span", { children: o(
293
+ children: /* @__PURE__ */ s("span", { children: r(
294
294
  "navigation.cmdk.clearRecents",
295
295
  "Clear recent commands"
296
296
  ) })
297
297
  }
298
298
  )
299
299
  ] }),
300
- /* @__PURE__ */ n(A, {})
300
+ /* @__PURE__ */ s(A, {})
301
301
  ] }) : null,
302
- Array.from(y.entries()).map(([s, d]) => /* @__PURE__ */ n(C, { heading: s, children: d.map((i) => /* @__PURE__ */ c(
302
+ Array.from(y.entries()).map(([d, i]) => /* @__PURE__ */ s(C, { heading: d, children: i.map((o) => /* @__PURE__ */ c(
303
303
  x,
304
304
  {
305
- value: i.label,
306
- keywords: i.keywords,
307
- onSelect: () => j(i),
305
+ value: o.label,
306
+ keywords: o.keywords,
307
+ onSelect: () => j(o),
308
308
  children: [
309
- i.icon ? /* @__PURE__ */ n("span", { "aria-hidden": "true", children: i.icon }) : null,
310
- /* @__PURE__ */ n("span", { children: W(i.label, l) }),
311
- i.shortcut ? /* @__PURE__ */ n(k, { children: i.shortcut }) : null
309
+ o.icon ? /* @__PURE__ */ s("span", { "aria-hidden": "true", children: o.icon }) : null,
310
+ /* @__PURE__ */ s("span", { children: W(o.label, l) }),
311
+ o.shortcut ? /* @__PURE__ */ s(k, { children: o.shortcut }) : null
312
312
  ]
313
313
  },
314
- i.id
315
- )) }, s))
314
+ o.id
315
+ )) }, d))
316
316
  ] })
317
317
  ] })
318
318
  ]
@@ -320,7 +320,7 @@ function ne({
320
320
  )
321
321
  ] }) });
322
322
  }
323
- const re = {
323
+ const ne = {
324
324
  id: "command-palette",
325
325
  capabilities: ["open", "close", "filter", "pick", "submit"],
326
326
  state: {},
@@ -340,12 +340,12 @@ export {
340
340
  x as c,
341
341
  P as d,
342
342
  D as e,
343
- ne as f,
343
+ se as f,
344
344
  A as g,
345
345
  k as h,
346
- re as i,
346
+ ne as i,
347
347
  O as j,
348
348
  W as k,
349
349
  te as u
350
350
  };
351
- //# sourceMappingURL=command-palette.agent-BUjzr2ET.js.map
351
+ //# sourceMappingURL=command-palette.agent-js2rxgeR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.agent-js2rxgeR.js","sources":["../../src/components/command-palette/command-palette.tsx","../../src/components/command-palette/command-palette.agent.ts"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type ReactNode,\n} from 'react';\nimport { Command as CommandPrimitive, defaultFilter } from 'cmdk';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport { useTranslation } from 'react-i18next';\nimport { Search } from 'lucide-react';\n\n/* -------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------- */\n\nexport interface Command {\n id: string;\n label: string;\n group: string;\n keywords?: string[];\n shortcut?: string;\n onSelect: () => void;\n /** Optional leading icon. */\n icon?: ReactNode;\n}\n\n/* -------------------------------------------------------------------- */\n/* Diacritic-insensitive normaliser */\n/* -------------------------------------------------------------------- */\n\nfunction normalise(value: string): string {\n return value.normalize('NFD').replace(/\\p{Diacritic}/gu, '').toLowerCase();\n}\n\nexport const diacriticInsensitiveFilter = (\n value: string,\n search: string,\n keywords?: string[],\n) => defaultFilter(normalise(value), normalise(search), keywords?.map(normalise));\n\n/* -------------------------------------------------------------------- */\n/* Recents (localStorage, SSR-safe) */\n/* -------------------------------------------------------------------- */\n\nconst RECENTS_KEY = 'ui.cmdk.recents';\nconst MAX_RECENTS = 5;\n\nfunction readRecents(): string[] {\n if (typeof window === 'undefined') return [];\n try {\n const raw = window.localStorage.getItem(RECENTS_KEY);\n if (!raw) return [];\n const parsed = JSON.parse(raw);\n return Array.isArray(parsed) ? parsed.slice(0, MAX_RECENTS).filter((v) => typeof v === 'string') : [];\n } catch {\n return [];\n }\n}\n\nfunction writeRecents(ids: string[]) {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(RECENTS_KEY, JSON.stringify(ids.slice(0, MAX_RECENTS)));\n } catch {\n /* noop */\n }\n}\n\n/* -------------------------------------------------------------------- */\n/* useCommandPalette — Cmd/Ctrl+K hook */\n/* -------------------------------------------------------------------- */\n\nexport function useCommandPalette() {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n function handler(event: KeyboardEvent) {\n const target = event.target as HTMLElement | null;\n const tag = target?.tagName.toLowerCase();\n const isEditable =\n tag === 'input' || tag === 'textarea' || target?.isContentEditable;\n if (isEditable && !(open && event.key === 'Escape')) return;\n\n const isK = event.key === 'k' || event.key === 'K';\n const isMeta = event.metaKey || event.ctrlKey;\n if (isK && isMeta) {\n event.preventDefault();\n setOpen((v) => !v);\n }\n }\n document.addEventListener('keydown', handler);\n return () => document.removeEventListener('keydown', handler);\n }, [open]);\n\n return { open, setOpen };\n}\n\n/* -------------------------------------------------------------------- */\n/* Primitives (forwardRef wrappers around cmdk + dialog chrome) */\n/* -------------------------------------------------------------------- */\n\nconst rootClasses = [\n 'ds:flex ds:h-full ds:w-full ds:flex-col ds:overflow-hidden',\n 'ds:rounded-[var(--radius-md)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n].join(' ');\n\nexport interface CommandPaletteRootProps\n extends ComponentPropsWithoutRef<typeof CommandPrimitive> {}\n\nconst CommandPalette = forwardRef<\n ElementRef<typeof CommandPrimitive>,\n CommandPaletteRootProps\n>(({ className, filter = diacriticInsensitiveFilter, ...rest }, ref) => (\n <CommandPrimitive\n ref={ref}\n filter={filter}\n className={[rootClasses, className].filter(Boolean).join(' ')}\n data-component=\"command-palette\"\n {...rest}\n />\n));\nCommandPalette.displayName = 'CommandPalette';\n\n/* -------------------------------------------------------------------- */\n/* Input */\n/* -------------------------------------------------------------------- */\n\nconst inputWrapClasses = [\n 'ds:flex ds:items-center',\n 'ds:border-block-end ds:border-[var(--border)]',\n 'ds:ps-[var(--spacing-md)] ds:pe-[var(--spacing-sm)]',\n].join(' ');\n\nconst inputClasses = [\n 'ds:flex ds:w-full ds:bg-transparent',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:text-[var(--font-size-base)] ds:text-[var(--foreground)]',\n 'ds:placeholder:text-[var(--muted-foreground)]',\n 'ds:outline-none',\n 'ds:disabled:cursor-not-allowed ds:disabled:opacity-50',\n 'ds:border-0',\n].join(' ');\n\nexport interface CommandInputProps\n extends ComponentPropsWithoutRef<typeof CommandPrimitive.Input> {}\n\nconst CommandInput = forwardRef<\n ElementRef<typeof CommandPrimitive.Input>,\n CommandInputProps\n>(({ className, placeholder, ...rest }, ref) => {\n const { t } = useTranslation();\n return (\n <div className={inputWrapClasses}>\n <Search aria-hidden=\"true\" className=\"ds:size-4 ds:me-2 ds:text-[var(--muted-foreground)]\" />\n <CommandPrimitive.Input\n ref={ref}\n placeholder={\n placeholder ??\n t('navigation.cmdk.placeholder', 'Type a command or search\\u2026')\n }\n className={[inputClasses, className].filter(Boolean).join(' ')}\n {...rest}\n />\n </div>\n );\n});\nCommandInput.displayName = 'CommandInput';\n\n/* -------------------------------------------------------------------- */\n/* List / Empty / Group / Item / Separator */\n/* -------------------------------------------------------------------- */\n\nconst CommandList = forwardRef<\n ElementRef<typeof CommandPrimitive.List>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...rest }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={[\n 'ds:max-h-[20rem] ds:overflow-y-auto',\n 'ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n 'ds:py-[var(--spacing-xs)]',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n />\n));\nCommandList.displayName = 'CommandList';\n\nconst CommandEmpty = forwardRef<\n ElementRef<typeof CommandPrimitive.Empty>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(({ className, children, ...rest }, ref) => {\n const { t } = useTranslation();\n return (\n <CommandPrimitive.Empty\n ref={ref}\n className={[\n 'ds:py-[var(--spacing-lg)] ds:text-center',\n 'type-body-sm ds:text-[var(--muted-foreground)]',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n {children ?? t('navigation.cmdk.empty', 'No results found')}\n </CommandPrimitive.Empty>\n );\n});\nCommandEmpty.displayName = 'CommandEmpty';\n\nconst CommandGroup = forwardRef<\n ElementRef<typeof CommandPrimitive.Group>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, heading, ...rest }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n heading={heading}\n className={[\n 'ds:overflow-hidden',\n 'ds:text-[var(--foreground)]',\n 'ds:[&_[cmdk-group-heading]]:ps-[var(--spacing-sm)]',\n 'ds:[&_[cmdk-group-heading]]:pe-[var(--spacing-sm)]',\n 'ds:[&_[cmdk-group-heading]]:py-[var(--spacing-xs)]',\n 'ds:[&_[cmdk-group-heading]]:type-eyebrow',\n 'ds:[&_[cmdk-group-heading]]:text-[var(--muted-foreground)]',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n />\n));\nCommandGroup.displayName = 'CommandGroup';\n\nconst itemClasses = [\n 'ds:relative ds:flex ds:items-center',\n 'ds:gap-[var(--spacing-sm)]',\n 'ds:min-h-[var(--min-target-size)]',\n 'ds:rounded-[var(--radius-sm)]',\n 'ds:ps-[var(--spacing-sm)] ds:pe-[var(--spacing-sm)]',\n 'ds:text-[var(--font-size-sm)] ds:text-[var(--foreground)]',\n 'ds:cursor-pointer ds:select-none ds:outline-none',\n 'ds:data-[selected=true]:bg-[var(--primary)] ds:data-[selected=true]:text-[var(--primary-foreground)]',\n 'ds:data-[selected=true]:font-[var(--font-weight-semibold)]',\n 'ds:data-[disabled=true]:pointer-events-none ds:data-[disabled=true]:opacity-50',\n 'ds:transition-colors ds:duration-[var(--animation-duration)] ds:motion-reduce:transition-none',\n].join(' ');\n\nexport interface CommandItemProps\n extends ComponentPropsWithoutRef<typeof CommandPrimitive.Item> {}\n\nconst CommandItem = forwardRef<\n ElementRef<typeof CommandPrimitive.Item>,\n CommandItemProps\n>(({ className, ...rest }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={[itemClasses, className].filter(Boolean).join(' ')}\n {...rest}\n />\n));\nCommandItem.displayName = 'CommandItem';\n\nconst CommandSeparator = forwardRef<\n ElementRef<typeof CommandPrimitive.Separator>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...rest }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={[\n 'ds:-ms-[var(--spacing-xs)] ds:-me-[var(--spacing-xs)]',\n 'ds:my-[var(--spacing-xs)]',\n 'ds:h-px ds:bg-[var(--border)]',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n />\n));\nCommandSeparator.displayName = 'CommandSeparator';\n\nexport interface CommandShortcutProps extends ComponentPropsWithoutRef<'kbd'> {}\n\nconst CommandShortcut = forwardRef<HTMLElement, CommandShortcutProps>(\n ({ className, children, ...rest }, ref) => (\n <kbd\n ref={ref}\n className={[\n 'ds:ms-auto',\n 'ds:inline-flex ds:items-center',\n 'ds:ps-[var(--spacing-xs)] ds:pe-[var(--spacing-xs)]',\n 'ds:h-5 ds:rounded-[var(--radius-sm)]',\n 'ds:bg-[var(--muted)]/20 ds:text-[var(--muted-foreground)]',\n 'ds:text-[length:var(--font-size-xs)] ds:font-[var(--font-weight-medium)]',\n 'ds:data-[selected=true]:bg-[var(--primary-foreground)]/20',\n 'ds:data-[selected=true]:text-[var(--primary-foreground)]',\n className ?? '',\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n {children}\n </kbd>\n ),\n);\nCommandShortcut.displayName = 'CommandShortcut';\n\n/* -------------------------------------------------------------------- */\n/* Highlight helper */\n/* -------------------------------------------------------------------- */\n\n/**\n * Returns React nodes that wrap the matching segments of `label` in `<mark>`.\n * Diacritic-insensitive. No `dangerouslySetInnerHTML`.\n */\nexport function highlightMatch(label: string, query: string): ReactNode {\n if (!query) return label;\n const norm = normalise(label);\n const normQ = normalise(query);\n const idx = norm.indexOf(normQ);\n if (idx === -1) return label;\n // Walk the original label using character-by-character correspondence with the\n // normalised string. Since normalise may drop diacritics, we use index mapping.\n const before = label.slice(0, idx);\n const match = label.slice(idx, idx + normQ.length);\n const after = label.slice(idx + normQ.length);\n return (\n <>\n {before}\n <mark className=\"ds:bg-[var(--accent)]/20 ds:text-inherit ds:rounded-[var(--radius-sm)] ds:px-[0.125em]\">\n {match}\n </mark>\n {after}\n </>\n );\n}\n\n/* -------------------------------------------------------------------- */\n/* CommandPaletteDialog — Dialog shell + commands-as-data API */\n/* -------------------------------------------------------------------- */\n\nexport interface CommandPaletteDialogProps {\n /** Controlled open state. */\n open: boolean;\n /** Fires when the dialog opens/closes. */\n onOpenChange: (open: boolean) => void;\n /** Commands to display. */\n commands: Command[];\n /** Extra content rendered above the input (optional). */\n header?: ReactNode;\n}\n\nconst overlayClasses = [\n 'ds:fixed ds:inset-0 ds:z-[var(--z-modal-backdrop)]',\n 'ds:bg-[var(--foreground)]/40 ds:backdrop-blur-sm',\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=open]:fade-in ds:data-[state=closed]:fade-out',\n 'ds:motion-reduce:animate-none',\n].join(' ');\n\nconst dialogContentClasses = [\n 'ds:fixed ds:z-[var(--z-modal)]',\n // Logical-inset arbitrary-value positioning: `inset-inline-start-1/2`\n // isn't a real Tailwind class (the generator maps fractions only to\n // `start-*`), so use `start-1/2` for horizontal and `top-*` for the\n // top offset — matching the working Dialog component.\n 'ds:top-[12vh] ds:start-1/2 ds:-translate-x-1/2 ds:rtl:translate-x-1/2',\n 'ds:w-[92vw] ds:max-w-[var(--dialog-width-lg)]',\n 'ds:rounded-[var(--radius-lg)]',\n 'ds:bg-[var(--background)] ds:text-[var(--foreground)]',\n 'ds:shadow-[var(--shadow-xl)]',\n 'ds:border ds:border-[var(--border)]',\n 'ds:data-[state=open]:animate-in ds:data-[state=closed]:animate-out',\n 'ds:data-[state=open]:zoom-in-95 ds:data-[state=closed]:zoom-out-95',\n 'ds:motion-reduce:animate-none',\n 'ds:focus:outline-none',\n].join(' ');\n\nconst VisuallyHidden = ({ children }: { children: ReactNode }) => (\n <span className=\"ds:sr-only\">{children}</span>\n);\n\nfunction CommandPaletteDialog({\n open,\n onOpenChange,\n commands,\n header,\n}: CommandPaletteDialogProps) {\n const { t } = useTranslation();\n const [search, setSearch] = useState('');\n const [recents, setRecents] = useState<string[]>(readRecents);\n\n useEffect(() => {\n if (!open) setSearch('');\n }, [open]);\n\n const grouped = useMemo(() => {\n const byGroup = new Map<string, Command[]>();\n commands.forEach((c) => {\n const list = byGroup.get(c.group) ?? [];\n list.push(c);\n byGroup.set(c.group, list);\n });\n return byGroup;\n }, [commands]);\n\n const recentCommands = useMemo(() => {\n if (search) return [];\n const byId = new Map(commands.map((c) => [c.id, c]));\n return recents.map((id) => byId.get(id)).filter(Boolean) as Command[];\n }, [commands, recents, search]);\n\n const runCommand = useCallback(\n (cmd: Command) => {\n onOpenChange(false);\n const next = [cmd.id, ...recents.filter((id) => id !== cmd.id)].slice(0, MAX_RECENTS);\n setRecents(next);\n writeRecents(next);\n // Defer so Dialog unmount doesn't swallow the callback\n setTimeout(() => cmd.onSelect(), 0);\n },\n [recents, onOpenChange],\n );\n\n const clearRecents = useCallback(() => {\n setRecents([]);\n writeRecents([]);\n }, []);\n\n return (\n <RadixDialog.Root open={open} onOpenChange={onOpenChange}>\n <RadixDialog.Portal>\n <RadixDialog.Overlay className={overlayClasses} />\n <RadixDialog.Content\n className={dialogContentClasses}\n aria-label={t('navigation.cmdk.title', 'Command palette')}\n >\n <RadixDialog.Title asChild>\n <VisuallyHidden>\n {t('navigation.cmdk.title', 'Command palette')}\n </VisuallyHidden>\n </RadixDialog.Title>\n <RadixDialog.Description asChild>\n <VisuallyHidden>\n {t(\n 'navigation.cmdk.description',\n 'Search for commands, pages, and actions',\n )}\n </VisuallyHidden>\n </RadixDialog.Description>\n <CommandPalette label={t('navigation.cmdk.title', 'Command palette')}>\n {header}\n <CommandInput value={search} onValueChange={setSearch} />\n <CommandList>\n <CommandEmpty />\n {recentCommands.length > 0 ? (\n <>\n <CommandGroup heading={t('navigation.cmdk.recents', 'Recent')}>\n {recentCommands.map((cmd) => (\n <CommandItem\n key={`recent-${cmd.id}`}\n value={`recent-${cmd.label}`}\n onSelect={() => runCommand(cmd)}\n >\n {cmd.icon ? <span aria-hidden=\"true\">{cmd.icon}</span> : null}\n <span>{cmd.label}</span>\n {cmd.shortcut ? (\n <CommandShortcut>{cmd.shortcut}</CommandShortcut>\n ) : null}\n </CommandItem>\n ))}\n <CommandItem\n value=\"__clear-recents\"\n onSelect={clearRecents}\n >\n <span>\n {t(\n 'navigation.cmdk.clearRecents',\n 'Clear recent commands',\n )}\n </span>\n </CommandItem>\n </CommandGroup>\n <CommandSeparator />\n </>\n ) : null}\n {Array.from(grouped.entries()).map(([group, list]) => (\n <CommandGroup key={group} heading={group}>\n {list.map((cmd) => (\n <CommandItem\n key={cmd.id}\n value={cmd.label}\n keywords={cmd.keywords}\n onSelect={() => runCommand(cmd)}\n >\n {cmd.icon ? <span aria-hidden=\"true\">{cmd.icon}</span> : null}\n <span>{highlightMatch(cmd.label, search)}</span>\n {cmd.shortcut ? (\n <CommandShortcut>{cmd.shortcut}</CommandShortcut>\n ) : null}\n </CommandItem>\n ))}\n </CommandGroup>\n ))}\n </CommandList>\n </CommandPalette>\n </RadixDialog.Content>\n </RadixDialog.Portal>\n </RadixDialog.Root>\n );\n}\n\nexport {\n CommandPalette,\n CommandPaletteDialog,\n CommandInput,\n CommandList,\n CommandGroup,\n CommandItem,\n CommandEmpty,\n CommandSeparator,\n CommandShortcut,\n};\n","import type { AgentAdapter } from '../../agent/types';\n\nexport const commandPaletteAgent: AgentAdapter<unknown> = {\n id: 'command-palette',\n capabilities: ['open', 'close', 'filter', 'pick', 'submit'],\n state: {},\n actions: {},\n domHooks: {\n root: { attr: 'data-component', value: 'command-palette' },\n item: {\n attr: 'data-command-id',\n description: 'Each command item emits its key as data-command-id.',\n },\n },\n};\n"],"names":["normalise","value","diacriticInsensitiveFilter","search","keywords","defaultFilter","RECENTS_KEY","MAX_RECENTS","readRecents","raw","parsed","v","writeRecents","ids","useCommandPalette","open","setOpen","useState","useEffect","handler","event","target","tag","isK","isMeta","rootClasses","CommandPalette","forwardRef","className","filter","rest","ref","jsx","CommandPrimitive","inputWrapClasses","inputClasses","CommandInput","placeholder","t","useTranslation","jsxs","Search","CommandList","CommandEmpty","children","CommandGroup","heading","itemClasses","CommandItem","CommandSeparator","CommandShortcut","highlightMatch","label","query","norm","normQ","idx","before","match","after","Fragment","overlayClasses","dialogContentClasses","VisuallyHidden","CommandPaletteDialog","onOpenChange","commands","header","setSearch","recents","setRecents","grouped","useMemo","byGroup","c","list","recentCommands","byId","id","runCommand","useCallback","cmd","next","clearRecents","RadixDialog","group","commandPaletteAgent"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as i, jsxs as C } from "react/jsx-runtime";
2
2
  import { forwardRef as n, useContext as V, useState as u, useCallback as k, createContext as R } from "react";
3
3
  import { c as d } from "./index-D2ZczOXr.js";
4
4
  import { useTranslation as _ } from "react-i18next";
5
- import { I as T } from "./icon-button-CNjWCD1X.js";
5
+ import { I as T } from "./icon-button-Wnnde5lc.js";
6
6
  import { C as P } from "./check-DPdL_Sm7.js";
7
7
  import { C as j } from "./copy-B00HK7tj.js";
8
8
  const f = R({
@@ -185,4 +185,4 @@ const J = Object.assign(v, {
185
185
  export {
186
186
  J as D
187
187
  };
188
- //# sourceMappingURL=description-list-C_1NX8P3.js.map
188
+ //# sourceMappingURL=description-list-DvJbp6Yg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"description-list-C_1NX8P3.js","sources":["../../src/components/description-list/description-list.tsx"],"sourcesContent":["import { createContext, forwardRef, useCallback, useContext, useState } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Copy, Check } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface DescriptionListContextShape {\n layout: 'inline' | 'stacked' | 'responsive';\n density: 'default' | 'compact';\n divider: 'none' | 'between' | 'bordered';\n}\n\nconst DescriptionListContext = createContext<DescriptionListContextShape>({\n layout: 'inline',\n density: 'default',\n divider: 'none',\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — root <dl> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListVariants = cva('ds:flex ds:flex-col', {\n variants: {\n layout: {\n inline: '',\n stacked: '',\n responsive: '',\n },\n density: {\n default: 'ds:gap-[var(--spacing-md)]',\n compact: 'ds:gap-[var(--spacing-sm)]',\n },\n divider: {\n none: '',\n between: '',\n bordered: '',\n },\n },\n defaultVariants: {\n layout: 'inline',\n density: 'default',\n divider: 'none',\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — row <div> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListRowVariants = cva('', {\n variants: {\n layout: {\n inline: 'ds:grid ds:gap-[var(--spacing-md)]',\n stacked: 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n responsive:\n 'ds:grid ds:gap-[var(--spacing-md)] ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]',\n },\n divider: {\n none: '',\n between:\n 'ds:[&:not(:last-child)]:border-b ds:[&:not(:last-child)]:border-[color:var(--border)] ds:[&:not(:last-child)]:pb-[var(--spacing-md)]',\n bordered:\n 'ds:border ds:border-[color:var(--border)] ds:rounded-[var(--radius-sm)] ds:p-[var(--spacing-sm)]',\n },\n copyable: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n layout: 'inline',\n copyable: false,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]',\n },\n {\n layout: 'inline',\n copyable: true,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)_auto]',\n },\n {\n layout: 'responsive',\n copyable: false,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]',\n },\n {\n layout: 'responsive',\n copyable: true,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)_auto]',\n },\n ],\n defaultVariants: {\n layout: 'inline',\n divider: 'none',\n copyable: false,\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\nexport interface DescriptionListProps extends React.HTMLAttributes<HTMLDListElement> {\n layout?: 'inline' | 'stacked' | 'responsive';\n density?: 'default' | 'compact';\n divider?: 'none' | 'between' | 'bordered';\n}\n\nexport interface DescriptionListRowProps extends React.HTMLAttributes<HTMLDivElement> {\n /** When true, shows a copy-to-clipboard button using KeyValuePair's established mechanism */\n copyable?: boolean;\n /** Text written to the clipboard when copyable=true */\n copyText?: string;\n /** Label used in the copy button's aria-label: \"Copy {copyLabel}\". Falls back to copyText. */\n copyLabel?: string;\n}\n\nexport interface DescriptionListTermProps extends React.HTMLAttributes<HTMLElement> {}\n\nexport interface DescriptionListDetailProps extends React.HTMLAttributes<HTMLElement> {\n /** Right-aligns numeric values via text-end */\n numeric?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* Root — <dl> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListRoot = forwardRef<HTMLDListElement, DescriptionListProps>(\n (\n {\n layout = 'inline',\n density = 'default',\n divider = 'none',\n className,\n children,\n ...props\n },\n ref,\n ) => (\n <DescriptionListContext.Provider value={{ layout, density, divider }}>\n <dl\n ref={ref}\n className={descriptionListVariants({ layout, density, divider, className })}\n data-component=\"description-list\"\n {...props}\n >\n {children}\n </dl>\n </DescriptionListContext.Provider>\n ),\n);\nDescriptionListRoot.displayName = 'DescriptionList';\n\n/* ------------------------------------------------------------------ */\n/* Row — <div> that groups a <dt> with its <dd>(s) */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListRow = forwardRef<HTMLDivElement, DescriptionListRowProps>(\n (\n {\n copyable = false,\n copyText,\n copyLabel,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { layout, divider } = useContext(DescriptionListContext);\n const { t } = useTranslation();\n const [copied, setCopied] = useState(false);\n const [announcement, setAnnouncement] = useState('');\n\n const handleCopy = useCallback(async () => {\n if (!copyText) {\n if (import.meta.env.DEV) {\n console.warn(\n 'DescriptionList.Row: copyable=true but no copyText provided. Copy is a no-op.',\n );\n }\n return;\n }\n try {\n await navigator.clipboard.writeText(copyText);\n setCopied(true);\n setAnnouncement(t('ui.keyValuePair.copied'));\n setTimeout(() => {\n setCopied(false);\n setAnnouncement('');\n }, 2000);\n } catch {\n setAnnouncement(t('ui.keyValuePair.notAvailable'));\n setTimeout(() => setAnnouncement(''), 3000);\n }\n }, [copyText, t]);\n\n const ariaLabel = t('ui.keyValuePair.copy', { label: copyLabel ?? copyText ?? '' });\n\n return (\n <div\n ref={ref}\n className={descriptionListRowVariants({ layout, divider, copyable, className })}\n {...props}\n >\n {children}\n {copyable && (\n <IconButton\n icon={copied ? <Check /> : <Copy />}\n size=\"sm\"\n aria-label={ariaLabel}\n onClick={handleCopy}\n intent=\"ghost\"\n className=\"ds:self-start\"\n />\n )}\n {copyable && (\n <span role=\"status\" className=\"ds:sr-only\">\n {announcement}\n </span>\n )}\n </div>\n );\n },\n);\nDescriptionListRow.displayName = 'DescriptionList.Row';\n\n/* ------------------------------------------------------------------ */\n/* CVA — term <dt> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListTermVariants = cva(\n 'type-label ds:text-[color:var(--muted-foreground)] ds:text-start ds:[overflow-wrap:anywhere] ds:[word-break:normal]',\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — detail <dd> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListDetailVariants = cva(\n 'type-body ds:text-[color:var(--foreground)] ds:m-0 ds:[overflow-wrap:anywhere] ds:[word-break:normal]',\n {\n variants: {\n numeric: {\n true: 'ds:text-end',\n false: 'ds:text-start',\n },\n },\n defaultVariants: {\n numeric: false,\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Term — <dt> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListTerm = forwardRef<HTMLElement, DescriptionListTermProps>(\n ({ className, ...props }, ref) => (\n <dt\n ref={ref as React.Ref<HTMLElement>}\n className={descriptionListTermVariants({ className })}\n {...props}\n />\n ),\n);\nDescriptionListTerm.displayName = 'DescriptionList.Term';\n\n/* ------------------------------------------------------------------ */\n/* Detail — <dd> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListDetail = forwardRef<HTMLElement, DescriptionListDetailProps>(\n ({ numeric = false, className, ...props }, ref) => (\n <dd\n ref={ref as React.Ref<HTMLElement>}\n className={descriptionListDetailVariants({ numeric, className })}\n {...props}\n />\n ),\n);\nDescriptionListDetail.displayName = 'DescriptionList.Detail';\n\n/* ------------------------------------------------------------------ */\n/* Compound export */\n/* ------------------------------------------------------------------ */\n\nexport const DescriptionList = Object.assign(DescriptionListRoot, {\n Row: DescriptionListRow,\n Term: DescriptionListTerm,\n Detail: DescriptionListDetail,\n});\n"],"names":["DescriptionListContext","createContext","descriptionListVariants","cva","descriptionListRowVariants","DescriptionListRoot","forwardRef","layout","density","divider","className","children","props","ref","jsx","DescriptionListRow","copyable","copyText","copyLabel","useContext","t","useTranslation","copied","setCopied","useState","announcement","setAnnouncement","handleCopy","useCallback","ariaLabel","jsxs","IconButton","Check","Copy","descriptionListTermVariants","descriptionListDetailVariants","DescriptionListTerm","DescriptionListDetail","numeric","DescriptionList"],"mappings":"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"}
1
+ {"version":3,"file":"description-list-DvJbp6Yg.js","sources":["../../src/components/description-list/description-list.tsx"],"sourcesContent":["import { createContext, forwardRef, useCallback, useContext, useState } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { useTranslation } from 'react-i18next';\nimport { Copy, Check } from 'lucide-react';\nimport { IconButton } from '../button/icon-button';\n\n/* ------------------------------------------------------------------ */\n/* Context */\n/* ------------------------------------------------------------------ */\n\ninterface DescriptionListContextShape {\n layout: 'inline' | 'stacked' | 'responsive';\n density: 'default' | 'compact';\n divider: 'none' | 'between' | 'bordered';\n}\n\nconst DescriptionListContext = createContext<DescriptionListContextShape>({\n layout: 'inline',\n density: 'default',\n divider: 'none',\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — root <dl> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListVariants = cva('ds:flex ds:flex-col', {\n variants: {\n layout: {\n inline: '',\n stacked: '',\n responsive: '',\n },\n density: {\n default: 'ds:gap-[var(--spacing-md)]',\n compact: 'ds:gap-[var(--spacing-sm)]',\n },\n divider: {\n none: '',\n between: '',\n bordered: '',\n },\n },\n defaultVariants: {\n layout: 'inline',\n density: 'default',\n divider: 'none',\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* CVA — row <div> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListRowVariants = cva('', {\n variants: {\n layout: {\n inline: 'ds:grid ds:gap-[var(--spacing-md)]',\n stacked: 'ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]',\n responsive:\n 'ds:grid ds:gap-[var(--spacing-md)] ds:max-sm:flex ds:max-sm:flex-col ds:max-sm:gap-[var(--spacing-xs)]',\n },\n divider: {\n none: '',\n between:\n 'ds:[&:not(:last-child)]:border-b ds:[&:not(:last-child)]:border-[color:var(--border)] ds:[&:not(:last-child)]:pb-[var(--spacing-md)]',\n bordered:\n 'ds:border ds:border-[color:var(--border)] ds:rounded-[var(--radius-sm)] ds:p-[var(--spacing-sm)]',\n },\n copyable: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n layout: 'inline',\n copyable: false,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]',\n },\n {\n layout: 'inline',\n copyable: true,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)_auto]',\n },\n {\n layout: 'responsive',\n copyable: false,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]',\n },\n {\n layout: 'responsive',\n copyable: true,\n className: 'ds:grid-cols-[minmax(0,1fr)_minmax(0,2fr)_auto]',\n },\n ],\n defaultVariants: {\n layout: 'inline',\n divider: 'none',\n copyable: false,\n },\n});\n\n/* ------------------------------------------------------------------ */\n/* Props */\n/* ------------------------------------------------------------------ */\n\nexport interface DescriptionListProps extends React.HTMLAttributes<HTMLDListElement> {\n layout?: 'inline' | 'stacked' | 'responsive';\n density?: 'default' | 'compact';\n divider?: 'none' | 'between' | 'bordered';\n}\n\nexport interface DescriptionListRowProps extends React.HTMLAttributes<HTMLDivElement> {\n /** When true, shows a copy-to-clipboard button using KeyValuePair's established mechanism */\n copyable?: boolean;\n /** Text written to the clipboard when copyable=true */\n copyText?: string;\n /** Label used in the copy button's aria-label: \"Copy {copyLabel}\". Falls back to copyText. */\n copyLabel?: string;\n}\n\nexport interface DescriptionListTermProps extends React.HTMLAttributes<HTMLElement> {}\n\nexport interface DescriptionListDetailProps extends React.HTMLAttributes<HTMLElement> {\n /** Right-aligns numeric values via text-end */\n numeric?: boolean;\n}\n\n/* ------------------------------------------------------------------ */\n/* Root — <dl> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListRoot = forwardRef<HTMLDListElement, DescriptionListProps>(\n (\n {\n layout = 'inline',\n density = 'default',\n divider = 'none',\n className,\n children,\n ...props\n },\n ref,\n ) => (\n <DescriptionListContext.Provider value={{ layout, density, divider }}>\n <dl\n ref={ref}\n className={descriptionListVariants({ layout, density, divider, className })}\n data-component=\"description-list\"\n {...props}\n >\n {children}\n </dl>\n </DescriptionListContext.Provider>\n ),\n);\nDescriptionListRoot.displayName = 'DescriptionList';\n\n/* ------------------------------------------------------------------ */\n/* Row — <div> that groups a <dt> with its <dd>(s) */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListRow = forwardRef<HTMLDivElement, DescriptionListRowProps>(\n (\n {\n copyable = false,\n copyText,\n copyLabel,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { layout, divider } = useContext(DescriptionListContext);\n const { t } = useTranslation();\n const [copied, setCopied] = useState(false);\n const [announcement, setAnnouncement] = useState('');\n\n const handleCopy = useCallback(async () => {\n if (!copyText) {\n if (import.meta.env.DEV) {\n console.warn(\n 'DescriptionList.Row: copyable=true but no copyText provided. Copy is a no-op.',\n );\n }\n return;\n }\n try {\n await navigator.clipboard.writeText(copyText);\n setCopied(true);\n setAnnouncement(t('ui.keyValuePair.copied'));\n setTimeout(() => {\n setCopied(false);\n setAnnouncement('');\n }, 2000);\n } catch {\n setAnnouncement(t('ui.keyValuePair.notAvailable'));\n setTimeout(() => setAnnouncement(''), 3000);\n }\n }, [copyText, t]);\n\n const ariaLabel = t('ui.keyValuePair.copy', { label: copyLabel ?? copyText ?? '' });\n\n return (\n <div\n ref={ref}\n className={descriptionListRowVariants({ layout, divider, copyable, className })}\n {...props}\n >\n {children}\n {copyable && (\n <IconButton\n icon={copied ? <Check /> : <Copy />}\n size=\"sm\"\n aria-label={ariaLabel}\n onClick={handleCopy}\n intent=\"ghost\"\n className=\"ds:self-start\"\n />\n )}\n {copyable && (\n <span role=\"status\" className=\"ds:sr-only\">\n {announcement}\n </span>\n )}\n </div>\n );\n },\n);\nDescriptionListRow.displayName = 'DescriptionList.Row';\n\n/* ------------------------------------------------------------------ */\n/* CVA — term <dt> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListTermVariants = cva(\n 'type-label ds:text-[color:var(--muted-foreground)] ds:text-start ds:[overflow-wrap:anywhere] ds:[word-break:normal]',\n);\n\n/* ------------------------------------------------------------------ */\n/* CVA — detail <dd> */\n/* ------------------------------------------------------------------ */\n\nconst descriptionListDetailVariants = cva(\n 'type-body ds:text-[color:var(--foreground)] ds:m-0 ds:[overflow-wrap:anywhere] ds:[word-break:normal]',\n {\n variants: {\n numeric: {\n true: 'ds:text-end',\n false: 'ds:text-start',\n },\n },\n defaultVariants: {\n numeric: false,\n },\n },\n);\n\n/* ------------------------------------------------------------------ */\n/* Term — <dt> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListTerm = forwardRef<HTMLElement, DescriptionListTermProps>(\n ({ className, ...props }, ref) => (\n <dt\n ref={ref as React.Ref<HTMLElement>}\n className={descriptionListTermVariants({ className })}\n {...props}\n />\n ),\n);\nDescriptionListTerm.displayName = 'DescriptionList.Term';\n\n/* ------------------------------------------------------------------ */\n/* Detail — <dd> */\n/* ------------------------------------------------------------------ */\n\nconst DescriptionListDetail = forwardRef<HTMLElement, DescriptionListDetailProps>(\n ({ numeric = false, className, ...props }, ref) => (\n <dd\n ref={ref as React.Ref<HTMLElement>}\n className={descriptionListDetailVariants({ numeric, className })}\n {...props}\n />\n ),\n);\nDescriptionListDetail.displayName = 'DescriptionList.Detail';\n\n/* ------------------------------------------------------------------ */\n/* Compound export */\n/* ------------------------------------------------------------------ */\n\nexport const DescriptionList = Object.assign(DescriptionListRoot, {\n Row: DescriptionListRow,\n Term: DescriptionListTerm,\n Detail: DescriptionListDetail,\n});\n"],"names":["DescriptionListContext","createContext","descriptionListVariants","cva","descriptionListRowVariants","DescriptionListRoot","forwardRef","layout","density","divider","className","children","props","ref","jsx","DescriptionListRow","copyable","copyText","copyLabel","useContext","t","useTranslation","copied","setCopied","useState","announcement","setAnnouncement","handleCopy","useCallback","ariaLabel","jsxs","IconButton","Check","Copy","descriptionListTermVariants","descriptionListDetailVariants","DescriptionListTerm","DescriptionListDetail","numeric","DescriptionList"],"mappings":"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"}