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 @@
1
+ {"version":3,"file":"code-block-DeneBJR_.js","names":["Text","resolveTextClassNames","focusRecipes","Stack","toneRecipes","surfaceDividerRecipes","MonoValue","useCodeCopy","copied","setCopied","useState","failed","setFailed","mounted","useRef","attempt","timer","useEffect","source","request","text","error","onCopyError","defaultCodeBlockStrings","CodeBlock","forwardRef","wrapProp","stringsProp","props","strings","useStrings","uncontrolledWrap","setWrap","defaultWrap","wrap","code","lines","first","startLine","hasDiff","diffLines","highlights","highlightLines","focus","focusLines","handleWrap","onWrapChange","cn","className","hideHeader","headerStart","filename","language","headerActions","showWrapToggle","Button","WrapText","hideCopy","copy","onCopy","jsx","Check","Copy","maxHeight","number","index","highlighted","focused","diff","showLineNumbers","renderLine"],"sources":["../src/components/base/code-block/use-code-copy.ts","../src/components/base/code-block/code-block.types.ts","../src/components/base/code-block/code-block.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\n/** Clipboard lifecycle for code display; callbacks and text stay per mount. */\nexport function useCodeCopy(source: string, onCopyError?: (error: unknown) => void) {\n\tconst [copied, setCopied] = useState(false);\n\tconst [failed, setFailed] = useState(false);\n\tconst mounted = useRef(false);\n\tconst attempt = useRef(0);\n\tconst timer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n\tuseEffect(() => {\n\t\tmounted.current = true;\n\t\tsetCopied(false);\n\t\tsetFailed(false);\n\t\treturn () => {\n\t\t\tmounted.current = false;\n\t\t\tattempt.current += 1;\n\t\t\tclearTimeout(timer.current);\n\t\t};\n\t}, [source]);\n\n\tconst copy = async (text: string) => {\n\t\tconst request = ++attempt.current;\n\t\tclearTimeout(timer.current);\n\t\tsetCopied(false);\n\t\tsetFailed(false);\n\t\ttry {\n\t\t\tif (typeof navigator === 'undefined' || !navigator.clipboard?.writeText) {\n\t\t\t\tthrow new Error('Clipboard unavailable');\n\t\t\t}\n\t\t\tawait navigator.clipboard.writeText(text);\n\t\t} catch (error) {\n\t\t\tif (mounted.current && request === attempt.current) {\n\t\t\t\tsetFailed(true);\n\t\t\t\tonCopyError?.(error);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\tif (!mounted.current || request !== attempt.current) return false;\n\t\tsetCopied(true);\n\t\ttimer.current = setTimeout(() => setCopied(false), 1500);\n\t\treturn true;\n\t};\n\n\treturn { copied, failed, copy };\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport type { StringsProp } from '../../../lib/strings';\nexport interface CodeBlockStrings {\n copyAria: string; copied: string; copyError: string; defaultLanguageLabel: string; wrap: string; contentAria: string;\n}\nexport const defaultCodeBlockStrings: CodeBlockStrings = {\n copyAria: 'Copy code', copied: 'Copied', copyError: 'Could not copy. Please try again.', defaultLanguageLabel: 'Code', wrap: 'Wrap lines', contentAria: 'Code content',\n};\nexport interface CodeBlockLine {\n /** Source text, always used for copying even when a renderLine is supplied. */\n text: string;\n /** Source line number, starting at startLine. */\n number: number;\n highlighted: boolean;\n focused: boolean;\n diff?: 'add' | 'remove';\n}\nexport interface CodeBlockProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'onCopy'> {\n code: string;\n language?: string;\n filename?: string;\n showLineNumbers?: boolean;\n /** First displayed line number. @default 1 */\n startLine?: number;\n highlightLines?: readonly number[];\n /** Dim other lines. Hover/focus restores context. Source numbers are one based. */\n focusLines?: readonly number[];\n diffLines?: Readonly<Record<number, 'add' | 'remove'>>;\n /** Caller-prepared syntax rendering, e.g. token spans. Plain text is server safe and escaped by React. Never pass untrusted HTML. */\n renderLine?: (line: CodeBlockLine) => ReactNode;\n hideHeader?: boolean;\n hideCopy?: boolean;\n maxHeight?: number | string;\n headerStart?: ReactNode;\n headerActions?: ReactNode;\n wrap?: boolean;\n defaultWrap?: boolean;\n onWrapChange?: (wrap: boolean) => void;\n showWrapToggle?: boolean;\n onCopy?: (code: string) => void;\n onCopyError?: (error: unknown) => void;\n strings?: StringsProp<CodeBlockStrings>;\n}\n","import { forwardRef, useState } from 'react';\nimport { Check, Copy, WrapText } from 'lucide-react';\nimport { Button } from '../buttons';\nimport { Stack } from '../structure';\nimport { Text } from '../../typography';\nimport { resolveTextClassNames } from '../../typography/text.styles';\nimport { MonoValue } from '../../primitives';\nimport { cn } from '../../../lib/utils';\nimport { useStrings } from '../../../lib/strings';\nimport { surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { useCodeCopy } from './use-code-copy';\nimport { defaultCodeBlockStrings, type CodeBlockProps } from './code-block.types';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { toneRecipes } from '../../../lib/tone-recipes';\n\n/** Generic code display. Consumers own highlighting; source text remains the copy payload. */\nexport const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(function CodeBlock({\n code, language, filename, showLineNumbers = false, startLine = 1, highlightLines, focusLines, diffLines, renderLine,\n hideHeader = false, hideCopy = false, maxHeight, headerStart, headerActions, wrap: wrapProp, defaultWrap = false, onWrapChange, showWrapToggle = false,\n onCopy, onCopyError, strings: stringsProp, className, ...props\n}, ref) {\n const strings = useStrings(defaultCodeBlockStrings, stringsProp);\n const [uncontrolledWrap, setWrap] = useState(defaultWrap);\n const wrap = wrapProp ?? uncontrolledWrap;\n const { copied, failed, copy } = useCodeCopy(code, onCopyError);\n const lines = code.split('\\n');\n const first = Number.isFinite(startLine) ? Math.max(1, Math.trunc(startLine)) : 1;\n const hasDiff = Object.keys(diffLines ?? {}).length > 0;\n const highlights = new Set(highlightLines); const focus = new Set(focusLines);\n const handleWrap = () => { if (wrapProp === undefined) setWrap(!wrap); onWrapChange?.(!wrap); };\n return <div {...props} ref={ref} data-wrap={wrap || undefined} className={cn('code-block--component group/code-block box-border w-full min-w-0 max-w-full overflow-hidden rounded-radius bg-card text-card-foreground', surfaceDividerRecipes.frame.shell, className)}>\n {!hideHeader && <Stack direction=\"horizontal\" align=\"center\" gap=\"sm\" wrap className={cn('code-block--header p-surface-xs bg-muted text-muted-foreground', surfaceDividerRecipes.frame.header)}>\n {headerStart}\n <MonoValue className=\"min-w-0 truncate\">{filename || language || strings.defaultLanguageLabel}</MonoValue>\n {filename && language && <Text tag=\"span\" size=\"xs\" type=\"secondary\">{language}</Text>}\n <Stack direction=\"horizontal\" align=\"center\" gap=\"xs\" className=\"ms-auto shrink-0\">\n {headerActions}\n {showWrapToggle && <Button type=\"button\" size=\"sm\" iconOnly tone=\"secondary\" buttonStyle=\"ghost\" aria-label={strings.wrap} aria-pressed={wrap} onClick={handleWrap}><WrapText aria-hidden=\"true\" className=\"size-icon-sm\" /></Button>}\n {!hideCopy && <Button type=\"button\" size=\"sm\" iconOnly tone=\"secondary\" buttonStyle=\"ghost\" aria-label={copied ? strings.copied : strings.copyAria} onClick={async () => { if (await copy(code)) onCopy?.(code); }}>{copied ? <Check aria-hidden=\"true\" className=\"size-icon-sm\" /> : <Copy aria-hidden=\"true\" className=\"size-icon-sm\" />}</Button>}\n </Stack>\n </Stack>}\n <div className={`code-block--viewport min-w-0 max-w-full overflow-auto focus-visible:outline-none ${focusRecipes.inset}`} tabIndex={0} role=\"region\" aria-label={strings.contentAria} style={maxHeight !== undefined ? { maxHeight } : undefined}>\n <pre dir=\"ltr\" className={cn(resolveTextClassNames({ lineHeight: 'relaxed' }), 'code-block--pre m-0 p-surface font-mono text-inherit')}><code className=\"block\">\n {lines.map((text, index) => {\n const number = first + index; const highlighted = highlights.has(number); const focused = focus.size === 0 || focus.has(number); const diff = diffLines?.[number];\n return <span key={number} data-code-line={number} data-highlighted={highlighted || undefined} data-focused={focused ? 'true' : 'false'} data-diff={diff} className={cn('code-block--line flex min-w-0 gap-space-sm', highlighted && 'bg-accent text-accent-foreground', diff === 'add' && toneRecipes.success.wash, diff === 'remove' && toneRecipes.destructive.wash, !focused && 'opacity-50 group-hover/code-block:opacity-100 group-focus-within/code-block:opacity-100')}>\n {showLineNumbers && <Text tag=\"span\" size=\"inherit\" type=\"secondary\" numeric aria-hidden=\"true\" style={{ minWidth: `${String(first + lines.length - 1).length}ch` }} className=\"code-block--number select-none shrink-0 text-right\">{number}</Text>}\n {/* A tinted line keeps the source legible; the marker carries the status ink. */}\n {hasDiff && <Text tag=\"span\" size=\"inherit\" aria-hidden=\"true\" className={cn('code-block--diff font-mono select-none shrink-0', diff === 'add' ? 'text-success' : diff === 'remove' ? 'text-destructive' : 'text-inherit')}>{diff === 'add' ? '+' : diff === 'remove' ? '−' : '\\u00a0'}</Text>}\n <Text tag=\"span\" size=\"inherit\" lineHeight=\"relaxed\" className={cn('code-block--text font-mono block min-w-0 flex-1 text-inherit', wrap ? 'whitespace-pre-wrap break-words' : 'whitespace-pre')}>{renderLine ? renderLine({ text, number, highlighted, focused, diff }) : text || '\\u00a0'}</Text>\n </span>;\n })}\n </code></pre>\n </div>\n {failed && <div className=\"p-surface-xs\"><Text role=\"alert\" size=\"xs\" type=\"error\">{strings.copyError}</Text></div>}\n </div>;\n});\nCodeBlock.displayName = 'CodeBlock';\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "./utils-l5LpDw2z.js";
3
- import { s as t } from "./typography-DTRkE9zL.js";
2
+ import { t as e } from "./utils-BRhFDwuU.js";
3
+ import { c as t } from "./typography-UTnveOEy.js";
4
4
  import { t as n } from "./motion-recipes-ChBg4HBq.js";
5
5
  import { t as r } from "./slot-CLF9kLrS.js";
6
6
  import { t as i } from "./disclosure-panel-B0HFNZ9x.js";
@@ -78,4 +78,4 @@ f.displayName = "Collapsible", p.displayName = "CollapsibleTrigger", m.displayNa
78
78
  //#endregion
79
79
  export { m as n, p as r, f as t };
80
80
 
81
- //# sourceMappingURL=collapsible-D8AEGU1-.js.map
81
+ //# sourceMappingURL=collapsible-C-_l4hpy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible-D8AEGU1-.js","names":["Collapsible","CollapsiblePrimitive","CollapsibleTrigger","React","CollapsibleContent","Collapsible","CollapsiblePrimitive","CollapsibleTriggerPrimitive","CollapsibleContentPrimitive","cn","Text","motionRecipes","Slot","DisclosurePanelElement","React$1","Collapsible$2","props","Collapsible","CollapsibleTrigger$1","slotRender","asChild","safeRender","render","_nativeButton","rest","renderProps","state","inferredNativeButton","children","resolvedNativeButton","nativeButton","CollapsibleContent$1","className","panelProps","isSimpleText","value","Collapsible$1","CollapsibleTrigger","CollapsibleContent"],"sources":["../src/components/ui/collapsible.tsx","../src/components/base/display/collapsible.tsx"],"sourcesContent":["import { DisclosurePanelElement } from './disclosure-panel';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { cn } from '../../lib/utils';\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\nimport * as React from \"react\"\n\nimport { Slot } from \"./slot\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n asChild = false,\n nativeButton,\n render,\n children,\n ...props\n}: CollapsiblePrimitive.Trigger.Props & { asChild?: boolean; nativeButton?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: CollapsiblePrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n let inferredNativeButton = true\n if (asChild && React.isValidElement(children)) {\n if (typeof children.type === \"string\") {\n inferredNativeButton = children.type === \"button\"\n } else {\n const childProps = (children.props ?? {}) as Record<string, unknown>\n inferredNativeButton = !(\"href\" in childProps)\n }\n }\n const resolvedNativeButton = nativeButton ?? (asChild ? inferredNativeButton : true)\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n render={slotRender ?? safeRender}\n nativeButton={resolvedNativeButton}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Trigger>\n )\n}\n\nfunction CollapsibleContent({ className, render, ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" className={cn(\"box-border h-(--collapsible-panel-height)\", motionRecipes.disclosure, className)} {...props} render={(panelProps, state) => <DisclosurePanelElement props={panelProps} state={state} render={render} heightVariable=\"--collapsible-panel-height\" />} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","/** Tokenized base wrappers for inline disclosure behavior. */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport {\n\tCollapsible as CollapsiblePrimitive,\n\tCollapsibleContent as CollapsibleContentPrimitive,\n\tCollapsibleTrigger as CollapsibleTriggerPrimitive,\n} from '../../ui/collapsible';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport type CollapsibleProps = ComponentProps<typeof CollapsiblePrimitive>;\nexport type CollapsibleTriggerProps = ComponentProps<typeof CollapsibleTriggerPrimitive>;\nexport type CollapsibleContentProps = ComponentProps<typeof CollapsibleContentPrimitive>;\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Root disclosure state. Supports controlled and uncontrolled open state. */\nexport function Collapsible({ className, ...props }: CollapsibleProps) {\n\treturn (\n\t\t<CollapsiblePrimitive\n\t\t\tclassName={cn('collapsible--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n/** Consumer-blocks control that toggles the disclosure panel. */\nexport function CollapsibleTrigger({ className, children, ...props }: CollapsibleTriggerProps) {\n\treturn (\n\t\t<CollapsibleTriggerPrimitive\n\t\t\tclassName={cn('collapsible-trigger--component active:translate-y-0!', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</CollapsibleTriggerPrimitive>\n\t);\n}\n\n/** Mount-aware disclosure panel. The caller owns its surface and content. */\nexport function CollapsibleContent({ className, children, ...props }: CollapsibleContentProps) {\n\treturn (\n\t\t<CollapsibleContentPrimitive\n\t\t\tclassName={cn('collapsible-content--component', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? <Text>{children}</Text> : children}\n\t\t</CollapsibleContentPrimitive>\n\t);\n}\n\nCollapsible.displayName = 'Collapsible';\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\nCollapsibleContent.displayName = 'CollapsibleContent';\n"],"mappings":";;;;;;;;;;AAQA,SAASA,EAAY,EAAE,GAAGgB,KAA0C;CAClE,OAAO,kBAACf,EAAqB,MAAtB;EAA2B,aAAU;EAAc,GAAIe;CAAQ,CAAA;AACxE;AAEA,SAASd,EAAmB,EAC1B,aAAU,IACV,iBACA,WACA,aACA,GAAGc,KACkF;CACrF,IAAMG,IAAaC,IAAU,kBAACR,GAAD,CAAO,CAAA,IAAI,KAAA,GAClCS,IAA2D,OAAOC,KAAW,eAC7E,GAAa,MAAU;EACzB,IAAM,EAAE,cAAcC,GAAe,GAAGC,MAASC;EAEjD,OAAOH,EAAOE,GAA4BE,CAAK;CACjD,KACEJ,GACAK,IAAuB;CAC3B,AAAIP,KAAWjB,EAAM,eAAeyB,CAAQ,MAC1C,AAIED,IAJE,OAAOC,EAAS,QAAS,WACJA,EAAS,SAAS,WAGlB,EAAE,WADLA,EAAS,SAAS,CAAC;CAI3C,IAAMC,IAAuBC,MAAiB,MAAUH;CACxD,OACE,kBAAC1B,EAAqB,SAAtB;EACE,aAAU;EACV,QAAQkB,KAAcE;EACtB,cAAcQ;EACd,GAAIb;EAEH;CAC2B,CAAA;AAElC;AAEA,SAASZ,EAAmB,EAAE,cAAW,WAAQ,GAAGY,KAA2C;CAC7F,OACE,kBAACf,EAAqB,OAAtB;EAA4B,aAAU;EAAsB,WAAWQ,EAAG,6CAA6CE,EAAc,YAAYqB,CAAS;EAAG,GAAIhB;EAAO,SAAS,GAAY,MAAU,kBAACH,GAAD;GAAwB,OAAOoB;GAAmB;GAAe;GAAQ,gBAAe;EAA8B,CAAA;CAAI,CAAA;AAErU;;;ACtCA,SAASC,EAAa,GAAqD;CAC1E,OAAO,OAAOC,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAGA,SAAgB9B,EAAY,EAAE,cAAW,GAAGW,KAA2B;CACtE,OACC,kBAACV,GAAD;EACC,WAAWG,EAAG,0BAA0BuB,CAAS;EACjD,GAAIhB;CACJ,CAAA;AAEH;AAGA,SAAgBqB,EAAmB,EAAE,cAAW,aAAU,GAAGrB,KAAkC;CAC9F,OACC,kBAACT,GAAD;EACC,WAAWE,EAAG,wDAAwDuB,CAAS;EAC/E,GAAIhB;EAEH,UAAAkB,EAAaN,CAAQ,IACrB,kBAAClB,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,QAAO;GAAS,YAAW;GAAQ,WAAU;GAC3E;EACI,CAAA,IACHkB;CACwB,CAAA;AAE/B;AAGA,SAAgBU,EAAmB,EAAE,cAAW,aAAU,GAAGtB,KAAkC;CAC9F,OACC,kBAACR,GAAD;EACC,WAAWC,EAAG,kCAAkCuB,CAAS;EACzD,GAAIhB;EAEH,UAAAkB,EAAaN,CAAQ,IAAI,kBAAClB,GAAD,EAAO,YAAe,CAAA,IAAIkB;CACxB,CAAA;AAE/B;AAEA,EAAY,cAAc,eAC1B,EAAmB,cAAc,sBACjC,EAAmB,cAAc"}
1
+ {"version":3,"file":"collapsible-C-_l4hpy.js","names":["Collapsible","CollapsiblePrimitive","CollapsibleTrigger","React","CollapsibleContent","Collapsible","CollapsiblePrimitive","CollapsibleTriggerPrimitive","CollapsibleContentPrimitive","cn","Text","motionRecipes","Slot","DisclosurePanelElement","React$1","Collapsible$2","props","Collapsible","CollapsibleTrigger$1","slotRender","asChild","safeRender","render","_nativeButton","rest","renderProps","state","inferredNativeButton","children","resolvedNativeButton","nativeButton","CollapsibleContent$1","className","panelProps","isSimpleText","value","Collapsible$1","CollapsibleTrigger","CollapsibleContent"],"sources":["../src/components/ui/collapsible.tsx","../src/components/base/display/collapsible.tsx"],"sourcesContent":["import { DisclosurePanelElement } from './disclosure-panel';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { cn } from '../../lib/utils';\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\nimport * as React from \"react\"\n\nimport { Slot } from \"./slot\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n asChild = false,\n nativeButton,\n render,\n children,\n ...props\n}: CollapsiblePrimitive.Trigger.Props & { asChild?: boolean; nativeButton?: boolean }) {\n const slotRender = asChild ? <Slot /> : undefined\n const safeRender: CollapsiblePrimitive.Trigger.Props[\"render\"] = typeof render === \"function\"\n ? ((renderProps, state) => {\n const { nativeButton: _nativeButton, ...rest } = renderProps as Record<string, unknown>\n void _nativeButton\n return render(rest as typeof renderProps, state)\n })\n : render\n let inferredNativeButton = true\n if (asChild && React.isValidElement(children)) {\n if (typeof children.type === \"string\") {\n inferredNativeButton = children.type === \"button\"\n } else {\n const childProps = (children.props ?? {}) as Record<string, unknown>\n inferredNativeButton = !(\"href\" in childProps)\n }\n }\n const resolvedNativeButton = nativeButton ?? (asChild ? inferredNativeButton : true)\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n render={slotRender ?? safeRender}\n nativeButton={resolvedNativeButton}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Trigger>\n )\n}\n\nfunction CollapsibleContent({ className, render, ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" className={cn(\"box-border h-(--collapsible-panel-height)\", motionRecipes.disclosure, className)} {...props} render={(panelProps, state) => <DisclosurePanelElement props={panelProps} state={state} render={render} heightVariable=\"--collapsible-panel-height\" />} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","/** Tokenized base wrappers for inline disclosure behavior. */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport {\n\tCollapsible as CollapsiblePrimitive,\n\tCollapsibleContent as CollapsibleContentPrimitive,\n\tCollapsibleTrigger as CollapsibleTriggerPrimitive,\n} from '../../ui/collapsible';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport type CollapsibleProps = ComponentProps<typeof CollapsiblePrimitive>;\nexport type CollapsibleTriggerProps = ComponentProps<typeof CollapsibleTriggerPrimitive>;\nexport type CollapsibleContentProps = ComponentProps<typeof CollapsibleContentPrimitive>;\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Root disclosure state. Supports controlled and uncontrolled open state. */\nexport function Collapsible({ className, ...props }: CollapsibleProps) {\n\treturn (\n\t\t<CollapsiblePrimitive\n\t\t\tclassName={cn('collapsible--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n/** Consumer-blocks control that toggles the disclosure panel. */\nexport function CollapsibleTrigger({ className, children, ...props }: CollapsibleTriggerProps) {\n\treturn (\n\t\t<CollapsibleTriggerPrimitive\n\t\t\tclassName={cn('collapsible-trigger--component active:translate-y-0!', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</CollapsibleTriggerPrimitive>\n\t);\n}\n\n/** Mount-aware disclosure panel. The caller owns its surface and content. */\nexport function CollapsibleContent({ className, children, ...props }: CollapsibleContentProps) {\n\treturn (\n\t\t<CollapsibleContentPrimitive\n\t\t\tclassName={cn('collapsible-content--component', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? <Text>{children}</Text> : children}\n\t\t</CollapsibleContentPrimitive>\n\t);\n}\n\nCollapsible.displayName = 'Collapsible';\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\nCollapsibleContent.displayName = 'CollapsibleContent';\n"],"mappings":";;;;;;;;;;AAQA,SAASA,EAAY,EAAE,GAAGgB,KAA0C;CAClE,OAAO,kBAACf,EAAqB,MAAtB;EAA2B,aAAU;EAAc,GAAIe;CAAQ,CAAA;AACxE;AAEA,SAASd,EAAmB,EAC1B,aAAU,IACV,iBACA,WACA,aACA,GAAGc,KACkF;CACrF,IAAMG,IAAaC,IAAU,kBAACR,GAAD,CAAO,CAAA,IAAI,KAAA,GAClCS,IAA2D,OAAOC,KAAW,eAC7E,GAAa,MAAU;EACzB,IAAM,EAAE,cAAcC,GAAe,GAAGC,MAASC;EAEjD,OAAOH,EAAOE,GAA4BE,CAAK;CACjD,KACEJ,GACAK,IAAuB;CAC3B,AAAIP,KAAWjB,EAAM,eAAeyB,CAAQ,MAC1C,AAIED,IAJE,OAAOC,EAAS,QAAS,WACJA,EAAS,SAAS,WAGlB,EAAE,WADLA,EAAS,SAAS,CAAC;CAI3C,IAAMC,IAAuBC,MAAiB,MAAUH;CACxD,OACE,kBAAC1B,EAAqB,SAAtB;EACE,aAAU;EACV,QAAQkB,KAAcE;EACtB,cAAcQ;EACd,GAAIb;EAEH;CAC2B,CAAA;AAElC;AAEA,SAASZ,EAAmB,EAAE,cAAW,WAAQ,GAAGY,KAA2C;CAC7F,OACE,kBAACf,EAAqB,OAAtB;EAA4B,aAAU;EAAsB,WAAWQ,EAAG,6CAA6CE,EAAc,YAAYqB,CAAS;EAAG,GAAIhB;EAAO,SAAS,GAAY,MAAU,kBAACH,GAAD;GAAwB,OAAOoB;GAAmB;GAAe;GAAQ,gBAAe;EAA8B,CAAA;CAAI,CAAA;AAErU;;;ACtCA,SAASC,EAAa,GAAqD;CAC1E,OAAO,OAAOC,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAGA,SAAgB9B,EAAY,EAAE,cAAW,GAAGW,KAA2B;CACtE,OACC,kBAACV,GAAD;EACC,WAAWG,EAAG,0BAA0BuB,CAAS;EACjD,GAAIhB;CACJ,CAAA;AAEH;AAGA,SAAgBqB,EAAmB,EAAE,cAAW,aAAU,GAAGrB,KAAkC;CAC9F,OACC,kBAACT,GAAD;EACC,WAAWE,EAAG,wDAAwDuB,CAAS;EAC/E,GAAIhB;EAEH,UAAAkB,EAAaN,CAAQ,IACrB,kBAAClB,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,QAAO;GAAS,YAAW;GAAQ,WAAU;GAC3E;EACI,CAAA,IACHkB;CACwB,CAAA;AAE/B;AAGA,SAAgBU,EAAmB,EAAE,cAAW,aAAU,GAAGtB,KAAkC;CAC9F,OACC,kBAACR,GAAD;EACC,WAAWC,EAAG,kCAAkCuB,CAAS;EACzD,GAAIhB;EAEH,UAAAkB,EAAaN,CAAQ,IAAI,kBAAClB,GAAD,EAAO,YAAe,CAAA,IAAIkB;CACxB,CAAA;AAE/B;AAEA,EAAY,cAAc,eAC1B,EAAmB,cAAc,sBACjC,EAAmB,cAAc"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { t as e } from "./utils-l5LpDw2z.js";
3
- import { s as t } from "./typography-DTRkE9zL.js";
2
+ import { t as e } from "./utils-BRhFDwuU.js";
3
+ import { c as t } from "./typography-UTnveOEy.js";
4
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
5
  //#region src/components/base/popover/collection-content.tsx
6
6
  function i(e) {
@@ -50,4 +50,4 @@ function o({ label: i, description: o, leading: s, trailing: c, leadingDecorativ
50
50
  //#endregion
51
51
  export { a as n, o as t };
52
52
 
53
- //# sourceMappingURL=collection-content-uK16Grv0.js.map
53
+ //# sourceMappingURL=collection-content-By56pLog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-content-uK16Grv0.js","names":["cn","Text","isScalar","value","CollectionLabel","children","className","CollectionContent","copyFlow","wrap","leading","leadingDecorative","leadingClassName","bodyClassName","labelClassName","label","description","descriptionClassName","trailing"],"sources":["../src/components/base/popover/collection-content.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nfunction isScalar(value: ReactNode) {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Presentation only. Interactive primitives retain identity and behavior. */\nexport function CollectionLabel({ children, className }: { children: ReactNode; className?: string }) {\n\tif (typeof children === 'string' && !children.trim()) return children;\n\tif (!isScalar(children)) return className ? <span className={className}>{children}</span> : children;\n\treturn (\n\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className={cn('text-inherit text-start', className)}>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\ninterface CollectionContentProps {\n\tlabel: ReactNode;\n\tdescription?: ReactNode;\n\tleading?: ReactNode;\n\ttrailing?: ReactNode;\n\tleadingDecorative?: boolean;\n\twrap?: boolean;\n\tclassName?: string;\n\tleadingClassName?: string;\n\tbodyClassName?: string;\n\tlabelClassName?: string;\n\tdescriptionClassName?: string;\n}\n\n/** Private copy grammar shared by option/action owners; rich slots are not cloned. */\nexport function CollectionContent({\n\tlabel, description, leading, trailing, leadingDecorative = false, wrap = false,\n\tclassName, leadingClassName, bodyClassName, labelClassName, descriptionClassName,\n}: CollectionContentProps) {\n\tconst copyFlow = wrap ? 'whitespace-normal wrap-anywhere' : 'truncate';\n\treturn (\n\t\t<span className={cn('collection-content--component flex min-w-0 flex-1 items-center gap-space-sm', className)}>\n\t\t\t{leading != null && leading !== false && (\n\t\t\t\t<span aria-hidden={leadingDecorative || undefined} className={cn('inline-flex shrink-0 items-center justify-center text-muted-foreground', leadingClassName)}>\n\t\t\t\t\t{leading}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<span className={cn('collection-content--copy flex min-w-0 flex-1 flex-col gap-dense', bodyClassName)}>\n\t\t\t\t<CollectionLabel className={cn('min-w-0', copyFlow, labelClassName)}>{label}</CollectionLabel>\n\t\t\t\t{description != null && description !== false && description !== '' && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" lineHeight=\"tight\" className={cn('text-start', copyFlow, descriptionClassName)}>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t{trailing}\n\t\t</span>\n\t);\n}\n"],"mappings":";;;;;AAIA,SAASE,EAAS,GAAkB;CACnC,OAAO,OAAOC,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAGA,SAAgBC,EAAgB,EAAE,aAAU,gBAA0D;CAGrG,OAFI,OAAOC,KAAa,YAAY,CAACA,EAAS,KAAK,IAAUA,IACxDH,EAASG,CAAQ,IAErB,kBAACJ,GAAD;EAAM,KAAI;EAAO,MAAK;EAAU,QAAO;EAAS,YAAW;EAAQ,WAAWD,EAAG,2BAA2BM,CAAS;EACnH;CACI,CAAA,IAJyBA,IAAY,kBAAC,QAAD;EAAiB;EAAY;CAAe,CAAA,IAAID;AAM7F;AAiBA,SAAgBE,EAAkB,EACjC,UAAO,gBAAa,YAAS,aAAU,uBAAoB,IAAO,UAAO,IACzE,cAAW,qBAAkB,kBAAe,mBAAgB,2BAClC;CAC1B,IAAMC,IAAWC,IAAO,oCAAoC;CAC5D,OACC,kBAAC,QAAD;EAAM,WAAWT,EAAG,+EAA+EM,CAAS;EAA5G,UAAA;GACEI,KAAW,QAAQA,MAAY,MAC/B,kBAAC,QAAD;IAAM,eAAaC,KAAqB,KAAA;IAAW,WAAWX,EAAG,0EAA0EY,CAAgB;IACzJ,UAAAF;GACI,CAAA;GAEP,kBAAC,QAAD;IAAM,WAAWV,EAAG,mEAAmEa,CAAa;IAApG,UAAA,CACC,kBAACT,GAAD;KAAiB,WAAWJ,EAAG,WAAWQ,GAAUM,CAAc;KAAI,UAAAC;IAAuB,CAAA,GAC5FC,KAAe,QAAQA,MAAgB,MAASA,MAAgB,MAChE,kBAACf,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,MAAK;KAAY,YAAW;KAAQ,WAAWD,EAAG,cAAcQ,GAAUS,CAAoB;KACvH,UAAAD;IACI,CAAA,CAEF;;GACLE;EACI;;AAER"}
1
+ {"version":3,"file":"collection-content-By56pLog.js","names":["cn","Text","isScalar","value","CollectionLabel","children","className","CollectionContent","copyFlow","wrap","leading","leadingDecorative","leadingClassName","bodyClassName","labelClassName","label","description","descriptionClassName","trailing"],"sources":["../src/components/base/popover/collection-content.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nfunction isScalar(value: ReactNode) {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Presentation only. Interactive primitives retain identity and behavior. */\nexport function CollectionLabel({ children, className }: { children: ReactNode; className?: string }) {\n\tif (typeof children === 'string' && !children.trim()) return children;\n\tif (!isScalar(children)) return className ? <span className={className}>{children}</span> : children;\n\treturn (\n\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className={cn('text-inherit text-start', className)}>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n\ninterface CollectionContentProps {\n\tlabel: ReactNode;\n\tdescription?: ReactNode;\n\tleading?: ReactNode;\n\ttrailing?: ReactNode;\n\tleadingDecorative?: boolean;\n\twrap?: boolean;\n\tclassName?: string;\n\tleadingClassName?: string;\n\tbodyClassName?: string;\n\tlabelClassName?: string;\n\tdescriptionClassName?: string;\n}\n\n/** Private copy grammar shared by option/action owners; rich slots are not cloned. */\nexport function CollectionContent({\n\tlabel, description, leading, trailing, leadingDecorative = false, wrap = false,\n\tclassName, leadingClassName, bodyClassName, labelClassName, descriptionClassName,\n}: CollectionContentProps) {\n\tconst copyFlow = wrap ? 'whitespace-normal wrap-anywhere' : 'truncate';\n\treturn (\n\t\t<span className={cn('collection-content--component flex min-w-0 flex-1 items-center gap-space-sm', className)}>\n\t\t\t{leading != null && leading !== false && (\n\t\t\t\t<span aria-hidden={leadingDecorative || undefined} className={cn('inline-flex shrink-0 items-center justify-center text-muted-foreground', leadingClassName)}>\n\t\t\t\t\t{leading}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<span className={cn('collection-content--copy flex min-w-0 flex-1 flex-col gap-dense', bodyClassName)}>\n\t\t\t\t<CollectionLabel className={cn('min-w-0', copyFlow, labelClassName)}>{label}</CollectionLabel>\n\t\t\t\t{description != null && description !== false && description !== '' && (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" lineHeight=\"tight\" className={cn('text-start', copyFlow, descriptionClassName)}>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t{trailing}\n\t\t</span>\n\t);\n}\n"],"mappings":";;;;;AAIA,SAASE,EAAS,GAAkB;CACnC,OAAO,OAAOC,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAGA,SAAgBC,EAAgB,EAAE,aAAU,gBAA0D;CAGrG,OAFI,OAAOC,KAAa,YAAY,CAACA,EAAS,KAAK,IAAUA,IACxDH,EAASG,CAAQ,IAErB,kBAACJ,GAAD;EAAM,KAAI;EAAO,MAAK;EAAU,QAAO;EAAS,YAAW;EAAQ,WAAWD,EAAG,2BAA2BM,CAAS;EACnH;CACI,CAAA,IAJyBA,IAAY,kBAAC,QAAD;EAAiB;EAAY;CAAe,CAAA,IAAID;AAM7F;AAiBA,SAAgBE,EAAkB,EACjC,UAAO,gBAAa,YAAS,aAAU,uBAAoB,IAAO,UAAO,IACzE,cAAW,qBAAkB,kBAAe,mBAAgB,2BAClC;CAC1B,IAAMC,IAAWC,IAAO,oCAAoC;CAC5D,OACC,kBAAC,QAAD;EAAM,WAAWT,EAAG,+EAA+EM,CAAS;EAA5G,UAAA;GACEI,KAAW,QAAQA,MAAY,MAC/B,kBAAC,QAAD;IAAM,eAAaC,KAAqB,KAAA;IAAW,WAAWX,EAAG,0EAA0EY,CAAgB;IACzJ,UAAAF;GACI,CAAA;GAEP,kBAAC,QAAD;IAAM,WAAWV,EAAG,mEAAmEa,CAAa;IAApG,UAAA,CACC,kBAACT,GAAD;KAAiB,WAAWJ,EAAG,WAAWQ,GAAUM,CAAc;KAAI,UAAAC;IAAuB,CAAA,GAC5FC,KAAe,QAAQA,MAAgB,MAASA,MAAgB,MAChE,kBAACf,GAAD;KAAM,KAAI;KAAO,MAAK;KAAK,MAAK;KAAY,YAAW;KAAQ,WAAWD,EAAG,cAAcQ,GAAUS,CAAoB;KACvH,UAAAD;IACI,CAAA,CAEF;;GACLE;EACI;;AAER"}
@@ -0,0 +1,355 @@
1
+ "use client";
2
+ import { m as e } from "./ui-provider-C_U0Xma4.js";
3
+ import { r as t } from "./theme-scope-BJ6eE2xt.js";
4
+ import { useStrings as n } from "./lib/strings.js";
5
+ import { t as r } from "./utils-BRhFDwuU.js";
6
+ import { t as i } from "./affordance-geometry.generated-tF36bREk.js";
7
+ import { a } from "./text.styles-g4He6UIW.js";
8
+ import { t as o } from "./anchored-positioning-DPnKTvNs.js";
9
+ import { t as s } from "./motion-recipes-ChBg4HBq.js";
10
+ import { a as c } from "./surface-recipes-BKRVW8Os.js";
11
+ import { a as l, n as u, r as d, t as f } from "./popover.recipes-D3j8R8Yp.js";
12
+ import { n as ee } from "./collection-content-By56pLog.js";
13
+ import { t as te } from "./overlay.recipes-8GHqmlb4.js";
14
+ import { t as p } from "./field-state-recipes-BVA2CWHo.js";
15
+ import { n as m, r as h, t as g } from "./field-affordance-recipes-DZhnIL_Y.js";
16
+ import { t as _ } from "./editable-text-recipe-Cn61kEcv.js";
17
+ import * as v from "react";
18
+ import { createElement as y } from "react";
19
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
20
+ import { CheckIcon as C, ChevronDownIcon as w } from "lucide-react";
21
+ import { useRender as T } from "@base-ui/react/use-render";
22
+ import { Combobox as E } from "@base-ui/react/combobox";
23
+ //#region src/components/ui/combobox-dismiss.tsx
24
+ var D = v.createContext("Dismiss");
25
+ function O({ elementProps: e, render: t, edge: n, defaultTagName: r }) {
26
+ let i = v.useContext(D), a = v.useRef(null);
27
+ v.useLayoutEffect(() => {
28
+ let e = a.current, t = n === "before" ? e?.previousElementSibling : e?.nextElementSibling;
29
+ t?.matches("span[role=\"button\"][aria-label]") && t.style.clipPath === "inset(50%)" && t.getAttribute("aria-label") !== i && t.setAttribute("aria-label", i);
30
+ });
31
+ let o = T({
32
+ defaultTagName: r,
33
+ render: t,
34
+ props: { ...e }
35
+ }), s = /* @__PURE__ */ x("template", {
36
+ ref: a,
37
+ "data-combobox-dismiss-edge": n
38
+ });
39
+ return n === "before" ? /* @__PURE__ */ S(b, { children: [s, o] }) : /* @__PURE__ */ S(b, { children: [o, s] });
40
+ }
41
+ //#endregion
42
+ //#region src/components/ui/combobox.tsx
43
+ function k({ dismissLabel: e = "Dismiss", ...t }) {
44
+ return /* @__PURE__ */ x(D.Provider, {
45
+ value: e,
46
+ children: /* @__PURE__ */ x(E.Root, { ...t })
47
+ });
48
+ }
49
+ function A({ render: e, ...t }) {
50
+ return /* @__PURE__ */ x(E.Input, {
51
+ ...t,
52
+ render: (t, n) => /* @__PURE__ */ x(O, {
53
+ elementProps: t,
54
+ edge: "before",
55
+ defaultTagName: "input",
56
+ render: typeof e == "function" ? (t) => e(t, n) : e
57
+ })
58
+ });
59
+ }
60
+ function j({ className: e, render: t, ...n }) {
61
+ return /* @__PURE__ */ x(A, {
62
+ "data-slot": "combobox-input",
63
+ className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-control w-full min-w-0 rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", i.controlTextMinHeight, i.controlBlockPadding.md, _.md, p.focus, p.invalid, e),
64
+ ...n,
65
+ render: t
66
+ });
67
+ }
68
+ function M({ className: e, children: t, ...n }) {
69
+ return /* @__PURE__ */ S(E.Trigger, {
70
+ "data-slot": "combobox-trigger",
71
+ className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground flex h-control w-full items-center justify-between rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", "text-sm", i.controlTextMinHeight, i.controlBlockPadding.md, p.focus, p.invalid, "[&>span]:line-clamp-1", e),
72
+ ...n,
73
+ children: [t, /* @__PURE__ */ x(E.Icon, {
74
+ className: "flex",
75
+ children: /* @__PURE__ */ x(w, { className: r(h.icon.md, "text-muted-foreground") })
76
+ })]
77
+ });
78
+ }
79
+ function N({ placeholder: e, ...t }) {
80
+ return /* @__PURE__ */ x(E.Value, {
81
+ "data-slot": "combobox-value",
82
+ placeholder: !!e && /* @__PURE__ */ x("span", {
83
+ className: "text-muted-foreground",
84
+ children: e
85
+ }),
86
+ ...t
87
+ });
88
+ }
89
+ function P({ className: e, ...t }) {
90
+ return /* @__PURE__ */ x(E.Clear, {
91
+ "data-slot": "combobox-clear",
92
+ className: r(m.target, m.focus, m.clear, m.centered, "end-control-icon", e),
93
+ ...t,
94
+ children: /* @__PURE__ */ x(g, {
95
+ "aria-hidden": "true",
96
+ className: m.icon
97
+ })
98
+ });
99
+ }
100
+ var F = {
101
+ sm: "h-control-sm ps-control-sm",
102
+ md: "h-control ps-control",
103
+ lg: "h-control-lg ps-control"
104
+ };
105
+ function I({ className: e, render: t, showClear: n = !1, clearLabel: a, toggleLabel: o, size: s = "md", error: c, ...l }) {
106
+ return /* @__PURE__ */ S("div", {
107
+ className: "relative h-fit",
108
+ children: [/* @__PURE__ */ x(A, {
109
+ "data-slot": "combobox-input",
110
+ className: r("font-sans text-foreground", "box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-inner border bg-background shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", p.focus, p.invalid, F[s], i.controlTextMinHeight, i.controlBlockPadding[s], _[s], n ? h.clearPadding[s] : h.padding[s], e),
111
+ "aria-invalid": c || void 0,
112
+ ...l,
113
+ render: t
114
+ }), /* @__PURE__ */ S("div", {
115
+ className: r("absolute top-1/2 -translate-y-1/2 flex items-center gap-space-xs text-muted-foreground", h.track[s]),
116
+ children: [!!n && /* @__PURE__ */ x(E.Clear, {
117
+ "aria-label": a,
118
+ "data-slot": "combobox-clear",
119
+ className: r(m.target, m.focus, m.clear),
120
+ children: /* @__PURE__ */ x(g, {
121
+ "aria-hidden": "true",
122
+ className: m.icon
123
+ })
124
+ }), /* @__PURE__ */ x(E.Trigger, {
125
+ "aria-label": o,
126
+ className: r(m.target, m.focus, m.toggle),
127
+ children: /* @__PURE__ */ x(w, {
128
+ "aria-hidden": "true",
129
+ className: r("shrink-0", h.icon[s])
130
+ })
131
+ })]
132
+ })]
133
+ });
134
+ }
135
+ function L({ container: e, ...n }) {
136
+ let r = t(e);
137
+ return /* @__PURE__ */ x(E.Portal, {
138
+ container: r,
139
+ ...n
140
+ });
141
+ }
142
+ function R({ className: e, positionMethod: t = o, sideOffset: n = 4, ...i }) {
143
+ return /* @__PURE__ */ x(E.Positioner, {
144
+ positionMethod: t,
145
+ "data-slot": "combobox-positioner",
146
+ sideOffset: n,
147
+ className: r("z-50 outline-none", e),
148
+ ...i
149
+ });
150
+ }
151
+ function z({ className: e, render: t, ...n }) {
152
+ return /* @__PURE__ */ x(E.Popup, {
153
+ "data-slot": "combobox-popup",
154
+ className: r("w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]", "overflow-hidden rounded-radius bg-popover text-popover-foreground shadow-md", c.anchored.shell, "origin-[var(--transform-origin)]", s.popup, e),
155
+ ...n,
156
+ render: (e, n) => /* @__PURE__ */ x(O, {
157
+ elementProps: e,
158
+ edge: "after",
159
+ defaultTagName: "div",
160
+ render: typeof t == "function" ? (e) => t(e, n) : t
161
+ })
162
+ });
163
+ }
164
+ function B({ className: e, ...t }) {
165
+ return /* @__PURE__ */ x(E.List, {
166
+ "data-slot": "combobox-list",
167
+ className: r("max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-surface-xs", "outline-none empty:hidden", e),
168
+ ...t
169
+ });
170
+ }
171
+ var V = {
172
+ sm: "size-icon-sm",
173
+ md: "size-icon",
174
+ lg: "size-icon-lg"
175
+ };
176
+ function H({ className: e, children: t, size: n = "md", ...i }) {
177
+ return /* @__PURE__ */ S(E.Item, {
178
+ "data-slot": "combobox-item",
179
+ className: r("flex w-full cursor-default select-none items-center justify-between outline-none", e),
180
+ ...i,
181
+ children: [/* @__PURE__ */ x("span", {
182
+ className: "flex min-w-0 flex-1 items-center gap-space-sm truncate",
183
+ children: t
184
+ }), /* @__PURE__ */ x(E.ItemIndicator, {
185
+ className: r("flex shrink-0 items-center justify-center", V[n]),
186
+ children: /* @__PURE__ */ x(C, { className: V[n] })
187
+ })]
188
+ });
189
+ }
190
+ function U({ className: e, children: t, ...n }) {
191
+ return /* @__PURE__ */ x(E.ItemIndicator, {
192
+ "data-slot": "combobox-item-indicator",
193
+ className: r(e),
194
+ ...n,
195
+ children: t ?? /* @__PURE__ */ x(C, { className: "size-icon" })
196
+ });
197
+ }
198
+ function W({ className: e, children: t, ...n }) {
199
+ return /* @__PURE__ */ x(E.Empty, {
200
+ "data-slot": "combobox-empty",
201
+ className: r("px-row-x py-space-xl text-center text-sm text-muted-foreground empty:hidden", e),
202
+ ...n,
203
+ children: t
204
+ });
205
+ }
206
+ function ne({ className: e, ...t }) {
207
+ return /* @__PURE__ */ x(E.Status, {
208
+ "data-slot": "combobox-status",
209
+ className: r("flex items-center gap-space-sm px-row-x py-row-y text-sm text-muted-foreground empty:hidden", e),
210
+ ...t
211
+ });
212
+ }
213
+ function G({ className: e, ...t }) {
214
+ return /* @__PURE__ */ x(E.Group, {
215
+ "data-slot": "combobox-group",
216
+ className: r("overflow-hidden p-0", e),
217
+ ...t
218
+ });
219
+ }
220
+ function K({ className: e, ...t }) {
221
+ return /* @__PURE__ */ x(E.GroupLabel, {
222
+ "data-slot": "combobox-group-label",
223
+ className: r("px-row-x py-row-y-sm text-xs font-medium text-muted-foreground", e),
224
+ ...t
225
+ });
226
+ }
227
+ var q = E.Collection;
228
+ function J({ className: e, ...t }) {
229
+ return /* @__PURE__ */ x(E.Separator, {
230
+ "data-slot": "combobox-separator",
231
+ className: r("my-space-xs h-px", c.anchored.separator, e),
232
+ ...t
233
+ });
234
+ }
235
+ var Y = {
236
+ sm: "min-h-control-sm gap-space-xs px-control-sm py-space-xs text-sm",
237
+ md: "min-h-control gap-space-xs px-control py-space-xs text-sm",
238
+ lg: "min-h-control-lg gap-space-sm px-control py-space-xs text-sm"
239
+ };
240
+ function X({ className: e, size: t = "md", error: n, ...i }) {
241
+ return /* @__PURE__ */ x(E.Chips, {
242
+ "data-slot": "combobox-chips",
243
+ className: r("font-sans text-foreground", "box-border flex flex-wrap items-center rounded-inner border border-input bg-background shadow-none transition-[color,box-shadow] outline-none", "has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50", p.invalid, "aria-invalid:has-[:focus-visible]:border-destructive aria-invalid:has-[:focus-visible]:ring-destructive/30 dark:aria-invalid:has-[:focus-visible]:ring-destructive/50", Y[t], e),
244
+ "aria-invalid": n || void 0,
245
+ ...i
246
+ });
247
+ }
248
+ function Z({ className: e, children: t, removeLabel: n, ...i }) {
249
+ return /* @__PURE__ */ S(E.Chip, {
250
+ "data-slot": "combobox-chip",
251
+ className: r("inline-flex items-center gap-space-xs rounded-inner bg-secondary px-control-xs py-space-xs text-xs font-medium text-secondary-foreground", "data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground", "focus-within:bg-primary focus-within:text-primary-foreground", e),
252
+ ...i,
253
+ children: [t, /* @__PURE__ */ x(E.ChipRemove, {
254
+ "aria-label": n,
255
+ className: r(m.inline, m.focus, "text-inherit opacity-70 hover:opacity-100"),
256
+ children: /* @__PURE__ */ x(g, {
257
+ "aria-hidden": "true",
258
+ className: m.icon
259
+ })
260
+ })]
261
+ });
262
+ }
263
+ function re({ className: e, render: t, ...n }) {
264
+ return /* @__PURE__ */ x(A, {
265
+ "data-slot": "combobox-chips-input",
266
+ className: r("box-border min-h-lh min-w-[80px] flex-1 border-0 bg-transparent p-0 font-sans text-foreground outline-none placeholder:text-muted-foreground", _.md, e),
267
+ ...n,
268
+ render: t
269
+ });
270
+ }
271
+ function ie({ className: e, ...t }) {
272
+ return /* @__PURE__ */ x(E.Backdrop, {
273
+ "data-slot": "combobox-backdrop",
274
+ className: r(te, s.backdrop, e),
275
+ ...t
276
+ });
277
+ }
278
+ function ae({ className: e, ...t }) {
279
+ return /* @__PURE__ */ x(E.Arrow, {
280
+ "data-slot": "combobox-arrow",
281
+ className: r("fill-popover", e),
282
+ ...t
283
+ });
284
+ }
285
+ var oe = E.useFilter, Q = {
286
+ clear: "Clear selection",
287
+ toggle: "Open options",
288
+ remove: "Remove selection"
289
+ };
290
+ //#endregion
291
+ //#region src/components/base/combobox/index.ts
292
+ function $({ strings: e, ...t }) {
293
+ let r = n(Q, e);
294
+ return y(I, {
295
+ ...t,
296
+ clearLabel: r.clear,
297
+ toggleLabel: r.toggle
298
+ });
299
+ }
300
+ function se({ strings: e, ...t }) {
301
+ let r = n(Q, e);
302
+ return y(P, {
303
+ "aria-label": r.clear,
304
+ ...t
305
+ });
306
+ }
307
+ function ce({ strings: e, ...t }) {
308
+ let r = n(Q, e);
309
+ return y(Z, {
310
+ ...t,
311
+ removeLabel: r.remove
312
+ });
313
+ }
314
+ function le({ className: e, ...t }) {
315
+ return y(z, {
316
+ ...t,
317
+ className: r(d.surface, l.flush, e)
318
+ });
319
+ }
320
+ function ue({ className: e, ...t }) {
321
+ return y(j, {
322
+ ...t,
323
+ className: r("rounded-inner", e)
324
+ });
325
+ }
326
+ function de({ className: e, ...t }) {
327
+ return y(M, {
328
+ ...t,
329
+ className: r("rounded-inner", e)
330
+ });
331
+ }
332
+ var fe = {
333
+ sm: "compact",
334
+ md: "default",
335
+ lg: "comfortable"
336
+ };
337
+ function pe({ className: t, size: n = "md", density: i = fe[n], children: o, ...s }) {
338
+ let { defaultTextSize: c } = e(), l = typeof o == "string" || typeof o == "number" || typeof o == "bigint" ? y(ee, { children: o }) : o;
339
+ return y(H, {
340
+ ...s,
341
+ children: l,
342
+ size: n,
343
+ className: r(u(i), f.highlighted, f.disabled, a[c ?? "sm"], t)
344
+ });
345
+ }
346
+ function me({ className: e, ...t }) {
347
+ return y(J, {
348
+ ...t,
349
+ className: r(d.separator, e)
350
+ });
351
+ }
352
+ //#endregion
353
+ export { R as C, oe as E, L as S, N as T, G as _, pe as a, B as b, de as c, ae as d, ie as f, W as g, q as h, $ as i, Q as l, re as m, se as n, le as o, X as p, ue as r, me as s, ce as t, k as u, K as v, ne as w, A as x, U as y };
354
+
355
+ //# sourceMappingURL=combobox-DaHESuiL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-DaHESuiL.js","names":["React","_Fragment","Combobox","ComboboxPrimitive","ComboboxInput","ComboboxTrigger","ComboboxClear","ComboboxInputTrigger","ComboboxPopup","ComboboxItem","ComboboxSeparator","ComboboxChip","InputTrigger","Clear","Chip","Popup","Input","Trigger","Item","Separator","useTypographyConfig","useThemePortalContainer","cn","affordanceGeometry","anchoredPositionMethod","motionRecipes","surfaceDividerRecipes","surfaceInsetClasses","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","modalBackdropRecipe","fieldStateRecipes","fieldAffordanceRecipes","selectToggleRecipes","FieldClearGlyph","editableTextSizeClasses","React$1","Fragment$1","ComboboxDismissLabel","ComboboxDismissElement","label","boundary","host","sibling","edge","element","useRender","elementProps","anchor","Combobox$1","props","dismissLabel","Combobox","ComboboxNativeInput","render","state","ComboboxInput$1","className","ComboboxTrigger$1","children","ChevronDownIcon","ComboboxValue","placeholder","ComboboxClear$1","inputSizeClasses","ComboboxInputTrigger$1","size","showClear","error","clearLabel","toggleLabel","ComboboxPortal","resolvedContainer","container","ComboboxPositioner","ComboboxPopup$1","ComboboxList","itemIndicatorSizeClasses","ComboboxItem$1","CheckIcon","ComboboxItemIndicator","ComboboxEmpty","ComboboxStatus","ComboboxGroup","ComboboxGroupLabel","ComboboxCollection","ComboboxSeparator$1","chipsSizeClasses","ComboboxChips","ComboboxChip$1","removeLabel","ComboboxChipsInput","ComboboxBackdrop","ComboboxArrow","useComboboxFilter","defaultComboboxControlStrings","ComboboxInputTrigger","stringsProp","strings","useStrings","createElement","ComboboxClear","ComboboxChip","ComboboxPopup","ComboboxInput","ComboboxTrigger","densityBySize","ComboboxItem","content","density","textSizes","defaultTextSize","ComboboxSeparator"],"sources":["../src/components/ui/combobox-dismiss.tsx","../src/components/ui/combobox.tsx","../src/components/base/combobox/combobox.strings.ts","../src/components/base/combobox/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { useRender, type HTMLProps } from '@base-ui/react/use-render';\n\nexport const ComboboxDismissLabel = React.createContext('Dismiss');\n\n/**\n * Base UI 1.9 owns both virtual-cursor dismissal buttons but hardcodes their\n * names. An inert template marks the public render boundary, even when a custom\n * component frames its native field. Label only the adjacent clipped button;\n * retain upstream handlers, refs, modality and focus semantics. Refresh on each\n * primitive commit so changing modality labels newly mounted controls too.\n */\nexport function ComboboxDismissElement({ elementProps, render, edge, defaultTagName }: {\n elementProps: HTMLProps;\n render?: useRender.RenderProp;\n edge: 'before' | 'after';\n defaultTagName: 'input' | 'div';\n}) {\n const label = React.useContext(ComboboxDismissLabel);\n const boundary = React.useRef<HTMLTemplateElement>(null);\n React.useLayoutEffect(() => {\n const host = boundary.current;\n const sibling = edge === 'before' ? host?.previousElementSibling : host?.nextElementSibling;\n if (sibling?.matches('span[role=\"button\"][aria-label]') && (sibling as HTMLElement).style.clipPath === 'inset(50%)' && sibling.getAttribute('aria-label') !== label) {\n sibling.setAttribute('aria-label', label);\n }\n });\n const element = useRender({ defaultTagName, render, props: { ...elementProps } });\n const anchor = <template ref={boundary} data-combobox-dismiss-edge={edge} />;\n return edge === 'before' ? <>{anchor}{element}</> : <>{element}{anchor}</>;\n}\n","import { anchoredPositionMethod } from '../../lib/anchored-positioning';\nimport { fieldStateRecipes } from '../../lib/field-state-recipes';\nimport { FieldClearGlyph, fieldAffordanceRecipes, selectToggleRecipes } from '../../lib/field-affordance-recipes';\nimport { editableTextSizeClasses } from '../../lib/editable-text-recipe';\nimport { affordanceGeometry } from '../../lib/affordance-geometry.generated';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { surfaceDividerRecipes } from '../../lib/surface-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\nimport { useThemePortalContainer } from '../../lib/theme-scope';\nimport { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';\nimport { CheckIcon, ChevronDownIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { ComboboxDismissElement, ComboboxDismissLabel } from './combobox-dismiss';\nimport { cn } from '../../lib/utils';\n\nfunction Combobox<Value, Multiple extends boolean | undefined = false, Item = Value>({\n dismissLabel = 'Dismiss',\n ...props\n}: ComboboxPrimitive.Root.Props<Value, Multiple, Item> & {\n /** Accessible name of both screen-reader popup dismissal controls. */\n dismissLabel?: string | undefined;\n}) {\n return <ComboboxDismissLabel.Provider value={dismissLabel}><ComboboxPrimitive.Root {...props} /></ComboboxDismissLabel.Provider>;\n}\n\n/** Private primitive input; public and feature-owned frames share dismissal. */\nfunction ComboboxNativeInput({ render, ...props }: ComboboxPrimitive.Input.Props) {\n return <ComboboxPrimitive.Input {...props} render={(elementProps, state) => <ComboboxDismissElement elementProps={elementProps} edge=\"before\" defaultTagName=\"input\" render={typeof render === 'function' ? props => render(props, state) : render} />} />;\n}\n\nfunction ComboboxInput({\n\tclassName,\n\trender,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxNativeInput\n\t\t\tdata-slot=\"combobox-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-sans text-foreground',\n\t\t\t\t'box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-control w-full min-w-0 rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\taffordanceGeometry.controlTextMinHeight,\n\t\t\t\taffordanceGeometry.controlBlockPadding.md,\n\t\t\t\teditableTextSizeClasses.md,\n\t\t\t\tfieldStateRecipes.focus,\n\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trender={render}\n\t\t/>\n\t);\n}\n\nfunction ComboboxTrigger({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Trigger.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Trigger\n\t\t\tdata-slot=\"combobox-trigger\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-sans text-foreground',\n\t\t\t\t'box-border border-input file:text-foreground placeholder:text-muted-foreground flex h-control w-full items-center justify-between rounded-inner border bg-background px-control shadow-none transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t'text-sm',\n\t\t\t\taffordanceGeometry.controlTextMinHeight,\n\t\t\t\taffordanceGeometry.controlBlockPadding.md,\n\t\t\t\tfieldStateRecipes.focus,\n\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\t'[&>span]:line-clamp-1',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ComboboxPrimitive.Icon className=\"flex\">\n\t\t\t\t<ChevronDownIcon className={cn(selectToggleRecipes.icon.md, 'text-muted-foreground')} />\n\t\t\t</ComboboxPrimitive.Icon>\n\t\t</ComboboxPrimitive.Trigger>\n\t);\n}\n\nfunction ComboboxValue({\n\tplaceholder,\n\t...props\n}: ComboboxPrimitive.Value.Props & { placeholder?: React.ReactNode }) {\n\treturn (\n\t\t<ComboboxPrimitive.Value\n\t\t\tdata-slot=\"combobox-value\"\n\t\t\tplaceholder={\n\t\t\t\t!!placeholder && <span className=\"text-muted-foreground\">{placeholder}</span>\n\t\t\t}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction ComboboxClear({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Clear.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Clear\n\t\t\tdata-slot=\"combobox-clear\"\n\t\t\tclassName={cn(\n\t\t\t\tfieldAffordanceRecipes.target,\n\t\t\t\tfieldAffordanceRecipes.focus,\n\t\t\t\tfieldAffordanceRecipes.clear,\n\t\t\t\tfieldAffordanceRecipes.centered,\n\t\t\t\t'end-control-icon',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t\t<FieldClearGlyph aria-hidden=\"true\" className={fieldAffordanceRecipes.icon} />\n\t\t</ComboboxPrimitive.Clear>\n\t);\n}\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\n\nconst inputSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'h-control-sm ps-control-sm',\n\tmd: 'h-control ps-control',\n\tlg: 'h-control-lg ps-control',\n};\n\n\n// Toggle-only text clearance, track offset and chevron scale come from the\n// shared select-toggle recipe, so this input, the Select trigger and the\n// feature Combobox centre their chevrons in the same place.\n\ntype ComboboxInputTriggerProps = Omit<ComboboxPrimitive.Input.Props, 'size'> & {\n\tshowClear?: boolean;\n\tclearLabel?: string;\n\ttoggleLabel?: string;\n\tsize?: ComboboxSize;\n\terror?: boolean;\n};\n\nfunction ComboboxInputTrigger({\n\tclassName,\n\trender,\n\tshowClear = false,\n\tclearLabel,\n\ttoggleLabel,\n\tsize = 'md',\n\terror,\n\t...props\n}: ComboboxInputTriggerProps) {\n\treturn (\n\t\t<div className=\"relative h-fit\">\n\t\t\t<ComboboxNativeInput\n\t\t\t\tdata-slot=\"combobox-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'font-sans text-foreground',\n\t\t\t\t\t'box-border border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground w-full min-w-0 rounded-inner border bg-background shadow-none transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n\t\t\t\t\tfieldStateRecipes.focus,\n\t\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\t\tinputSizeClasses[size],\n\t\t\t\t\taffordanceGeometry.controlTextMinHeight,\n\t\t\t\t\taffordanceGeometry.controlBlockPadding[size],\n\t\t\t\t\teditableTextSizeClasses[size],\n\t\t\t\t\tshowClear ? selectToggleRecipes.clearPadding[size] : selectToggleRecipes.padding[size],\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\taria-invalid={error || undefined}\n\t\t\t\t{...props}\n\t\t\t\trender={render}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute top-1/2 -translate-y-1/2 flex items-center gap-space-xs text-muted-foreground',\n\t\t\t\t\tselectToggleRecipes.track[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!showClear && (\n <ComboboxPrimitive.Clear\n\t\t\t\t\t\taria-label={clearLabel}\n\t\t\t\t\t\tdata-slot=\"combobox-clear\"\n\t\t\t\t\t\tclassName={cn(fieldAffordanceRecipes.target,fieldAffordanceRecipes.focus,fieldAffordanceRecipes.clear)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FieldClearGlyph aria-hidden=\"true\" className={fieldAffordanceRecipes.icon} />\n\t\t\t\t\t</ComboboxPrimitive.Clear>\n )}\n\t\t\t\t<ComboboxPrimitive.Trigger aria-label={toggleLabel} className={cn(fieldAffordanceRecipes.target,fieldAffordanceRecipes.focus,fieldAffordanceRecipes.toggle)}>\n\t\t\t\t\t<ChevronDownIcon aria-hidden=\"true\" className={cn('shrink-0', selectToggleRecipes.icon[size])} />\n\t\t\t\t</ComboboxPrimitive.Trigger>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// Portal\nfunction ComboboxPortal({ container, ...props }: ComboboxPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <ComboboxPrimitive.Portal container={resolvedContainer} {...props} />;\n}\n\n// Positioner\nfunction ComboboxPositioner({\n\tclassName,\n\tpositionMethod = anchoredPositionMethod,\n\tsideOffset = 4,\n\t...props\n}: ComboboxPrimitive.Positioner.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Positioner\n\t\t\tpositionMethod={positionMethod}\n\t\t\tdata-slot=\"combobox-positioner\"\n\t\t\tsideOffset={sideOffset}\n\t\t\tclassName={cn('z-50 outline-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Popup (content)\nfunction ComboboxPopup({\n\tclassName,\n\trender,\n\t...props\n}: ComboboxPrimitive.Popup.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Popup\n\t\t\tdata-slot=\"combobox-popup\"\n\t\t\tclassName={cn(\n\t\t\t\t'w-[var(--anchor-width)] min-w-[8rem] max-w-[var(--available-width)] max-h-[min(var(--available-height),24rem)]',\n\t\t\t\t'overflow-hidden rounded-radius bg-popover text-popover-foreground shadow-md',\n\t\t\t\tsurfaceDividerRecipes.anchored.shell,\n\t\t\t\t'origin-[var(--transform-origin)]',\n\t\t\t\tmotionRecipes.popup,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trender={(elementProps, state) => <ComboboxDismissElement elementProps={elementProps} edge=\"after\" defaultTagName=\"div\" render={typeof render === 'function' ? props => render(props, state) : render} />}\n\t\t/>\n\t);\n}\n\n// List\nfunction ComboboxList({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.List.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.List\n\t\t\tdata-slot=\"combobox-list\"\n\t\t\tclassName={cn(\n\t\t\t\t'max-h-[min(24rem,var(--available-height))] overflow-y-auto overscroll-contain p-surface-xs',\n\t\t\t\t'outline-none empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Item\n//\n// Layout: `[content][indicator]` with the selection check pinned to the\n// right (`justify-between`). Consumers render leading icons naturally inside\n// `renderItem` — the `gap` between icon and label is set by the consumer.\nconst itemIndicatorSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'size-icon-sm',\n\tmd: 'size-icon',\n\tlg: 'size-icon-lg',\n};\n\nfunction ComboboxItem({\n\tclassName,\n\tchildren,\n\tsize = 'md',\n\t...props\n}: ComboboxPrimitive.Item.Props & { size?: ComboboxSize }) {\n\treturn (\n\t\t<ComboboxPrimitive.Item\n\t\t\tdata-slot=\"combobox-item\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex w-full cursor-default select-none items-center justify-between outline-none',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"flex min-w-0 flex-1 items-center gap-space-sm truncate\">\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// The selection check uses the row's own ink, as Select options do.\n\t\t\t\t\t'flex shrink-0 items-center justify-center',\n\t\t\t\t\titemIndicatorSizeClasses[size]\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<CheckIcon className={itemIndicatorSizeClasses[size]} />\n\t\t\t</ComboboxPrimitive.ItemIndicator>\n\t\t</ComboboxPrimitive.Item>\n\t);\n}\n\n// Item Indicator (standalone)\nfunction ComboboxItemIndicator({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.ItemIndicator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.ItemIndicator\n\t\t\tdata-slot=\"combobox-item-indicator\"\n\t\t\tclassName={cn(className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children ?? <CheckIcon className=\"size-icon\" />}\n\t\t</ComboboxPrimitive.ItemIndicator>\n\t);\n}\n\n// Empty\nfunction ComboboxEmpty({\n\tclassName,\n\tchildren,\n\t...props\n}: ComboboxPrimitive.Empty.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Empty\n\t\t\tdata-slot=\"combobox-empty\"\n\t\t\tclassName={cn(\n\t\t\t\t'px-row-x py-space-xl text-center text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</ComboboxPrimitive.Empty>\n\t);\n}\n\n// Status (for async loading states)\nfunction ComboboxStatus({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Status.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Status\n\t\t\tdata-slot=\"combobox-status\"\n\t\t\tclassName={cn(\n\t\t\t\t'flex items-center gap-space-sm px-row-x py-row-y text-sm text-muted-foreground empty:hidden',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group\nfunction ComboboxGroup({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Group.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Group\n\t\t\tdata-slot=\"combobox-group\"\n\t\t\tclassName={cn('overflow-hidden p-0', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Group Label\nfunction ComboboxGroupLabel({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.GroupLabel\n\t\t\tdata-slot=\"combobox-group-label\"\n\t\t\tclassName={cn('px-row-x py-row-y-sm text-xs font-medium text-muted-foreground', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Collection (for rendering items)\nconst ComboboxCollection = ComboboxPrimitive.Collection;\n\n// Separator\nfunction ComboboxSeparator({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Separator.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Separator\n\t\t\tdata-slot=\"combobox-separator\"\n\t\t\tclassName={cn('my-space-xs h-px', surfaceDividerRecipes.anchored.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chips container (for multiple selection)\nconst chipsSizeClasses: Record<ComboboxSize, string> = {\n\tsm: 'min-h-control-sm gap-space-xs px-control-sm py-space-xs text-sm',\n\tmd: 'min-h-control gap-space-xs px-control py-space-xs text-sm',\n\tlg: 'min-h-control-lg gap-space-sm px-control py-space-xs text-sm',\n};\n\nfunction ComboboxChips({\n\tclassName,\n\tsize = 'md',\n\terror,\n\t...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & {\n\tsize?: ComboboxSize;\n\terror?: boolean;\n}) {\n\treturn (\n\t\t<ComboboxPrimitive.Chips\n\t\t\tdata-slot=\"combobox-chips\"\n\t\t\tclassName={cn(\n\t\t\t\t'font-sans text-foreground',\n\t\t\t\t'box-border flex flex-wrap items-center rounded-inner border border-input bg-background shadow-none transition-[color,box-shadow] outline-none',\n\t\t\t\t'has-[:focus-visible]:border-ring has-[:focus-visible]:ring-3 has-[:focus-visible]:ring-ring/50',\n\t\t\t\tfieldStateRecipes.invalid,\n\t\t\t\t'aria-invalid:has-[:focus-visible]:border-destructive aria-invalid:has-[:focus-visible]:ring-destructive/30 dark:aria-invalid:has-[:focus-visible]:ring-destructive/50',\n\t\t\t\tchipsSizeClasses[size],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\taria-invalid={error || undefined}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Chip\nfunction ComboboxChip({\n\tclassName,\n\tchildren,\n\tremoveLabel,\n\t...props\n}: ComboboxPrimitive.Chip.Props & { removeLabel?: string }) {\n\treturn (\n\t\t<ComboboxPrimitive.Chip\n\t\t\tdata-slot=\"combobox-chip\"\n\t\t\tclassName={cn(\n\t\t\t\t'inline-flex items-center gap-space-xs rounded-inner bg-secondary px-control-xs py-space-xs text-xs font-medium text-secondary-foreground',\n\t\t\t\t'data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground',\n\t\t\t\t'focus-within:bg-primary focus-within:text-primary-foreground',\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ComboboxPrimitive.ChipRemove aria-label={removeLabel} className={cn(fieldAffordanceRecipes.inline, fieldAffordanceRecipes.focus, 'text-inherit opacity-70 hover:opacity-100')}>\n\t\t\t\t<FieldClearGlyph aria-hidden=\"true\" className={fieldAffordanceRecipes.icon} />\n\t\t\t</ComboboxPrimitive.ChipRemove>\n\t\t</ComboboxPrimitive.Chip>\n\t);\n}\n\n// Chips Input\nfunction ComboboxChipsInput({\n\tclassName,\n\trender,\n\t...props\n}: ComboboxPrimitive.Input.Props) {\n\treturn (\n\t\t<ComboboxNativeInput\n\t\t\tdata-slot=\"combobox-chips-input\"\n\t\t\tclassName={cn(\n\t\t\t\t'box-border min-h-lh min-w-[80px] flex-1 border-0 bg-transparent p-0 font-sans text-foreground outline-none placeholder:text-muted-foreground',\n\t\t\t\teditableTextSizeClasses.md,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trender={render}\n\t\t/>\n\t);\n}\n\n// Backdrop (for modal)\nfunction ComboboxBackdrop({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Backdrop.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Backdrop\n\t\t\tdata-slot=\"combobox-backdrop\"\n\t\t\tclassName={cn(modalBackdropRecipe, \n\t\t\t\tmotionRecipes.backdrop,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Arrow\nfunction ComboboxArrow({\n\tclassName,\n\t...props\n}: ComboboxPrimitive.Arrow.Props) {\n\treturn (\n\t\t<ComboboxPrimitive.Arrow\n\t\t\tdata-slot=\"combobox-arrow\"\n\t\t\tclassName={cn('fill-popover', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// useFilter hook re-export\nconst useComboboxFilter = ComboboxPrimitive.useFilter;\n\nexport {\n\tCombobox,\n\tComboboxNativeInput,\n\tComboboxInput,\n\tComboboxInputTrigger,\n\tComboboxTrigger,\n\tComboboxValue,\n\tComboboxClear,\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxPopup,\n\tComboboxList,\n\tComboboxItem,\n\tComboboxItemIndicator,\n\tComboboxEmpty,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n\tComboboxSeparator,\n\tComboboxChips,\n\tComboboxChip,\n\tComboboxChipsInput,\n\tComboboxBackdrop,\n\tComboboxArrow,\n\tuseComboboxFilter,\n};\n","/** Accessible labels owned by the base combobox's generated controls. */\nexport interface ComboboxControlStrings {\n\tclear: string;\n\ttoggle: string;\n\tremove: string;\n}\n\nexport const defaultComboboxControlStrings: ComboboxControlStrings = {\n\tclear: 'Clear selection',\n\ttoggle: 'Open options',\n\tremove: 'Remove selection',\n};\n","import { CollectionLabel } from '../popover/collection-content';\n/**\n * Base wrapper for `ui/combobox`.\n *\n * This family is the sole importer of `@/components/ui/combobox`: it re-exports\n * the Base UI combobox anatomy with shared recipes and accessible control labels\n * so every other layer composes the parts without reaching into `ui/`. The searchable recipe built on top of this\n * anatomy — `Combobox`, `MultiCombobox`, `AsyncResourceCombobox`, and the\n * headless hooks — lives in `features/combobox`.\n *\n * The compound root is exported as `ComboboxRoot` so the canonical `Combobox`\n * name stays with the opinionated feature component.\n */\nexport {\n\tCombobox as ComboboxRoot,\n\tComboboxValue,\n\tComboboxPortal,\n\tComboboxPositioner,\n\tComboboxList,\n\tComboboxItemIndicator,\n\tComboboxEmpty,\n\tComboboxStatus,\n\tComboboxGroup,\n\tComboboxGroupLabel,\n\tComboboxCollection,\n\tComboboxChips,\n\tComboboxChipsInput,\n\tComboboxBackdrop,\n\tComboboxArrow,\n\tuseComboboxFilter,\n} from '../../ui/combobox';\n\n\nimport { createElement, type ComponentProps } from 'react';\nimport { ComboboxItem as Item, ComboboxPopup as Popup, ComboboxInput as Input, ComboboxInputTrigger as InputTrigger, ComboboxClear as Clear, ComboboxChip as Chip, ComboboxTrigger as Trigger, ComboboxSeparator as Separator } from '../../ui/combobox';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, surfaceInsetClasses, type CollectionDensity } from '../popover/popover.recipes';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { textSizes } from '../../typography/text.styles';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { defaultComboboxControlStrings, type ComboboxControlStrings } from './combobox.strings';\n\nexport { defaultComboboxControlStrings, type ComboboxControlStrings } from './combobox.strings';\n\nexport type ComboboxInputTriggerProps = Omit<ComponentProps<typeof InputTrigger>, 'clearLabel' | 'toggleLabel'> & {\n /** Accessible labels for the generated clear and toggle buttons. */\n strings?: StringsProp<Pick<ComboboxControlStrings, 'clear' | 'toggle'>>;\n};\n\nexport function ComboboxInputTrigger({ strings: stringsProp, ...props }: ComboboxInputTriggerProps) {\n const strings = useStrings(defaultComboboxControlStrings, stringsProp);\n return createElement(InputTrigger, { ...props, clearLabel: strings.clear, toggleLabel: strings.toggle });\n}\n\nexport type ComboboxClearProps = ComponentProps<typeof Clear> & {\n /** Accessible label; an explicit aria-label takes precedence. */\n strings?: StringsProp<Pick<ComboboxControlStrings, 'clear'>>;\n};\n\nexport function ComboboxClear({ strings: stringsProp, ...props }: ComboboxClearProps) {\n const strings = useStrings(defaultComboboxControlStrings, stringsProp);\n return createElement(Clear, { 'aria-label': strings.clear, ...props });\n}\n\nexport type ComboboxChipProps = Omit<ComponentProps<typeof Chip>, 'removeLabel'> & {\n /** Accessible label for the generated removal button. */\n strings?: StringsProp<Pick<ComboboxControlStrings, 'remove'>>;\n};\n\nexport function ComboboxChip({ strings: stringsProp, ...props }: ComboboxChipProps) {\n const strings = useStrings(defaultComboboxControlStrings, stringsProp);\n return createElement(Chip, { ...props, removeLabel: strings.remove });\n}\n\nexport function ComboboxPopup({ className, ...props }: ComponentProps<typeof Popup>) {\n // The list owns the collection inset so mixed search/status/footer regions stay flush.\n return createElement(Popup, { ...props, className: cn(popoverRecipes.surface, surfaceInsetClasses.flush, className) });\n}\nexport function ComboboxInput({ className, ...props }: ComponentProps<typeof Input>) {\n return createElement(Input, { ...props, className: cn('rounded-inner', className) });\n}\nexport function ComboboxTrigger({ className, ...props }: ComponentProps<typeof Trigger>) {\n return createElement(Trigger, { ...props, className: cn('rounded-inner', className) });\n}\n\nconst densityBySize = { sm: 'compact', md: 'default', lg: 'comfortable' } as const;\n\nexport function ComboboxItem({ className, size = 'md', density = densityBySize[size], children, ...props }: ComponentProps<typeof Item> & {\n /** Vertical option rhythm. Defaults to the owning control size's rhythm. */\n density?: CollectionDensity;\n}) {\n const { defaultTextSize } = useTypographyConfig();\n const content = typeof children === 'string' || typeof children === 'number' || typeof children === 'bigint' ? createElement(CollectionLabel, { children }) : children;\n return createElement(Item, { ...props, children: content, size, className: cn(collectionRowClasses(density), collectionRecipes.highlighted, collectionRecipes.disabled, textSizes[defaultTextSize ?? 'sm'], className) });\n}\n\n/** Shared collection divider, preserving Base UI separator semantics. */\nexport function ComboboxSeparator({ className, ...props }: ComponentProps<typeof Separator>) {\n return createElement(Separator, { ...props, className: cn(popoverRecipes.separator, className) });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAawC,IAAuBxC,EAAM,cAAc,SAAS;AASjE,SAAgByC,EAAuB,EAAE,iBAAc,WAAQ,SAAM,qBAKlE;CACF,IAAMC,IAAQ1C,EAAM,WAAWwC,CAAoB,GAC7CG,IAAW3C,EAAM,OAA4B,IAAI;CACvD,EAAM,sBAAsB;EAC3B,IAAM4C,IAAOD,EAAS,SAChBE,IAAUC,MAAS,WAAWF,GAAM,yBAAyBA,GAAM;EACzE,AAAIC,GAAS,QAAQ,mCAAiC,KAAMA,EAAwB,MAAM,aAAa,gBAAgBA,EAAQ,aAAa,YAAY,MAAMH,KAC7JG,EAAQ,aAAa,cAAcH,CAAK;CAE1C,CAAC;CACD,IAAMK,IAAUC,EAAU;EAAE;EAAgB;EAAQ,OAAO,EAAE,GAAGC,EAAa;CAAE,CAAC,GAC1EC,IAAS,kBAAC,YAAD;EAAU,KAAKP;EAAU,8BAA4BG;CAAO,CAAA;CAC3E,OAAOA,MAAS,WAAW,kBAAA7C,GAAA,EAAA,UAAA,CAAGiD,GAAQH,CAAU,EAAA,CAAA,IAAI,kBAAA9C,GAAA,EAAA,UAAA,CAAG8C,GAASG,CAAS,EAAA,CAAA;AAC1E;;;ACfA,SAAShD,EAA4E,EACpF,kBAAe,WACf,GAAGkD,KAID;CACF,OAAO,kBAACZ,EAAqB,UAAtB;EAA+B,OAAOa;EAAc,UAAA,kBAAClD,EAAkB,MAAnB,EAAwB,GAAIiD,EAAQ,CAAA;CAAgC,CAAA;AAChI;AAGA,SAASG,EAAoB,EAAE,WAAQ,GAAGH,KAAwC;CACjF,OAAO,kBAACjD,EAAkB,OAAnB;EAAyB,GAAIiD;EAAO,SAAS,GAAc,MAAU,kBAACX,GAAD;GAAsC;GAAc,MAAK;GAAS,gBAAe;GAAQ,QAAQ,OAAOe,KAAW,cAAa,MAASA,EAAOJ,GAAOK,CAAK,IAAID;EAAS,CAAA;CAAI,CAAA;AAC1P;AAEA,SAASpD,EAAc,EACtB,cACA,WACA,GAAGgD,KAC8B;CACjC,OACC,kBAACG,GAAD;EACC,aAAU;EACV,WAAWjC,EACV,6BACA,mbACAC,EAAmB,sBACnBA,EAAmB,oBAAoB,IACvCc,EAAwB,IACxBJ,EAAkB,OAClBA,EAAkB,SAClB0B,CACD;EACA,GAAIP;EACI;CACR,CAAA;AAEH;AAEA,SAAS/C,EAAgB,EACxB,cACA,aACA,GAAG+C,KACgC;CACnC,OACC,kBAACjD,EAAkB,SAAnB;EACC,aAAU;EACV,WAAWmB,EACV,6BACA,uTACA,WACAC,EAAmB,sBACnBA,EAAmB,oBAAoB,IACvCU,EAAkB,OAClBA,EAAkB,SAClB,yBACA0B,CACD;EACA,GAAIP;EAbL,UAAA,CAeES,GACD,kBAAC1D,EAAkB,MAAnB;GAAwB,WAAU;GACjC,UAAA,kBAAC2D,GAAD,EAAiB,WAAWxC,EAAGa,EAAoB,KAAK,IAAI,uBAAuB,EAAI,CAAA;EAChE,CAAA,CACE;;AAE7B;AAEA,SAAS4B,EAAc,EACtB,gBACA,GAAGX,KACkE;CACrE,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,aACC,CAAC,CAAC6D,KAAe,kBAAC,QAAD;GAAM,WAAU;GAAyB,UAAAA;EAAkB,CAAA;EAE7E,GAAIZ;CACJ,CAAA;AAEH;AAEA,SAAS9C,EAAc,EACtB,cACA,GAAG8C,KAC8B;CACjC,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,WAAWmB,EACVY,EAAuB,QACvBA,EAAuB,OACvBA,EAAuB,OACvBA,EAAuB,UACvB,oBACAyB,CACD;EACA,GAAIP;EAEH,UAAA,kBAAChB,GAAD;GAAiB,eAAY;GAAO,WAAWF,EAAuB;EAAO,CAAA;CACtD,CAAA;AAE3B;AAIA,IAAMgC,IAAiD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;AACL;AAeA,SAAS3D,EAAqB,EAC7B,cACA,WACA,eAAY,IACZ,eACA,gBACA,UAAO,MACP,UACA,GAAG6C,KAC0B;CAC7B,OACC,kBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACC,kBAACG,GAAD;GACC,aAAU;GACV,WAAWjC,EACV,6BACA,yZACAW,EAAkB,OAClBA,EAAkB,SAClBiC,EAAiBE,IACjB7C,EAAmB,sBACnBA,EAAmB,oBAAoB6C,IACvC/B,EAAwB+B,IACxBC,IAAYlC,EAAoB,aAAaiC,KAAQjC,EAAoB,QAAQiC,IACjFT,CACD;GACA,gBAAcW,KAAS,KAAA;GACvB,GAAIlB;GACI;EACR,CAAA,GACD,kBAAC,OAAD;GACC,WAAW9B,EACV,0FACAa,EAAoB,MAAMiC,EAC3B;GAJD,UAAA,CAME,CAAC,CAACC,KACa,kBAAClE,EAAkB,OAAnB;IACd,cAAYoE;IACZ,aAAU;IACV,WAAWjD,EAAGY,EAAuB,QAAOA,EAAuB,OAAMA,EAAuB,KAAK;IAErG,UAAA,kBAACE,GAAD;KAAiB,eAAY;KAAO,WAAWF,EAAuB;IAAO,CAAA;GACrD,CAAA,GAE1B,kBAAC/B,EAAkB,SAAnB;IAA2B,cAAYqE;IAAa,WAAWlD,EAAGY,EAAuB,QAAOA,EAAuB,OAAMA,EAAuB,MAAM;IACzJ,UAAA,kBAAC4B,GAAD;KAAiB,eAAY;KAAO,WAAWxC,EAAG,YAAYa,EAAoB,KAAKiC,EAAK;IAAI,CAAA;GACtE,CAAA,CACvB;EACD,CAAA,CAAA;;AAEP;AAGA,SAASK,EAAe,EAAE,cAAW,GAAGrB,KAAyC;CAChF,IAAMsB,IAAoBrD,EAAwBsD,CAAS;CAC3D,OAAO,kBAACxE,EAAkB,QAAnB;EAA0B,WAAWuE;EAAmB,GAAItB;CAAQ,CAAA;AAC5E;AAGA,SAASwB,EAAmB,EAC3B,cACA,oBAAiBpD,GACjB,gBAAa,GACb,GAAG4B,KACmC;CACtC,OACC,kBAACjD,EAAkB,YAAnB;EACiB;EAChB,aAAU;EACE;EACZ,WAAWmB,EAAG,qBAAqBqC,CAAS;EAC5C,GAAIP;CACJ,CAAA;AAEH;AAGA,SAAS5C,EAAc,EACtB,cACA,WACA,GAAG4C,KAC8B;CACjC,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,WAAWmB,EACV,kHACA,+EACAI,EAAsB,SAAS,OAC/B,oCACAD,EAAc,OACdkC,CACD;EACA,GAAIP;EACJ,SAAS,GAAc,MAAU,kBAACX,GAAD;GAAsC;GAAc,MAAK;GAAQ,gBAAe;GAAM,QAAQ,OAAOe,KAAW,cAAa,MAASA,EAAOJ,GAAOK,CAAK,IAAID;EAAS,CAAA;CACvM,CAAA;AAEH;AAGA,SAASsB,EAAa,EACrB,cACA,GAAG1B,KAC6B;CAChC,OACC,kBAACjD,EAAkB,MAAnB;EACC,aAAU;EACV,WAAWmB,EACV,8FACA,6BACAqC,CACD;EACA,GAAIP;CACJ,CAAA;AAEH;AAOA,IAAM2B,IAAyD;CAC9D,IAAI;CACJ,IAAI;CACJ,IAAI;AACL;AAEA,SAAStE,EAAa,EACrB,cACA,aACA,UAAO,MACP,GAAG2C,KACuD;CAC1D,OACC,kBAACjD,EAAkB,MAAnB;EACC,aAAU;EACV,WAAWmB,EACV,oFACAqC,CACD;EACA,GAAIP;EANL,UAAA,CAQC,kBAAC,QAAD;GAAM,WAAU;GACd;EACI,CAAA,GACN,kBAACjD,EAAkB,eAAnB;GACC,WAAWmB,EAEV,6CACAyD,EAAyBX,EAC1B;GAEA,UAAA,kBAACa,GAAD,EAAW,WAAWF,EAAyBX,GAAQ,CAAA;EACvB,CAAA,CACV;;AAE1B;AAGA,SAASc,EAAsB,EAC9B,cACA,aACA,GAAG9B,KACsC;CACzC,OACC,kBAACjD,EAAkB,eAAnB;EACC,aAAU;EACV,WAAWmB,EAAGqC,CAAS;EACvB,GAAIP;EAEH,UAAAS,KAAY,kBAACoB,GAAD,EAAW,WAAU,YAAa,CAAA;CACf,CAAA;AAEnC;AAGA,SAASE,EAAc,EACtB,cACA,aACA,GAAG/B,KAC8B;CACjC,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,WAAWmB,EACV,+EACAqC,CACD;EACA,GAAIP;EAEH;CACuB,CAAA;AAE3B;AAGA,SAASgC,GAAe,EACvB,cACA,GAAGhC,KAC+B;CAClC,OACC,kBAACjD,EAAkB,QAAnB;EACC,aAAU;EACV,WAAWmB,EACV,+FACAqC,CACD;EACA,GAAIP;CACJ,CAAA;AAEH;AAGA,SAASiC,EAAc,EACtB,cACA,GAAGjC,KAC8B;CACjC,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,WAAWmB,EAAG,uBAAuBqC,CAAS;EAC9C,GAAIP;CACJ,CAAA;AAEH;AAGA,SAASkC,EAAmB,EAC3B,cACA,GAAGlC,KACmC;CACtC,OACC,kBAACjD,EAAkB,YAAnB;EACC,aAAU;EACV,WAAWmB,EAAG,kEAAkEqC,CAAS;EACzF,GAAIP;CACJ,CAAA;AAEH;AAGA,IAAMmC,IAAqBpF,EAAkB;AAG7C,SAASO,EAAkB,EAC1B,cACA,GAAG0C,KACkC;CACrC,OACC,kBAACjD,EAAkB,WAAnB;EACC,aAAU;EACV,WAAWmB,EAAG,oBAAoBI,EAAsB,SAAS,WAAWiC,CAAS;EACrF,GAAIP;CACJ,CAAA;AAEH;AAGA,IAAMqC,IAAiD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;AACL;AAEA,SAASC,EAAc,EACtB,cACA,UAAO,MACP,UACA,GAAGtC,KAID;CACF,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,WAAWmB,EACV,6BACA,iJACA,kGACAW,EAAkB,SAClB,yKACAwD,EAAiBrB,IACjBT,CACD;EACA,gBAAcW,KAAS,KAAA;EACvB,GAAIlB;CACJ,CAAA;AAEH;AAGA,SAASzC,EAAa,EACrB,cACA,aACA,gBACA,GAAGyC,KACwD;CAC3D,OACC,kBAACjD,EAAkB,MAAnB;EACC,aAAU;EACV,WAAWmB,EACV,4IACA,4EACA,gEACAqC,CACD;EACA,GAAIP;EARL,UAAA,CAUES,GACD,kBAAC1D,EAAkB,YAAnB;GAA8B,cAAYyF;GAAa,WAAWtE,EAAGY,EAAuB,QAAQA,EAAuB,OAAO,2CAA2C;GAC5K,UAAA,kBAACE,GAAD;IAAiB,eAAY;IAAO,WAAWF,EAAuB;GAAO,CAAA;EAChD,CAAA,CACP;;AAE1B;AAGA,SAAS2D,GAAmB,EAC3B,cACA,WACA,GAAGzC,KAC8B;CACjC,OACC,kBAACG,GAAD;EACC,aAAU;EACV,WAAWjC,EACV,gJACAe,EAAwB,IACxBsB,CACD;EACA,GAAIP;EACI;CACR,CAAA;AAEH;AAGA,SAAS0C,GAAiB,EACzB,cACA,GAAG1C,KACiC;CACpC,OACC,kBAACjD,EAAkB,UAAnB;EACC,aAAU;EACV,WAAWmB,EAAGU,IACbP,EAAc,UACdkC,CACD;EACA,GAAIP;CACJ,CAAA;AAEH;AAGA,SAAS2C,GAAc,EACtB,cACA,GAAG3C,KAC8B;CACjC,OACC,kBAACjD,EAAkB,OAAnB;EACC,aAAU;EACV,WAAWmB,EAAG,gBAAgBqC,CAAS;EACvC,GAAIP;CACJ,CAAA;AAEH;AAGA,IAAM4C,KAAoB7F,EAAkB,WCzf/B8F,IAAwD;CACpE,OAAO;CACP,QAAQ;CACR,QAAQ;AACT;;;ACsCA,SAAgBC,EAAqB,EAAE,SAASC,GAAa,GAAG/C,KAAoC;CACnG,IAAMgD,IAAUC,EAAWJ,GAA+BE,CAAW;CACrE,OAAOG,EAAc1F,GAAc;EAAE,GAAGwC;EAAO,YAAYgD,EAAQ;EAAO,aAAaA,EAAQ;CAAO,CAAC;AACxG;AAOA,SAAgBG,GAAc,EAAE,SAASJ,GAAa,GAAG/C,KAA6B;CACrF,IAAMgD,IAAUC,EAAWJ,GAA+BE,CAAW;CACrE,OAAOG,EAAczF,GAAO;EAAE,cAAcuF,EAAQ;EAAO,GAAGhD;CAAM,CAAC;AACtE;AAOA,SAAgBoD,GAAa,EAAE,SAASL,GAAa,GAAG/C,KAA4B;CACnF,IAAMgD,IAAUC,EAAWJ,GAA+BE,CAAW;CACrE,OAAOG,EAAcxF,GAAM;EAAE,GAAGsC;EAAO,aAAagD,EAAQ;CAAO,CAAC;AACrE;AAEA,SAAgBK,GAAc,EAAE,cAAW,GAAGrD,KAAuC;CAEpF,OAAOkD,EAAcvF,GAAO;EAAE,GAAGqC;EAAO,WAAW9B,EAAGO,EAAe,SAASF,EAAoB,OAAOgC,CAAS;CAAE,CAAC;AACtH;AACA,SAAgB+C,GAAc,EAAE,cAAW,GAAGtD,KAAuC;CACpF,OAAOkD,EAActF,GAAO;EAAE,GAAGoC;EAAO,WAAW9B,EAAG,iBAAiBqC,CAAS;CAAE,CAAC;AACpF;AACA,SAAgBgD,GAAgB,EAAE,cAAW,GAAGvD,KAAyC;CACxF,OAAOkD,EAAcrF,GAAS;EAAE,GAAGmC;EAAO,WAAW9B,EAAG,iBAAiBqC,CAAS;CAAE,CAAC;AACtF;AAEA,IAAMiD,KAAgB;CAAE,IAAI;CAAW,IAAI;CAAW,IAAI;AAAc;AAExE,SAAgBC,GAAa,EAAE,cAAW,UAAO,MAAM,aAAUD,GAAcxC,IAAO,aAAU,GAAGhB,KAGhG;CACF,IAAM,EAAE,uBAAoBhC,EAAoB,GAC1C0F,IAAU,OAAOjD,KAAa,YAAY,OAAOA,KAAa,YAAY,OAAOA,KAAa,WAAWyC,EAAcvE,IAAiB,EAAE,YAAS,CAAC,IAAI8B;CAC9J,OAAOyC,EAAcpF,GAAM;EAAE,GAAGkC;EAAO,UAAU0D;EAAS;EAAM,WAAWxF,EAAGM,EAAqBmF,CAAO,GAAGjF,EAAkB,aAAaA,EAAkB,UAAUkF,EAAUC,KAAmB,OAAOtD,CAAS;CAAE,CAAC;AACzN;AAGA,SAAgBuD,GAAkB,EAAE,cAAW,GAAG9D,KAA2C;CAC5F,OAAOkD,EAAcnF,GAAW;EAAE,GAAGiC;EAAO,WAAW9B,EAAGO,EAAe,WAAW8B,CAAS;CAAE,CAAC;AACjG"}