themelia-react-ui 2.0.1 → 2.0.3

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 (490) hide show
  1. package/CHANGELOG.md +317 -131
  2. package/README.md +25 -9
  3. package/THIRD_PARTY_NOTICES.md +7 -0
  4. package/dist/{accordion-B6a3vVgA.js → accordion-Cjb6sx0G.js} +14 -13
  5. package/dist/accordion-Cjb6sx0G.js.map +1 -0
  6. package/dist/action-menu-CllU52Mm.js +280 -0
  7. package/dist/action-menu-CllU52Mm.js.map +1 -0
  8. package/dist/affordance-geometry.generated-tF36bREk.js +140 -0
  9. package/dist/affordance-geometry.generated-tF36bREk.js.map +1 -0
  10. package/dist/ai-artifact-DvTwDVyL.js +1148 -0
  11. package/dist/ai-artifact-DvTwDVyL.js.map +1 -0
  12. package/dist/{app-shell-ZK5RWdo6.js → app-shell-C4FhvCqF.js} +5 -5
  13. package/dist/{app-shell-ZK5RWdo6.js.map → app-shell-C4FhvCqF.js.map} +1 -1
  14. package/dist/attachment-BxDfL2mw.js +246 -0
  15. package/dist/attachment-BxDfL2mw.js.map +1 -0
  16. package/dist/{auth-CYxKfo69.js → auth-BGua8ouh.js} +58 -54
  17. package/dist/auth-BGua8ouh.js.map +1 -0
  18. package/dist/{avatar-BBnEJIx8.js → avatar-DAPlDvhJ.js} +7 -7
  19. package/dist/avatar-DAPlDvhJ.js.map +1 -0
  20. package/dist/{badge-MrKVNzW9.js → badge-HpFqoqSY.js} +40 -40
  21. package/dist/badge-HpFqoqSY.js.map +1 -0
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +1 -1
  29. package/dist/base/cards.js +2 -2
  30. package/dist/base/carousel.js +40 -36
  31. package/dist/base/carousel.js.map +1 -1
  32. package/dist/base/cascader.js +92 -92
  33. package/dist/base/cascader.js.map +1 -1
  34. package/dist/base/chart.js +1 -1
  35. package/dist/base/choice-inputs.js +2 -2
  36. package/dist/base/code-block.js +1 -1
  37. package/dist/base/combobox.js +2 -2
  38. package/dist/base/command.js +1 -1
  39. package/dist/base/copyable.js +1 -1
  40. package/dist/base/date-pickers.js +2 -2
  41. package/dist/base/display.js +6 -6
  42. package/dist/base/feedback.js +3 -3
  43. package/dist/base/forms-numeric.js +1 -1
  44. package/dist/base/forms.js +2 -2
  45. package/dist/base/inline-edit.js +14 -14
  46. package/dist/base/inline-edit.js.map +1 -1
  47. package/dist/base/item.js +1 -1
  48. package/dist/base/media-gallery.js +1 -1
  49. package/dist/base/metadata-list.js +1 -1
  50. package/dist/base/navigation.js +6 -6
  51. package/dist/base/popover-menu.js +1 -1
  52. package/dist/base/popover.js +1 -1
  53. package/dist/base/qr-code.js +1 -1
  54. package/dist/base/repeaters.js +171 -176
  55. package/dist/base/repeaters.js.map +1 -1
  56. package/dist/base/sheet.js +1 -1
  57. package/dist/base/sidebar.js +1 -1
  58. package/dist/base/signature-pad.js +6 -6
  59. package/dist/base/skeleton.js +1 -1
  60. package/dist/base/spinner.js +79 -2
  61. package/dist/base/spinner.js.map +1 -0
  62. package/dist/base/structure.js +1 -1
  63. package/dist/base/table.js +1 -1
  64. package/dist/base/text-inputs.js +2 -2
  65. package/dist/base/toaster.js +46 -45
  66. package/dist/base/toaster.js.map +1 -1
  67. package/dist/base/tree.js +1 -1
  68. package/dist/base/upload-queue.js +1 -1
  69. package/dist/base/upload.js +3 -3
  70. package/dist/base/value-inputs.js +1 -1
  71. package/dist/{batch-action-bar-BZGDG-Si.js → batch-action-bar-DnUJ21NQ.js} +6 -5
  72. package/dist/batch-action-bar-DnUJ21NQ.js.map +1 -0
  73. package/dist/blocks/admin.js +42 -42
  74. package/dist/blocks/admin.js.map +1 -1
  75. package/dist/blocks/ai.js +260 -240
  76. package/dist/blocks/ai.js.map +1 -1
  77. package/dist/blocks/analytics/usage-card.js +1 -1
  78. package/dist/blocks/analytics.js +620 -585
  79. package/dist/blocks/analytics.js.map +1 -1
  80. package/dist/blocks/collaboration.js +1 -1
  81. package/dist/blocks/commerce/receipt.js +1 -1
  82. package/dist/blocks/commerce.js +1152 -1109
  83. package/dist/blocks/commerce.js.map +1 -1
  84. package/dist/blocks/data-display.js +2 -2
  85. package/dist/blocks/onboarding.js +48 -39
  86. package/dist/blocks/onboarding.js.map +1 -1
  87. package/dist/blocks/planning.js +13 -12
  88. package/dist/blocks/planning.js.map +1 -1
  89. package/dist/blocks/timelines.js +1 -1
  90. package/dist/{breadcrumbs-D5t7I023.js → breadcrumbs-C-oqs1sQ.js} +5 -5
  91. package/dist/breadcrumbs-C-oqs1sQ.js.map +1 -0
  92. package/dist/{button-QYwiyhD2.js → button-DVzspB_G.js} +2 -2
  93. package/dist/{button-QYwiyhD2.js.map → button-DVzspB_G.js.map} +1 -1
  94. package/dist/{buttons-SbIcm1HJ.js → buttons-DPZekJFu.js} +20 -15
  95. package/dist/buttons-DPZekJFu.js.map +1 -0
  96. package/dist/cards-BaBZR-AU.js +68 -0
  97. package/dist/cards-BaBZR-AU.js.map +1 -0
  98. package/dist/{chart-QfrARkXl.js → chart-ZOYyK2xG.js} +58 -55
  99. package/dist/chart-ZOYyK2xG.js.map +1 -0
  100. package/dist/{checkbox-DhB6K0bK.js → checkbox-AWIhNhmo.js} +2 -2
  101. package/dist/{checkbox-DhB6K0bK.js.map → checkbox-AWIhNhmo.js.map} +1 -1
  102. package/dist/{choice-inputs-t6w3ATNz.js → choice-inputs-CNHvARCJ.js} +49 -45
  103. package/dist/choice-inputs-CNHvARCJ.js.map +1 -0
  104. package/dist/{code-block-Dgbu-CU3.js → code-block-DeneBJR_.js} +8 -8
  105. package/dist/code-block-DeneBJR_.js.map +1 -0
  106. package/dist/{collapsible-D8AEGU1-.js → collapsible-C-_l4hpy.js} +3 -3
  107. package/dist/{collapsible-D8AEGU1-.js.map → collapsible-C-_l4hpy.js.map} +1 -1
  108. package/dist/{collection-content-uK16Grv0.js → collection-content-By56pLog.js} +3 -3
  109. package/dist/{collection-content-uK16Grv0.js.map → collection-content-By56pLog.js.map} +1 -1
  110. package/dist/combobox-DaHESuiL.js +355 -0
  111. package/dist/combobox-DaHESuiL.js.map +1 -0
  112. package/dist/{combobox-DLl0bfiq.js → combobox-Dxo2fAYQ.js} +289 -279
  113. package/dist/combobox-Dxo2fAYQ.js.map +1 -0
  114. package/dist/{command-kNR20o7x.js → command-C25VMRII.js} +7 -7
  115. package/dist/{command-kNR20o7x.js.map → command-C25VMRII.js.map} +1 -1
  116. package/dist/{comments-BpDuCUUu.js → comments-DD0DUPwJ.js} +114 -105
  117. package/dist/comments-DD0DUPwJ.js.map +1 -0
  118. package/dist/components/base/badge/badge.recipes.d.ts +1 -1
  119. package/dist/components/base/buttons/loader-button.d.ts +2 -1
  120. package/dist/components/base/cards/card.recipes.d.ts +2 -3
  121. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +3 -13
  122. package/dist/components/base/cards/smart-card.types.d.ts +11 -4
  123. package/dist/components/base/chart/chart.d.ts +2 -5
  124. package/dist/components/base/combobox/combobox-field.d.ts +16 -0
  125. package/dist/components/base/combobox/combobox.strings.d.ts +7 -0
  126. package/dist/components/base/combobox/index.d.ts +30 -4
  127. package/dist/components/base/forms/form-sizing.d.ts +11 -3
  128. package/dist/components/base/navigation/pagination.d.ts +5 -2
  129. package/dist/components/base/popover/popover.recipes.d.ts +15 -1
  130. package/dist/components/base/table/index.d.ts +9 -2
  131. package/dist/components/base/text-inputs/input-group.d.ts +2 -2
  132. package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +1 -1
  133. package/dist/components/blocks/ai/ai-shimmer/types.d.ts +3 -0
  134. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +3 -1
  135. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +16 -8
  136. package/dist/components/features/activities/partials/activity-marker.d.ts +6 -3
  137. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +5 -0
  138. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +220 -0
  139. package/dist/components/features/appointment-calendar/appointment-calendar.utils.d.ts +41 -0
  140. package/dist/components/features/appointment-calendar/index.d.ts +3 -0
  141. package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +32 -0
  142. package/dist/components/features/appointment-calendar/partials/appointment-month.d.ts +13 -0
  143. package/dist/components/features/combobox/combobox.strings.d.ts +15 -1
  144. package/dist/components/features/combobox/types.d.ts +4 -0
  145. package/dist/components/features/media-library/media-library.strings.d.ts +2 -0
  146. package/dist/components/features/rich-text-editor/index.d.ts +1 -1
  147. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +6 -0
  148. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +9 -1
  149. package/dist/components/features/table/table-header.d.ts +1 -1
  150. package/dist/components/features/table/table.strings.d.ts +55 -1
  151. package/dist/components/features/table/table.types.d.ts +17 -4
  152. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +5 -0
  153. package/dist/components/primitives/number.d.ts +4 -2
  154. package/dist/components/primitives/value.d.ts +3 -1
  155. package/dist/components/typography/text-link.d.ts +4 -0
  156. package/dist/components/ui/combobox-dismiss.d.ts +16 -0
  157. package/dist/components/ui/combobox.d.ts +16 -7
  158. package/dist/components/ui/dialog.d.ts +1 -1
  159. package/dist/components/ui/item.d.ts +8 -8
  160. package/dist/components/ui/popover.d.ts +1 -1
  161. package/dist/components/ui/sheet.d.ts +1 -1
  162. package/dist/components/ui/tabs.d.ts +1 -1
  163. package/dist/{containers-DmWiJa2I.js → containers-Mu1LMGV1.js} +2 -2
  164. package/dist/{containers-DmWiJa2I.js.map → containers-Mu1LMGV1.js.map} +1 -1
  165. package/dist/{copyable-B3Gwgdqc.js → copyable-ClBuk_UK.js} +4 -4
  166. package/dist/{copyable-B3Gwgdqc.js.map → copyable-ClBuk_UK.js.map} +1 -1
  167. package/dist/{data-display-DafIvCl5.js → data-display-DT_khPl_.js} +98 -87
  168. package/dist/data-display-DT_khPl_.js.map +1 -0
  169. package/dist/{date-BgK3bTdo.js → date-DCrsDTZc.js} +5 -5
  170. package/dist/{date-BgK3bTdo.js.map → date-DCrsDTZc.js.map} +1 -1
  171. package/dist/{date-picker-CF-DtUpF.js → date-picker-B2K3ucWn.js} +594 -593
  172. package/dist/date-picker-B2K3ucWn.js.map +1 -0
  173. package/dist/date-pickers-Ds8gLaoP.js +175 -0
  174. package/dist/date-pickers-Ds8gLaoP.js.map +1 -0
  175. package/dist/{display-DsQTVzMz.js → display-hAc1HjpI.js} +49 -49
  176. package/dist/display-hAc1HjpI.js.map +1 -0
  177. package/dist/dropdown-menu-Cl4X7L5S.js +193 -0
  178. package/dist/dropdown-menu-Cl4X7L5S.js.map +1 -0
  179. package/dist/editable-text-recipe-Cn61kEcv.js +10 -0
  180. package/dist/editable-text-recipe-Cn61kEcv.js.map +1 -0
  181. package/dist/features/activities.js +398 -375
  182. package/dist/features/activities.js.map +1 -1
  183. package/dist/features/ai-chat.js +188 -179
  184. package/dist/features/ai-chat.js.map +1 -1
  185. package/dist/features/appointment-calendar.js +683 -0
  186. package/dist/features/appointment-calendar.js.map +1 -0
  187. package/dist/features/async-preview.js +109 -107
  188. package/dist/features/async-preview.js.map +1 -1
  189. package/dist/features/combobox.js +1 -1
  190. package/dist/features/comments.js +1 -1
  191. package/dist/features/data-view.js +137 -137
  192. package/dist/features/data-view.js.map +1 -1
  193. package/dist/features/email-composer.js +255 -255
  194. package/dist/features/email-composer.js.map +1 -1
  195. package/dist/features/event-calendar.js +254 -248
  196. package/dist/features/event-calendar.js.map +1 -1
  197. package/dist/features/filters.js +1 -1
  198. package/dist/features/global-search.js +35 -32
  199. package/dist/features/global-search.js.map +1 -1
  200. package/dist/features/kanban.js +118 -117
  201. package/dist/features/kanban.js.map +1 -1
  202. package/dist/features/map.js +233 -231
  203. package/dist/features/map.js.map +1 -1
  204. package/dist/features/media-library.js +789 -775
  205. package/dist/features/media-library.js.map +1 -1
  206. package/dist/features/mentions.js +1 -1
  207. package/dist/features/overlays.js +1 -1
  208. package/dist/features/products.js +922 -902
  209. package/dist/features/products.js.map +1 -1
  210. package/dist/features/questionnaire.js +28 -24
  211. package/dist/features/questionnaire.js.map +1 -1
  212. package/dist/features/resource-assignment.js +18 -15
  213. package/dist/features/resource-assignment.js.map +1 -1
  214. package/dist/features/resource.js +12 -12
  215. package/dist/features/resource.js.map +1 -1
  216. package/dist/features/rich-text-editor.js +2 -2
  217. package/dist/features/schema-form.js +15 -13
  218. package/dist/features/schema-form.js.map +1 -1
  219. package/dist/features/suggestions.js +3 -3
  220. package/dist/features/sync.js +11 -5
  221. package/dist/features/sync.js.map +1 -1
  222. package/dist/features/table.js +1 -1
  223. package/dist/features/theme-tweaker.js +493 -489
  224. package/dist/features/theme-tweaker.js.map +1 -1
  225. package/dist/feedback-BYIhtitP.js +239 -0
  226. package/dist/feedback-BYIhtitP.js.map +1 -0
  227. package/dist/{field-affordance-recipes-qQeIf4lG.js → field-affordance-recipes-DZhnIL_Y.js} +11 -18
  228. package/dist/field-affordance-recipes-DZhnIL_Y.js.map +1 -0
  229. package/dist/{filters-BkHH53uv.js → filters-DJVAveHA.js} +589 -580
  230. package/dist/filters-DJVAveHA.js.map +1 -0
  231. package/dist/{form-field-DUt4UxSV.js → form-field-CwH9y77i.js} +6 -5
  232. package/dist/form-field-CwH9y77i.js.map +1 -0
  233. package/dist/{form-sizing-By94KzXE.js → form-sizing-BdP_Mf5p.js} +39 -44
  234. package/dist/form-sizing-BdP_Mf5p.js.map +1 -0
  235. package/dist/{forms-Bzha-Y3B.js → forms-B9G_xwzi.js} +8 -8
  236. package/dist/{forms-Bzha-Y3B.js.map → forms-B9G_xwzi.js.map} +1 -1
  237. package/dist/{forms-numeric-C0bvjRPZ.js → forms-numeric-B_jraJaQ.js} +309 -309
  238. package/dist/forms-numeric-B_jraJaQ.js.map +1 -0
  239. package/dist/{header-BOefOKd1.js → header-BSfIEWbI.js} +160 -153
  240. package/dist/header-BSfIEWbI.js.map +1 -0
  241. package/dist/{hooks-9k_TtmKh.js → hooks-ClH9thn4.js} +2 -2
  242. package/dist/{hooks-9k_TtmKh.js.map → hooks-ClH9thn4.js.map} +1 -1
  243. package/dist/{icon-badge-CAuKupo9.js → icon-badge-DYKIwvOV.js} +4 -4
  244. package/dist/{icon-badge-CAuKupo9.js.map → icon-badge-DYKIwvOV.js.map} +1 -1
  245. package/dist/index.js +3 -3
  246. package/dist/input-CZw8iU99.js +21 -0
  247. package/dist/input-CZw8iU99.js.map +1 -0
  248. package/dist/input-DQdEd0YD.js +263 -0
  249. package/dist/input-DQdEd0YD.js.map +1 -0
  250. package/dist/{interaction-recipes-CHr0dJUs.js → interaction-recipes-XR9ZpVYL.js} +2 -1
  251. package/dist/interaction-recipes-XR9ZpVYL.js.map +1 -0
  252. package/dist/item-K5_ghvze.js +275 -0
  253. package/dist/item-K5_ghvze.js.map +1 -0
  254. package/dist/layout/app-shell.js +1 -1
  255. package/dist/layout/auth.js +1 -1
  256. package/dist/layout/containers.js +1 -1
  257. package/dist/layout/header.js +1 -1
  258. package/dist/layout/hooks.js +1 -1
  259. package/dist/layout/navigation.js +1 -1
  260. package/dist/layout/page.js +1 -1
  261. package/dist/layout/settings.js +1 -1
  262. package/dist/layout/sidebar.js +2 -2
  263. package/dist/layout/workspace.js +1 -1
  264. package/dist/layout.js +10 -10
  265. package/dist/lib/affordance-geometry.generated.d.ts +71 -0
  266. package/dist/lib/editable-text-recipe.d.ts +4 -4
  267. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  268. package/dist/lib/interaction-recipes.d.ts +5 -0
  269. package/dist/lib/theme-mode-css.d.ts +7 -0
  270. package/dist/lib/tone-recipes.d.ts +8 -0
  271. package/dist/lib/ui-provider/types.d.ts +2 -2
  272. package/dist/lib/use-popup-focus-recovery.d.ts +8 -0
  273. package/dist/lib/utils.js +1 -1
  274. package/dist/{media-gallery-DcTtAaeC.js → media-gallery-3zIVLMWH.js} +8 -8
  275. package/dist/media-gallery-3zIVLMWH.js.map +1 -0
  276. package/dist/{mentions-D-uyCh01.js → mentions-CGlEJ15c.js} +144 -142
  277. package/dist/mentions-CGlEJ15c.js.map +1 -0
  278. package/dist/{message-CdHgIWKf.js → message-DZ_ruyUV.js} +6 -5
  279. package/dist/message-DZ_ruyUV.js.map +1 -0
  280. package/dist/{metadata-list-X5rYAKSB.js → metadata-list-8N16ZMW_.js} +130 -119
  281. package/dist/metadata-list-8N16ZMW_.js.map +1 -0
  282. package/dist/{navigation-D3KwXmaq.js → navigation-Bnotn4AQ.js} +19 -19
  283. package/dist/navigation-Bnotn4AQ.js.map +1 -0
  284. package/dist/{navigation-HJf5zxlH.js → navigation-BzhHI3lo.js} +36 -35
  285. package/dist/navigation-BzhHI3lo.js.map +1 -0
  286. package/dist/{navigation-row-recipes-BVowojQw.js → navigation-row-recipes-BFLCk_Aq.js} +2 -2
  287. package/dist/{navigation-row-recipes-BVowojQw.js.map → navigation-row-recipes-BFLCk_Aq.js.map} +1 -1
  288. package/dist/{number-DMhe-Vsk.js → number-DbV1Dija.js} +36 -34
  289. package/dist/{number-DMhe-Vsk.js.map → number-DbV1Dija.js.map} +1 -1
  290. package/dist/{overflow-tab-bar-sQHXLlwQ.js → overflow-tab-bar-CWY7Nogn.js} +105 -103
  291. package/dist/overflow-tab-bar-CWY7Nogn.js.map +1 -0
  292. package/dist/{overlays-I0axtYA6.js → overlays-tMkF-VAN.js} +282 -278
  293. package/dist/overlays-tMkF-VAN.js.map +1 -0
  294. package/dist/{page-B5dTH9gE.js → page-CL9YeH_V.js} +8 -8
  295. package/dist/{page-B5dTH9gE.js.map → page-CL9YeH_V.js.map} +1 -1
  296. package/dist/{page-header-commands-DjzFEq3E.js → page-header-commands-DOb6WsfD.js} +5 -5
  297. package/dist/{page-header-commands-DjzFEq3E.js.map → page-header-commands-DOb6WsfD.js.map} +1 -1
  298. package/dist/pagination-BL25hu2s.js +158 -0
  299. package/dist/pagination-BL25hu2s.js.map +1 -0
  300. package/dist/{popover-Di55PyAI.js → popover-gnTOhbFM.js} +69 -66
  301. package/dist/popover-gnTOhbFM.js.map +1 -0
  302. package/dist/popover-menu-Cn9rUkdc.js +100 -0
  303. package/dist/popover-menu-Cn9rUkdc.js.map +1 -0
  304. package/dist/{popover.recipes-Bdyhj2db.js → popover.recipes-D3j8R8Yp.js} +17 -10
  305. package/dist/popover.recipes-D3j8R8Yp.js.map +1 -0
  306. package/dist/{primitives-B-CkiEMU.js → primitives-BFK08r9M.js} +45 -44
  307. package/dist/primitives-BFK08r9M.js.map +1 -0
  308. package/dist/primitives.js +4 -4
  309. package/dist/{progress-rnS8-uAW.js → progress-B1VnCT0K.js} +5 -5
  310. package/dist/{progress-rnS8-uAW.js.map → progress-B1VnCT0K.js.map} +1 -1
  311. package/dist/{receipt-D0oswZ0p.js → receipt-BVSOH3Xo.js} +9 -6
  312. package/dist/{receipt-D0oswZ0p.js.map → receipt-BVSOH3Xo.js.map} +1 -1
  313. package/dist/{rich-text-DvGulsNJ.js → rich-text-GOUyKQ-s.js} +3 -3
  314. package/dist/{rich-text-DvGulsNJ.js.map → rich-text-GOUyKQ-s.js.map} +1 -1
  315. package/dist/{rich-text-editor-sMU_Scqm.js → rich-text-editor-cRLC-eBK.js} +418 -426
  316. package/dist/rich-text-editor-cRLC-eBK.js.map +1 -0
  317. package/dist/rich-text-editor-toolbar-DfXg0-VC.js +94 -0
  318. package/dist/rich-text-editor-toolbar-DfXg0-VC.js.map +1 -0
  319. package/dist/{scroll-area-Bt_vXY2b.js → scroll-area-DcI-M1UT.js} +2 -2
  320. package/dist/{scroll-area-Bt_vXY2b.js.map → scroll-area-DcI-M1UT.js.map} +1 -1
  321. package/dist/{separator-C8DlRGwF.js → separator-BDV-Y648.js} +3 -3
  322. package/dist/{separator-C8DlRGwF.js.map → separator-BDV-Y648.js.map} +1 -1
  323. package/dist/{separator-CYHnjsAb.js → separator-Bom7NsGO.js} +2 -2
  324. package/dist/{separator-CYHnjsAb.js.map → separator-Bom7NsGO.js.map} +1 -1
  325. package/dist/services/actions.js +1 -1
  326. package/dist/{settings-CQW3b-Cu.js → settings-ybnjVwbd.js} +20 -19
  327. package/dist/settings-ybnjVwbd.js.map +1 -0
  328. package/dist/{sheet-4SEvVYzA.js → sheet-ijlsjq-n.js} +76 -73
  329. package/dist/sheet-ijlsjq-n.js.map +1 -0
  330. package/dist/{sidebar-C7WWR29L.js → sidebar-Db6gkh3U.js} +183 -182
  331. package/dist/sidebar-Db6gkh3U.js.map +1 -0
  332. package/dist/{sidebar-d7Dg80ln.js → sidebar-DkTO4VTO.js} +14 -13
  333. package/dist/{sidebar-d7Dg80ln.js.map → sidebar-DkTO4VTO.js.map} +1 -1
  334. package/dist/{skeleton-Cz890JZF.js → skeleton-Byjnt7qr.js} +3 -3
  335. package/dist/{skeleton-Cz890JZF.js.map → skeleton-Byjnt7qr.js.map} +1 -1
  336. package/dist/smart-card-DiC5aac3.js +604 -0
  337. package/dist/smart-card-DiC5aac3.js.map +1 -0
  338. package/dist/{structure-DC2dygdA.js → structure-BmisBK-3.js} +2 -2
  339. package/dist/{structure-DC2dygdA.js.map → structure-BmisBK-3.js.map} +1 -1
  340. package/dist/style.css +1 -1
  341. package/dist/table-BweFy_P9.js +1530 -0
  342. package/dist/table-BweFy_P9.js.map +1 -0
  343. package/dist/{table-CIKyLUsy.js → table-DsfzoUia.js} +75 -63
  344. package/dist/table-DsfzoUia.js.map +1 -0
  345. package/dist/{tabs-DwBJfjxX.js → tabs-CDocW5D1.js} +14 -13
  346. package/dist/tabs-CDocW5D1.js.map +1 -0
  347. package/dist/text-inputs-f9Ia-aCi.js +353 -0
  348. package/dist/text-inputs-f9Ia-aCi.js.map +1 -0
  349. package/dist/theme-mode-css-BB-_RYab.js +14 -0
  350. package/dist/theme-mode-css-BB-_RYab.js.map +1 -0
  351. package/dist/theme-scope-BJ6eE2xt.js +50 -0
  352. package/dist/theme-scope-BJ6eE2xt.js.map +1 -0
  353. package/dist/theme.css +285 -228
  354. package/dist/themes/green.css +16 -12
  355. package/dist/timelines-CwM_9IhD.js +457 -0
  356. package/dist/timelines-CwM_9IhD.js.map +1 -0
  357. package/dist/{tone-recipes-CPoExcTE.js → tone-recipes-BPsRAvhu.js} +5 -2
  358. package/dist/tone-recipes-BPsRAvhu.js.map +1 -0
  359. package/dist/{tooltip-CsfgrfS7.js → tooltip-yiRJUFjp.js} +4 -4
  360. package/dist/{tooltip-CsfgrfS7.js.map → tooltip-yiRJUFjp.js.map} +1 -1
  361. package/dist/{tree-BiKhg8AY.js → tree-WnKQzwbq.js} +9 -9
  362. package/dist/{tree-BiKhg8AY.js.map → tree-WnKQzwbq.js.map} +1 -1
  363. package/dist/typography/rich-text.js +1 -1
  364. package/dist/{typography-DTRkE9zL.js → typography-UTnveOEy.js} +6 -6
  365. package/dist/typography-UTnveOEy.js.map +1 -0
  366. package/dist/typography.js +2 -2
  367. package/dist/{ui-provider-1D_NSYzO.js → ui-provider-C_U0Xma4.js} +3 -3
  368. package/dist/ui-provider-C_U0Xma4.js.map +1 -0
  369. package/dist/ui-provider.js +2 -2
  370. package/dist/{upload-BO8-CLN6.js → upload-CXyxmQBP.js} +13 -12
  371. package/dist/upload-CXyxmQBP.js.map +1 -0
  372. package/dist/{upload-queue-EOC8g1gf.js → upload-queue-Boscubn9.js} +11 -9
  373. package/dist/upload-queue-Boscubn9.js.map +1 -0
  374. package/dist/{usage-card-obRaBskq.js → usage-card-BhO5eqkX.js} +53 -37
  375. package/dist/usage-card-BhO5eqkX.js.map +1 -0
  376. package/dist/use-popup-focus-recovery-C0QPvgOR.js +36 -0
  377. package/dist/use-popup-focus-recovery-C0QPvgOR.js.map +1 -0
  378. package/dist/{utils-l5LpDw2z.js → utils-BRhFDwuU.js} +59 -44
  379. package/dist/utils-BRhFDwuU.js.map +1 -0
  380. package/dist/{value-inputs-TAYMX111.js → value-inputs-TaX4OjNk.js} +268 -252
  381. package/dist/value-inputs-TaX4OjNk.js.map +1 -0
  382. package/dist/{value-typography-b8wpz1eX.js → value-typography-BP8OG6h5.js} +2 -2
  383. package/dist/{value-typography-b8wpz1eX.js.map → value-typography-BP8OG6h5.js.map} +1 -1
  384. package/dist/{workspace-DH0v0KcB.js → workspace-B-OEm3Kf.js} +34 -33
  385. package/dist/workspace-B-OEm3Kf.js.map +1 -0
  386. package/docs/consumer-skill/SKILL.md +3 -3
  387. package/docs/consumer-skill/references/agents-md.md +1 -1
  388. package/docs/consumer-skill/references/composition.md +8 -6
  389. package/docs/consumer-skill/references/installation.md +6 -0
  390. package/docs/consumer-skill/references/integration.md +4 -3
  391. package/docs/consumer-skill/references/public-api.json +105 -2
  392. package/docs/consumer-skill/references/review.md +7 -0
  393. package/docs/consumer-skill/references/theming.md +71 -6
  394. package/docs/consumer-skill/references/tokens.json +1 -1
  395. package/docs/consumer-skill/references/workflows.md +26 -0
  396. package/docs/consumer-skill/scripts/composition-policy.mjs +3 -2
  397. package/docs/consumer-skill/scripts/surface-policy.mjs +11 -0
  398. package/package.json +8 -4
  399. package/dist/accordion-B6a3vVgA.js.map +0 -1
  400. package/dist/action-menu-TzCoSlwL.js +0 -280
  401. package/dist/action-menu-TzCoSlwL.js.map +0 -1
  402. package/dist/affordance-geometry.generated-B5iu-Mkr.js +0 -69
  403. package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +0 -1
  404. package/dist/ai-artifact-BMJdv-6q.js +0 -1115
  405. package/dist/ai-artifact-BMJdv-6q.js.map +0 -1
  406. package/dist/attachment-BtfhGm8i.js +0 -245
  407. package/dist/attachment-BtfhGm8i.js.map +0 -1
  408. package/dist/auth-CYxKfo69.js.map +0 -1
  409. package/dist/avatar-BBnEJIx8.js.map +0 -1
  410. package/dist/badge-MrKVNzW9.js.map +0 -1
  411. package/dist/batch-action-bar-BZGDG-Si.js.map +0 -1
  412. package/dist/breadcrumbs-D5t7I023.js.map +0 -1
  413. package/dist/buttons-SbIcm1HJ.js.map +0 -1
  414. package/dist/cards-CiiHpKYd.js +0 -66
  415. package/dist/cards-CiiHpKYd.js.map +0 -1
  416. package/dist/chart-QfrARkXl.js.map +0 -1
  417. package/dist/choice-inputs-t6w3ATNz.js.map +0 -1
  418. package/dist/code-block-Dgbu-CU3.js.map +0 -1
  419. package/dist/combobox-2Ic8N9bL.js +0 -278
  420. package/dist/combobox-2Ic8N9bL.js.map +0 -1
  421. package/dist/combobox-DLl0bfiq.js.map +0 -1
  422. package/dist/comments-BpDuCUUu.js.map +0 -1
  423. package/dist/data-display-DafIvCl5.js.map +0 -1
  424. package/dist/date-picker-CF-DtUpF.js.map +0 -1
  425. package/dist/date-pickers-BmzxJl5l.js +0 -174
  426. package/dist/date-pickers-BmzxJl5l.js.map +0 -1
  427. package/dist/display-DsQTVzMz.js.map +0 -1
  428. package/dist/dropdown-menu-E2qmdC7o.js +0 -193
  429. package/dist/dropdown-menu-E2qmdC7o.js.map +0 -1
  430. package/dist/editable-text-recipe-Bkm6wKHp.js +0 -10
  431. package/dist/editable-text-recipe-Bkm6wKHp.js.map +0 -1
  432. package/dist/feedback-qNuMBtRH.js +0 -233
  433. package/dist/feedback-qNuMBtRH.js.map +0 -1
  434. package/dist/field-affordance-recipes-qQeIf4lG.js.map +0 -1
  435. package/dist/filters-BkHH53uv.js.map +0 -1
  436. package/dist/form-field-DUt4UxSV.js.map +0 -1
  437. package/dist/form-sizing-By94KzXE.js.map +0 -1
  438. package/dist/forms-numeric-C0bvjRPZ.js.map +0 -1
  439. package/dist/header-BOefOKd1.js.map +0 -1
  440. package/dist/input-DWhBBBww.js +0 -262
  441. package/dist/input-DWhBBBww.js.map +0 -1
  442. package/dist/input-Ddi_LSYv.js +0 -20
  443. package/dist/input-Ddi_LSYv.js.map +0 -1
  444. package/dist/interaction-recipes-CHr0dJUs.js.map +0 -1
  445. package/dist/item-DEmDiTlD.js +0 -265
  446. package/dist/item-DEmDiTlD.js.map +0 -1
  447. package/dist/media-gallery-DcTtAaeC.js.map +0 -1
  448. package/dist/mentions-D-uyCh01.js.map +0 -1
  449. package/dist/message-CdHgIWKf.js.map +0 -1
  450. package/dist/metadata-list-X5rYAKSB.js.map +0 -1
  451. package/dist/navigation-D3KwXmaq.js.map +0 -1
  452. package/dist/navigation-HJf5zxlH.js.map +0 -1
  453. package/dist/overflow-tab-bar-sQHXLlwQ.js.map +0 -1
  454. package/dist/overlays-I0axtYA6.js.map +0 -1
  455. package/dist/pagination-3bPA_a6K.js +0 -149
  456. package/dist/pagination-3bPA_a6K.js.map +0 -1
  457. package/dist/popover-Di55PyAI.js.map +0 -1
  458. package/dist/popover-menu-B71Tn2Qz.js +0 -99
  459. package/dist/popover-menu-B71Tn2Qz.js.map +0 -1
  460. package/dist/popover.recipes-Bdyhj2db.js.map +0 -1
  461. package/dist/primitives-B-CkiEMU.js.map +0 -1
  462. package/dist/rich-text-editor-sMU_Scqm.js.map +0 -1
  463. package/dist/rich-text-editor.recipes-CadiF_Uu.js +0 -88
  464. package/dist/rich-text-editor.recipes-CadiF_Uu.js.map +0 -1
  465. package/dist/settings-CQW3b-Cu.js.map +0 -1
  466. package/dist/sheet-4SEvVYzA.js.map +0 -1
  467. package/dist/sidebar-C7WWR29L.js.map +0 -1
  468. package/dist/smart-card-lFKxn5Hu.js +0 -595
  469. package/dist/smart-card-lFKxn5Hu.js.map +0 -1
  470. package/dist/spinner-fa3h1Aif.js +0 -80
  471. package/dist/spinner-fa3h1Aif.js.map +0 -1
  472. package/dist/table-CIKyLUsy.js.map +0 -1
  473. package/dist/table-CrcLN9Io.js +0 -1458
  474. package/dist/table-CrcLN9Io.js.map +0 -1
  475. package/dist/tabs-DwBJfjxX.js.map +0 -1
  476. package/dist/text-inputs-aaK9wcDT.js +0 -326
  477. package/dist/text-inputs-aaK9wcDT.js.map +0 -1
  478. package/dist/theme-scope-kStaAer0.js +0 -39
  479. package/dist/theme-scope-kStaAer0.js.map +0 -1
  480. package/dist/timelines-C_SBwHNP.js +0 -442
  481. package/dist/timelines-C_SBwHNP.js.map +0 -1
  482. package/dist/tone-recipes-CPoExcTE.js.map +0 -1
  483. package/dist/typography-DTRkE9zL.js.map +0 -1
  484. package/dist/ui-provider-1D_NSYzO.js.map +0 -1
  485. package/dist/upload-BO8-CLN6.js.map +0 -1
  486. package/dist/upload-queue-EOC8g1gf.js.map +0 -1
  487. package/dist/usage-card-obRaBskq.js.map +0 -1
  488. package/dist/utils-l5LpDw2z.js.map +0 -1
  489. package/dist/value-inputs-TAYMX111.js.map +0 -1
  490. package/dist/workspace-DH0v0KcB.js.map +0 -1
@@ -0,0 +1,1148 @@
1
+ "use client";
2
+ import { mergeStrings as e, useStrings as t } from "./lib/strings.js";
3
+ import { t as n } from "./utils-BRhFDwuU.js";
4
+ import { n as r } from "./buttons-DPZekJFu.js";
5
+ import { c as i, o as a, t as o } from "./typography-UTnveOEy.js";
6
+ import { t as s } from "./focus-recipes-B653VaLq.js";
7
+ import { t as c } from "./structure-BmisBK-3.js";
8
+ import { i as l } from "./tone-recipes-BPsRAvhu.js";
9
+ import { t as u } from "./smart-card-DiC5aac3.js";
10
+ import { t as d } from "./interaction-recipes-XR9ZpVYL.js";
11
+ import { g as f, m as p, r as m } from "./primitives-BFK08r9M.js";
12
+ import { t as h } from "./number-DbV1Dija.js";
13
+ import { t as g } from "./icon-badge-DYKIwvOV.js";
14
+ import { t as _ } from "./badge-HpFqoqSY.js";
15
+ import { a as v, c as y, i as b, n as x, o as S, r as C, s as w, t as T } from "./attachment-BxDfL2mw.js";
16
+ import { t as E } from "./message-DZ_ruyUV.js";
17
+ import { t as D } from "./code-block-DeneBJR_.js";
18
+ import { useEffect as O, useRef as k, useState as A } from "react";
19
+ import { Fragment as j, jsx as M, jsxs as N } from "react/jsx-runtime";
20
+ import { AlertCircle as P, Bot as F, Brain as ee, Check as I, ChevronDown as L, ChevronRight as R, Circle as te, Copy as ne, Download as re, ExternalLink as z, FileText as ie, Globe as ae, Loader2 as B, MinusCircle as oe, RotateCcw as se, User as ce, X as V, XCircle as le } from "lucide-react";
21
+ //#region src/components/blocks/ai/use-copy-feedback.ts
22
+ function H(e, t) {
23
+ let [n, r] = A(!1), [i, a] = A(!1), o = k(!1), s = k(0), c = k(void 0);
24
+ return O(() => (o.current = !0, r(!1), a(!1), () => {
25
+ o.current = !1, s.current += 1, clearTimeout(c.current);
26
+ }), [t]), {
27
+ copied: n,
28
+ failed: i,
29
+ copy: async (t) => {
30
+ let n = ++s.current;
31
+ clearTimeout(c.current), r(!1), a(!1);
32
+ try {
33
+ if (typeof navigator > "u" || !navigator.clipboard?.writeText) throw Error("Clipboard unavailable");
34
+ await navigator.clipboard.writeText(t);
35
+ } catch (t) {
36
+ return o.current && n === s.current && (a(!0), e?.(t)), !1;
37
+ }
38
+ return !o.current || n !== s.current ? !1 : (r(!0), c.current = setTimeout(() => r(!1), 1500), !0);
39
+ }
40
+ };
41
+ }
42
+ //#endregion
43
+ //#region src/components/blocks/ai/ai-message-bubble/types.ts
44
+ var U = {
45
+ copyError: "Could not copy. Please try again.",
46
+ copyAria: "Copy message",
47
+ copied: "Copied",
48
+ regenerateAria: "Regenerate response"
49
+ };
50
+ //#endregion
51
+ //#region src/components/blocks/ai/ai-message-bubble/ai-message-bubble.tsx
52
+ function W({ role: e = "assistant", avatar: a, avatarLabel: o, authorName: s, timestamp: c, children: l, plainText: u, loading: d = !1, onCopy: f, onRegenerate: p, onCopyError: m, className: h, strings: _ }) {
53
+ let v = t(U, _), y = u ?? (typeof l == "string" ? l : ""), { copied: b, failed: x, copy: S } = H(m, y), C = a ?? /* @__PURE__ */ M(g, {
54
+ icon: e === "user" ? ce : F,
55
+ tone: "neutral",
56
+ size: "sm",
57
+ "aria-label": o
58
+ }), w = (f !== void 0 || u || p) && e === "assistant";
59
+ return /* @__PURE__ */ M(E, {
60
+ align: e === "user" ? "end" : "start",
61
+ tone: e === "user" ? "primary" : e === "system" ? "muted" : "surface",
62
+ avatar: C,
63
+ author: s,
64
+ timestamp: c,
65
+ loading: d,
66
+ strings: { loading: v.loading },
67
+ className: n("ai-message-bubble--component", h),
68
+ actions: w ? /* @__PURE__ */ N(j, { children: [
69
+ /* @__PURE__ */ M(r, {
70
+ type: "button",
71
+ tone: "secondary",
72
+ buttonStyle: "ghost",
73
+ size: "sm",
74
+ iconOnly: !0,
75
+ "aria-label": v.copyAria,
76
+ disabled: !y || d,
77
+ onClick: async () => {
78
+ y && await S(y) && f?.();
79
+ },
80
+ children: /* @__PURE__ */ M(ne, {
81
+ "aria-hidden": "true",
82
+ className: "size-icon-md"
83
+ })
84
+ }),
85
+ b && /* @__PURE__ */ M(i, {
86
+ size: "xs",
87
+ type: "success",
88
+ children: v.copied
89
+ }),
90
+ p && /* @__PURE__ */ M(r, {
91
+ type: "button",
92
+ tone: "secondary",
93
+ buttonStyle: "ghost",
94
+ size: "sm",
95
+ iconOnly: !0,
96
+ "aria-label": v.regenerateAria,
97
+ onClick: p,
98
+ children: /* @__PURE__ */ M(se, {
99
+ "aria-hidden": "true",
100
+ className: "size-icon-md"
101
+ })
102
+ }),
103
+ x && /* @__PURE__ */ M(i, {
104
+ role: "alert",
105
+ size: "xs",
106
+ type: "error",
107
+ children: v.copyError ?? U.copyError
108
+ })
109
+ ] }) : void 0,
110
+ children: l
111
+ });
112
+ }
113
+ W.displayName = "AiMessageBubble";
114
+ //#endregion
115
+ //#region src/components/blocks/ai/ai-tool-call/types.ts
116
+ var G = {
117
+ pending: "Queued",
118
+ running: "Running",
119
+ success: "Success",
120
+ error: "Failed",
121
+ expand: "Show details",
122
+ collapse: "Hide details",
123
+ args: "Arguments",
124
+ result: "Result",
125
+ durationLabel: "Took"
126
+ }, ue = {
127
+ pending: { tone: "secondary" },
128
+ running: {
129
+ tone: "info",
130
+ live: !0
131
+ },
132
+ success: { tone: "success" },
133
+ error: { tone: "destructive" }
134
+ };
135
+ function de({ label: e, ms: t }) {
136
+ return /* @__PURE__ */ N("span", {
137
+ className: "inline-flex shrink-0 items-baseline gap-space-xs",
138
+ children: [/* @__PURE__ */ M(f, {
139
+ size: "xs",
140
+ children: e
141
+ }), /* @__PURE__ */ M(m, {
142
+ value: t,
143
+ from: "milliseconds",
144
+ maxParts: 1,
145
+ size: "xs",
146
+ align: "left",
147
+ type: "secondary",
148
+ maximumFractionDigits: +(t < 1e4)
149
+ })]
150
+ });
151
+ }
152
+ function K({ name: e, status: i, icon: a, args: o, result: s, error: f, durationMs: m, expanded: h, defaultExpanded: v = !1, onExpandedChange: y, className: b, strings: x }) {
153
+ let S = t(G, x), [C, w] = A(v), T = h ?? C, E = (e) => {
154
+ h === void 0 && w(e), y?.(e);
155
+ }, D = {
156
+ pending: S.pending,
157
+ running: S.running,
158
+ success: S.success,
159
+ error: S.error
160
+ }, O = ue[i], k = !!(o || s || f);
161
+ return /* @__PURE__ */ N(u, {
162
+ surface: "card",
163
+ padding: "none",
164
+ className: n("ai-tool-call--component", i === "error" && n(l.destructive.edge, l.destructive.wash), b),
165
+ children: [/* @__PURE__ */ N(r, {
166
+ type: "button",
167
+ tone: "secondary",
168
+ buttonStyle: "ghost",
169
+ size: "md",
170
+ onClick: () => k && E(!T),
171
+ className: n("ai-tool-call--trigger h-auto min-h-0 w-full flex-wrap justify-start gap-space-md whitespace-normal rounded-none px-space-lg py-space-md text-left @md/card:flex-nowrap", k ? `cursor-pointer ${d.rowHover}` : "cursor-default"),
172
+ "aria-expanded": k ? T : void 0,
173
+ "aria-label": k ? T ? S.collapse : S.expand : void 0,
174
+ children: [
175
+ !!a && /* @__PURE__ */ M(g, {
176
+ icon: a,
177
+ tone: "neutral",
178
+ size: "md",
179
+ shape: "square"
180
+ }),
181
+ /* @__PURE__ */ M("div", {
182
+ className: "min-w-0 flex-1",
183
+ children: /* @__PURE__ */ M(p, {
184
+ type: "inherit",
185
+ className: "truncate",
186
+ children: e
187
+ })
188
+ }),
189
+ /* @__PURE__ */ N("span", {
190
+ className: "ai-tool-call--meta order-last flex w-full flex-wrap items-center gap-space-sm @md/card:order-none @md/card:w-auto @md/card:flex-nowrap",
191
+ children: [/* @__PURE__ */ M(_, {
192
+ tone: O.tone,
193
+ dot: O.live,
194
+ pulse: O.live,
195
+ children: D[i]
196
+ }), !!m && /* @__PURE__ */ M(de, {
197
+ label: S.durationLabel,
198
+ ms: m
199
+ })]
200
+ }),
201
+ k && M(T ? L : R, { className: "size-icon-md shrink-0 text-muted-foreground" })
202
+ ]
203
+ }), !!T && k && /* @__PURE__ */ N(c, {
204
+ gap: "md",
205
+ className: "ai-tool-call--details border-t border-border/60 bg-muted/30 px-space-lg py-space-md",
206
+ children: [!!o && /* @__PURE__ */ M(q, {
207
+ label: S.args,
208
+ children: o
209
+ }), i === "error" && f ? /* @__PURE__ */ M(q, {
210
+ label: S.error,
211
+ tone: "destructive",
212
+ children: f
213
+ }) : !!s && /* @__PURE__ */ M(q, {
214
+ label: S.result,
215
+ children: s
216
+ })]
217
+ })]
218
+ });
219
+ }
220
+ K.displayName = "AiToolCall";
221
+ function q({ label: e, children: t, tone: r = "neutral" }) {
222
+ return /* @__PURE__ */ N(c, {
223
+ gap: "sm",
224
+ className: "ai-tool-call--detail-block",
225
+ children: [/* @__PURE__ */ M(a, { children: e }), /* @__PURE__ */ M("pre", {
226
+ tabIndex: 0,
227
+ className: n("box-border m-0 max-w-full overflow-x-auto rounded-inner bg-card text-card-foreground px-space-md py-space-md font-mono text-xs leading-relaxed", r === "destructive" && n(l.destructive.ink, l.destructive.wash)),
228
+ children: t
229
+ })]
230
+ });
231
+ }
232
+ //#endregion
233
+ //#region src/components/blocks/ai/ai-shimmer/ai-shimmer.tsx
234
+ function J({ children: e = "Thinking…", paused: t = !1, duration: r = 2.4, size: a, className: o }) {
235
+ if (t) return /* @__PURE__ */ M(i, {
236
+ tag: "span",
237
+ type: "secondary",
238
+ size: a,
239
+ weight: "medium",
240
+ className: n("ai-shimmer--component", o),
241
+ children: e
242
+ });
243
+ let s = { "--ai-shimmer-duration": `${r}s` };
244
+ return /* @__PURE__ */ M(i, {
245
+ tag: "span",
246
+ size: a,
247
+ weight: "medium",
248
+ "data-ai-shimmer": !0,
249
+ role: "status",
250
+ "aria-live": "polite",
251
+ className: n("ai-shimmer--component inline-block bg-clip-text text-transparent", "bg-[linear-gradient(110deg,var(--ai-shimmer-base,var(--muted-foreground))_30%,var(--ai-shimmer-highlight,var(--foreground))_50%,var(--ai-shimmer-base,var(--muted-foreground))_70%)]", "bg-[length:200%_100%]", "animate-[ai-shimmer-sweep_var(--ai-shimmer-duration,2.4s)_linear_infinite] motion-reduce:animate-none", o),
252
+ style: s,
253
+ children: e
254
+ });
255
+ }
256
+ J.displayName = "AiShimmer";
257
+ //#endregion
258
+ //#region src/components/blocks/ai/ai-code-block/types.ts
259
+ var Y = {
260
+ copy: "Copy",
261
+ copied: "Copied",
262
+ copyError: "Could not copy. Please try again.",
263
+ copyAria: "Copy code",
264
+ defaultLanguageLabel: "Code"
265
+ };
266
+ //#endregion
267
+ //#region src/components/blocks/ai/ai-code-block/ai-code-block.tsx
268
+ function X({ strings: e, className: r, onCopy: i, ...a }) {
269
+ let o = t(Y, e);
270
+ return /* @__PURE__ */ M(D, {
271
+ ...a,
272
+ className: n("ai-code-block--component", r),
273
+ onCopy: i ? () => i() : void 0,
274
+ strings: {
275
+ copyAria: o.copyAria,
276
+ copied: o.copied,
277
+ copyError: o.copyError,
278
+ defaultLanguageLabel: o.defaultLanguageLabel
279
+ }
280
+ });
281
+ }
282
+ X.displayName = "AiCodeBlock";
283
+ //#endregion
284
+ //#region src/components/blocks/ai/ai-attachment/types.ts
285
+ var Z = {
286
+ removeAria: "Remove attachment",
287
+ openAria: "Open attachment",
288
+ uploadProgressAria: "Upload progress",
289
+ error: "Failed"
290
+ };
291
+ //#endregion
292
+ //#region src/components/blocks/ai/ai-attachment/ai-attachment.tsx
293
+ function fe({ name: e, meta: a, kind: o = "generic", icon: s, thumbnailUrl: c, progress: l, errored: u = !1, onOpen: d, onRemove: f, className: p, strings: m }) {
294
+ let h = t(Z, m), g = !u && typeof l == "number" && l >= 0 && l < 1;
295
+ return /* @__PURE__ */ N(T, {
296
+ name: e,
297
+ layout: "compact",
298
+ status: u ? "error" : g ? "uploading" : void 0,
299
+ onOpen: d,
300
+ strings: { preview: () => h.openAria },
301
+ className: n("ai-attachment--component inline-flex w-auto", p),
302
+ children: [
303
+ /* @__PURE__ */ M(S, {
304
+ variant: c ? "image" : "icon",
305
+ children: c ? /* @__PURE__ */ M("img", {
306
+ src: c,
307
+ alt: ""
308
+ }) : u ? /* @__PURE__ */ M(P, { "aria-hidden": "true" }) : s ? /* @__PURE__ */ M(s, { "aria-hidden": "true" }) : /* @__PURE__ */ M(v, {
309
+ name: e,
310
+ kind: o
311
+ })
312
+ }),
313
+ /* @__PURE__ */ N(C, { children: [
314
+ /* @__PURE__ */ M(y, {
315
+ title: e,
316
+ children: e
317
+ }),
318
+ a && /* @__PURE__ */ M(b, {
319
+ clamp: 1,
320
+ children: a
321
+ }),
322
+ u && /* @__PURE__ */ M(b, {
323
+ clamp: "none",
324
+ children: /* @__PURE__ */ M(i, {
325
+ tag: "span",
326
+ size: "xs",
327
+ type: "error",
328
+ role: "alert",
329
+ children: h.error ?? Z.error
330
+ })
331
+ }),
332
+ g && /* @__PURE__ */ M(w, {
333
+ value: Math.round((l ?? 0) * 100),
334
+ size: "sm",
335
+ "aria-label": h.uploadProgressAria
336
+ })
337
+ ] }),
338
+ f && /* @__PURE__ */ M(x, { children: /* @__PURE__ */ M(r, {
339
+ type: "button",
340
+ tone: "secondary",
341
+ buttonStyle: "ghost",
342
+ size: "sm",
343
+ iconOnly: !0,
344
+ "aria-label": h.removeAria,
345
+ onClick: f,
346
+ children: /* @__PURE__ */ M(V, {
347
+ "aria-hidden": "true",
348
+ className: "size-icon-sm"
349
+ })
350
+ }) })
351
+ ]
352
+ });
353
+ }
354
+ fe.displayName = "AiAttachment";
355
+ //#endregion
356
+ //#region src/components/blocks/ai/ai-agent/types.ts
357
+ var pe = { statusLabels: {
358
+ idle: "Idle",
359
+ thinking: "Thinking",
360
+ working: "Working",
361
+ done: "Done",
362
+ error: "Error",
363
+ offline: "Offline"
364
+ } }, me = {
365
+ idle: "secondary",
366
+ thinking: "info",
367
+ working: "info",
368
+ done: "success",
369
+ error: "destructive",
370
+ offline: "secondary"
371
+ };
372
+ function he({ name: e, icon: r, avatar: a, subtitle: o, tone: s = "primary", status: l, variant: d = "inline", trailing: f, className: p, strings: m }) {
373
+ let h = t(pe, m), v = a ?? /* @__PURE__ */ M(g, {
374
+ icon: r ?? F,
375
+ tone: s,
376
+ size: d === "card" ? "md" : "sm"
377
+ }), y = l === "thinking" || l === "working", b = !!l && /* @__PURE__ */ M(_, {
378
+ tone: me[l],
379
+ dot: !0,
380
+ pulse: y,
381
+ children: h.statusLabels[l]
382
+ });
383
+ return d === "card" ? /* @__PURE__ */ M(u, {
384
+ surface: "card",
385
+ padding: "sm",
386
+ className: n("ai-agent--component", p),
387
+ children: /* @__PURE__ */ N(c, {
388
+ direction: "horizontal",
389
+ align: "center",
390
+ gap: "lg",
391
+ children: [
392
+ v,
393
+ /* @__PURE__ */ N(c, {
394
+ gap: "dense",
395
+ className: "min-w-0 flex-1",
396
+ children: [/* @__PURE__ */ N("div", {
397
+ className: "flex items-center gap-space-md",
398
+ children: [/* @__PURE__ */ M(i, {
399
+ type: "inherit",
400
+ weight: "semibold",
401
+ className: "truncate",
402
+ children: e
403
+ }), b]
404
+ }), !!o && /* @__PURE__ */ M(i, {
405
+ size: "xs",
406
+ type: "secondary",
407
+ className: "line-clamp-1",
408
+ children: o
409
+ })]
410
+ }),
411
+ !!f && /* @__PURE__ */ M("div", {
412
+ className: "ml-auto flex items-center gap-space-xs",
413
+ children: f
414
+ })
415
+ ]
416
+ })
417
+ }) : /* @__PURE__ */ N("div", {
418
+ className: n("ai-agent--component", "inline-flex items-center gap-space-md", p),
419
+ children: [
420
+ v,
421
+ /* @__PURE__ */ N(c, {
422
+ direction: "horizontal",
423
+ align: "center",
424
+ gap: "md",
425
+ className: "min-w-0",
426
+ children: [
427
+ /* @__PURE__ */ M(i, {
428
+ type: "inherit",
429
+ weight: "medium",
430
+ className: "truncate",
431
+ children: e
432
+ }),
433
+ !!o && /* @__PURE__ */ M(i, {
434
+ size: "xs",
435
+ type: "secondary",
436
+ className: "truncate",
437
+ children: o
438
+ }),
439
+ b
440
+ ]
441
+ }),
442
+ !!f && /* @__PURE__ */ M("div", {
443
+ className: "ml-1 flex items-center gap-space-xs",
444
+ children: f
445
+ })
446
+ ]
447
+ });
448
+ }
449
+ he.displayName = "AiAgent";
450
+ //#endregion
451
+ //#region src/components/blocks/ai/ai-confirmation/types.ts
452
+ var ge = {
453
+ approve: "Approve",
454
+ reject: "Reject",
455
+ pending: "Awaiting your approval",
456
+ approved: "Approved",
457
+ rejected: "Rejected"
458
+ }, _e = {
459
+ neutral: { icon: "neutral" },
460
+ destructive: {
461
+ ring: `${l.destructive.edge} ${l.destructive.wash}`,
462
+ icon: "destructive"
463
+ },
464
+ warning: {
465
+ ring: `${l.warning.edge} ${l.warning.wash}`,
466
+ icon: "warning"
467
+ },
468
+ info: {
469
+ ring: `${l.info.edge} ${l.info.wash}`,
470
+ icon: "info"
471
+ },
472
+ primary: {
473
+ ring: `${l.primary.edge} ${l.primary.wash}`,
474
+ icon: "primary"
475
+ }
476
+ };
477
+ function ve({ title: e, description: a, icon: o, tone: s = "neutral", status: l = "pending", onApprove: d, onReject: f, approveLabel: p, rejectLabel: m, details: h, className: _, strings: v }) {
478
+ let y = t(ge, v), b = o, x = _e[s];
479
+ return /* @__PURE__ */ M(u, {
480
+ role: "region",
481
+ "aria-live": "polite",
482
+ surface: "card",
483
+ padding: "sm",
484
+ className: n("ai-confirmation--component", x.ring, _),
485
+ children: /* @__PURE__ */ N(c, {
486
+ gap: "lg",
487
+ children: [/* @__PURE__ */ N("div", {
488
+ className: "ai-confirmation--header flex items-start gap-space-lg",
489
+ children: [!!b && /* @__PURE__ */ M(g, {
490
+ icon: b,
491
+ tone: x.icon,
492
+ size: "md",
493
+ shape: "square"
494
+ }), /* @__PURE__ */ N(c, {
495
+ gap: "md",
496
+ className: "min-w-0 flex-1",
497
+ children: [/* @__PURE__ */ N(c, {
498
+ gap: "normal",
499
+ children: [/* @__PURE__ */ M(i, {
500
+ type: "inherit",
501
+ weight: "semibold",
502
+ children: e
503
+ }), !!a && /* @__PURE__ */ M(i, {
504
+ type: "secondary",
505
+ children: a
506
+ })]
507
+ }), !!h && /* @__PURE__ */ M("div", {
508
+ className: "ai-confirmation--details min-w-0",
509
+ children: h
510
+ })]
511
+ })]
512
+ }), l === "pending" ? /* @__PURE__ */ N("div", {
513
+ className: "ai-confirmation--footer flex flex-col items-stretch gap-space-md @sm/card:flex-row @sm/card:items-center @sm/card:justify-between",
514
+ children: [/* @__PURE__ */ M(i, {
515
+ size: "xs",
516
+ type: "secondary",
517
+ children: y.pending
518
+ }), /* @__PURE__ */ N(c, {
519
+ direction: "horizontal",
520
+ align: "center",
521
+ justify: "end",
522
+ gap: "md",
523
+ className: "ai-confirmation--actions",
524
+ children: [/* @__PURE__ */ M(r, {
525
+ type: "button",
526
+ tone: "secondary",
527
+ buttonStyle: "ghost",
528
+ onClick: f,
529
+ children: m ?? y.reject
530
+ }), /* @__PURE__ */ M(r, {
531
+ type: "button",
532
+ tone: s === "destructive" ? "destructive" : "primary",
533
+ onClick: d,
534
+ children: p ?? y.approve
535
+ })]
536
+ })]
537
+ }) : /* @__PURE__ */ M("div", {
538
+ className: "ai-confirmation--footer flex items-center gap-space-md",
539
+ children: l === "approved" ? /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(I, {
540
+ "aria-hidden": "true",
541
+ className: "size-icon-md text-success"
542
+ }), /* @__PURE__ */ M(i, {
543
+ size: "xs",
544
+ type: "success",
545
+ weight: "medium",
546
+ children: y.approved
547
+ })] }) : /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(V, {
548
+ "aria-hidden": "true",
549
+ className: "size-icon-md text-muted-foreground"
550
+ }), /* @__PURE__ */ M(i, {
551
+ size: "xs",
552
+ type: "secondary",
553
+ weight: "medium",
554
+ children: y.rejected
555
+ })] })
556
+ })]
557
+ })
558
+ });
559
+ }
560
+ ve.displayName = "AiConfirmation";
561
+ //#endregion
562
+ //#region src/components/blocks/ai/ai-sources/types.ts
563
+ var ye = {
564
+ title: "{{count}} sources",
565
+ expand: "Show all sources",
566
+ collapse: "Hide sources",
567
+ visit: "Visit source"
568
+ };
569
+ //#endregion
570
+ //#region src/components/blocks/ai/ai-sources/ai-sources.tsx
571
+ function be(e, t) {
572
+ return e.replace(/\{\{\s*(\w+)\s*\}\}/g, (e, n) => {
573
+ let r = t[n];
574
+ return r === void 0 ? e : String(r);
575
+ });
576
+ }
577
+ function xe({ sources: t, variant: a = "list", maxAvatars: o = 5, expanded: s, defaultExpanded: l = !1, onExpandedChange: f, onSelect: p, className: m, strings: h }) {
578
+ let g = e(ye, h), [_, v] = A(l), y = s ?? _, b = (e) => {
579
+ s === void 0 && v(e), f?.(e);
580
+ }, x = be(g.title, { count: t.length });
581
+ if (a === "avatars") return /* @__PURE__ */ M(Se, {
582
+ sources: t,
583
+ max: o,
584
+ title: x,
585
+ visitLabel: g.visit,
586
+ onSelect: p,
587
+ className: n("ai-sources--component", m)
588
+ });
589
+ let S = y ? t : t.slice(0, 0);
590
+ return /* @__PURE__ */ N(u, {
591
+ surface: "card",
592
+ padding: "none",
593
+ className: n("ai-sources--component", m),
594
+ children: [/* @__PURE__ */ N(r, {
595
+ type: "button",
596
+ tone: "secondary",
597
+ buttonStyle: "ghost",
598
+ size: "md",
599
+ onClick: () => b(!y),
600
+ "aria-expanded": y,
601
+ "aria-label": y ? g.collapse : g.expand,
602
+ className: n("ai-sources--trigger h-auto min-h-0 w-full justify-start gap-space-md px-surface-xs py-row-y text-left", `rounded-inner ${d.rowHover}`),
603
+ children: [
604
+ /* @__PURE__ */ M(Ce, { sources: t.slice(0, 4) }),
605
+ /* @__PURE__ */ M(i, {
606
+ type: "inherit",
607
+ weight: "medium",
608
+ className: "flex-1",
609
+ children: x
610
+ }),
611
+ M(y ? L : R, { className: "size-icon-md text-muted-foreground" })
612
+ ]
613
+ }), y && /* @__PURE__ */ M("div", {
614
+ className: "ai-sources--list border-t border-border/60 px-surface-xs py-row-y",
615
+ children: /* @__PURE__ */ M(c, {
616
+ render: /* @__PURE__ */ M("ol", {}),
617
+ gap: "2xs",
618
+ className: "m-0 list-none p-0 font-sans",
619
+ children: S.map((e, t) => /* @__PURE__ */ M(Te, {
620
+ source: e,
621
+ index: t + 1,
622
+ onSelect: p ? () => p(e, t) : void 0,
623
+ visitLabel: g.visit
624
+ }, e.id))
625
+ })
626
+ })]
627
+ });
628
+ }
629
+ xe.displayName = "AiSources";
630
+ function Se({ sources: e, max: t, title: r, visitLabel: a, onSelect: o, className: s }) {
631
+ let c = e.slice(0, t), l = e.length - c.length;
632
+ return /* @__PURE__ */ N("div", {
633
+ className: n("inline-flex items-center gap-space-md", s),
634
+ children: [
635
+ /* @__PURE__ */ M(Ce, {
636
+ sources: c,
637
+ onSelect: o,
638
+ visitLabel: a
639
+ }),
640
+ /* @__PURE__ */ M(i, {
641
+ size: "xs",
642
+ type: "secondary",
643
+ children: r
644
+ }),
645
+ l > 0 && /* @__PURE__ */ N(f, {
646
+ size: "xs",
647
+ className: "tabular-nums",
648
+ children: ["+", /* @__PURE__ */ M(h, {
649
+ value: l,
650
+ size: "xs",
651
+ type: "secondary",
652
+ align: "left"
653
+ })]
654
+ })
655
+ ]
656
+ });
657
+ }
658
+ function Ce({ sources: e, onSelect: t, visitLabel: r }) {
659
+ return /* @__PURE__ */ M("div", {
660
+ className: n("flex", t ? "gap-space-2xs" : "-space-x-space-sm"),
661
+ children: e.map((e, n) => {
662
+ let i = /* @__PURE__ */ M("span", {
663
+ "aria-hidden": !0,
664
+ title: typeof e.title == "string" ? e.title : void 0,
665
+ className: "inline-flex size-icon-lg items-center justify-center overflow-hidden rounded-full border border-card bg-muted text-muted-foreground ring-1 ring-border/60",
666
+ children: /* @__PURE__ */ M(we, { src: e.faviconUrl })
667
+ }, e.id);
668
+ return t ? /* @__PURE__ */ M("button", {
669
+ type: "button",
670
+ onClick: () => t(e, n),
671
+ "aria-label": typeof e.title == "string" ? `${r}: ${e.title}` : r,
672
+ className: `${d.nativeButtonReset} inline-flex size-action-xs shrink-0 items-center justify-center rounded-inner focus-visible:outline-none ${s.edge}`,
673
+ children: i
674
+ }, e.id) : i;
675
+ })
676
+ });
677
+ }
678
+ function we({ src: e }) {
679
+ let [t, n] = A(!1);
680
+ return O(() => {
681
+ n(!1);
682
+ }, [e]), !e || t ? /* @__PURE__ */ M(ae, { className: "size-icon-sm" }) : /* @__PURE__ */ M("img", {
683
+ src: e,
684
+ alt: "",
685
+ className: "size-full object-cover",
686
+ onError: () => n(!0)
687
+ });
688
+ }
689
+ function Te({ source: e, index: t, onSelect: r, visitLabel: a }) {
690
+ let l = !!(e.url || r), u = n(d.nativeButtonReset, "group flex w-full items-start gap-space-lg rounded-inner px-row-x py-row-y-sm text-left text-foreground", l && `${d.rowHover} focus-visible:outline-none ${s.edge}`), f = /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ M(g, {
691
+ tone: "neutral",
692
+ size: "sm",
693
+ "aria-hidden": !1,
694
+ className: "shrink-0",
695
+ children: /* @__PURE__ */ M(h, {
696
+ value: t,
697
+ size: "xs",
698
+ weight: "semibold",
699
+ type: "secondary",
700
+ align: "center"
701
+ })
702
+ }), /* @__PURE__ */ N(c, {
703
+ gap: "dense",
704
+ className: "min-w-0 flex-1",
705
+ children: [
706
+ /* @__PURE__ */ N(i, {
707
+ type: "inherit",
708
+ weight: "medium",
709
+ className: "truncate",
710
+ children: [e.title, !!e.url && /* @__PURE__ */ M(z, { className: "ml-1 inline size-icon-sm text-muted-foreground align-baseline" })]
711
+ }),
712
+ !!e.publisher && /* @__PURE__ */ M(i, {
713
+ size: "xs",
714
+ type: "secondary",
715
+ className: "truncate",
716
+ children: e.publisher
717
+ }),
718
+ !!e.snippet && /* @__PURE__ */ M(i, {
719
+ size: "xs",
720
+ type: "secondary",
721
+ className: "line-clamp-2",
722
+ children: e.snippet
723
+ })
724
+ ]
725
+ })] });
726
+ return /* @__PURE__ */ M("li", { children: e.url && !r ? /* @__PURE__ */ M(o, {
727
+ href: e.url,
728
+ target: "_blank",
729
+ rel: "noopener noreferrer",
730
+ size: "inherit",
731
+ underline: !1,
732
+ className: u,
733
+ "aria-label": a,
734
+ children: f
735
+ }) : r ? /* @__PURE__ */ M("button", {
736
+ type: "button",
737
+ onClick: r,
738
+ className: n(u, "h-auto justify-start whitespace-normal"),
739
+ "aria-label": e.url ? a : void 0,
740
+ children: f
741
+ }) : /* @__PURE__ */ M("span", {
742
+ className: u,
743
+ children: f
744
+ }) });
745
+ }
746
+ //#endregion
747
+ //#region src/components/blocks/ai/ai-reasoning/types.ts
748
+ var Ee = {
749
+ thinking: "Thinking…",
750
+ thoughtFor: "Thought for {{duration}}",
751
+ thoughtDone: "Reasoning complete",
752
+ expandAria: "Expand reasoning",
753
+ collapseAria: "Collapse reasoning"
754
+ };
755
+ //#endregion
756
+ //#region src/components/blocks/ai/ai-reasoning/ai-reasoning.tsx
757
+ function De(e, t) {
758
+ let n = e.split(/\{\{\s*duration\s*\}\}/);
759
+ return n.length === 1 ? e : /* @__PURE__ */ N(j, { children: [
760
+ n[0],
761
+ /* @__PURE__ */ M(m, {
762
+ value: t,
763
+ maxParts: 1,
764
+ align: "left"
765
+ }),
766
+ n.slice(1).join("{{duration}}")
767
+ ] });
768
+ }
769
+ function Oe({ children: e, streaming: a = !1, durationSeconds: o, expandWhileStreaming: s = !0, defaultExpanded: c = !1, expanded: l, onExpandedChange: u, className: f, strings: p }) {
770
+ let m = t(Ee, p), [h, g] = A(c), _ = l ?? h, v = (e) => {
771
+ l === void 0 && g(e), u?.(e);
772
+ };
773
+ O(() => {
774
+ a && s && !_ && v(!0), !a && s && _ && !c && l === void 0 && v(!1);
775
+ }, [a]);
776
+ let y = a ? /* @__PURE__ */ M(J, {
777
+ className: "flex-1",
778
+ children: m.thinking
779
+ }) : o === void 0 ? /* @__PURE__ */ M(i, {
780
+ type: "inherit",
781
+ weight: "medium",
782
+ className: "flex-1",
783
+ children: m.thoughtDone
784
+ }) : /* @__PURE__ */ M(i, {
785
+ type: "inherit",
786
+ weight: "medium",
787
+ className: "flex-1",
788
+ children: De(m.thoughtFor, o)
789
+ });
790
+ return /* @__PURE__ */ N("div", {
791
+ className: n("ai-reasoning--component", "overflow-hidden rounded-radius border border-border/60 bg-muted/30", f),
792
+ children: [/* @__PURE__ */ N(r, {
793
+ type: "button",
794
+ tone: "secondary",
795
+ buttonStyle: "ghost",
796
+ size: "md",
797
+ onClick: () => v(!_),
798
+ "aria-expanded": _,
799
+ "aria-label": _ ? m.collapseAria : m.expandAria,
800
+ className: n("ai-reasoning--trigger h-auto min-h-0 w-full justify-start gap-space-md rounded-none px-surface-xs py-row-y text-left", d.rowHover),
801
+ children: [
802
+ /* @__PURE__ */ M(ee, { className: "size-icon-md text-muted-foreground" }),
803
+ y,
804
+ M(_ ? L : R, { className: "size-icon-md text-muted-foreground" })
805
+ ]
806
+ }), _ && /* @__PURE__ */ M("div", {
807
+ className: "ai-reasoning--body border-t border-border/60 p-surface-xs",
808
+ children: typeof e == "string" ? /* @__PURE__ */ M(i, {
809
+ type: "secondary",
810
+ lineHeight: "relaxed",
811
+ className: "whitespace-pre-wrap",
812
+ children: e
813
+ }) : /* @__PURE__ */ M("div", {
814
+ className: "whitespace-pre-wrap",
815
+ children: e
816
+ })
817
+ })]
818
+ });
819
+ }
820
+ Oe.displayName = "AiReasoning";
821
+ //#endregion
822
+ //#region src/components/blocks/ai/ai-chain-of-thought/types.ts
823
+ var Q = {
824
+ title: "Reasoning",
825
+ streamingHint: "Working through the steps…"
826
+ }, ke = {
827
+ pending: {
828
+ icon: te,
829
+ tone: "neutral"
830
+ },
831
+ active: {
832
+ icon: B,
833
+ tone: "primary",
834
+ spin: !0
835
+ },
836
+ completed: {
837
+ icon: I,
838
+ tone: "success",
839
+ solid: !0
840
+ },
841
+ failed: {
842
+ icon: P,
843
+ tone: "destructive",
844
+ solid: !0
845
+ }
846
+ };
847
+ function Ae({ steps: e, hideHeader: r = !1, streaming: o = !1, className: s, strings: l }) {
848
+ let d = t(Q, l);
849
+ return /* @__PURE__ */ M(u, {
850
+ surface: "card",
851
+ className: n("ai-chain-of-thought--component", s),
852
+ children: /* @__PURE__ */ N(c, {
853
+ gap: "lg",
854
+ children: [!r && /* @__PURE__ */ M("div", {
855
+ className: "ai-chain-of-thought--header",
856
+ children: /* @__PURE__ */ N(c, {
857
+ direction: "horizontal",
858
+ gap: "sm",
859
+ wrap: !1,
860
+ children: [/* @__PURE__ */ M(a, { children: d.title }), o && /* @__PURE__ */ M(J, {
861
+ size: "xs",
862
+ className: "ml-auto",
863
+ children: d.streamingHint
864
+ })]
865
+ })
866
+ }), /* @__PURE__ */ M("ol", {
867
+ className: "ai-chain-of-thought--body m-0 list-none p-0 font-sans",
868
+ children: e.map((t, r) => {
869
+ let a = t.status ?? "pending", o = ke[a], s = t.icon ?? o.icon, l = r === e.length - 1;
870
+ return /* @__PURE__ */ N("li", {
871
+ className: "ai-chain-of-thought--step flex gap-space-lg",
872
+ children: [/* @__PURE__ */ N("span", {
873
+ "aria-hidden": !0,
874
+ className: "ai-chain-of-thought--marker flex shrink-0 flex-col items-center",
875
+ children: [/* @__PURE__ */ M(g, {
876
+ tone: o.tone,
877
+ solid: o.solid,
878
+ size: "sm",
879
+ children: /* @__PURE__ */ M(s, { className: n(o.spin && "animate-spin") })
880
+ }), !l && /* @__PURE__ */ M("span", { className: "ai-chain-of-thought--rail w-px flex-1 bg-border/60" })]
881
+ }), /* @__PURE__ */ N(c, {
882
+ gap: "md",
883
+ className: n("min-w-0 flex-1", !l && "pb-space-lg"),
884
+ children: [/* @__PURE__ */ N(c, {
885
+ gap: "dense",
886
+ children: [/* @__PURE__ */ M(i, {
887
+ weight: a === "active" ? "semibold" : "medium",
888
+ type: a === "pending" ? "secondary" : "inherit",
889
+ children: t.title
890
+ }), !!t.description && /* @__PURE__ */ M(i, {
891
+ size: "xs",
892
+ type: "secondary",
893
+ children: t.description
894
+ })]
895
+ }), !!t.body && /* @__PURE__ */ M("div", {
896
+ className: "ai-chain-of-thought--step-body min-w-0",
897
+ children: t.body
898
+ })]
899
+ })]
900
+ }, t.id);
901
+ })
902
+ })]
903
+ })
904
+ });
905
+ }
906
+ Ae.displayName = "AiChainOfThought";
907
+ //#endregion
908
+ //#region src/components/blocks/ai/ai-task/types.ts
909
+ var je = {
910
+ statusLabels: {
911
+ queued: "Queued",
912
+ running: "Running",
913
+ completed: "Done",
914
+ failed: "Failed",
915
+ cancelled: "Cancelled",
916
+ skipped: "Skipped"
917
+ },
918
+ collapseSubtasks: "Collapse subtasks",
919
+ expandSubtasks: "Expand subtasks"
920
+ }, Me = {
921
+ queued: {
922
+ icon: te,
923
+ cls: "text-muted-foreground"
924
+ },
925
+ running: {
926
+ icon: B,
927
+ cls: "text-primary-accent",
928
+ spin: !0
929
+ },
930
+ completed: {
931
+ icon: I,
932
+ cls: "text-success"
933
+ },
934
+ failed: {
935
+ icon: P,
936
+ cls: "text-destructive"
937
+ },
938
+ cancelled: {
939
+ icon: le,
940
+ cls: "text-muted-foreground"
941
+ },
942
+ skipped: {
943
+ icon: oe,
944
+ cls: "text-muted-foreground"
945
+ }
946
+ }, Ne = {
947
+ queued: "secondary",
948
+ running: "info",
949
+ completed: "success",
950
+ failed: "destructive",
951
+ cancelled: "secondary",
952
+ skipped: "secondary"
953
+ };
954
+ function Pe({ task: e, density: r = "compact", indent: i = 18, className: a, strings: o }) {
955
+ let s = t(je, o);
956
+ return /* @__PURE__ */ M(u, {
957
+ surface: "card",
958
+ padding: "none",
959
+ className: n("ai-task--component", a),
960
+ children: /* @__PURE__ */ M(Fe, {
961
+ item: e,
962
+ depth: 0,
963
+ density: r,
964
+ indent: i,
965
+ strings: s
966
+ })
967
+ });
968
+ }
969
+ Pe.displayName = "AiTask";
970
+ function Fe({ item: e, depth: t, density: a, indent: o, strings: s }) {
971
+ let c = e.status ?? "queued", l = Me[c], u = e.icon ?? l.icon, d = !!e.children?.length, [f, p] = A(a === "expanded" || t === 0), m = c === "queued" || c === "cancelled" || c === "skipped";
972
+ return /* @__PURE__ */ N(j, { children: [/* @__PURE__ */ N("div", {
973
+ className: n("ai-task--row grid grid-cols-[auto_minmax(0,1fr)] items-center gap-x-space-md gap-y-space-md px-row-x py-row-y", t > 0 && "border-t border-border/60"),
974
+ style: { paddingInlineStart: `calc(var(--row-x) * var(--space-scale) + ${t * o}px)` },
975
+ children: [
976
+ /* @__PURE__ */ N("span", {
977
+ className: "ai-task--marker flex items-center gap-space-md",
978
+ children: [d ? /* @__PURE__ */ M(r, {
979
+ type: "button",
980
+ tone: "secondary",
981
+ buttonStyle: "ghost",
982
+ size: "sm",
983
+ iconOnly: !0,
984
+ onClick: () => p((e) => !e),
985
+ "aria-expanded": f,
986
+ "aria-label": f ? s.collapseSubtasks : s.expandSubtasks,
987
+ className: "ai-task--toggle",
988
+ children: M(f ? L : R, {
989
+ "aria-hidden": "true",
990
+ className: "size-icon-md"
991
+ })
992
+ }) : t > 0 && /* @__PURE__ */ M("span", {
993
+ "aria-hidden": !0,
994
+ className: "w-action-sm shrink-0"
995
+ }), /* @__PURE__ */ M(u, {
996
+ "aria-hidden": "true",
997
+ className: n("size-icon-md shrink-0", l.cls, l.spin && "animate-spin")
998
+ })]
999
+ }),
1000
+ /* @__PURE__ */ N("div", {
1001
+ className: "flex min-w-0 items-center gap-space-md",
1002
+ children: [
1003
+ /* @__PURE__ */ M(i, {
1004
+ weight: c === "running" ? "semibold" : "medium",
1005
+ type: m ? "secondary" : "inherit",
1006
+ className: n("flex-1 truncate", c === "cancelled" && "line-through"),
1007
+ children: e.title
1008
+ }),
1009
+ /* @__PURE__ */ M(_, {
1010
+ tone: Ne[c],
1011
+ children: s.statusLabels[c]
1012
+ }),
1013
+ !!e.rightSlot && /* @__PURE__ */ M("span", {
1014
+ className: "tabular-nums text-muted-foreground",
1015
+ children: e.rightSlot
1016
+ })
1017
+ ]
1018
+ }),
1019
+ !!e.body && /* @__PURE__ */ M("div", {
1020
+ className: "ai-task--body col-start-2 min-w-0",
1021
+ children: e.body
1022
+ })
1023
+ ]
1024
+ }), d && f && /* @__PURE__ */ M("div", { children: e.children.map((e) => /* @__PURE__ */ M(Fe, {
1025
+ item: e,
1026
+ depth: t + 1,
1027
+ density: a,
1028
+ indent: o,
1029
+ strings: s
1030
+ }, e.id)) })] });
1031
+ }
1032
+ //#endregion
1033
+ //#region src/components/blocks/ai/ai-artifact/types.ts
1034
+ var $ = {
1035
+ openAria: "Open artifact",
1036
+ copy: "Copy",
1037
+ copied: "Copied",
1038
+ copyError: "Could not copy. Please try again.",
1039
+ copyAria: "Copy artifact",
1040
+ downloadAria: "Download artifact",
1041
+ expandAria: "Expand artifact"
1042
+ };
1043
+ //#endregion
1044
+ //#region src/components/blocks/ai/ai-artifact/ai-artifact.tsx
1045
+ function Ie({ title: e, subtitle: a, icon: o, copyText: s, children: l, collapsed: d = !1, onOpen: f, actions: p, onDownload: m, onCopyError: h, className: _, strings: v }) {
1046
+ let y = t($, v), b = o ?? ie, { copied: x, failed: S, copy: C } = H(h, s);
1047
+ return /* @__PURE__ */ N(u, {
1048
+ surface: "card",
1049
+ padding: "none",
1050
+ className: n("ai-artifact--component", _),
1051
+ children: [
1052
+ /* @__PURE__ */ M("div", {
1053
+ className: "ai-artifact--header @container/ai-artifact-header border-b border-border/60 bg-muted/50 p-surface",
1054
+ children: /* @__PURE__ */ N(c, {
1055
+ direction: "horizontal",
1056
+ align: "center",
1057
+ gap: "lg",
1058
+ children: [/* @__PURE__ */ N("div", {
1059
+ className: "ai-artifact--identity flex min-w-0 basis-full items-center gap-space-lg @sm/ai-artifact-header:flex-1 @sm/ai-artifact-header:basis-0",
1060
+ children: [/* @__PURE__ */ M(g, {
1061
+ icon: b,
1062
+ tone: "neutral",
1063
+ size: "md",
1064
+ shape: "square"
1065
+ }), /* @__PURE__ */ N("div", {
1066
+ className: "min-w-0 flex-1",
1067
+ children: [/* @__PURE__ */ M(i, {
1068
+ type: "inherit",
1069
+ weight: "semibold",
1070
+ className: "break-words",
1071
+ children: e
1072
+ }), !!a && /* @__PURE__ */ M(i, {
1073
+ size: "xs",
1074
+ type: "secondary",
1075
+ className: "break-words",
1076
+ children: a
1077
+ })]
1078
+ })]
1079
+ }), /* @__PURE__ */ N("div", {
1080
+ className: "ai-artifact--actions flex flex-wrap items-center gap-space-xs",
1081
+ children: [
1082
+ p?.map((e) => {
1083
+ let t = e.icon;
1084
+ return /* @__PURE__ */ N(r, {
1085
+ type: "button",
1086
+ tone: "secondary",
1087
+ buttonStyle: "ghost",
1088
+ onClick: e.onSelect,
1089
+ children: [!!t && /* @__PURE__ */ M(t, { className: "size-icon-md" }), e.label]
1090
+ }, e.id);
1091
+ }),
1092
+ !!s && /* @__PURE__ */ M(r, {
1093
+ type: "button",
1094
+ tone: "secondary",
1095
+ buttonStyle: "ghost",
1096
+ size: "sm",
1097
+ iconOnly: !0,
1098
+ "aria-label": y.copyAria,
1099
+ onClick: async () => {
1100
+ s && await C(s);
1101
+ },
1102
+ children: x ? /* @__PURE__ */ M(I, { className: "size-icon-md text-success" }) : /* @__PURE__ */ M(ne, { className: "size-icon-md" })
1103
+ }),
1104
+ !!m && /* @__PURE__ */ M(r, {
1105
+ type: "button",
1106
+ tone: "secondary",
1107
+ buttonStyle: "ghost",
1108
+ size: "sm",
1109
+ iconOnly: !0,
1110
+ "aria-label": y.downloadAria,
1111
+ onClick: m,
1112
+ children: /* @__PURE__ */ M(re, { className: "size-icon-md" })
1113
+ }),
1114
+ !!f && /* @__PURE__ */ M(r, {
1115
+ type: "button",
1116
+ tone: "secondary",
1117
+ buttonStyle: "ghost",
1118
+ size: "sm",
1119
+ iconOnly: !0,
1120
+ "aria-label": y.openAria,
1121
+ onClick: f,
1122
+ children: /* @__PURE__ */ M(z, { className: "size-icon-md" })
1123
+ })
1124
+ ]
1125
+ })]
1126
+ })
1127
+ }),
1128
+ !d && !!l && /* @__PURE__ */ M("div", {
1129
+ className: "ai-artifact--body min-w-0",
1130
+ children: l
1131
+ }),
1132
+ S && /* @__PURE__ */ M("div", {
1133
+ className: "px-control py-row-y",
1134
+ children: /* @__PURE__ */ M(i, {
1135
+ role: "alert",
1136
+ size: "xs",
1137
+ type: "error",
1138
+ children: y.copyError ?? $.copyError
1139
+ })
1140
+ })
1141
+ ]
1142
+ });
1143
+ }
1144
+ Ie.displayName = "AiArtifact";
1145
+ //#endregion
1146
+ export { U as C, W as S, X as _, Ae as a, K as b, Ee as c, ve as d, ge as f, Z as g, fe as h, je as i, xe as l, pe as m, $ as n, Q as o, he as p, Pe as r, Oe as s, Ie as t, ye as u, Y as v, G as x, J as y };
1147
+
1148
+ //# sourceMappingURL=ai-artifact-DvTwDVyL.js.map