themelia-react-ui 2.0.5 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (968) hide show
  1. package/CHANGELOG.md +326 -0
  2. package/MIGRATION.md +858 -0
  3. package/README.md +35 -24
  4. package/dist/{accordion-B9MHG0cT.js → accordion-DNVqwEIC.js} +37 -37
  5. package/dist/accordion-DNVqwEIC.js.map +1 -0
  6. package/dist/action-menu-D5343RwT.js +286 -0
  7. package/dist/action-menu-D5343RwT.js.map +1 -0
  8. package/dist/ai-artifact-otrz9ZwS.js +1214 -0
  9. package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
  10. package/dist/anchored-positioning-1U_eBFNx.js +9 -0
  11. package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
  12. package/dist/app-shell-CPN30Nb1.js +372 -0
  13. package/dist/app-shell-CPN30Nb1.js.map +1 -0
  14. package/dist/{attachment-Dg_69lPS.js → attachment-D2-fpfmv.js} +15 -15
  15. package/dist/{attachment-Dg_69lPS.js.map → attachment-D2-fpfmv.js.map} +1 -1
  16. package/dist/{auth-DTkkshS8.js → auth-g_oUTDDC.js} +236 -243
  17. package/dist/auth-g_oUTDDC.js.map +1 -0
  18. package/dist/{avatar-CeZaFmNH.js → avatar-Ca3Ihrq4.js} +4 -4
  19. package/dist/{avatar-CeZaFmNH.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
  20. package/dist/{badge-xIiV_E7f.js → badge-oGiXblW7.js} +8 -9
  21. package/dist/badge-oGiXblW7.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 +2 -2
  29. package/dist/base/cards.js +3 -3
  30. package/dist/base/carousel.js +11 -11
  31. package/dist/base/carousel.js.map +1 -1
  32. package/dist/base/cascader.js +1 -1
  33. package/dist/base/chart.js +1 -1
  34. package/dist/base/choice-inputs.js +2 -2
  35. package/dist/base/code-block.js +1 -1
  36. package/dist/base/combobox.js +1 -1
  37. package/dist/base/command.js +1 -1
  38. package/dist/base/copyable.js +1 -1
  39. package/dist/base/date-pickers.js +2 -2
  40. package/dist/base/display.js +7 -7
  41. package/dist/base/feedback.js +4 -4
  42. package/dist/base/forms-numeric.js +2 -2
  43. package/dist/base/forms.js +2 -2
  44. package/dist/base/inline-edit.js +13 -13
  45. package/dist/base/inline-edit.js.map +1 -1
  46. package/dist/base/item.js +1 -1
  47. package/dist/base/media-gallery.js +203 -2
  48. package/dist/base/media-gallery.js.map +1 -0
  49. package/dist/base/metadata-list.js +1 -1
  50. package/dist/base/navigation.js +7 -7
  51. package/dist/base/popover-menu.js +1 -1
  52. package/dist/base/popover.js +1 -1
  53. package/dist/base/qr-code.js +32 -22
  54. package/dist/base/qr-code.js.map +1 -1
  55. package/dist/base/repeaters.js +208 -198
  56. package/dist/base/repeaters.js.map +1 -1
  57. package/dist/base/sidebar.js +2 -2
  58. package/dist/base/signature-pad.js +14 -14
  59. package/dist/base/signature-pad.js.map +1 -1
  60. package/dist/base/skeleton.js +1 -1
  61. package/dist/base/spinner.js +8 -14
  62. package/dist/base/spinner.js.map +1 -1
  63. package/dist/base/structure.js +1 -1
  64. package/dist/base/table.js +1 -1
  65. package/dist/base/text-inputs.js +3 -3
  66. package/dist/base/toaster.js +2 -2
  67. package/dist/base/tree.js +2 -2
  68. package/dist/base/upload-queue.js +303 -2
  69. package/dist/base/upload-queue.js.map +1 -0
  70. package/dist/base/upload.js +3 -4
  71. package/dist/base/value-inputs.js +1 -1
  72. package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-D6MZQNnC.js} +10 -10
  73. package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
  74. package/dist/blocks/admin.js +242 -228
  75. package/dist/blocks/admin.js.map +1 -1
  76. package/dist/blocks/ai.js +398 -354
  77. package/dist/blocks/ai.js.map +1 -1
  78. package/dist/blocks/analytics/charts.js +1022 -0
  79. package/dist/blocks/analytics/charts.js.map +1 -0
  80. package/dist/blocks/analytics/usage-card.js +1 -1
  81. package/dist/blocks/analytics.js +173 -1392
  82. package/dist/blocks/analytics.js.map +1 -1
  83. package/dist/blocks/collaboration.js +1 -1
  84. package/dist/blocks/commerce/receipt.js +1 -1
  85. package/dist/blocks/commerce.js +1533 -1399
  86. package/dist/blocks/commerce.js.map +1 -1
  87. package/dist/blocks/data-display.js +2 -3
  88. package/dist/blocks/onboarding.js +91 -82
  89. package/dist/blocks/onboarding.js.map +1 -1
  90. package/dist/blocks/planning.js +25 -25
  91. package/dist/blocks/planning.js.map +1 -1
  92. package/dist/blocks/timelines.js +2 -2
  93. package/dist/breadcrumbs-CQ9JSlez.js +136 -0
  94. package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
  95. package/dist/{button-S2Cubiiz.js → button-rd6FiHfQ.js} +12 -8
  96. package/dist/button-rd6FiHfQ.js.map +1 -0
  97. package/dist/{buttons-BedGfygC.js → buttons-pZVgPTZn.js} +230 -246
  98. package/dist/buttons-pZVgPTZn.js.map +1 -0
  99. package/dist/{cards-rNX1M4Xn.js → cards-CgWyqvgZ.js} +25 -22
  100. package/dist/{cards-rNX1M4Xn.js.map → cards-CgWyqvgZ.js.map} +1 -1
  101. package/dist/cascader-Cf05pwaq.js +444 -0
  102. package/dist/cascader-Cf05pwaq.js.map +1 -0
  103. package/dist/{chart-Darg_0Kv.js → chart-CygRCyIZ.js} +5 -5
  104. package/dist/{chart-Darg_0Kv.js.map → chart-CygRCyIZ.js.map} +1 -1
  105. package/dist/{checkbox-fflqmODR.js → checkbox-Dy5_XBMZ.js} +4 -4
  106. package/dist/{checkbox-fflqmODR.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
  107. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-oJEsrb5Y.js} +195 -184
  108. package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
  109. package/dist/{code-block-BzmM9Eig.js → code-block-BrLD7mCi.js} +44 -60
  110. package/dist/code-block-BrLD7mCi.js.map +1 -0
  111. package/dist/collapsible-CRCCg_bO.js +80 -0
  112. package/dist/collapsible-CRCCg_bO.js.map +1 -0
  113. package/dist/{collection-content-gDh1v6O4.js → collection-content-D7SoDlYd.js} +3 -3
  114. package/dist/{collection-content-gDh1v6O4.js.map → collection-content-D7SoDlYd.js.map} +1 -1
  115. package/dist/combobox-Dl6f6kHz.js +362 -0
  116. package/dist/combobox-Dl6f6kHz.js.map +1 -0
  117. package/dist/combobox-DrDXtSSt.js +929 -0
  118. package/dist/combobox-DrDXtSSt.js.map +1 -0
  119. package/dist/command-CjZ2VzKC.js +432 -0
  120. package/dist/command-CjZ2VzKC.js.map +1 -0
  121. package/dist/comments-C2MZyRmh.js +1214 -0
  122. package/dist/comments-C2MZyRmh.js.map +1 -0
  123. package/dist/components/base/accordion/accordion.d.ts +11 -3
  124. package/dist/components/base/action-menu/action-menu.d.ts +11 -3
  125. package/dist/components/base/buttons/button.d.ts +2 -2
  126. package/dist/components/base/buttons/index.d.ts +1 -1
  127. package/dist/components/base/buttons/loader-button.d.ts +6 -15
  128. package/dist/components/base/cards/index.d.ts +1 -1
  129. package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
  130. package/dist/components/base/cards/smart-card.d.ts +0 -2
  131. package/dist/components/base/cards/smart-card.types.d.ts +12 -10
  132. package/dist/components/base/cascader/cascader.d.ts +8 -2
  133. package/dist/components/base/cascader/cascader.types.d.ts +24 -2
  134. package/dist/components/base/cascader/index.d.ts +1 -1
  135. package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
  136. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  137. package/dist/components/base/choice-inputs/switch.d.ts +1 -1
  138. package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
  139. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  140. package/dist/components/base/command/command.d.ts +1 -1
  141. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  142. package/dist/components/base/date-pickers/datepicker.types.d.ts +11 -7
  143. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  144. package/dist/components/base/display/dialog.d.ts +3 -9
  145. package/dist/components/base/display/index.d.ts +2 -3
  146. package/dist/components/base/display/separator.d.ts +1 -1
  147. package/dist/components/base/feedback/alert.d.ts +2 -1
  148. package/dist/components/base/feedback/empty.d.ts +10 -2
  149. package/dist/components/base/feedback/state-display.d.ts +5 -1
  150. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  151. package/dist/components/base/forms/form-field.d.ts +7 -2
  152. package/dist/components/base/forms/workflow.d.ts +2 -2
  153. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  154. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  155. package/dist/components/base/forms-numeric/dimensions-input.d.ts +13 -18
  156. package/dist/components/base/forms-numeric/index.d.ts +3 -3
  157. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  158. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  159. package/dist/components/base/item/item.types.d.ts +6 -2
  160. package/dist/components/base/metadata-list/index.d.ts +1 -3
  161. package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
  162. package/dist/components/base/navigation/index.d.ts +2 -2
  163. package/dist/components/base/navigation/language-switcher.d.ts +17 -8
  164. package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
  165. package/dist/components/base/navigation/page-header/index.d.ts +1 -1
  166. package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
  167. package/dist/components/base/navigation/pagination.d.ts +5 -5
  168. package/dist/components/base/popover/popover.recipes.d.ts +0 -1
  169. package/dist/components/base/qr-code/qr-code.d.ts +4 -0
  170. package/dist/components/base/repeaters/index.d.ts +1 -1
  171. package/dist/components/base/repeaters/key-value-editor.d.ts +6 -1
  172. package/dist/components/base/sheet/sheet.d.ts +6 -15
  173. package/dist/components/base/sidebar/index.d.ts +1 -6
  174. package/dist/components/base/sidebar/sidebar.d.ts +40 -10
  175. package/dist/components/base/skeleton/skeleton.d.ts +1 -1
  176. package/dist/components/base/structure/structure.types.d.ts +11 -2
  177. package/dist/components/base/text-inputs/index.d.ts +1 -1
  178. package/dist/components/base/tree/index.d.ts +1 -0
  179. package/dist/components/base/tree/tree.d.ts +2 -2
  180. package/dist/components/base/tree/tree.types.d.ts +7 -1
  181. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  182. package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
  183. package/dist/components/base/upload/image-upload.d.ts +4 -1
  184. package/dist/components/base/upload/index.d.ts +3 -9
  185. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
  186. package/dist/components/base/value-inputs/slider.d.ts +5 -2
  187. package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
  188. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
  189. package/dist/components/blocks/admin/index.d.ts +1 -1
  190. package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
  191. package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
  192. package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
  193. package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
  194. package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
  195. package/dist/components/blocks/ai/ai-citation/types.d.ts +8 -0
  196. package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
  197. package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
  198. package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
  199. package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
  200. package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
  201. package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
  202. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  203. package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
  204. package/dist/components/blocks/ai/ai-sources/types.d.ts +10 -2
  205. package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
  206. package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
  207. package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
  208. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +8 -0
  209. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  210. package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
  211. package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
  212. package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
  213. package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
  214. package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
  215. package/dist/components/blocks/analytics/index.d.ts +17 -24
  216. package/dist/components/blocks/analytics/metric/metric.d.ts +7 -3
  217. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  218. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  219. package/dist/components/blocks/analytics/types.d.ts +13 -4
  220. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  221. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  222. package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
  223. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
  224. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
  225. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
  226. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  227. package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
  228. package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
  229. package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
  230. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
  231. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  232. package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
  233. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  234. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
  235. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
  236. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
  237. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
  238. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
  239. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
  240. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
  241. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
  242. package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
  243. package/dist/components/blocks/commerce/index.d.ts +8 -8
  244. package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
  245. package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
  246. package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
  247. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
  248. package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
  249. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
  250. package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
  251. package/dist/components/blocks/commerce/order-status/types.d.ts +12 -8
  252. package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
  253. package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
  254. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  255. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
  256. package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
  257. package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
  258. package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
  259. package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
  260. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  261. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
  262. package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
  263. package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
  264. package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
  265. package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
  266. package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
  267. package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
  268. package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
  269. package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
  270. package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
  271. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
  272. package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
  273. package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
  274. package/dist/components/blocks/content-block-hooks.d.ts +22 -0
  275. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
  276. package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
  277. package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
  278. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
  279. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
  280. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
  281. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
  282. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
  283. package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
  284. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +10 -3
  285. package/dist/components/blocks/data-display/index.d.ts +0 -1
  286. package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
  287. package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
  288. package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
  289. package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
  290. package/dist/components/blocks/timelines/index.d.ts +2 -2
  291. package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
  292. package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
  293. package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
  294. package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
  295. package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
  296. package/dist/components/features/activities/activities.strings.d.ts +5 -3
  297. package/dist/components/features/activities/activities.types.d.ts +46 -22
  298. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
  299. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  300. package/dist/components/features/activities/index.d.ts +1 -1
  301. package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
  302. package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
  303. package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
  304. package/dist/components/features/activities/relative-time.d.ts +18 -0
  305. package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
  306. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
  307. package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
  308. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  309. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
  310. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
  311. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
  312. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
  313. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  314. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +20 -4
  315. package/dist/components/features/appointment-calendar/index.d.ts +1 -1
  316. package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
  317. package/dist/components/features/async-preview/async-preview.d.ts +2 -2
  318. package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
  319. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
  320. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  321. package/dist/components/features/combobox/combobox.d.ts +12 -3
  322. package/dist/components/features/combobox/components/error-message.d.ts +3 -1
  323. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +4 -3
  324. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  325. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  326. package/dist/components/features/combobox/index.d.ts +1 -1
  327. package/dist/components/features/combobox/types.d.ts +68 -37
  328. package/dist/components/features/comments/comments.strings.d.ts +6 -5
  329. package/dist/components/features/comments/comments.types.d.ts +40 -26
  330. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
  331. package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
  332. package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
  333. package/dist/components/features/data-view/data-view.types.d.ts +15 -2
  334. package/dist/components/features/email-composer/email-html.d.ts +5 -0
  335. package/dist/components/features/email-composer/http.d.ts +2 -0
  336. package/dist/components/features/email-composer/strings.d.ts +17 -2
  337. package/dist/components/features/email-composer/types.d.ts +19 -2
  338. package/dist/components/features/email-composer/use-composer.d.ts +2 -78
  339. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
  340. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
  341. package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
  342. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
  343. package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
  344. package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
  345. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  346. package/dist/components/features/filters/facets/range-facet.d.ts +24 -7
  347. package/dist/components/features/filters/filter-context.d.ts +9 -0
  348. package/dist/components/features/filters/filters.strings.d.ts +36 -3
  349. package/dist/components/features/filters/filters.types.d.ts +75 -8
  350. package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
  351. package/dist/components/features/filters/index.d.ts +2 -2
  352. package/dist/components/features/filters/operator-options.d.ts +25 -2
  353. package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
  354. package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
  355. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  356. package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
  357. package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
  358. package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
  359. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  360. package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
  361. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  362. package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
  363. package/dist/components/features/filters/utils/filter-utils.d.ts +34 -5
  364. package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
  365. package/dist/components/features/global-search/global-search.d.ts +7 -1
  366. package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
  367. package/dist/components/features/global-search/global-search.types.d.ts +30 -6
  368. package/dist/components/features/global-search/index.d.ts +1 -1
  369. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
  370. package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
  371. package/dist/components/features/kanban/index.d.ts +2 -2
  372. package/dist/components/features/kanban/kanban-context.d.ts +4 -0
  373. package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
  374. package/dist/components/features/kanban/kanban.d.ts +10 -1
  375. package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
  376. package/dist/components/features/kanban/kanban.types.d.ts +26 -0
  377. package/dist/components/features/map/map.d.ts +4 -0
  378. package/dist/components/features/map/place-autocomplete.d.ts +10 -1
  379. package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
  380. package/dist/components/features/media-library/media-library.d.ts +1 -1
  381. package/dist/components/features/media-library/media-library.strings.d.ts +39 -3
  382. package/dist/components/features/media-library/media-library.types.d.ts +82 -9
  383. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  384. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
  385. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  386. package/dist/components/features/mentions/index.d.ts +1 -1
  387. package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
  388. package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
  389. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +12 -1
  390. package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
  391. package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
  392. package/dist/components/features/mentions/utils/index.d.ts +0 -1
  393. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  394. package/dist/components/features/overlays/dialog.d.ts +1 -1
  395. package/dist/components/features/overlays/drawer.d.ts +1 -1
  396. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  397. package/dist/components/features/overlays/index.d.ts +2 -2
  398. package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
  399. package/dist/components/features/overlays/overlays.types.d.ts +27 -10
  400. package/dist/components/features/products/components/index.d.ts +0 -10
  401. package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
  402. package/dist/components/features/products/components/product-details-card.d.ts +1 -1
  403. package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
  404. package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
  405. package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
  406. package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
  407. package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
  408. package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
  409. package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
  410. package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
  411. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  412. package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
  413. package/dist/components/features/products/partials/product-surface.d.ts +15 -0
  414. package/dist/components/features/products/products.strings.d.ts +8 -0
  415. package/dist/components/features/products/products.types.d.ts +26 -8
  416. package/dist/components/features/questionnaire/questionnaire.types.d.ts +7 -2
  417. package/dist/components/features/resource/index.d.ts +2 -3
  418. package/dist/components/features/resource/resource.d.ts +2 -10
  419. package/dist/components/features/resource/resource.types.d.ts +7 -147
  420. package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
  421. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
  422. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
  423. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  424. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
  425. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  426. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
  427. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
  428. package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
  429. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
  430. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +5 -4
  431. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  432. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +30 -4
  433. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +10 -1
  434. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  435. package/dist/components/features/schema-form/schema-form.d.ts +1 -1
  436. package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
  437. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  438. package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
  439. package/dist/components/features/suggestions/suggestions.types.d.ts +13 -5
  440. package/dist/components/features/table/data-table.d.ts +1 -1
  441. package/dist/components/features/table/filter-bar.d.ts +1 -1
  442. package/dist/components/features/table/index.d.ts +1 -0
  443. package/dist/components/features/table/pagination.d.ts +1 -1
  444. package/dist/components/features/table/partials/cell-value.d.ts +1 -1
  445. package/dist/components/features/table/table-body.d.ts +1 -1
  446. package/dist/components/features/table/table-header.d.ts +1 -1
  447. package/dist/components/features/table/table-helpers.d.ts +37 -12
  448. package/dist/components/features/table/table-region.recipes.d.ts +11 -0
  449. package/dist/components/features/table/table-toolbar.d.ts +1 -1
  450. package/dist/components/features/table/table.strings.d.ts +4 -0
  451. package/dist/components/features/table/table.types.d.ts +91 -49
  452. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
  453. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
  454. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
  455. package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
  456. package/dist/components/layout/app-shell/index.d.ts +2 -2
  457. package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
  458. package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
  459. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  460. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  461. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  462. package/dist/components/layout/auth/auth-shell.d.ts +1 -1
  463. package/dist/components/layout/auth/auth.types.d.ts +0 -5
  464. package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
  465. package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
  466. package/dist/components/layout/header/header.types.d.ts +19 -8
  467. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
  468. package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
  469. package/dist/components/layout/header/partials/header-search.d.ts +1 -1
  470. package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
  471. package/dist/components/layout/layout.types.d.ts +6 -4
  472. package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
  473. package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
  474. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
  475. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  476. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  477. package/dist/components/layout/page/index.d.ts +2 -3
  478. package/dist/components/layout/page/page.strings.d.ts +12 -0
  479. package/dist/components/layout/page/page.types.d.ts +7 -110
  480. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  481. package/dist/components/layout/settings/index.d.ts +1 -1
  482. package/dist/components/layout/settings/settings.d.ts +4 -6
  483. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  484. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  485. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
  486. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  487. package/dist/components/layout/sidebar/index.d.ts +1 -1
  488. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +17 -7
  489. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  490. package/dist/components/layout/sidebar/sidebar.types.d.ts +12 -12
  491. package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
  492. package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
  493. package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
  494. package/dist/components/primitives/date.d.ts +22 -3
  495. package/dist/components/primitives/file-size.d.ts +8 -2
  496. package/dist/components/primitives/index.d.ts +1 -1
  497. package/dist/components/primitives/initials.d.ts +3 -1
  498. package/dist/components/primitives/link.d.ts +11 -3
  499. package/dist/components/primitives/money.d.ts +2 -2
  500. package/dist/components/primitives/number.d.ts +3 -2
  501. package/dist/components/typography/heading.d.ts +9 -3
  502. package/dist/components/typography/index.d.ts +1 -1
  503. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  504. package/dist/components/typography/text-link.d.ts +10 -3
  505. package/dist/components/ui/badge.d.ts +2 -4
  506. package/dist/components/ui/breadcrumb.d.ts +2 -3
  507. package/dist/components/ui/button.d.ts +8 -2
  508. package/dist/components/ui/collapsible.d.ts +1 -4
  509. package/dist/components/ui/command.d.ts +20 -18
  510. package/dist/components/ui/dialog.d.ts +3 -9
  511. package/dist/components/ui/empty.d.ts +2 -2
  512. package/dist/components/ui/input-group.d.ts +3 -3
  513. package/dist/components/ui/item.d.ts +3 -3
  514. package/dist/components/ui/popover.d.ts +3 -7
  515. package/dist/components/ui/sheet.d.ts +4 -12
  516. package/dist/components/ui/sidebar-state.d.ts +6 -1
  517. package/dist/components/ui/sidebar.d.ts +7 -4
  518. package/dist/components/ui/tabs.d.ts +2 -2
  519. package/dist/components/ui/toggle-group.d.ts +3 -3
  520. package/dist/components/ui/toggle.d.ts +2 -2
  521. package/dist/components/ui/tooltip.d.ts +1 -3
  522. package/dist/{containers-CIxwbZt5.js → containers-BdfLTP4w.js} +37 -32
  523. package/dist/containers-BdfLTP4w.js.map +1 -0
  524. package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
  525. package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
  526. package/dist/{copyable-DIznBqiT.js → copyable-Bmr14W0d.js} +6 -6
  527. package/dist/{copyable-DIznBqiT.js.map → copyable-Bmr14W0d.js.map} +1 -1
  528. package/dist/{data-display-BdgCAw8T.js → data-display-CWe9SOYh.js} +264 -250
  529. package/dist/data-display-CWe9SOYh.js.map +1 -0
  530. package/dist/date-3qsCE1ID.js +209 -0
  531. package/dist/date-3qsCE1ID.js.map +1 -0
  532. package/dist/date-picker-D1keJQIG.js +1617 -0
  533. package/dist/date-picker-D1keJQIG.js.map +1 -0
  534. package/dist/date-pickers-D8aJoeHc.js +185 -0
  535. package/dist/date-pickers-D8aJoeHc.js.map +1 -0
  536. package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
  537. package/dist/{display-KsZLw9Ov.js → display-VlmP1I0i.js} +23 -46
  538. package/dist/display-VlmP1I0i.js.map +1 -0
  539. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-B8hjvbkS.js} +9 -9
  540. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
  541. package/dist/dropzone-CHBNK3de.js +116 -0
  542. package/dist/dropzone-CHBNK3de.js.map +1 -0
  543. package/dist/features/activities.js +767 -700
  544. package/dist/features/activities.js.map +1 -1
  545. package/dist/features/ai-chat.js +280 -235
  546. package/dist/features/ai-chat.js.map +1 -1
  547. package/dist/features/appointment-calendar.js +430 -334
  548. package/dist/features/appointment-calendar.js.map +1 -1
  549. package/dist/features/async-preview.js +351 -265
  550. package/dist/features/async-preview.js.map +1 -1
  551. package/dist/features/combobox.js +2 -2
  552. package/dist/features/comments.js +1 -1
  553. package/dist/features/data-view.js +212 -151
  554. package/dist/features/data-view.js.map +1 -1
  555. package/dist/features/email-composer/engine.js +1 -1
  556. package/dist/features/email-composer.js +347 -313
  557. package/dist/features/email-composer.js.map +1 -1
  558. package/dist/features/event-calendar.js +501 -348
  559. package/dist/features/event-calendar.js.map +1 -1
  560. package/dist/features/filters.js +2 -2
  561. package/dist/features/global-search.js +250 -210
  562. package/dist/features/global-search.js.map +1 -1
  563. package/dist/features/kanban.js +280 -210
  564. package/dist/features/kanban.js.map +1 -1
  565. package/dist/features/map/style.css +15 -0
  566. package/dist/features/map.js +435 -404
  567. package/dist/features/map.js.map +1 -1
  568. package/dist/features/media-library.js +1745 -1195
  569. package/dist/features/media-library.js.map +1 -1
  570. package/dist/features/mentions.js +2 -2
  571. package/dist/features/overlays.js +2 -2
  572. package/dist/features/products.js +1862 -1759
  573. package/dist/features/products.js.map +1 -1
  574. package/dist/features/questionnaire.js +188 -168
  575. package/dist/features/questionnaire.js.map +1 -1
  576. package/dist/features/resource-assignment.js +223 -191
  577. package/dist/features/resource-assignment.js.map +1 -1
  578. package/dist/features/resource.js +55 -217
  579. package/dist/features/resource.js.map +1 -1
  580. package/dist/features/rich-text-editor.js +28 -19
  581. package/dist/features/rich-text-editor.js.map +1 -1
  582. package/dist/features/schema-form.js +380 -287
  583. package/dist/features/schema-form.js.map +1 -1
  584. package/dist/features/suggestions.js +90 -74
  585. package/dist/features/suggestions.js.map +1 -1
  586. package/dist/features/table.js +2 -2
  587. package/dist/features/theme-tweaker.js +718 -627
  588. package/dist/features/theme-tweaker.js.map +1 -1
  589. package/dist/feedback-DmqmXKLn.js +254 -0
  590. package/dist/feedback-DmqmXKLn.js.map +1 -0
  591. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-DfbMadot.js} +13 -9
  592. package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
  593. package/dist/field-control-attributes-B6i335wr.js +18 -0
  594. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  595. package/dist/field-state-recipes-EtCxpEy3.js +18 -0
  596. package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
  597. package/dist/filters-BviMRMLS.js +2692 -0
  598. package/dist/filters-BviMRMLS.js.map +1 -0
  599. package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
  600. package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
  601. package/dist/form-field-BdfCwSoQ.js +74 -0
  602. package/dist/form-field-BdfCwSoQ.js.map +1 -0
  603. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-DE_dZw32.js} +3 -3
  604. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-DE_dZw32.js.map} +1 -1
  605. package/dist/{forms-C0RGnJTe.js → forms-B8DzJnBN.js} +35 -35
  606. package/dist/forms-B8DzJnBN.js.map +1 -0
  607. package/dist/forms-numeric-DOBswjKj.js +992 -0
  608. package/dist/forms-numeric-DOBswjKj.js.map +1 -0
  609. package/dist/{header-DMMxG__r.js → header-Cq3G0ZRP.js} +163 -158
  610. package/dist/header-Cq3G0ZRP.js.map +1 -0
  611. package/dist/hooks/use-files.d.ts +2 -0
  612. package/dist/{hooks-DB6CJ4MR.js → hooks-DHfeSMAO.js} +34 -14
  613. package/dist/hooks-DHfeSMAO.js.map +1 -0
  614. package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
  615. package/dist/http-Cu-GPpss.js.map +1 -0
  616. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-B0Kq7wom.js} +3 -3
  617. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
  618. package/dist/index.js +6 -6
  619. package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
  620. package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
  621. package/dist/{input-DMBwAZmr.js → input-2YrgTUrz.js} +3 -3
  622. package/dist/{input-DMBwAZmr.js.map → input-2YrgTUrz.js.map} +1 -1
  623. package/dist/{input-CvyDQlY7.js → input-DfJyrjoR.js} +7 -7
  624. package/dist/{input-CvyDQlY7.js.map → input-DfJyrjoR.js.map} +1 -1
  625. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-DmuS1ase.js} +2 -2
  626. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
  627. package/dist/item-GJ9mvCcg.js +279 -0
  628. package/dist/item-GJ9mvCcg.js.map +1 -0
  629. package/dist/layout/app-shell.js +1 -1
  630. package/dist/layout/auth.js +1 -1
  631. package/dist/layout/containers.js +1 -1
  632. package/dist/layout/header.js +1 -1
  633. package/dist/layout/hooks.js +1 -1
  634. package/dist/layout/navigation.js +1 -1
  635. package/dist/layout/page.js +2 -2
  636. package/dist/layout/settings.js +2 -2
  637. package/dist/layout/sidebar.js +3 -3
  638. package/dist/layout/workspace.js +1 -1
  639. package/dist/layout.js +12 -12
  640. package/dist/layout.types-DbtnyAtd.js +33 -0
  641. package/dist/layout.types-DbtnyAtd.js.map +1 -0
  642. package/dist/lib/anchored-positioning.d.ts +11 -0
  643. package/dist/lib/field-affordance-recipes.d.ts +10 -0
  644. package/dist/lib/field-control-attributes.d.ts +11 -0
  645. package/dist/lib/field-state-recipes.d.ts +8 -0
  646. package/dist/lib/focus-recipes.d.ts +7 -0
  647. package/dist/lib/format.d.ts +26 -0
  648. package/dist/lib/money-format.d.ts +6 -0
  649. package/dist/lib/motion-recipes.d.ts +6 -0
  650. package/dist/lib/surface-recipes.d.ts +33 -3
  651. package/dist/lib/theme-scope.d.ts +17 -1
  652. package/dist/lib/token-merge.generated.d.ts +19 -25
  653. package/dist/lib/ui-provider/index.d.ts +1 -1
  654. package/dist/lib/ui-provider/types.d.ts +5 -0
  655. package/dist/lib/use-controllable-state.d.ts +16 -0
  656. package/dist/lib/use-copy-feedback.d.ts +15 -0
  657. package/dist/lib/utils.js +1 -1
  658. package/dist/lib/variant-props.d.ts +9 -0
  659. package/dist/main-landmark-context-BAsyqp2I.js +11 -0
  660. package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
  661. package/dist/mentions-zz0ewNIq.js +670 -0
  662. package/dist/mentions-zz0ewNIq.js.map +1 -0
  663. package/dist/message-BiiVrRrm.js +138 -0
  664. package/dist/message-BiiVrRrm.js.map +1 -0
  665. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-G85roWjS.js} +13 -12
  666. package/dist/metadata-list-G85roWjS.js.map +1 -0
  667. package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
  668. package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
  669. package/dist/navigation-C0Be5C3i.js +304 -0
  670. package/dist/navigation-C0Be5C3i.js.map +1 -0
  671. package/dist/navigation-CmqaQR_G.js +257 -0
  672. package/dist/navigation-CmqaQR_G.js.map +1 -0
  673. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  674. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  675. package/dist/number-NFWKIoiK.js +340 -0
  676. package/dist/number-NFWKIoiK.js.map +1 -0
  677. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
  678. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
  679. package/dist/{overlays-BSgCtM2v.js → overlays-D-gAIfPF.js} +369 -364
  680. package/dist/overlays-D-gAIfPF.js.map +1 -0
  681. package/dist/page-D4pQhgSq.js +216 -0
  682. package/dist/page-D4pQhgSq.js.map +1 -0
  683. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-elelNOfd.js} +29 -29
  684. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-elelNOfd.js.map} +1 -1
  685. package/dist/{pagination-CgCjElfu.js → pagination-BuSWw1US.js} +22 -23
  686. package/dist/pagination-BuSWw1US.js.map +1 -0
  687. package/dist/popover-BpMxbqEK.js +205 -0
  688. package/dist/popover-BpMxbqEK.js.map +1 -0
  689. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-CO-_iiuz.js} +7 -7
  690. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
  691. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-BqkdvlZn.js} +3 -4
  692. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
  693. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-BPeS4rGB.js} +2 -2
  694. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
  695. package/dist/primitives-BlC1lXBr.js +447 -0
  696. package/dist/primitives-BlC1lXBr.js.map +1 -0
  697. package/dist/primitives.js +4 -4
  698. package/dist/{progress-BJhQP9WX.js → progress-RARK8AjB.js} +5 -5
  699. package/dist/{progress-BJhQP9WX.js.map → progress-RARK8AjB.js.map} +1 -1
  700. package/dist/receipt-CUf2Vegp.js +114 -0
  701. package/dist/receipt-CUf2Vegp.js.map +1 -0
  702. package/dist/rich-text-Cypm9__d.js +44 -0
  703. package/dist/rich-text-Cypm9__d.js.map +1 -0
  704. package/dist/rich-text-editor-Z6cQepsA.js +919 -0
  705. package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
  706. package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
  707. package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
  708. package/dist/rich-text-tree-DdKHIJx4.js +154 -0
  709. package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
  710. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-B9HKbji0.js} +3 -3
  711. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-B9HKbji0.js.map} +1 -1
  712. package/dist/{separator-Ct_WSWTJ.js → separator-DaDe26sf.js} +3 -3
  713. package/dist/separator-DaDe26sf.js.map +1 -0
  714. package/dist/{separator-Bb17I4pu.js → separator-KGsNXt2J.js} +2 -2
  715. package/dist/{separator-Bb17I4pu.js.map → separator-KGsNXt2J.js.map} +1 -1
  716. package/dist/services/actions/action-adapters.d.ts +5 -2
  717. package/dist/services/actions/index.d.ts +1 -1
  718. package/dist/services/actions.js +2 -2
  719. package/dist/services/actions.js.map +1 -1
  720. package/dist/settings-D5j_RJvT.js +160 -0
  721. package/dist/settings-D5j_RJvT.js.map +1 -0
  722. package/dist/sheet-B6j_BE9O.js +241 -0
  723. package/dist/sheet-B6j_BE9O.js.map +1 -0
  724. package/dist/{sidebar-f9gRWXIR.js → sidebar-C-iQ_TJP.js} +379 -350
  725. package/dist/sidebar-C-iQ_TJP.js.map +1 -0
  726. package/dist/sidebar-D5VO2W8S.js +715 -0
  727. package/dist/sidebar-D5VO2W8S.js.map +1 -0
  728. package/dist/{skeleton-BapcJd9C.js → skeleton-Cab_KgVo.js} +13 -13
  729. package/dist/skeleton-Cab_KgVo.js.map +1 -0
  730. package/dist/{smart-card-CW0hjetE.js → smart-card-C59z6KFO.js} +217 -210
  731. package/dist/smart-card-C59z6KFO.js.map +1 -0
  732. package/dist/{structure-DuxKl954.js → structure-DElaQwwN.js} +2 -2
  733. package/dist/{structure-DuxKl954.js.map → structure-DElaQwwN.js.map} +1 -1
  734. package/dist/style.css +1 -1
  735. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-DV6rrOFq.js} +11 -3
  736. package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
  737. package/dist/table-CSRUgpdK.js +180 -0
  738. package/dist/table-CSRUgpdK.js.map +1 -0
  739. package/dist/table-DdXDBsR_.js +1657 -0
  740. package/dist/table-DdXDBsR_.js.map +1 -0
  741. package/dist/tabs-WnHfV2pM.js +192 -0
  742. package/dist/tabs-WnHfV2pM.js.map +1 -0
  743. package/dist/{text-inputs-B1culiSK.js → text-inputs-ljyBYaCd.js} +112 -112
  744. package/dist/text-inputs-ljyBYaCd.js.map +1 -0
  745. package/dist/theme.css +21 -5
  746. package/dist/timelines-mOmS9Eh3.js +479 -0
  747. package/dist/timelines-mOmS9Eh3.js.map +1 -0
  748. package/dist/tooltip-yjX-Uv-p.js +112 -0
  749. package/dist/tooltip-yjX-Uv-p.js.map +1 -0
  750. package/dist/{tree-CzUJHnFs.js → tree-YpkxUG2Z.js} +80 -72
  751. package/dist/tree-YpkxUG2Z.js.map +1 -0
  752. package/dist/typography/rich-text.js +1 -1
  753. package/dist/{typography-BQnine1k.js → typography-C0dELqYV.js} +46 -40
  754. package/dist/typography-C0dELqYV.js.map +1 -0
  755. package/dist/typography.js +1 -1
  756. package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
  757. package/dist/ui-provider-Bu1S-o96.js.map +1 -0
  758. package/dist/ui-provider.js +2 -2
  759. package/dist/upload-DMuMYJFT.js +875 -0
  760. package/dist/upload-DMuMYJFT.js.map +1 -0
  761. package/dist/{usage-card-BeSLY0i0.js → usage-card-DDPki5P1.js} +57 -54
  762. package/dist/usage-card-DDPki5P1.js.map +1 -0
  763. package/dist/use-controllable-state-BlP8SyBI.js +13 -0
  764. package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
  765. package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
  766. package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
  767. package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
  768. package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
  769. package/dist/{utils-B6kKb8jB.js → utils-BVbAG2J6.js} +128 -112
  770. package/dist/utils-BVbAG2J6.js.map +1 -0
  771. package/dist/value-inputs-h5MwjGCo.js +982 -0
  772. package/dist/value-inputs-h5MwjGCo.js.map +1 -0
  773. package/dist/value-typography-D15uwfj-.js +154 -0
  774. package/dist/value-typography-D15uwfj-.js.map +1 -0
  775. package/dist/workspace-DIryPqBt.js +400 -0
  776. package/dist/workspace-DIryPqBt.js.map +1 -0
  777. package/docs/consumer-skill/SKILL.md +7 -0
  778. package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
  779. package/docs/consumer-skill/examples/analytics.tsx +1 -1
  780. package/docs/consumer-skill/examples/app-layout.tsx +3 -3
  781. package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
  782. package/docs/consumer-skill/examples/detail.tsx +3 -2
  783. package/docs/consumer-skill/examples/edit.tsx +3 -3
  784. package/docs/consumer-skill/examples/email-composer.tsx +1 -1
  785. package/docs/consumer-skill/examples/index-table.tsx +2 -2
  786. package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
  787. package/docs/consumer-skill/references/agents-md.md +27 -23
  788. package/docs/consumer-skill/references/analytics.md +33 -4
  789. package/docs/consumer-skill/references/building-views.md +213 -0
  790. package/docs/consumer-skill/references/catalogue.md +617 -0
  791. package/docs/consumer-skill/references/component-contracts.json +25852 -32067
  792. package/docs/consumer-skill/references/composition.md +42 -21
  793. package/docs/consumer-skill/references/design-contract.md +1 -0
  794. package/docs/consumer-skill/references/discovery.md +8 -5
  795. package/docs/consumer-skill/references/installation.md +59 -10
  796. package/docs/consumer-skill/references/integration.md +28 -5
  797. package/docs/consumer-skill/references/product-composition.md +2 -2
  798. package/docs/consumer-skill/references/public-api.json +726 -641
  799. package/docs/consumer-skill/references/review.md +57 -15
  800. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  801. package/docs/consumer-skill/references/screen-archetypes.md +2 -2
  802. package/docs/consumer-skill/references/theming.md +8 -3
  803. package/docs/consumer-skill/references/tokens.json +4 -4
  804. package/docs/consumer-skill/references/workflows.md +7 -7
  805. package/docs/consumer-skill/scripts/composition-policy.mjs +178 -44
  806. package/docs/consumer-skill/scripts/composition.mjs +4 -1
  807. package/docs/consumer-skill/scripts/discovery.mjs +3 -1
  808. package/docs/consumer-skill/scripts/setup-skills.mjs +74 -10
  809. package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
  810. package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
  811. package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
  812. package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
  813. package/package.json +12 -13
  814. package/templates/README.md +3 -2
  815. package/templates/admin-shell-template.tsx +50 -11
  816. package/templates/analytics-operations-template.tsx +20 -24
  817. package/templates/customers-template.tsx +30 -25
  818. package/templates/index.ts +2 -8
  819. package/templates/orders-template.tsx +28 -24
  820. package/templates/products-template.tsx +14 -4
  821. package/templates/user-permissions-template.tsx +11 -14
  822. package/dist/accordion-B9MHG0cT.js.map +0 -1
  823. package/dist/action-menu-Dr8K-ghE.js +0 -284
  824. package/dist/action-menu-Dr8K-ghE.js.map +0 -1
  825. package/dist/ai-artifact-C58tQcBy.js +0 -1185
  826. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  827. package/dist/anchored-positioning-DPnKTvNs.js +0 -6
  828. package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
  829. package/dist/app-shell-B_IuNWOo.js +0 -321
  830. package/dist/app-shell-B_IuNWOo.js.map +0 -1
  831. package/dist/auth-DTkkshS8.js.map +0 -1
  832. package/dist/badge-xIiV_E7f.js.map +0 -1
  833. package/dist/base/sheet.js +0 -3
  834. package/dist/breadcrumbs-J-K2kl4c.js +0 -129
  835. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  836. package/dist/button-S2Cubiiz.js.map +0 -1
  837. package/dist/buttons-BedGfygC.js.map +0 -1
  838. package/dist/cascader-B1MiqkBq.js +0 -439
  839. package/dist/cascader-B1MiqkBq.js.map +0 -1
  840. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  841. package/dist/code-block-BzmM9Eig.js.map +0 -1
  842. package/dist/collapsible-BkAI_XD4.js +0 -81
  843. package/dist/collapsible-BkAI_XD4.js.map +0 -1
  844. package/dist/combobox-BEx0vJgF.js +0 -362
  845. package/dist/combobox-BEx0vJgF.js.map +0 -1
  846. package/dist/combobox-BwzoXFSG.js +0 -884
  847. package/dist/combobox-BwzoXFSG.js.map +0 -1
  848. package/dist/command-CrlPIL6m.js +0 -425
  849. package/dist/command-CrlPIL6m.js.map +0 -1
  850. package/dist/comments-Dmpp0YIc.js +0 -1169
  851. package/dist/comments-Dmpp0YIc.js.map +0 -1
  852. package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
  853. package/dist/components/base/display/content-block.d.ts +0 -75
  854. package/dist/components/base/display/content-block.strings.d.ts +0 -5
  855. package/dist/components/base/sheet/index.d.ts +0 -29
  856. package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
  857. package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
  858. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -16
  859. package/dist/components/features/resource/resource.strings.d.ts +0 -12
  860. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
  861. package/dist/components/features/sync/index.d.ts +0 -26
  862. package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
  863. package/dist/components/features/sync/sync.strings.d.ts +0 -18
  864. package/dist/components/features/sync/sync.types.d.ts +0 -44
  865. package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
  866. package/dist/components/ui/slot.d.ts +0 -6
  867. package/dist/containers-CIxwbZt5.js.map +0 -1
  868. package/dist/data-display-BdgCAw8T.js.map +0 -1
  869. package/dist/date-Cq8ioE4o.js +0 -144
  870. package/dist/date-Cq8ioE4o.js.map +0 -1
  871. package/dist/date-picker-RlIzKom_.js +0 -1551
  872. package/dist/date-picker-RlIzKom_.js.map +0 -1
  873. package/dist/date-pickers-DY-CpXS1.js +0 -179
  874. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  875. package/dist/display-KsZLw9Ov.js.map +0 -1
  876. package/dist/features/sync.js +0 -142
  877. package/dist/features/sync.js.map +0 -1
  878. package/dist/feedback-Dm4izqFn.js +0 -240
  879. package/dist/feedback-Dm4izqFn.js.map +0 -1
  880. package/dist/field-affordance-recipes-DWcNcOjh.js.map +0 -1
  881. package/dist/field-state-recipes-BVA2CWHo.js +0 -12
  882. package/dist/field-state-recipes-BVA2CWHo.js.map +0 -1
  883. package/dist/filters-DzgSJpMK.js +0 -2257
  884. package/dist/filters-DzgSJpMK.js.map +0 -1
  885. package/dist/focus-recipes-B653VaLq.js.map +0 -1
  886. package/dist/form-field-BriWAXyg.js +0 -63
  887. package/dist/form-field-BriWAXyg.js.map +0 -1
  888. package/dist/forms-C0RGnJTe.js.map +0 -1
  889. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  890. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  891. package/dist/header-DMMxG__r.js.map +0 -1
  892. package/dist/hooks-DB6CJ4MR.js.map +0 -1
  893. package/dist/http-D_6rOnzU.js.map +0 -1
  894. package/dist/item-DjCcM18E.js +0 -277
  895. package/dist/item-DjCcM18E.js.map +0 -1
  896. package/dist/layout.types-Cn7aUzJp.js +0 -20
  897. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  898. package/dist/media-gallery-C-vChPmE.js +0 -203
  899. package/dist/media-gallery-C-vChPmE.js.map +0 -1
  900. package/dist/mentions-0_4nWuI-.js +0 -570
  901. package/dist/mentions-0_4nWuI-.js.map +0 -1
  902. package/dist/message-g8p7eVtN.js +0 -128
  903. package/dist/message-g8p7eVtN.js.map +0 -1
  904. package/dist/metadata-list-C3MkU-Om.js.map +0 -1
  905. package/dist/motion-recipes-DitYv6P2.js.map +0 -1
  906. package/dist/navigation-C90-oQFq.js +0 -255
  907. package/dist/navigation-C90-oQFq.js.map +0 -1
  908. package/dist/navigation-DaRjthVk.js +0 -288
  909. package/dist/navigation-DaRjthVk.js.map +0 -1
  910. package/dist/number-CRU3kGuk.js +0 -354
  911. package/dist/number-CRU3kGuk.js.map +0 -1
  912. package/dist/overlays-BSgCtM2v.js.map +0 -1
  913. package/dist/page-DUUKDAjo.js +0 -331
  914. package/dist/page-DUUKDAjo.js.map +0 -1
  915. package/dist/pagination-CgCjElfu.js.map +0 -1
  916. package/dist/popover-B85RenIl.js +0 -201
  917. package/dist/popover-B85RenIl.js.map +0 -1
  918. package/dist/primitives-ByWgGUgt.js +0 -380
  919. package/dist/primitives-ByWgGUgt.js.map +0 -1
  920. package/dist/receipt-tOc7B3hw.js +0 -116
  921. package/dist/receipt-tOc7B3hw.js.map +0 -1
  922. package/dist/rich-text-Dth5E882.js +0 -78
  923. package/dist/rich-text-Dth5E882.js.map +0 -1
  924. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  925. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  926. package/dist/rich-text-editor-toolbar-laT3tpBT.js +0 -98
  927. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  928. package/dist/sanitize-html-DsQmI48u.js +0 -92
  929. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  930. package/dist/separator-Ct_WSWTJ.js.map +0 -1
  931. package/dist/settings-Bar5wiSo.js +0 -167
  932. package/dist/settings-Bar5wiSo.js.map +0 -1
  933. package/dist/sheet-BGPERY55.js +0 -250
  934. package/dist/sheet-BGPERY55.js.map +0 -1
  935. package/dist/sidebar-D-JYMMbY.js +0 -686
  936. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  937. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  938. package/dist/skeleton-BapcJd9C.js.map +0 -1
  939. package/dist/slot-CLF9kLrS.js +0 -16
  940. package/dist/slot-CLF9kLrS.js.map +0 -1
  941. package/dist/smart-card-CW0hjetE.js.map +0 -1
  942. package/dist/surface-recipes-BKRVW8Os.js.map +0 -1
  943. package/dist/table-B4TE7iOV.js +0 -175
  944. package/dist/table-B4TE7iOV.js.map +0 -1
  945. package/dist/table-CFOWY9pQ.js +0 -1536
  946. package/dist/table-CFOWY9pQ.js.map +0 -1
  947. package/dist/tabs-e7ko9S2o.js +0 -191
  948. package/dist/tabs-e7ko9S2o.js.map +0 -1
  949. package/dist/text-inputs-B1culiSK.js.map +0 -1
  950. package/dist/timelines-D3Sl9ueq.js +0 -458
  951. package/dist/timelines-D3Sl9ueq.js.map +0 -1
  952. package/dist/tooltip-8wz5S_Zr.js +0 -113
  953. package/dist/tooltip-8wz5S_Zr.js.map +0 -1
  954. package/dist/tree-CzUJHnFs.js.map +0 -1
  955. package/dist/typography-BQnine1k.js.map +0 -1
  956. package/dist/ui-provider-C-74NVLc.js.map +0 -1
  957. package/dist/upload-BOW6U2tI.js +0 -855
  958. package/dist/upload-BOW6U2tI.js.map +0 -1
  959. package/dist/upload-queue-qUXn1ykN.js +0 -409
  960. package/dist/upload-queue-qUXn1ykN.js.map +0 -1
  961. package/dist/usage-card-BeSLY0i0.js.map +0 -1
  962. package/dist/utils-B6kKb8jB.js.map +0 -1
  963. package/dist/value-inputs-skdVB2zh.js +0 -980
  964. package/dist/value-inputs-skdVB2zh.js.map +0 -1
  965. package/dist/value-typography-uAmWUAL1.js +0 -116
  966. package/dist/value-typography-uAmWUAL1.js.map +0 -1
  967. package/dist/workspace-DHeHv0qw.js +0 -411
  968. package/dist/workspace-DHeHv0qw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resource-assignment.js","names":["_Fragment","ContentComponent","Text","DisplayLabel","Stack","CardPrimaryAction","ActionDialog","ContentBlock","EmptyState","Fragment$1","defaultSharedResourceCardStrings","useSharedResourceCard","internalOpen","setInternalOpen","useState","defaultOpen","isConfirming","setIsConfirming","internalSelectedSuggestion","setInternalSelectedSuggestion","defaultValue","isOpenControlled","open","isValueControlled","value","isSelectorOpen","selectedSuggestion","hasResource","resource","initializedOpenCycleRef","useRef","hasOpenedRef","hasExplicitDefaultValueRef","setSelectorOpen","useCallback","nextOpen","onOpenChange","setSelectedSuggestion","selection","onValueChange","openSelector","isFirstOpen","initial","mapInitialSelected","onDialogOpen","closeSelector","onDialogClose","canConfirmSelection","useMemo","isConfirmDisabled","confirmSelection","onConfirmSelection","error","onError","DefaultDialogSummary","useStrings","strings","selected","context","label","getSelectionLabel","DefaultResourceContent","_context","s","DefaultEmptyContent","PackageOpen","Button","DefaultDialogContent","componentProps","selectorProps","SelectorComponent","SharedResourceCard","stringsProp","selectorContext","selector","canUseSelector","selectorActionLabel","visibleBaseActionCount","actions","action","usesDefaultEmptyAction","renderEmptyContent","EmptyContentComponent","shouldInlineSelectorAction","resolvedActions","baseActions","resolvedHeaderAction","headerAction","resourceContent","renderResourceContent","ResourceContentComponent","sections","visibleSections","section","sectionsClassName","SectionComponent","emptyContent","DialogContentComponent","DialogSummaryComponent","dialogContentProps","cardBody","shouldRenderDialog","hasCustomViewAction","viewAction","viewActionContent","viewLink","Eye","viewActionNode","cn","dialogNode","className"],"sources":["../../src/components/features/resource-assignment/resource-assignment.strings.ts","../../src/components/features/resource-assignment/hooks/use-shared-resource-card.ts","../../src/components/features/resource-assignment/partials/default-shared-resource-partials.tsx","../../src/components/features/resource-assignment/resource-assignment.tsx"],"sourcesContent":["/**\n * Default user-facing strings for the resource-assignment feature.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <SharedResourceCard\n * strings={{ noResourceSelected: t('resourceAssignment.empty') }}\n * …\n * />\n */\n\nexport interface SharedResourceCardStrings {\n\tcurrentlySelected: string;\n\tnoResourceContent: string;\n\tnoResourceSelected: string;\n\tchangeAction: string;\n}\n\nexport const defaultSharedResourceCardStrings: SharedResourceCardStrings = {\n\tcurrentlySelected: 'Currently selected:',\n\tnoResourceContent: 'No resource content configured.',\n\tnoResourceSelected: 'No resource selected.',\n\tchangeAction: 'Change',\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { SharedResourceCardContext } from '../resource-assignment.types';\n\nexport type UseSharedResourceCardOptions<TResource, TSuggestion> = {\n\t/** Persisted assignment. `null` is the only empty state. */\n\tresource: TResource | null;\n\t/** Map persisted data when neither `value` nor first-open `defaultValue` supplies selection. */\n\tmapInitialSelected: (resource: TResource | null) => TSuggestion | null;\n\t/** Persist a confirmed suggestion. Returned promises are awaited. */\n\tonConfirmSelection: (selection: TSuggestion) => void | Promise<void>;\n\t/** Disable confirmation for a pending candidate. */\n\tisConfirmDisabled?: (selection: TSuggestion | null) => boolean;\n\t/** Called once per closed-to-open cycle, including an initially open selector. */\n\tonDialogOpen?: (selection: TSuggestion | null) => void;\n\t/** Called after selection mode closes or confirmation succeeds. */\n\tonDialogClose?: () => void;\n\t/** Called when `onConfirmSelection` throws. Library DEV-logs the error;\n\t * consumer wires telemetry. */\n\tonError?: (error: unknown, selection: TSuggestion) => void;\n\t/** Controlled selector visibility. An initial `true` value initializes selection. */\n\topen?: boolean;\n\t/** Initial selector visibility; `true` initializes selection after mount. */\n\tdefaultOpen?: boolean;\n\t/** Controlled visibility callback and uncontrolled visibility observer. */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Controlled pending suggestion; authoritative over mapping on every open. */\n\tvalue?: TSuggestion | null;\n\t/** Initial uncontrolled suggestion; authoritative over mapping on the first open. */\n\tdefaultValue?: TSuggestion | null;\n\t/** Controlled selection callback and uncontrolled selection observer. */\n\tonValueChange?: (selection: TSuggestion | null) => void;\n};\n\nexport type UseSharedResourceCardResult<TResource, TSuggestion> =\n\tSharedResourceCardContext<TResource, TSuggestion>;\n\nexport function useSharedResourceCard<TResource, TSuggestion>({\n\tresource,\n\tmapInitialSelected,\n\tonConfirmSelection,\n\tisConfirmDisabled,\n\tonDialogOpen,\n\tonDialogClose,\n\tonError,\n\topen,\n\tdefaultOpen = false,\n\tonOpenChange,\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n}: UseSharedResourceCardOptions<TResource, TSuggestion>): UseSharedResourceCardResult<TResource, TSuggestion> {\n\tconst [internalOpen, setInternalOpen] = useState(defaultOpen);\n\tconst [isConfirming, setIsConfirming] = useState(false);\n\tconst [internalSelectedSuggestion, setInternalSelectedSuggestion] =\n\t\tuseState<TSuggestion | null>(defaultValue ?? null);\n\tconst isOpenControlled = open !== undefined;\n\tconst isValueControlled = value !== undefined;\n\tconst isSelectorOpen = isOpenControlled ? open : internalOpen;\n\tconst selectedSuggestion = isValueControlled ? value : internalSelectedSuggestion;\n\tconst hasResource = resource !== null;\n\tconst initializedOpenCycleRef = useRef(false);\n\tconst hasOpenedRef = useRef(false);\n\tconst hasExplicitDefaultValueRef = useRef(defaultValue !== undefined);\n\n\tconst setSelectorOpen = useCallback((nextOpen: boolean) => {\n\t\tif (!isOpenControlled) setInternalOpen(nextOpen);\n\t\tonOpenChange?.(nextOpen);\n\t}, [isOpenControlled, onOpenChange]);\n\n\tconst setSelectedSuggestion = useCallback((selection: TSuggestion | null) => {\n\t\tif (!isValueControlled) setInternalSelectedSuggestion(selection);\n\t\tonValueChange?.(selection);\n\t}, [isValueControlled, onValueChange]);\n\n\tconst openSelector = useCallback(() => {\n\t\tsetSelectorOpen(true);\n\t}, [setSelectorOpen]);\n\n\tuseEffect(() => {\n\t\tif (!isSelectorOpen) {\n\t\t\tinitializedOpenCycleRef.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (initializedOpenCycleRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tinitializedOpenCycleRef.current = true;\n\t\tconst isFirstOpen = !hasOpenedRef.current;\n\t\tlet initial: TSuggestion | null;\n\n\t\tif (isValueControlled) {\n\t\t\tinitial = value;\n\t\t} else if (isFirstOpen && hasExplicitDefaultValueRef.current) {\n\t\t\tinitial = internalSelectedSuggestion;\n\t\t} else {\n\t\t\tinitial = mapInitialSelected(resource);\n\t\t\tsetSelectedSuggestion(initial);\n\t\t}\n\n\t\thasOpenedRef.current = true;\n\t\tonDialogOpen?.(initial);\n\t}, [\n\t\tinternalSelectedSuggestion,\n\t\tisSelectorOpen,\n\t\tisValueControlled,\n\t\tmapInitialSelected,\n\t\tonDialogOpen,\n\t\tresource,\n\t\tsetSelectedSuggestion,\n\t\tvalue,\n\t]);\n\n\tconst closeSelector = useCallback(() => {\n\t\tif (isConfirming) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSelectorOpen(false);\n\t\tsetSelectedSuggestion(null);\n\t\tonDialogClose?.();\n\t}, [isConfirming, onDialogClose, setSelectedSuggestion, setSelectorOpen]);\n\n\tconst canConfirmSelection = useMemo(() => {\n\t\tif (selectedSuggestion === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!isConfirmDisabled) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !isConfirmDisabled(selectedSuggestion);\n\t}, [isConfirmDisabled, selectedSuggestion]);\n\n\tconst confirmSelection = useCallback(async () => {\n\t\tif (\n\t\t\tisConfirming ||\n\t\t\t!canConfirmSelection ||\n\t\t\tselectedSuggestion === null\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsConfirming(true);\n\n\t\ttry {\n\t\t\tawait onConfirmSelection(selectedSuggestion);\n\t\t\tsetSelectorOpen(false);\n\t\t\tsetSelectedSuggestion(null);\n\t\t\tonDialogClose?.();\n\t\t} catch (error) {\n\t\t\tif (import.meta.env?.DEV) {\n\t\t\t\tconsole.warn('SharedResourceCard confirmation failed:', error);\n\t\t\t}\n\t\t\tonError?.(error, selectedSuggestion);\n\t\t} finally {\n\t\t\tsetIsConfirming(false);\n\t\t}\n\t}, [\n\t\tcanConfirmSelection,\n\t\tisConfirming,\n\t\tonConfirmSelection,\n\t\tonDialogClose,\n\t\tonError,\n\t\tselectedSuggestion,\n\t\tsetSelectedSuggestion,\n\t\tsetSelectorOpen,\n\t]);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tresource,\n\t\t\thasResource,\n\t\t\tisSelectorOpen,\n\t\t\tisConfirming,\n\t\t\tselectedSuggestion,\n\t\t\tsetSelectedSuggestion,\n\t\t\topenSelector,\n\t\t\tcloseSelector,\n\t\t\tconfirmSelection,\n\t\t\tcanConfirmSelection,\n\t\t}),\n\t\t[\n\t\t\tcanConfirmSelection,\n\t\t\tcloseSelector,\n\t\t\tconfirmSelection,\n\t\t\thasResource,\n\t\t\tisConfirming,\n\t\t\tisSelectorOpen,\n\t\t\topenSelector,\n\t\t\tresource,\n\t\t\tselectedSuggestion,\n\t\t\tsetSelectedSuggestion,\n\t\t],\n\t);\n}\n","import { Stack } from '../../../base/structure';\n/**\n * Default partial implementations for `<SharedResourceCard>`.\n *\n * Consumers can override any of these by passing\n * `ResourceContentComponent` / `EmptyContentComponent` /\n * `selector.DialogContentComponent` / `selector.DialogSummaryComponent`\n * to `<SharedResourceCard>`. Strings flow through the `strings` prop\n * deep-merged over `defaultSharedResourceCardStrings`.\n */\nimport { Button } from '../../../base/buttons';\nimport { EmptyState } from '../../../blocks/data-display';\nimport { DisplayLabel, Text } from '../../../typography';\nimport { useStrings, type StringsProp } from '../../../../lib/strings';\nimport { PackageOpen } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { defaultSharedResourceCardStrings, type SharedResourceCardStrings } from '../resource-assignment.strings';\nimport type {\n\tSharedResourceCardContentProps,\n\tSharedResourceCardDialogContentProps,\n\tSharedResourceCardDialogSummaryProps,\n\tSharedResourceSelectorComponentProps,\n} from '../resource-assignment.types';\n\ntype DefaultStrings = StringsProp<SharedResourceCardStrings>;\n\nexport function DefaultDialogSummary<TResource, TSuggestion>({\n\tcontext,\n\tstrings,\n\tgetSelectionLabel,\n}: SharedResourceCardDialogSummaryProps<TResource, TSuggestion> & {\n\t/** Overrides this surface's own copy. */\n\tstrings?: DefaultStrings;\n\t/** Builds the summary shown for the current selection. */\n\tgetSelectionLabel?: (selection: TSuggestion) => ReactNode;\n}) {\n\tconst s = useStrings(defaultSharedResourceCardStrings, strings);\n\tconst selected = context.selectedSuggestion;\n\n\tif (selected === null) {\n\t\treturn null;\n\t}\n\n\tconst label = getSelectionLabel?.(selected) ?? (\n\t\ttypeof selected === 'object' &&\n\t\tselected !== null &&\n\t\t'label' in selected &&\n\t\ttypeof selected.label === 'string'\n\t\t\t? selected.label\n\t\t\t: null\n\t);\n\n\tif (label === null || label === undefined || label === '') {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Stack gap=\"dense\" className=\"default-dialog-summary--component shared-resource-card--dialog-summary\">\n\t\t\t<DisplayLabel>{s.currentlySelected}</DisplayLabel>\n\t\t\t<Text type=\"inherit\">{label}</Text>\n\t\t</Stack>\n\t);\n}\nDefaultDialogSummary.displayName = 'DefaultDialogSummary';\n\nexport function DefaultResourceContent<TResource, TSuggestion>({\n\tcontext: _context,\n\tstrings,\n}: SharedResourceCardContentProps<TResource, TSuggestion> & { strings?: DefaultStrings }) {\n\tconst s = useStrings(defaultSharedResourceCardStrings, strings);\n\treturn <Text type=\"secondary\" className=\"default-resource-content--component\">{s.noResourceContent}</Text>;\n}\nDefaultResourceContent.displayName = 'DefaultResourceContent';\n\nexport function DefaultEmptyContent<TResource, TSuggestion>({\n\tcontext,\n\tstrings,\n}: SharedResourceCardContentProps<TResource, TSuggestion> & { strings?: DefaultStrings }) {\n\tconst s = useStrings(defaultSharedResourceCardStrings, strings);\n\treturn (\n\t\t<EmptyState\n\t\t\ttitle={s.noResourceSelected}\n\t\t\tdescription={false}\n\t\t\tmedia={<PackageOpen className=\"size-icon\" />}\n\t\t\tmediaVariant=\"icon-soft\"\n\t\t\tactions={<Button\n\t\t\t\ttone=\"secondary\"\n\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\tonClick={context.openSelector}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t{s.changeAction}\n\t\t\t</Button>}\n\t\t\tclassName=\"default-empty-content--component\"\n\t\t/>\n\t);\n}\nDefaultEmptyContent.displayName = 'DefaultEmptyContent';\n\nexport function DefaultDialogContent<\n\tTResource,\n\tTSuggestion,\n\tTSelectorProps extends object = Record<never, never>,\n>({\n\tSelectorComponent,\n\tselectorProps,\n\tcontext,\n}: SharedResourceCardDialogContentProps<TResource, TSuggestion, TSelectorProps>) {\n\tconst componentProps = {\n\t\t...(selectorProps ?? {} as TSelectorProps),\n\t\tonSelect: context.setSelectedSuggestion,\n\t\tselected: context.selectedSuggestion,\n\t\tinModal: true,\n\t\tlockOnSelect: false,\n\t\tcontext: 'dialog' as const,\n\t} as SharedResourceSelectorComponentProps<TSuggestion, TSelectorProps>;\n\n\treturn (\n\t\t<div className=\"default-dialog-content--component\">\n\t\t\t<SelectorComponent {...componentProps} />\n\t\t</div>\n\t);\n}\nDefaultDialogContent.displayName = 'DefaultDialogContent';\n","import { Eye } from 'lucide-react';\nimport { type ReactNode, useMemo } from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { CardPrimaryAction } from '../../base/cards';\nimport { ContentBlock } from '../../base/display';\nimport { Stack } from '../../base/structure';\nimport { Text } from '../../typography';\nimport { ActionDialog } from '../overlays';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultSharedResourceCardStrings } from './resource-assignment.strings';\nimport { type SharedResourceCardProps } from './resource-assignment.types';\nimport { useSharedResourceCard } from './hooks';\nimport {\n\tDefaultDialogContent,\n\tDefaultDialogSummary,\n\tDefaultEmptyContent,\n\tDefaultResourceContent,\n} from './partials';\n\n/**\n * Stateful, card-free relationship assignment workflow.\n *\n * Consumers own persisted resources, selector data, mutations, routing, and\n * translations. The feature owns pending selection, confirmation state,\n * failure handling, and the default assignment presentation.\n */\nexport function SharedResourceCard<\n\tTResource,\n\tTSuggestion,\n\tTSelectorProps extends object = Record<never, never>,\n>({\n\ticon,\n\ttitle,\n\tdescription,\n\tclassName,\n\tcontentClassName,\n\talert,\n\talertTone,\n\tactions,\n\theaderAction,\n\tfooterText,\n\tresource,\n\tselector,\n\tsections,\n\tsectionsClassName,\n\tviewAction,\n\tviewLink,\n\tResourceContentComponent,\n\tEmptyContentComponent,\n\trenderResourceContent,\n\trenderEmptyContent,\n\tstrings: stringsProp,\n}: SharedResourceCardProps<TResource, TSuggestion, TSelectorProps>) {\n\tconst strings = useStrings(defaultSharedResourceCardStrings, stringsProp);\n\tconst selectorContext = useSharedResourceCard<TResource, TSuggestion>({\n\t\tresource,\n\t\tmapInitialSelected:\n\t\t\tselector?.mapInitialSelected ?? (() => null as TSuggestion | null),\n\t\tonConfirmSelection:\n\t\t\tselector?.onConfirmSelection ?? (() => undefined),\n\t\tisConfirmDisabled: selector?.isConfirmDisabled,\n\t\tonDialogOpen: selector?.onDialogOpen,\n\t\tonDialogClose: selector?.onDialogClose,\n\t\tonError: selector?.onError,\n\t\topen: selector?.open,\n\t\tdefaultOpen: selector?.defaultOpen,\n\t\tonOpenChange: selector?.onOpenChange,\n\t\tvalue: selector?.value,\n\t\tdefaultValue: selector?.defaultValue,\n\t\tonValueChange: selector?.onValueChange,\n\t});\n\n\tconst canUseSelector = selector !== undefined;\n\tconst selectorActionLabel = selector?.actionLabel?.trim();\n\tconst visibleBaseActionCount = actions?.filter((action) => action.visible !== false).length ?? 0;\n\t// The default empty state already carries the selector call to action, so\n\t// the header does not repeat it until a resource is assigned.\n\tconst usesDefaultEmptyAction = canUseSelector\n\t\t&& !selectorContext.hasResource\n\t\t&& !renderEmptyContent\n\t\t&& !EmptyContentComponent;\n\tconst shouldInlineSelectorAction = Boolean(\n\t\tcanUseSelector && selectorActionLabel && visibleBaseActionCount === 0 && !usesDefaultEmptyAction,\n\t);\n\tconst resolvedActions = useMemo(() => {\n\t\tconst baseActions = actions ?? [];\n\n\t\tif (!canUseSelector || !selectorActionLabel || usesDefaultEmptyAction) {\n\t\t\treturn baseActions.length > 0 ? baseActions : undefined;\n\t\t}\n\n\t\tif (shouldInlineSelectorAction) {\n\t\t\treturn baseActions.length > 0 ? baseActions : undefined;\n\t\t}\n\n\t\treturn [\n\t\t\t...baseActions,\n\t\t\t{\n\t\t\t\tid: 'shared-resource-selector-change',\n\t\t\t\tlabel: selectorActionLabel,\n\t\t\t\tonClick: selectorContext.openSelector,\n\t\t\t},\n\t\t];\n\t}, [\n\t\tactions,\n\t\tcanUseSelector,\n\t\tselectorActionLabel,\n\t\tselectorContext.openSelector,\n\t\tshouldInlineSelectorAction,\n\t\tusesDefaultEmptyAction,\n\t]);\n\tconst resolvedHeaderAction = headerAction || shouldInlineSelectorAction ? (\n\t\t<>\n\t\t\t{headerAction}\n\t\t\t{shouldInlineSelectorAction && (\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tonClick={selectorContext.openSelector}\n\t\t\t\t\tclassName=\"shared-resource-card--selector-action\"\n\t\t\t\t>\n\t\t\t\t\t{selectorActionLabel}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</>\n\t) : undefined;\n\n\tconst resourceContent: ReactNode = useMemo(() => {\n\t\tif (renderResourceContent) {\n\t\t\treturn renderResourceContent(selectorContext);\n\t\t}\n\n\t\tif (ResourceContentComponent) {\n\t\t\tconst ContentComponent = ResourceContentComponent;\n\t\t\treturn <ContentComponent context={selectorContext} />;\n\t\t}\n\n\t\tif (Array.isArray(sections) && sections.length > 0) {\n\t\t\tconst visibleSections = sections.filter((section) => {\n\t\t\t\treturn section.when ? section.when(selectorContext) : true;\n\t\t\t});\n\n\t\t\tif (visibleSections.length > 0) {\n\t\t\t\treturn (\n\t\t\t\t\t<div className={sectionsClassName ?? 'grid gap-space-lg'}>\n\t\t\t\t\t\t{visibleSections.map((section) => {\n\t\t\t\t\t\t\tconst SectionComponent = section.Component;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={section.id} className={section.className}>\n\t\t\t\t\t\t\t\t\t<SectionComponent context={selectorContext} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn <DefaultResourceContent context={selectorContext} strings={strings} />;\n\t}, [\n\t\tResourceContentComponent,\n\t\trenderResourceContent,\n\t\tsections,\n\t\tsectionsClassName,\n\t\tselectorContext,\n\t\tstrings,\n\t]);\n\n\tconst emptyContent: ReactNode = useMemo(() => {\n\t\tif (renderEmptyContent) {\n\t\t\treturn renderEmptyContent(selectorContext);\n\t\t}\n\n\t\tif (EmptyContentComponent) {\n\t\t\tconst ContentComponent = EmptyContentComponent;\n\t\t\treturn <ContentComponent context={selectorContext} />;\n\t\t}\n\n\t\tif (!canUseSelector) {\n\t\t\treturn <Text type=\"secondary\">{strings.noResourceSelected}</Text>;\n\t\t}\n\n\t\treturn <DefaultEmptyContent context={selectorContext} strings={strings} />;\n\t}, [\n\t\tEmptyContentComponent,\n\t\tcanUseSelector,\n\t\trenderEmptyContent,\n\t\tselectorContext,\n\t\tstrings,\n\t]);\n\n\tconst DialogContentComponent = selector?.DialogContentComponent;\n\tconst DialogSummaryComponent = selector?.DialogSummaryComponent;\n\tconst SelectorComponent = selector?.SelectorComponent;\n\tconst selectorProps = selector?.selectorProps;\n\tconst dialogContentProps = selector?.dialogContentProps ?? {};\n\tconst hasResource = selectorContext.hasResource;\n\tconst cardBody = hasResource ? resourceContent : emptyContent;\n\tconst shouldRenderDialog = Boolean(\n\t\tcanUseSelector && selector && SelectorComponent,\n\t);\n\tconst hasCustomViewAction = viewAction !== undefined;\n\tlet viewActionContent: ReactNode = null;\n\n\tif (hasResource && hasCustomViewAction) {\n\t\tviewActionContent = viewAction;\n\t} else if (hasResource && viewLink) {\n\t\tviewActionContent = (\n\t\t\t<CardPrimaryAction href={viewLink.href} icon={Eye}>\n\t\t\t\t{viewLink.label}\n\t\t\t</CardPrimaryAction>\n\t\t);\n\t}\n\n\tconst viewActionNode = viewActionContent === null || viewActionContent === false\n\t\t? null\n\t\t: (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'shared-resource-card--view-action',\n\t\t\t\t\t!hasCustomViewAction && viewLink?.className,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{viewActionContent}\n\t\t\t</div>\n\t\t);\n\tconst dialogNode =\n\t\tshouldRenderDialog && selector && SelectorComponent ? (\n\t\t<ActionDialog\n\t\t\t\topen={selectorContext.isSelectorOpen}\n\t\t\t\tonOpenChange={(open) => {\n\t\t\t\t\tif (!open) {\n\t\t\t\t\t\tselectorContext.closeSelector();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\ttitle={selector.title}\n\t\t\t\tdescription={selector.description}\n\t\t\t\tsize={selector.dialogSize ?? '2xl'}\n\t\t\t\tshowCancel={false}\n\t\t\t\tshowConfirm={false}\n\t\t\t\tfooter={\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\tgap=\"sm\"\n\t\t\t\t\t\talign={{ base: 'stretch', sm: 'center' }}\n\t\t\t\t\t\tjustify=\"end\"\n\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\tonClick={selectorContext.closeSelector}\n\t\t\t\t\t\t\tdisabled={selectorContext.isConfirming}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selector.cancelText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button tone=\"primary\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tvoid selectorContext.confirmSelection();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t!selectorContext.canConfirmSelection ||\n\t\t\t\t\t\t\t\tselectorContext.isConfirming\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tloading={selectorContext.isConfirming}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selector.confirmText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Stack>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Stack gap=\"lg\" className=\"shared-resource-card--dialog-body\">\n\t\t\t\t\t{DialogContentComponent ? (\n\t\t\t\t\t\t<DialogContentComponent\n\t\t\t\t\t\t\tSelectorComponent={SelectorComponent}\n\t\t\t\t\t\t\tselectorProps={selectorProps}\n\t\t\t\t\t\t\tcontext={selectorContext}\n\t\t\t\t\t\t\t{...dialogContentProps}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DefaultDialogContent<TResource, TSuggestion, TSelectorProps>\n\t\t\t\t\t\t\tSelectorComponent={SelectorComponent}\n\t\t\t\t\t\t\tselectorProps={selectorProps}\n\t\t\t\t\t\t\tcontext={selectorContext}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{DialogSummaryComponent ? (\n\t\t\t\t\t\t<DialogSummaryComponent context={selectorContext} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DefaultDialogSummary\n\t\t\t\t\t\t\tcontext={selectorContext}\n\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t\tgetSelectionLabel={selector.getSelectionLabel}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t</ActionDialog>\n\t\t) : null;\n\n\treturn (\n\t\t<>\n\t\t\t<ContentBlock\n\t\t\t\ticon={icon}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tdata-state={hasResource ? 'selected' : 'empty'}\n\t\t\t\tclassName={cn('shared-resource-card--component', className)}\n\t\t\t\tcontentGap=\"lg\"\n\t\t\t\tcontentClassName={contentClassName}\n\t\t\t\talert={alert}\n\t\t\t\talertTone={alertTone}\n\t\t\t\tactions={resolvedActions}\n\t\t\t\theaderAction={resolvedHeaderAction}\n\t\t\t\tfooterText={footerText}\n\t\t\t>\n\t\t\t\t{cardBody}\n\t\t\t\t{viewActionNode}\n\t\t\t</ContentBlock>\n\t\t\t{dialogNode}\n\t\t</>\n\t);\n}\n\nSharedResourceCard.displayName = 'SharedResourceCard';\n"],"mappings":"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"}
1
+ {"version":3,"file":"resource-assignment.js","names":["_Fragment","ContentComponent","Text","DisplayLabel","focusRecipes","Button","Stack","Card","CardPrimaryAction","ActionDialog","EmptyState","Fragment$1","defaultSharedResourceCardStrings","useSharedResourceCard","internalOpen","setInternalOpen","useState","defaultOpen","isConfirming","setIsConfirming","confirmError","setConfirmError","internalSelectedSuggestion","setInternalSelectedSuggestion","defaultValue","isOpenControlled","open","isValueControlled","value","isSelectorOpen","selectedSuggestion","hasResource","resource","initializedOpenCycleRef","useRef","hasOpenedRef","hasExplicitDefaultValueRef","setSelectorOpen","useCallback","nextOpen","onOpenChange","setSelectedSuggestion","selection","onValueChange","openSelector","isFirstOpen","initial","mapInitialSelected","onDialogOpen","closeSelector","onDialogClose","canConfirmSelection","useMemo","isConfirmDisabled","confirmSelection","onConfirmSelection","error","onError","assignmentBlockProps","cn","className","contentClassName","DefaultDialogSummary","useStrings","strings","selected","context","label","getSelectionLabel","DefaultResourceContent","_context","s","DefaultEmptyContent","PackageOpen","DefaultDialogContent","componentProps","selectorProps","SelectorComponent","SharedResourceCard","stringsProp","cardRef","selectorActionRef","selectorOpenerRef","focusAfterSelector","opener","selectorContext","selector","canUseSelector","selectorActionLabel","visibleBaseActionCount","actions","action","usesDefaultEmptyAction","renderEmptyContent","EmptyContentComponent","shouldInlineSelectorAction","resolvedActions","baseActions","resolvedHeaderAction","headerAction","resourceContent","renderResourceContent","ResourceContentComponent","sections","visibleSections","section","sectionsClassName","SectionComponent","emptyContent","DialogContentComponent","DialogSummaryComponent","dialogContentProps","confirmErrorMessage","cardBody","shouldRenderDialog","hasCustomViewAction","viewAction","viewActionContent","viewLink","Eye","viewActionNode","dialogNode","footerText"],"sources":["../../src/components/features/resource-assignment/resource-assignment.strings.ts","../../src/components/features/resource-assignment/hooks/use-shared-resource-card.ts","../../src/components/features/resource-assignment/partials/assignment-surface.ts","../../src/components/features/resource-assignment/partials/default-shared-resource-partials.tsx","../../src/components/features/resource-assignment/resource-assignment.tsx"],"sourcesContent":["/**\n * Default user-facing strings for the resource-assignment feature.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <SharedResourceCard\n * strings={{ noResourceSelected: t('resourceAssignment.empty') }}\n * …\n * />\n */\n\nexport interface SharedResourceCardStrings {\n\tcurrentlySelected: string;\n\tnoResourceContent: string;\n\tnoResourceSelected: string;\n\t/** Empty-state action that opens the selector for a first assignment. */\n\tassignAction?: string;\n\t/** Accessible name of the selector dialog's corner dismiss control. */\n\tcloseLabel?: string;\n\t/** Shown in the selector dialog when confirmation rejects without a message. */\n\tconfirmErrorMessage?: string;\n}\n\nexport const defaultSharedResourceCardStrings: SharedResourceCardStrings = {\n\tcurrentlySelected: 'Currently selected:',\n\tnoResourceContent: 'No resource content configured.',\n\tnoResourceSelected: 'No resource selected.',\n\tassignAction: 'Choose',\n\tcloseLabel: 'Close',\n\tconfirmErrorMessage: 'The selection could not be saved. Try again.',\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type { SharedResourceCardContext } from '../resource-assignment.types';\n\nexport type UseSharedResourceCardOptions<TResource, TSuggestion> = {\n\t/** Persisted assignment. `null` is the only empty state. */\n\tresource: TResource | null;\n\t/** Map persisted data when neither `value` nor first-open `defaultValue` supplies selection. */\n\tmapInitialSelected: (resource: TResource | null) => TSuggestion | null;\n\t/** Persist a confirmed suggestion. Returned promises are awaited. */\n\tonConfirmSelection: (selection: TSuggestion) => void | Promise<void>;\n\t/** Disable confirmation for a pending candidate. */\n\tisConfirmDisabled?: (selection: TSuggestion | null) => boolean;\n\t/** Called once per closed-to-open cycle, including an initially open selector. */\n\tonDialogOpen?: (selection: TSuggestion | null) => void;\n\t/** Called after selection mode closes or confirmation succeeds. */\n\tonDialogClose?: () => void;\n\t/** Called when `onConfirmSelection` throws. Library DEV-logs the error;\n\t * consumer wires telemetry. */\n\tonError?: (error: unknown, selection: TSuggestion) => void;\n\t/** Controlled selector visibility. An initial `true` value initializes selection. */\n\topen?: boolean;\n\t/** Initial selector visibility; `true` initializes selection after mount. */\n\tdefaultOpen?: boolean;\n\t/** Controlled visibility callback and uncontrolled visibility observer. */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Controlled pending suggestion; authoritative over mapping on every open. */\n\tvalue?: TSuggestion | null;\n\t/** Initial uncontrolled suggestion; authoritative over mapping on the first open. */\n\tdefaultValue?: TSuggestion | null;\n\t/** Controlled selection callback and uncontrolled selection observer. */\n\tonValueChange?: (selection: TSuggestion | null) => void;\n};\n\nexport type UseSharedResourceCardResult<TResource, TSuggestion> =\n\tSharedResourceCardContext<TResource, TSuggestion>;\n\nexport function useSharedResourceCard<TResource, TSuggestion>({\n\tresource,\n\tmapInitialSelected,\n\tonConfirmSelection,\n\tisConfirmDisabled,\n\tonDialogOpen,\n\tonDialogClose,\n\tonError,\n\topen,\n\tdefaultOpen = false,\n\tonOpenChange,\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n}: UseSharedResourceCardOptions<TResource, TSuggestion>): UseSharedResourceCardResult<TResource, TSuggestion> {\n\tconst [internalOpen, setInternalOpen] = useState(defaultOpen);\n\tconst [isConfirming, setIsConfirming] = useState(false);\n\tconst [confirmError, setConfirmError] = useState<unknown>(null);\n\tconst [internalSelectedSuggestion, setInternalSelectedSuggestion] =\n\t\tuseState<TSuggestion | null>(defaultValue ?? null);\n\tconst isOpenControlled = open !== undefined;\n\tconst isValueControlled = value !== undefined;\n\tconst isSelectorOpen = isOpenControlled ? open : internalOpen;\n\tconst selectedSuggestion = isValueControlled ? value : internalSelectedSuggestion;\n\tconst hasResource = resource !== null;\n\tconst initializedOpenCycleRef = useRef(false);\n\tconst hasOpenedRef = useRef(false);\n\tconst hasExplicitDefaultValueRef = useRef(defaultValue !== undefined);\n\n\tconst setSelectorOpen = useCallback((nextOpen: boolean) => {\n\t\tif (!isOpenControlled) setInternalOpen(nextOpen);\n\t\tonOpenChange?.(nextOpen);\n\t}, [isOpenControlled, onOpenChange]);\n\n\tconst setSelectedSuggestion = useCallback((selection: TSuggestion | null) => {\n\t\t// A new candidate, or a closed selector, makes the last failure stale.\n\t\tsetConfirmError(null);\n\t\tif (!isValueControlled) setInternalSelectedSuggestion(selection);\n\t\tonValueChange?.(selection);\n\t}, [isValueControlled, onValueChange]);\n\n\tconst openSelector = useCallback(() => {\n\t\tsetSelectorOpen(true);\n\t}, [setSelectorOpen]);\n\n\tuseEffect(() => {\n\t\tif (!isSelectorOpen) {\n\t\t\tinitializedOpenCycleRef.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (initializedOpenCycleRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tinitializedOpenCycleRef.current = true;\n\t\tsetConfirmError(null);\n\t\tconst isFirstOpen = !hasOpenedRef.current;\n\t\tlet initial: TSuggestion | null;\n\n\t\tif (isValueControlled) {\n\t\t\tinitial = value;\n\t\t} else if (isFirstOpen && hasExplicitDefaultValueRef.current) {\n\t\t\tinitial = internalSelectedSuggestion;\n\t\t} else {\n\t\t\tinitial = mapInitialSelected(resource);\n\t\t\tsetSelectedSuggestion(initial);\n\t\t}\n\n\t\thasOpenedRef.current = true;\n\t\tonDialogOpen?.(initial);\n\t}, [\n\t\tinternalSelectedSuggestion,\n\t\tisSelectorOpen,\n\t\tisValueControlled,\n\t\tmapInitialSelected,\n\t\tonDialogOpen,\n\t\tresource,\n\t\tsetSelectedSuggestion,\n\t\tvalue,\n\t]);\n\n\tconst closeSelector = useCallback(() => {\n\t\tif (isConfirming) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSelectorOpen(false);\n\t\tsetSelectedSuggestion(null);\n\t\tonDialogClose?.();\n\t}, [isConfirming, onDialogClose, setSelectedSuggestion, setSelectorOpen]);\n\n\tconst canConfirmSelection = useMemo(() => {\n\t\tif (selectedSuggestion === null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!isConfirmDisabled) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !isConfirmDisabled(selectedSuggestion);\n\t}, [isConfirmDisabled, selectedSuggestion]);\n\n\tconst confirmSelection = useCallback(async () => {\n\t\tif (\n\t\t\tisConfirming ||\n\t\t\t!canConfirmSelection ||\n\t\t\tselectedSuggestion === null\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsConfirming(true);\n\t\tsetConfirmError(null);\n\n\t\ttry {\n\t\t\tawait onConfirmSelection(selectedSuggestion);\n\t\t\tsetSelectorOpen(false);\n\t\t\tsetSelectedSuggestion(null);\n\t\t\tonDialogClose?.();\n\t\t} catch (error) {\n\t\t\tif (import.meta.env?.DEV) {\n\t\t\t\tconsole.warn('SharedResourceCard confirmation failed:', error);\n\t\t\t}\n\t\t\tsetConfirmError(error ?? new Error('SharedResourceCard confirmation failed'));\n\t\t\tonError?.(error, selectedSuggestion);\n\t\t} finally {\n\t\t\tsetIsConfirming(false);\n\t\t}\n\t}, [\n\t\tcanConfirmSelection,\n\t\tisConfirming,\n\t\tonConfirmSelection,\n\t\tonDialogClose,\n\t\tonError,\n\t\tselectedSuggestion,\n\t\tsetSelectedSuggestion,\n\t\tsetSelectorOpen,\n\t]);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tresource,\n\t\t\thasResource,\n\t\t\tisSelectorOpen,\n\t\t\tisConfirming,\n\t\t\tconfirmError,\n\t\t\tselectedSuggestion,\n\t\t\tsetSelectedSuggestion,\n\t\t\topenSelector,\n\t\t\tcloseSelector,\n\t\t\tconfirmSelection,\n\t\t\tcanConfirmSelection,\n\t\t}),\n\t\t[\n\t\t\tcanConfirmSelection,\n\t\t\tcloseSelector,\n\t\t\tconfirmError,\n\t\t\tconfirmSelection,\n\t\t\thasResource,\n\t\t\tisConfirming,\n\t\t\tisSelectorOpen,\n\t\t\topenSelector,\n\t\t\tresource,\n\t\t\tselectedSuggestion,\n\t\t\tsetSelectedSuggestion,\n\t\t],\n\t);\n}\n","import { cn } from '../../../../lib/utils';\n\n/**\n * The assignment card used to render through the deprecated ContentBlock\n * adapter and now composes Card directly. It keeps the DOM hooks that adapter\n * painted, so consumer selectors written against them still match.\n */\nexport function assignmentBlockProps(className?: string, contentClassName?: string) {\n\treturn {\n\t\tsurface: 'flat',\n\t\tpadding: 'none',\n\t\t'data-component': 'content-block',\n\t\t'data-slot': 'content-block',\n\t\tclassName: cn('content-block--component', className),\n\t\theaderClassName: 'content-block--header',\n\t\tcontentClassName: cn('content-block--content', contentClassName),\n\t\tfooterClassName: 'content-block--footer',\n\t} as const;\n}\n","import { Stack } from '../../../base/structure';\n/**\n * Default partial implementations for `<SharedResourceCard>`.\n *\n * Consumers can override any of these by passing\n * `ResourceContentComponent` / `EmptyContentComponent` /\n * `selector.DialogContentComponent` / `selector.DialogSummaryComponent`\n * to `<SharedResourceCard>`. Strings flow through the `strings` prop\n * deep-merged over `defaultSharedResourceCardStrings`.\n */\nimport { Button } from '../../../base/buttons';\nimport { EmptyState } from '../../../blocks/data-display';\nimport { DisplayLabel, Text } from '../../../typography';\nimport { useStrings, type StringsProp } from '../../../../lib/strings';\nimport { PackageOpen } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { defaultSharedResourceCardStrings, type SharedResourceCardStrings } from '../resource-assignment.strings';\nimport type {\n\tSharedResourceCardContentProps,\n\tSharedResourceCardDialogContentProps,\n\tSharedResourceCardDialogSummaryProps,\n\tSharedResourceSelectorComponentProps,\n} from '../resource-assignment.types';\n\ntype DefaultStrings = StringsProp<SharedResourceCardStrings>;\n\nexport function DefaultDialogSummary<TResource, TSuggestion>({\n\tcontext,\n\tstrings,\n\tgetSelectionLabel,\n}: SharedResourceCardDialogSummaryProps<TResource, TSuggestion> & {\n\t/** Overrides this surface's own copy. */\n\tstrings?: DefaultStrings;\n\t/** Builds the summary shown for the current selection. */\n\tgetSelectionLabel?: (selection: TSuggestion) => ReactNode;\n}) {\n\tconst s = useStrings(defaultSharedResourceCardStrings, strings);\n\tconst selected = context.selectedSuggestion;\n\n\tif (selected === null) {\n\t\treturn null;\n\t}\n\n\tconst label = getSelectionLabel?.(selected) ?? (\n\t\ttypeof selected === 'object' &&\n\t\tselected !== null &&\n\t\t'label' in selected &&\n\t\ttypeof selected.label === 'string'\n\t\t\t? selected.label\n\t\t\t: null\n\t);\n\n\tif (label === null || label === undefined || label === '') {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Stack gap=\"dense\" className=\"default-dialog-summary--component shared-resource-card--dialog-summary\">\n\t\t\t<DisplayLabel>{s.currentlySelected}</DisplayLabel>\n\t\t\t<Text type=\"inherit\">{label}</Text>\n\t\t</Stack>\n\t);\n}\nDefaultDialogSummary.displayName = 'DefaultDialogSummary';\n\nexport function DefaultResourceContent<TResource, TSuggestion>({\n\tcontext: _context,\n\tstrings,\n}: SharedResourceCardContentProps<TResource, TSuggestion> & { strings?: DefaultStrings }) {\n\tconst s = useStrings(defaultSharedResourceCardStrings, strings);\n\treturn <Text type=\"secondary\" className=\"default-resource-content--component\">{s.noResourceContent}</Text>;\n}\nDefaultResourceContent.displayName = 'DefaultResourceContent';\n\nexport function DefaultEmptyContent<TResource, TSuggestion>({\n\tcontext,\n\tstrings,\n}: SharedResourceCardContentProps<TResource, TSuggestion> & { strings?: DefaultStrings }) {\n\tconst s = useStrings(defaultSharedResourceCardStrings, strings);\n\treturn (\n\t\t<EmptyState\n\t\t\ttitle={s.noResourceSelected}\n\t\t\tdescription={false}\n\t\t\tmedia={<PackageOpen className=\"size-icon\" />}\n\t\t\tmediaVariant=\"icon-soft\"\n\t\t\tactions={<Button\n\t\t\t\ttone=\"secondary\"\n\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\tonClick={context.openSelector}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t{s.assignAction ?? defaultSharedResourceCardStrings.assignAction}\n\t\t\t</Button>}\n\t\t\tclassName=\"default-empty-content--component\"\n\t\t/>\n\t);\n}\nDefaultEmptyContent.displayName = 'DefaultEmptyContent';\n\nexport function DefaultDialogContent<\n\tTResource,\n\tTSuggestion,\n\tTSelectorProps extends object = Record<never, never>,\n>({\n\tSelectorComponent,\n\tselectorProps,\n\tcontext,\n}: SharedResourceCardDialogContentProps<TResource, TSuggestion, TSelectorProps>) {\n\tconst componentProps = {\n\t\t...(selectorProps ?? {} as TSelectorProps),\n\t\tonSelect: context.setSelectedSuggestion,\n\t\tselected: context.selectedSuggestion,\n\t\tinModal: true,\n\t\tlockOnSelect: false,\n\t\tcontext: 'dialog' as const,\n\t} as SharedResourceSelectorComponentProps<TSuggestion, TSelectorProps>;\n\n\treturn (\n\t\t<div className=\"default-dialog-content--component\">\n\t\t\t<SelectorComponent {...componentProps} />\n\t\t</div>\n\t);\n}\nDefaultDialogContent.displayName = 'DefaultDialogContent';\n","import { Eye } from 'lucide-react';\nimport { type ReactNode, useCallback, useLayoutEffect, useMemo, useRef } from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { Card, CardPrimaryAction } from '../../base/cards';\nimport { Stack } from '../../base/structure';\nimport { Text } from '../../typography';\nimport { ActionDialog } from '../overlays';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultSharedResourceCardStrings } from './resource-assignment.strings';\nimport { type SharedResourceCardProps } from './resource-assignment.types';\nimport { useSharedResourceCard } from './hooks';\nimport { assignmentBlockProps } from './partials/assignment-surface';\nimport {\n\tDefaultDialogContent,\n\tDefaultDialogSummary,\n\tDefaultEmptyContent,\n\tDefaultResourceContent,\n} from './partials';\n\n/**\n * Stateful, card-free relationship assignment workflow.\n *\n * Consumers own persisted resources, selector data, mutations, routing, and\n * translations. The feature owns pending selection, confirmation state,\n * failure handling, and the default assignment presentation.\n */\nexport function SharedResourceCard<\n\tTResource,\n\tTSuggestion,\n\tTSelectorProps extends object = Record<never, never>,\n>({\n\ticon,\n\ttitle,\n\tdescription,\n\tclassName,\n\tcontentClassName,\n\talert,\n\talertTone,\n\tactions,\n\theaderAction,\n\tfooterText,\n\tresource,\n\tselector,\n\tsections,\n\tsectionsClassName,\n\tviewAction,\n\tviewLink,\n\tResourceContentComponent,\n\tEmptyContentComponent,\n\trenderResourceContent,\n\trenderEmptyContent,\n\tstrings: stringsProp,\n}: SharedResourceCardProps<TResource, TSuggestion, TSelectorProps>) {\n\tconst strings = useStrings(defaultSharedResourceCardStrings, stringsProp);\n\tconst cardRef = useRef<HTMLDivElement>(null);\n\tconst selectorActionRef = useRef<HTMLButtonElement>(null);\n\t/*\n\t * The overlay returns focus to the control that opened the selector. The\n\t * first assignment replaces that control (the empty-state action), so the\n\t * dialog's `finalFocus` names the change action instead, or the assignment\n\t * itself when the card has none.\n\t */\n\tconst selectorOpenerRef = useRef<Element | null>(null);\n\tconst focusAfterSelector = useCallback(() => {\n\t\tconst opener = selectorOpenerRef.current;\n\t\tif (opener instanceof HTMLElement && opener.isConnected && opener !== opener.ownerDocument.body) return true;\n\t\treturn selectorActionRef.current ?? cardRef.current;\n\t}, []);\n\tconst selectorContext = useSharedResourceCard<TResource, TSuggestion>({\n\t\tresource,\n\t\tmapInitialSelected:\n\t\t\tselector?.mapInitialSelected ?? (() => null as TSuggestion | null),\n\t\tonConfirmSelection:\n\t\t\tselector?.onConfirmSelection ?? (() => undefined),\n\t\tisConfirmDisabled: selector?.isConfirmDisabled,\n\t\tonDialogOpen: selector?.onDialogOpen,\n\t\tonDialogClose: selector?.onDialogClose,\n\t\tonError: selector?.onError,\n\t\topen: selector?.open,\n\t\tdefaultOpen: selector?.defaultOpen,\n\t\tonOpenChange: selector?.onOpenChange,\n\t\tvalue: selector?.value,\n\t\tdefaultValue: selector?.defaultValue,\n\t\tonValueChange: selector?.onValueChange,\n\t});\n\n\tconst isSelectorOpen = selectorContext.isSelectorOpen;\n\t// Remembered as the selector opens, before the dialog takes focus.\n\tuseLayoutEffect(() => {\n\t\tif (isSelectorOpen) selectorOpenerRef.current = cardRef.current?.ownerDocument.activeElement ?? null;\n\t}, [isSelectorOpen]);\n\n\tconst canUseSelector = selector !== undefined;\n\tconst selectorActionLabel = selector?.actionLabel?.trim();\n\tconst visibleBaseActionCount = actions?.filter((action) => action.visible !== false).length ?? 0;\n\t// The default empty state already carries the selector call to action, so\n\t// the header does not repeat it until a resource is assigned.\n\tconst usesDefaultEmptyAction = canUseSelector\n\t\t&& !selectorContext.hasResource\n\t\t&& !renderEmptyContent\n\t\t&& !EmptyContentComponent;\n\tconst shouldInlineSelectorAction = Boolean(\n\t\tcanUseSelector && selectorActionLabel && visibleBaseActionCount === 0 && !usesDefaultEmptyAction,\n\t);\n\tconst resolvedActions = useMemo(() => {\n\t\tconst baseActions = actions ?? [];\n\n\t\tif (!canUseSelector || !selectorActionLabel || usesDefaultEmptyAction) {\n\t\t\treturn baseActions.length > 0 ? baseActions : undefined;\n\t\t}\n\n\t\tif (shouldInlineSelectorAction) {\n\t\t\treturn baseActions.length > 0 ? baseActions : undefined;\n\t\t}\n\n\t\treturn [\n\t\t\t...baseActions,\n\t\t\t{\n\t\t\t\tid: 'shared-resource-selector-change',\n\t\t\t\tlabel: selectorActionLabel,\n\t\t\t\tonClick: selectorContext.openSelector,\n\t\t\t},\n\t\t];\n\t}, [\n\t\tactions,\n\t\tcanUseSelector,\n\t\tselectorActionLabel,\n\t\tselectorContext.openSelector,\n\t\tshouldInlineSelectorAction,\n\t\tusesDefaultEmptyAction,\n\t]);\n\tconst resolvedHeaderAction = headerAction || shouldInlineSelectorAction ? (\n\t\t<>\n\t\t\t{headerAction}\n\t\t\t{shouldInlineSelectorAction && (\n\t\t\t\t<Button\n\t\t\t\t\tref={selectorActionRef}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tonClick={selectorContext.openSelector}\n\t\t\t\t\tclassName=\"shared-resource-card--selector-action\"\n\t\t\t\t>\n\t\t\t\t\t{selectorActionLabel}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</>\n\t) : undefined;\n\n\tconst resourceContent: ReactNode = useMemo(() => {\n\t\tif (renderResourceContent) {\n\t\t\treturn renderResourceContent(selectorContext);\n\t\t}\n\n\t\tif (ResourceContentComponent) {\n\t\t\tconst ContentComponent = ResourceContentComponent;\n\t\t\treturn <ContentComponent context={selectorContext} />;\n\t\t}\n\n\t\tif (Array.isArray(sections) && sections.length > 0) {\n\t\t\tconst visibleSections = sections.filter((section) => {\n\t\t\t\treturn section.when ? section.when(selectorContext) : true;\n\t\t\t});\n\n\t\t\tif (visibleSections.length > 0) {\n\t\t\t\treturn (\n\t\t\t\t\t<div className={sectionsClassName ?? 'grid gap-space-lg'}>\n\t\t\t\t\t\t{visibleSections.map((section) => {\n\t\t\t\t\t\t\tconst SectionComponent = section.Component;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div key={section.id} className={section.className}>\n\t\t\t\t\t\t\t\t\t<SectionComponent context={selectorContext} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn <DefaultResourceContent context={selectorContext} strings={strings} />;\n\t}, [\n\t\tResourceContentComponent,\n\t\trenderResourceContent,\n\t\tsections,\n\t\tsectionsClassName,\n\t\tselectorContext,\n\t\tstrings,\n\t]);\n\n\tconst emptyContent: ReactNode = useMemo(() => {\n\t\tif (renderEmptyContent) {\n\t\t\treturn renderEmptyContent(selectorContext);\n\t\t}\n\n\t\tif (EmptyContentComponent) {\n\t\t\tconst ContentComponent = EmptyContentComponent;\n\t\t\treturn <ContentComponent context={selectorContext} />;\n\t\t}\n\n\t\tif (!canUseSelector) {\n\t\t\treturn <Text type=\"secondary\">{strings.noResourceSelected}</Text>;\n\t\t}\n\n\t\treturn <DefaultEmptyContent context={selectorContext} strings={strings} />;\n\t}, [\n\t\tEmptyContentComponent,\n\t\tcanUseSelector,\n\t\trenderEmptyContent,\n\t\tselectorContext,\n\t\tstrings,\n\t]);\n\n\tconst DialogContentComponent = selector?.DialogContentComponent;\n\tconst DialogSummaryComponent = selector?.DialogSummaryComponent;\n\tconst SelectorComponent = selector?.SelectorComponent;\n\tconst selectorProps = selector?.selectorProps;\n\tconst dialogContentProps = selector?.dialogContentProps ?? {};\n\tconst hasResource = selectorContext.hasResource;\n\tconst confirmError = selectorContext.confirmError;\n\tconst confirmErrorMessage = confirmError === null || confirmError === undefined\n\t\t? undefined\n\t\t: confirmError instanceof Error && confirmError.message\n\t\t\t? confirmError.message\n\t\t\t: strings.confirmErrorMessage ?? defaultSharedResourceCardStrings.confirmErrorMessage;\n\tconst cardBody = hasResource ? resourceContent : emptyContent;\n\tconst shouldRenderDialog = Boolean(\n\t\tcanUseSelector && selector && SelectorComponent,\n\t);\n\tconst hasCustomViewAction = viewAction !== undefined;\n\tlet viewActionContent: ReactNode = null;\n\n\tif (hasResource && hasCustomViewAction) {\n\t\tviewActionContent = viewAction;\n\t} else if (hasResource && viewLink) {\n\t\tviewActionContent = (\n\t\t\t<CardPrimaryAction href={viewLink.href} icon={Eye}>\n\t\t\t\t{viewLink.label}\n\t\t\t</CardPrimaryAction>\n\t\t);\n\t}\n\n\tconst viewActionNode = viewActionContent === null || viewActionContent === false\n\t\t? null\n\t\t: (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'shared-resource-card--view-action',\n\t\t\t\t\t!hasCustomViewAction && viewLink?.className,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{viewActionContent}\n\t\t\t</div>\n\t\t);\n\tconst dialogNode =\n\t\tshouldRenderDialog && selector && SelectorComponent ? (\n\t\t<ActionDialog\n\t\t\t\topen={selectorContext.isSelectorOpen}\n\t\t\t\tonOpenChange={(open) => {\n\t\t\t\t\tif (!open) {\n\t\t\t\t\t\tselectorContext.closeSelector();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tfinalFocus={focusAfterSelector}\n\t\t\t\ttitle={selector.title}\n\t\t\t\tdescription={selector.description}\n\t\t\t\tsize={selector.dialogSize ?? '2xl'}\n\t\t\t\tstrings={{ close: strings.closeLabel }}\n\t\t\t\ttone={confirmErrorMessage ? 'destructive' : 'neutral'}\n\t\t\t\talertMessage={confirmErrorMessage}\n\t\t\t\tshowCancel={false}\n\t\t\t\tshowConfirm={false}\n\t\t\t\tfooter={\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\tgap=\"sm\"\n\t\t\t\t\t\talign={{ base: 'stretch', sm: 'center' }}\n\t\t\t\t\t\tjustify=\"end\"\n\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\tonClick={selectorContext.closeSelector}\n\t\t\t\t\t\t\tdisabled={selectorContext.isConfirming}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selector.cancelText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button tone=\"primary\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tvoid selectorContext.confirmSelection();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t!selectorContext.canConfirmSelection ||\n\t\t\t\t\t\t\t\tselectorContext.isConfirming\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tloading={selectorContext.isConfirming}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selector.confirmText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Stack>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Stack gap=\"lg\" className=\"shared-resource-card--dialog-body\">\n\t\t\t\t\t{DialogContentComponent ? (\n\t\t\t\t\t\t<DialogContentComponent\n\t\t\t\t\t\t\tSelectorComponent={SelectorComponent}\n\t\t\t\t\t\t\tselectorProps={selectorProps}\n\t\t\t\t\t\t\tcontext={selectorContext}\n\t\t\t\t\t\t\t{...dialogContentProps}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DefaultDialogContent<TResource, TSuggestion, TSelectorProps>\n\t\t\t\t\t\t\tSelectorComponent={SelectorComponent}\n\t\t\t\t\t\t\tselectorProps={selectorProps}\n\t\t\t\t\t\t\tcontext={selectorContext}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{DialogSummaryComponent ? (\n\t\t\t\t\t\t<DialogSummaryComponent context={selectorContext} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DefaultDialogSummary\n\t\t\t\t\t\t\tcontext={selectorContext}\n\t\t\t\t\t\t\tstrings={strings}\n\t\t\t\t\t\t\tgetSelectionLabel={selector.getSelectionLabel}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t</ActionDialog>\n\t\t) : null;\n\n\treturn (\n\t\t<>\n\t\t\t<Card\n\t\t\t\tref={cardRef}\n\t\t\t\t// Focusable only by script: where focus lands when the selector's opener is gone.\n\t\t\t\ttabIndex={-1}\n\t\t\t\tdata-state={hasResource ? 'selected' : 'empty'}\n\t\t\t\t{...assignmentBlockProps(cn('shared-resource-card--component outline-none', focusRecipes.edge, className), contentClassName)}\n\t\t\t\ticon={icon}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tcontentGap=\"lg\"\n\t\t\t\talert={alert}\n\t\t\t\talertTone={alertTone}\n\t\t\t\tactions={resolvedActions}\n\t\t\t\theaderAction={resolvedHeaderAction}\n\t\t\t\tfooterSlot={footerText}\n\t\t\t>\n\t\t\t\t{cardBody}\n\t\t\t\t{viewActionNode}\n\t\t\t</Card>\n\t\t\t{dialogNode}\n\t\t</>\n\t);\n}\n\nSharedResourceCard.displayName = 'SharedResourceCard';\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,IAAaY,IAA8D;CAC1E,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB,cAAc;CACd,YAAY;CACZ,qBAAqB;AACtB;;;ACOA,SAAgBC,EAA8C,EAC7D,aACA,uBACA,uBACA,sBACA,iBACA,kBACA,YACA,SACA,iBAAc,IACd,iBACA,UACA,iBACA,oBAC6G;CAC7G,IAAM,CAACC,GAAcC,KAAmBC,EAASC,CAAW,GACtD,CAACC,GAAcC,KAAmBH,EAAS,EAAK,GAChD,CAACI,GAAcC,KAAmBL,EAAkB,IAAI,GACxD,CAACM,GAA4BC,KAClCP,EAA6BQ,KAAgB,IAAI,GAC5CC,IAAmBC,MAAS,KAAA,GAC5BC,IAAoBC,MAAU,KAAA,GAC9BC,IAAiBJ,IAAmBC,IAAOZ,GAC3CgB,IAAqBH,IAAoBC,IAAQN,GACjDS,IAAcC,MAAa,MAC3BC,IAA0BC,EAAO,EAAK,GACtCC,IAAeD,EAAO,EAAK,GAC3BE,KAA6BF,EAAOV,MAAiB,KAAA,CAAS,GAE9Da,IAAkBC,GAAa,MAAsB;EAE1D,AADKb,KAAkBV,EAAgBwB,CAAQ,GAC/CC,IAAeD,CAAQ;CACxB,GAAG,CAACd,GAAkBe,CAAY,CAAC,GAE7BC,IAAwBH,GAAa,MAAkC;EAI5E,AAFAjB,EAAgB,IAAI,GACfM,KAAmBJ,EAA8BmB,CAAS,GAC/DC,IAAgBD,CAAS;CAC1B,GAAG,CAACf,GAAmBgB,CAAa,CAAC,GAE/BC,IAAeN,QAAkB;EACtC,EAAgB,EAAI;CACrB,GAAG,CAACD,CAAe,CAAC;CAEpB,QAAgB;EACf,IAAI,CAACR,GAAgB;GACpB,EAAwB,UAAU;GAClC;EACD;EAEA,IAAII,EAAwB,SAC3B;EAID,AADA,EAAwB,UAAU,IAClCZ,EAAgB,IAAI;EACpB,IAAMwB,IAAc,CAACV,EAAa,SAC9BW;EAYJ,AAVInB,IACH,IAAUC,IACAiB,KAAeT,GAA2B,UACpD,IAAUd,KAEV,IAAUyB,EAAmBf,CAAQ,GACrCS,EAAsBK,CAAO,IAG9B,EAAa,UAAU,IACvBE,IAAeF,CAAO;CACvB,GAAG;EACFxB;EACAO;EACAF;EACAoB;EACAC;EACAhB;EACAS;EACAb;CACD,CAAC;CAED,IAAMqB,IAAgBX,QAAkB;EACvC,AAAIpB,MAIJmB,EAAgB,EAAK,GACrBI,EAAsB,IAAI,GAC1BS,IAAgB;CACjB,GAAG;EAAChC;EAAcgC;EAAeT;EAAuBJ;CAAe,CAAC,GAElEc,IAAsBC,QACvBtB,MAAuB,OACnB,KAGR,CAAKuB,KAIE,CAACA,EAAkBvB,CAAkB,GAC1C,CAACuB,GAAmBvB,CAAkB,CAAC,GAEpCwB,IAAmBhB,EAAY,YAAY;EAChD,IACC,MACCa,KACDrB,MAAuB,MAMxB;GADAX,EAAgB,EAAI,GACpBE,EAAgB,IAAI;GAEpB,IAAI;IAIH,AAHA,MAAMkC,EAAmBzB,CAAkB,GAC3CO,EAAgB,EAAK,GACrBI,EAAsB,IAAI,GAC1BS,IAAgB;GACjB,SAASM,GAAO;IAKf,AADAnC,EAAgBmC,KAAS,gBAAI,MAAM,wCAAwC,CAAC,GAC5EC,IAAUD,GAAO1B,CAAkB;GACpC,UAAU;IACT,EAAgB,EAAK;GACtB;EAfoB;CAgBrB,GAAG;EACFqB;EACAjC;EACAqC;EACAL;EACAO;EACA3B;EACAW;EACAJ;CACD,CAAC;CAED,OAAOe,SACC;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,IACA;EACCD;EACAF;EACA7B;EACAkC;EACAvB;EACAb;EACAW;EACAe;EACAZ;EACAF;EACAW;CACD,CACD;AACD;;;ACvMA,SAAgBiB,EAAqB,GAAoB,GAA2B;CACnF,OAAO;EACN,SAAS;EACT,SAAS;EACT,kBAAkB;EAClB,aAAa;EACb,WAAWC,EAAG,4BAA4BC,CAAS;EACnD,iBAAiB;EACjB,kBAAkBD,EAAG,0BAA0BE,CAAgB;EAC/D,iBAAiB;CAClB;AACD;;;ACSA,SAAgBC,EAA6C,EAC5D,YACA,YACA,wBAME;CACF,IAAM,IAAIC,EAAWnD,GAAkCoD,CAAO,GACxDC,IAAWC,EAAQ;CAEzB,IAAID,MAAa,MAChB,OAAO;CAGR,IAAME,IAAQC,IAAoBH,CAAQ,MACzC,OAAOA,KAAa,YACpBA,KACA,WAAWA,KACX,OAAOA,EAAS,SAAU,WACvBA,EAAS,QACT;CAOJ,OAJIE,KAAU,QAA+BA,MAAU,KAC/C,OAIP,kBAAC7D,GAAD;EAAO,KAAI;EAAQ,WAAU;EAA7B,UAAA,CACC,kBAACH,GAAD,EAAA,UAAe,EAAE,kBAAgC,CAAA,GACjD,kBAACD,GAAD;GAAM,MAAK;GAAW,UAAAiE;EAAY,CAAA,CAC5B;;AAET;AACA,EAAqB,cAAc;AAEnC,SAAgBE,EAA+C,EAC9D,SAASC,GACT,cACyF;CACzF,IAAMC,IAAIR,EAAWnD,GAAkCoD,CAAO;CAC9D,OAAO,kBAAC9D,GAAD;EAAM,MAAK;EAAY,WAAU;EAAuC,UAAAqE,EAAE;CAAwB,CAAA;AAC1G;AACA,EAAuB,cAAc;AAErC,SAAgBC,EAA4C,EAC3D,YACA,cACyF;CACzF,IAAMD,IAAIR,EAAWnD,GAAkCoD,CAAO;CAC9D,OACC,kBAACtD,GAAD;EACC,OAAO6D,EAAE;EACT,aAAa;EACb,OAAO,kBAACE,GAAD,EAAa,WAAU,YAAa,CAAA;EAC3C,cAAa;EACb,SAAS,kBAACpE,GAAD;GACR,MAAK;GACL,aAAY;GACZ,SAAS6D,EAAQ;GACjB,MAAK;GAEJ,UAAAK,EAAE,gBAAgB3D,EAAiC;EAC7C,CAAA;EACR,WAAU;CACV,CAAA;AAEH;AACA,EAAoB,cAAc;AAElC,SAAgB8D,EAId,EACD,sBACA,kBACA,cACgF;CAChF,IAAMC,IAAiB;EACtB,GAAIC,KAAiB,CAAC;EACtB,UAAUV,EAAQ;EAClB,UAAUA,EAAQ;EAClB,SAAS;EACT,cAAc;EACd,SAAS;CACV;CAEA,OACC,kBAAC,OAAD;EAAK,WAAU;EACd,UAAA,kBAACW,GAAD,EAAmB,GAAIF,EAAiB,CAAA;CACpC,CAAA;AAEP;AACA,EAAqB,cAAc;;;AC9FnC,SAAgBG,EAId,EACD,SACA,UACA,gBACA,cACA,qBACA,UACA,cACA,YACA,iBACA,gBACA,aACA,aACA,aACA,sBACA,eACA,aACA,6BACA,0BACA,0BACA,uBACA,SAASC,MAC0D;CACnE,IAAMf,IAAUD,EAAWnD,GAAkCmE,EAAW,GAClEC,IAAU9C,EAAuB,IAAI,GACrC+C,KAAoB/C,EAA0B,IAAI,GAOlDgD,KAAoBhD,EAAuB,IAAI,GAC/CiD,KAAqB7C,QAAkB;EAC5C,IAAM8C,IAASF,GAAkB;EAEjC,OADIE,aAAkB,eAAeA,EAAO,eAAeA,MAAWA,EAAO,cAAc,OAAa,KACjGH,GAAkB,WAAWD,EAAQ;CAC7C,GAAG,CAAC,CAAC,GACCK,IAAkBxE,EAA8C;EACrE;EACA,oBACCyE,GAAU,6BAA6B;EACxC,oBACCA,GAAU,6BAA6B,KAAA;EACxC,mBAAmBA,GAAU;EAC7B,cAAcA,GAAU;EACxB,eAAeA,GAAU;EACzB,SAASA,GAAU;EACnB,MAAMA,GAAU;EAChB,aAAaA,GAAU;EACvB,cAAcA,GAAU;EACxB,OAAOA,GAAU;EACjB,cAAcA,GAAU;EACxB,eAAeA,GAAU;CAC1B,CAAC,GAEKzD,KAAiBwD,EAAgB;CAEvC,QAAsB;EACrB,AAAIxD,OAAgB,GAAkB,UAAUmD,EAAQ,SAAS,cAAc,iBAAiB;CACjG,GAAG,CAACnD,EAAc,CAAC;CAEnB,IAAM0D,IAAiBD,MAAa,KAAA,GAC9BE,IAAsBF,GAAU,aAAa,KAAK,GAClDG,KAAyBC,GAAS,QAAQ,MAAWC,EAAO,YAAY,EAAK,CAAC,CAAC,UAAU,GAGzFC,IAAyBL,KAC3B,CAACF,EAAgB,eACjB,CAACQ,KACD,CAACC,GACCC,IAA6B,GAClCR,KAAkBC,KAAuBC,OAA2B,KAAK,CAACG,IAErEI,KAAkB5C,QAAc;EACrC,IAAM6C,IAAcP,KAAW,CAAC;EAUhC,OARI,CAACH,KAAkB,CAACC,KAAuBI,KAI3CG,IACIE,EAAY,SAAS,IAAIA,IAAc,KAAA,IAGxC,CACN,GAAGA,GACH;GACC,IAAI;GACJ,OAAOT;GACP,SAASH,EAAgB;EAC1B,CACD;CACD,GAAG;EACFK;EACAH;EACAC;EACAH,EAAgB;EAChBU;EACAH;CACD,CAAC,GACKM,KAAuBC,KAAgBJ,IAC5C,kBAAA/F,GAAA,EAAA,UAAA,CACEmG,GACAJ,KACA,kBAAC1F,GAAD;EACC,KAAK4E;EACL,MAAK;EACL,MAAK;EACL,aAAY;EACZ,MAAK;EACL,SAASI,EAAgB;EACzB,WAAU;EAET,UAAAG;CACM,CAAA,CAER,EAAA,CAAA,IACC,KAAA,GAEEY,KAA6BhD,QAAc;EAChD,IAAIiD,GACH,OAAOA,EAAsBhB,CAAe;EAG7C,IAAIiB,GAEH,OAAO,kBAACrG,GAAD,EAAkB,SAASoF,EAAkB,CAAA;EAGrD,IAAI,MAAM,QAAQkB,CAAQ,KAAKA,EAAS,SAAS,GAAG;GACnD,IAAMC,IAAkBD,EAAS,QAAQ,MACjC,GAAQ,QAAOE,EAAQ,KAAKpB,CAAe,CAClD;GAED,IAAImB,EAAgB,SAAS,GAC5B,OACC,kBAAC,OAAD;IAAK,WAAWE,KAAqB;IACnC,UAAAF,EAAgB,KAAK,MAAY;KACjC,IAAMG,IAAmBF,EAAQ;KAEjC,OACC,kBAAC,OAAD;MAAsB,WAAWA,EAAQ;MACxC,UAAA,kBAACE,GAAD,EAAkB,SAAStB,EAAkB,CAAA;KACzC,GAFKoB,EAAQ,EAEb;IAEP,CAAC;GACG,CAAA;EAGR;EAEA,OAAO,kBAACpC,GAAD;GAAwB,SAASgB;GAA0B;EAAU,CAAA;CAC7E,GAAG;EACFiB;EACAD;EACAE;EACAG;EACArB;EACArB;CACD,CAAC,GAEK4C,KAA0BxD,QAC3ByC,IACIA,EAAmBR,CAAe,IAGtCS,IAEI,kBAAC7F,GAAD,EAAkB,SAASoF,EAAkB,CAAA,IAGhDE,IAIE,kBAACf,GAAD;EAAqB,SAASa;EAA0B;CAAU,CAAA,IAHjE,kBAACnF,GAAD;EAAM,MAAK;EAAa,UAAA8D,EAAQ;CAAyB,CAAA,GAI/D;EACF8B;EACAP;EACAM;EACAR;EACArB;CACD,CAAC,GAEK6C,KAAyBvB,GAAU,wBACnCwB,KAAyBxB,GAAU,wBACnCT,IAAoBS,GAAU,mBAC9BV,KAAgBU,GAAU,eAC1ByB,KAAqBzB,GAAU,sBAAsB,CAAC,GACtDvD,IAAcsD,EAAgB,aAC9BjE,IAAeiE,EAAgB,cAC/B2B,KAAsB5F,KAAiB,OAC1C,KAAA,IACAA,aAAwB,SAASA,EAAa,UAC7CA,EAAa,UACb4C,EAAQ,uBAAuBpD,EAAiC,qBAC9DqG,KAAWlF,IAAcqE,KAAkBQ,IAC3CM,KAAqB,GAC1B3B,KAAkBD,KAAYT,IAEzBsC,KAAsBC,MAAe,KAAA,GACvCC,IAA+B;CAEnC,AAAItF,KAAeoF,KAClB,IAAoBC,IACVrF,KAAeuF,MACzB,IACC,kBAAC9G,GAAD;EAAmB,MAAM8G,EAAS;EAAM,MAAMC;EAC5C,UAAAD,EAAS;CACQ,CAAA;CAIrB,IAAME,KAAiBH,MAAsB,QAAQA,MAAsB,KACxE,OAED,kBAAC,OAAD;EACC,WAAW1D,EACV,qCACA,CAACwD,MAAuBG,GAAU,SACnC;EAEC,UAAAD;CACG,CAAA,GAEDI,KACLP,MAAsB5B,KAAYT,IAClC,kBAACpE,GAAD;EACE,MAAM4E,EAAgB;EACtB,eAAe,MAAS;GACvB,AAAK3D,KACJ2D,EAAgB,cAAc;EAEhC;EACA,YAAYF;EACZ,OAAOG,EAAS;EAChB,aAAaA,EAAS;EACtB,MAAMA,EAAS,cAAc;EAC7B,SAAS,EAAE,OAAOtB,EAAQ,WAAW;EACrC,MAAMgD,KAAsB,gBAAgB;EAC5C,cAAcA;EACd,YAAY;EACZ,aAAa;EACb,QACC,kBAAC1G,GAAD;GACC,WAAW;IAAE,MAAM;IAAY,IAAI;GAAa;GAChD,KAAI;GACJ,OAAO;IAAE,MAAM;IAAW,IAAI;GAAS;GACvC,SAAQ;GACR,WAAU;GALX,UAAA,CAOC,kBAACD,GAAD;IACC,MAAK;IACL,aAAY;IACZ,SAASgF,EAAgB;IACzB,UAAUA,EAAgB;IAC1B,MAAK;IAEJ,UAAAC,EAAS;GACH,CAAA,GACR,kBAACjF,GAAD;IAAQ,MAAK;IACZ,eAAe;KACd,EAAqB,iBAAiB;IACvC;IACA,UACC,CAACgF,EAAgB,uBACjBA,EAAgB;IAEjB,SAASA,EAAgB;IACzB,MAAK;IAEJ,UAAAC,EAAS;GACH,CAAA,CACF;;EAGR,UAAA,kBAAChF,GAAD;GAAO,KAAI;GAAK,WAAU;GAA1B,UAAA,CACEuG,KACA,kBAACA,IAAD;IACoB;IACJ;IACf,SAASxB;IACT,GAAI0B;GACJ,CAAA,IAED,kBAACrC,GAAD;IACoB;IACJ;IACf,SAASW;GACT,CAAA,GAGDyB,KACA,kBAACA,IAAD,EAAwB,SAASzB,EAAkB,CAAA,IAEnD,kBAACvB,GAAD;IACC,SAASuB;IACA;IACT,mBAAmBC,EAAS;GAC5B,CAAA,CAEI;;CACK,CAAA,IACV;CAEL,OACC,kBAAAtF,GAAA,EAAA,UAAA,CACC,kBAACO,GAAD;EACC,KAAKyE;EAEL,UAAU;EACV,cAAYjD,IAAc,aAAa;EACvC,GAAI2B,EAAqBC,EAAG,gDAAgDvD,EAAa,MAAMwD,CAAS,GAAGC,CAAgB;EACrH;EACC;EACM;EACb,YAAW;EACJ;EACI;EACX,SAASmC;EACT,cAAcE;EACd,YAAYwB;EAdb,UAAA,CAgBET,IACAO,EACI;CACL,CAAA,GAAAC,EACA,EAAA,CAAA;AAEJ;AAEA,EAAmB,cAAc"}
@@ -1,88 +1,19 @@
1
1
  "use client";
2
- import { useStrings as e } from "../lib/strings.js";
3
- import { t } from "../utils-B6kKb8jB.js";
4
- import { c as n } from "../typography-BQnine1k.js";
5
- import { t as r } from "../structure-DuxKl954.js";
6
- import { n as i, t as a } from "../feedback-Dm4izqFn.js";
7
- import { n as o, t as s } from "../composition.recipes-COdiFhxB.js";
8
- import { u as c } from "../primitives-ByWgGUgt.js";
9
- import { t as l } from "../icon-badge-DZF-YjQp.js";
10
- import { i as u, n as d, s as f } from "../avatar-CeZaFmNH.js";
11
- import { n as p } from "../display-KsZLw9Ov.js";
12
- import { t as m } from "../metadata-list-C3MkU-Om.js";
13
- import { t as h } from "../navigation-C90-oQFq.js";
14
- import { t as g } from "../overflow-tab-bar-IVFVQFV6.js";
15
- import { s as _ } from "../data-display-BdgCAw8T.js";
16
- import { jsx as v, jsxs as y } from "react/jsx-runtime";
17
- //#region src/components/features/resource/resource.strings.ts
18
- var b = {
19
- loadingLabel: "Loading resources",
20
- loadingDescription: "Preparing the latest data for this view.",
21
- emptyTitle: "No resources found",
22
- emptyDescription: "There are no records available for this view.",
23
- errorTitle: "Resources unavailable",
24
- errorDescription: "The resource data could not be loaded.",
25
- retryLabel: "Try again",
26
- tabsAriaLabel: "Resource sections"
27
- };
28
- //#endregion
2
+ import { t as e } from "../utils-BVbAG2J6.js";
3
+ import { c as t } from "../typography-C0dELqYV.js";
4
+ import { t as n } from "../structure-DElaQwwN.js";
5
+ import { c as r } from "../surface-recipes-DV6rrOFq.js";
6
+ import { t as i } from "../smart-card-C59z6KFO.js";
7
+ import { t as a } from "../metadata-list-G85roWjS.js";
8
+ import { s as o } from "../data-display-CWe9SOYh.js";
9
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
29
10
  //#region src/components/features/resource/resource.tsx
30
- function x({ title: e, description: n, eyebrow: i, media: a, avatarUrl: o, avatarAlt: s, avatarFallback: p, icon: m, iconTone: g = "neutral", badges: _, metadata: b, actions: x, primaryAction: S, secondaryActions: C, maxVisibleSecondaryActions: w, moreActionsLabel: T, renderLink: E, className: D, contentClassName: O, mediaClassName: k }) {
31
- let A = m, j = typeof e == "string" ? e : "", M = a ?? (o || p ? /* @__PURE__ */ y(d, {
32
- className: t("resource-header--avatar size-avatar-lg", k),
33
- children: [!!o && /* @__PURE__ */ v(f, {
34
- src: o,
35
- alt: s ?? j
36
- }), /* @__PURE__ */ v(u, { children: p ?? /* @__PURE__ */ v(c, {
37
- value: j,
38
- strategy: "first-words"
39
- }) })]
40
- }) : A ? /* @__PURE__ */ v(l, {
41
- icon: A,
42
- shape: "square",
43
- tone: g,
44
- className: t("resource-header--icon size-avatar-lg [&>svg]:size-icon-lg", k)
45
- }) : null);
46
- return /* @__PURE__ */ v(h, {
47
- eyebrow: i,
48
- title: e,
49
- description: n,
50
- leading: M,
51
- titleSuffix: _ ? /* @__PURE__ */ v(r, {
52
- "data-slot": "resource-header-badges",
53
- direction: "horizontal",
54
- gap: "sm",
55
- className: "resource-header--badges shrink-0",
56
- children: _
57
- }) : void 0,
58
- afterDescription: b ? /* @__PURE__ */ v(r, {
59
- "data-slot": "resource-header-metadata",
60
- direction: "horizontal",
61
- gap: "md",
62
- className: "resource-header--metadata mt-space-sm",
63
- children: b
64
- }) : void 0,
65
- actions: x,
66
- primaryAction: S,
67
- secondaryActions: C,
68
- maxVisibleSecondaryActions: w,
69
- moreActionsLabel: T,
70
- renderLink: E,
71
- withSeparator: !1,
72
- className: t("resource-header--component", D),
73
- contentClassName: O,
74
- eyebrowClassName: "resource-header--eyebrow",
75
- titleClassName: "resource-header--title truncate",
76
- descriptionClassName: "resource-header--description max-w-3xl",
77
- actionsClassName: "resource-header--actions flex-wrap"
78
- });
79
- }
80
- function S({ children: e, leading: n, trailing: i, sticky: a = !1, className: o }) {
81
- return /* @__PURE__ */ v("div", {
11
+ function l({ children: t, leading: i, trailing: a, sticky: o = !1, className: l }) {
12
+ return /* @__PURE__ */ s("div", {
82
13
  "data-component": "resource-action-bar",
83
14
  "data-slot": "resource-action-bar",
84
- className: t("resource-action-bar--component box-border rounded-surface border border-border bg-card text-card-foreground px-surface py-row-y-lg shadow-xs", a && "sticky top-shell-header z-30", o),
85
- children: /* @__PURE__ */ y(r, {
15
+ className: e("resource-action-bar--component box-border px-surface py-row-y-lg", r.frame, o && "sticky top-shell-header z-30", l),
16
+ children: /* @__PURE__ */ c(n, {
86
17
  direction: {
87
18
  base: "vertical",
88
19
  sm: "horizontal"
@@ -92,175 +23,82 @@ function S({ children: e, leading: n, trailing: i, sticky: a = !1, className: o
92
23
  justify: { sm: "between" },
93
24
  wrap: { sm: !1 },
94
25
  className: "resource-action-bar--layout",
95
- children: [/* @__PURE__ */ v(r, {
26
+ children: [/* @__PURE__ */ s(n, {
96
27
  "data-slot": "resource-action-leading",
97
28
  direction: "horizontal",
98
29
  gap: "md",
99
30
  className: "resource-action-bar--leading flex-1",
100
- children: n ?? e
101
- }), !!i && /* @__PURE__ */ v(r, {
31
+ children: i ?? t
32
+ }), !!a && /* @__PURE__ */ s(n, {
102
33
  "data-slot": "resource-action-trailing",
103
34
  direction: "horizontal",
104
35
  gap: "md",
105
36
  className: "resource-action-bar--trailing shrink-0",
106
- children: i
37
+ children: a
107
38
  })]
108
39
  })
109
40
  });
110
41
  }
111
- function C(e) {
112
- return /* @__PURE__ */ v(_, {
113
- ...e,
42
+ function u({ "aria-label": t, ...n }) {
43
+ return /* @__PURE__ */ s(o, {
44
+ ...n,
45
+ ariaLabel: t,
114
46
  "data-component": "resource-empty-state",
115
47
  "data-slot": "resource-empty-state",
116
- className: t("resource-empty-state--component", e.className)
117
- });
118
- }
119
- function w({ children: n, title: c, description: l, actions: u, primaryAction: d, secondaryActions: f, maxVisibleSecondaryActions: p, moreActionsLabel: m, renderLink: h, toolbar: g, emptySlot: _, empty: S = !1, loading: w = !1, error: T, onRetry: E, slots: D, className: O, headerClassName: k, contentClassName: A, strings: j, asideClassName: M, variant: N }) {
120
- let P = e(b, j), F = D?.header ?? (c ? /* @__PURE__ */ v(x, {
121
- title: c,
122
- description: l,
123
- actions: u,
124
- primaryAction: d,
125
- secondaryActions: f,
126
- maxVisibleSecondaryActions: p,
127
- moreActionsLabel: m,
128
- renderLink: h,
129
- className: k
130
- }) : null), I = D?.toolbar ?? g, L = D?.loading ?? /* @__PURE__ */ v(i, {
131
- variant: "panel",
132
- label: P.loadingLabel,
133
- description: P.loadingDescription,
134
- skeleton: !0,
135
- lines: 4,
136
- className: "resource-shell--loading rounded-surface border border-border bg-card"
137
- }), R = D?.empty ?? _ ?? /* @__PURE__ */ v(C, {
138
- title: P.emptyTitle,
139
- description: P.emptyDescription,
140
- border: !0
141
- }), z = /* @__PURE__ */ v(a, {
142
- title: P.errorTitle,
143
- description: T instanceof Error ? T.message : typeof T == "string" || typeof T == "number" ? String(T) : P.errorDescription,
144
- onRetry: E,
145
- retryLabel: P.retryLabel
146
- }), B = D?.error ?? (T && typeof T != "boolean" && typeof T != "string" && typeof T != "number" && !(T instanceof Error) ? T : z), V = w ? L : T ? B : S ? R : n;
147
- return /* @__PURE__ */ y("section", {
148
- "data-component": `resource-${N}-shell`,
149
- "data-slot": `resource-${N}-shell`,
150
- className: t(`resource-${N}-shell--component flex min-w-0 flex-col`, s.subjects, N === "index" && "@container/resource-index", N === "show" && "@container/resource-show", O),
151
- children: [
152
- !!F && /* @__PURE__ */ v("div", {
153
- "data-slot": `resource-${N}-header`,
154
- className: `resource-${N}-shell--header`,
155
- children: F
156
- }),
157
- !!I && /* @__PURE__ */ v("div", {
158
- "data-slot": `resource-${N}-toolbar`,
159
- className: `resource-${N}-shell--toolbar`,
160
- children: I
161
- }),
162
- /* @__PURE__ */ y("div", {
163
- "data-slot": `resource-${N}-layout`,
164
- className: t(`resource-${N}-shell--layout grid min-w-0`, s.subjects, D?.aside && N === "show" && "@4xl/resource-show:grid-cols-[minmax(0,1fr)_var(--shell-sidebar-width)]", D?.aside && N === "index" && "@4xl/resource-index:grid-cols-[minmax(0,1fr)_var(--shell-sidebar-width)]"),
165
- children: [/* @__PURE__ */ y(r, {
166
- gap: o.subjects,
167
- children: [/* @__PURE__ */ v("div", {
168
- "data-slot": `resource-${N}-content`,
169
- className: t(`resource-${N}-shell--content flex min-w-0 flex-col`, s.subjects, A),
170
- children: V
171
- }), !!D?.footer && /* @__PURE__ */ v("div", {
172
- "data-slot": `resource-${N}-footer`,
173
- className: `resource-${N}-shell--footer`,
174
- children: D.footer
175
- })]
176
- }), !!D?.aside && /* @__PURE__ */ v("aside", {
177
- "data-slot": `resource-${N}-aside`,
178
- className: t(`resource-${N}-shell--aside flex min-w-0 flex-col`, s.subjects, M),
179
- children: D.aside
180
- })]
181
- })
182
- ]
183
- });
184
- }
185
- function T(e) {
186
- return /* @__PURE__ */ v(w, {
187
- ...e,
188
- variant: "index"
189
- });
190
- }
191
- function E(e) {
192
- return /* @__PURE__ */ v(w, {
193
- ...e,
194
- variant: "show"
48
+ className: e("resource-empty-state--component", n.className)
195
49
  });
196
50
  }
197
- function D({ tabs: n, activeTab: i, onTabChange: a, tabsClassName: o, moreLabel: s, tabsAriaLabel: c, toolbar: l, slots: u, className: d, strings: f, ...p }) {
198
- let m = e(b, f), h = /* @__PURE__ */ y(r, {
199
- gap: "lg",
200
- "data-slot": "tabbed-resource-toolbar",
201
- className: "tabbed-resource-shell--toolbar",
202
- children: [/* @__PURE__ */ v(g, {
203
- items: n,
204
- value: i,
205
- onValueChange: a,
206
- className: o,
207
- strings: {
208
- more: s,
209
- navigationLabel: c ?? m.tabsAriaLabel
210
- }
211
- }), l]
212
- });
213
- return /* @__PURE__ */ v(E, {
214
- ...p,
215
- strings: f,
216
- className: t("tabbed-resource-shell--component", d),
217
- toolbar: h,
218
- slots: {
219
- ...u,
220
- toolbar: u?.toolbar ?? h
221
- }
222
- });
223
- }
224
- function O({ title: e, description: n, actions: r, headerAction: i, children: a, footer: o, padding: s = "md", surface: c = "card", className: l, contentClassName: u, name: d }) {
225
- return /* @__PURE__ */ v(p, {
226
- "data-component": d,
227
- "data-slot": d,
228
- title: e,
51
+ var d = {
52
+ "data-component": "content-block",
53
+ "data-slot": "content-block"
54
+ }, f = {
55
+ root: "content-block--component",
56
+ header: "content-block--header",
57
+ content: "content-block--content",
58
+ footer: "content-block--footer"
59
+ };
60
+ function p({ title: t, description: n, actions: r, headerAction: a, children: o, footer: c, padding: l = "md", surface: u = "card", className: p, contentClassName: m, name: h }) {
61
+ return /* @__PURE__ */ s(i, {
62
+ ...d,
63
+ "data-padding": l,
64
+ title: t,
229
65
  description: n,
230
66
  actions: r,
231
- headerAction: i,
232
- footerSlot: o,
233
- padding: s,
234
- surface: c,
235
- className: t(`${d}--component`, l),
236
- contentClassName: u,
237
- children: a
67
+ headerAction: a,
68
+ footerSlot: c,
69
+ padding: l,
70
+ surface: u,
71
+ className: e(f.root, `${h}--component`, p),
72
+ headerClassName: f.header,
73
+ contentClassName: e(f.content, m),
74
+ footerClassName: f.footer,
75
+ children: o
238
76
  });
239
77
  }
240
- function k({ metadata: e, metadataColumns: r = 2, metadataDense: i = !1, body: a, help: o, children: s, contentClassName: c, ...l }) {
241
- return /* @__PURE__ */ y(O, {
242
- ...l,
78
+ function m({ metadata: n, metadataColumns: r = 2, metadataDense: i = !1, body: o, help: l, children: u, contentClassName: d, ...f }) {
79
+ return /* @__PURE__ */ c(p, {
80
+ ...f,
243
81
  name: "resource-details-section",
244
- contentClassName: t("resource-details-section--content grid gap-space-xl", c),
82
+ contentClassName: e("resource-details-section--content grid gap-space-xl", d),
245
83
  children: [
246
- !!e?.length && /* @__PURE__ */ v(m, {
84
+ !!n?.length && /* @__PURE__ */ s(a, {
247
85
  adaptTo: "container",
248
- items: e,
86
+ items: n,
249
87
  columns: r,
250
88
  density: i ? "compact" : "default"
251
89
  }),
252
- a,
253
- s,
254
- !!o && /* @__PURE__ */ v(n, {
90
+ o,
91
+ u,
92
+ !!l && /* @__PURE__ */ s(t, {
255
93
  size: "xs",
256
94
  type: "secondary",
257
95
  className: "resource-details-section--help",
258
- children: o
96
+ children: l
259
97
  })
260
98
  ]
261
99
  });
262
100
  }
263
101
  //#endregion
264
- export { S as ResourceActionBar, k as ResourceDetailsSection, C as ResourceEmptyState, x as ResourceHeader, T as ResourceIndexShell, E as ResourceShowShell, D as TabbedResourceShell, b as defaultResourceStrings };
102
+ export { l as ResourceActionBar, m as ResourceDetailsSection, u as ResourceEmptyState };
265
103
 
266
104
  //# sourceMappingURL=resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","names":["Text","Stack","LoadingState","ErrorState","compositionRhythm","compositionClasses","Initials","IconBadge","AvatarFallback","Avatar","AvatarImage","ContentBlock","MetadataList","PageHeading","OverflowTabBar","EmptyState","defaultResourceStrings","ResourceHeader","Icon","icon","titleText","title","resolvedMedia","media","avatarUrl","avatarFallback","cn","mediaClassName","avatarAlt","iconTone","badges","metadata","className","ResourceActionBar","sticky","leading","children","trailing","ResourceEmptyState","props","ResourceShellFrame","emptyState","stringsProp","strings","useStrings","header","slots","headerClassName","toolbarNode","toolbar","loadingNode","emptyNode","emptySlot","defaultErrorNode","error","errorNode","body","loading","variant","contentClassName","asideClassName","ResourceIndexShell","ResourceShowShell","TabbedResourceShell","tabs","activeTab","onTabChange","tabsClassName","moreLabel","tabsAriaLabel","ResourceCard","name","footer","ResourceDetailsSection","metadataColumns","metadataDense","help"],"sources":["../../src/components/features/resource/resource.strings.ts","../../src/components/features/resource/resource.tsx"],"sourcesContent":["/** Default copy for state-aware resource workspace replacement states. */\nexport interface ResourceStrings {\n\tloadingLabel: string;\n\tloadingDescription: string;\n\temptyTitle: string;\n\temptyDescription: string;\n\terrorTitle: string;\n\terrorDescription: string;\n\tretryLabel: string;\n\ttabsAriaLabel: string;\n}\n\nexport const defaultResourceStrings: ResourceStrings = {\n\tloadingLabel: 'Loading resources',\n\tloadingDescription: 'Preparing the latest data for this view.',\n\temptyTitle: 'No resources found',\n\temptyDescription: 'There are no records available for this view.',\n\terrorTitle: 'Resources unavailable',\n\terrorDescription: 'The resource data could not be loaded.',\n\tretryLabel: 'Try again',\n\ttabsAriaLabel: 'Resource sections',\n};\n","/** State-aware resource workspace primitives for coordinated index/show surfaces. */\nimport { ContentBlock, IconBadge } from '../../base/display';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../base/avatar';\nimport { ErrorState, LoadingState } from '../../base/feedback';\nimport { MetadataList } from '../../base/metadata-list';\nimport { EmptyState } from '../../blocks/data-display';\nimport { OverflowTabBar, PageHeading } from '../../base/navigation';\nimport { Stack } from '../../base/structure';\nimport {compositionClasses, compositionRhythm} from '../../base/structure/composition.recipes';\nimport { Initials } from '../../primitives';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultResourceStrings } from './resource.strings';\nimport type {\n\tResourceActionBarProps,\n\tResourceDetailsSectionProps,\n\tResourceEmptyStateProps,\n\tResourceHeaderProps,\n\tResourceIndexShellProps,\n\tResourceShowShellProps,\n\tTabbedResourceShellProps,\n} from './resource.types';\n\n/** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */\nexport function ResourceHeader({\n\ttitle,\n\tdescription,\n\teyebrow,\n\tmedia,\n\tavatarUrl,\n\tavatarAlt,\n\tavatarFallback,\n\ticon,\n\ticonTone = 'neutral',\n\tbadges,\n\tmetadata,\n\tactions,\n\tprimaryAction,\n\tsecondaryActions,\n\tmaxVisibleSecondaryActions,\n\tmoreActionsLabel,\n\trenderLink,\n\tclassName,\n\tcontentClassName,\n\tmediaClassName,\n}: ResourceHeaderProps) {\n\tconst Icon = icon;\n\tconst titleText = typeof title === 'string' ? title : '';\n\tconst resolvedMedia =\n\t\tmedia ??\n\t\t(avatarUrl || avatarFallback ? (\n\t\t\t<Avatar className={cn('resource-header--avatar size-avatar-lg', mediaClassName)}>\n\t\t\t\t{!!avatarUrl && <AvatarImage src={avatarUrl} alt={avatarAlt ?? titleText} />}\n\t\t\t\t<AvatarFallback>{avatarFallback ?? <Initials value={titleText} strategy=\"first-words\" />}</AvatarFallback>\n\t\t\t</Avatar>\n\t\t) : Icon ? (\n\t\t\t<IconBadge\n\t\t\t\ticon={Icon}\n\t\t\t\tshape=\"square\"\n\t\t\t\ttone={iconTone}\n\t\t\t\tclassName={cn('resource-header--icon size-avatar-lg [&>svg]:size-icon-lg', mediaClassName)}\n\t\t\t/>\n\t\t) : null);\n\n\treturn (\n\t\t<PageHeading\n\t\t\teyebrow={eyebrow}\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tleading={resolvedMedia}\n\t\t\ttitleSuffix={\n\t\t\t\tbadges ? (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdata-slot=\"resource-header-badges\"\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\tgap=\"sm\"\n\t\t\t\t\t\tclassName=\"resource-header--badges shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{badges}\n\t\t\t\t\t</Stack>\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\tafterDescription={\n\t\t\t\tmetadata ? (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdata-slot=\"resource-header-metadata\"\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tclassName=\"resource-header--metadata mt-space-sm\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{metadata}\n\t\t\t\t\t</Stack>\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\tactions={actions}\n\t\t\tprimaryAction={primaryAction}\n\t\t\tsecondaryActions={secondaryActions}\n\t\t\tmaxVisibleSecondaryActions={maxVisibleSecondaryActions}\n\t\t\tmoreActionsLabel={moreActionsLabel}\n\t\t\trenderLink={renderLink}\n\t\t\twithSeparator={false}\n\t\t\tclassName={cn('resource-header--component', className)}\n\t\t\tcontentClassName={contentClassName}\n\t\t\teyebrowClassName=\"resource-header--eyebrow\"\n\t\t\ttitleClassName=\"resource-header--title truncate\"\n\t\t\tdescriptionClassName=\"resource-header--description max-w-3xl\"\n\t\t\tactionsClassName=\"resource-header--actions flex-wrap\"\n\t\t/>\n\t);\n}\n\nexport function ResourceActionBar({ children, leading, trailing, sticky = false, className }: ResourceActionBarProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"resource-action-bar\"\n\t\t\tdata-slot=\"resource-action-bar\"\n\t\t\tclassName={cn(\n\t\t\t\t'resource-action-bar--component box-border rounded-surface border border-border bg-card text-card-foreground px-surface py-row-y-lg shadow-xs',\n\t\t\t\tsticky && 'sticky top-shell-header z-30',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Stack\n\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\tgap=\"lg\"\n\t\t\t\talign={{ sm: 'center' }}\n\t\t\t\tjustify={{ sm: 'between' }}\n\t\t\t\twrap={{ sm: false }}\n\t\t\t\tclassName=\"resource-action-bar--layout\"\n\t\t\t>\n\t\t\t\t<Stack\n\t\t\t\t\tdata-slot=\"resource-action-leading\"\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\tclassName=\"resource-action-bar--leading flex-1\"\n\t\t\t\t>\n\t\t\t\t\t{leading ?? children}\n\t\t\t\t</Stack>\n\t\t\t\t{!!trailing && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdata-slot=\"resource-action-trailing\"\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tclassName=\"resource-action-bar--trailing shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{trailing}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t</div>\n\t);\n}\n\nexport function ResourceEmptyState(props: ResourceEmptyStateProps) {\n\treturn (\n\t\t<EmptyState\n\t\t\t{...props}\n\t\t\tdata-component=\"resource-empty-state\"\n\t\t\tdata-slot=\"resource-empty-state\"\n\t\t\tclassName={cn('resource-empty-state--component', props.className)}\n\t\t/>\n\t);\n}\n\nfunction ResourceShellFrame({\n\tchildren,\n\ttitle,\n\tdescription,\n\tactions,\n\tprimaryAction,\n\tsecondaryActions,\n\tmaxVisibleSecondaryActions,\n\tmoreActionsLabel,\n\trenderLink,\n\ttoolbar,\n\temptySlot,\n\tempty: emptyState = false,\n\tloading = false,\n\terror,\n\tonRetry,\n\tslots,\n\tclassName,\n\theaderClassName,\n\tcontentClassName,\n\tstrings: stringsProp,\n\tasideClassName,\n\tvariant,\n}: ResourceIndexShellProps & {\n\tasideClassName?: string;\n\tvariant: 'index' | 'show';\n}) {\n\tconst strings = useStrings(defaultResourceStrings, stringsProp);\n\tconst header =\n\t\tslots?.header ??\n\t\t(title ? (\n\t\t\t<ResourceHeader\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\tactions={actions}\n\t\t\t\tprimaryAction={primaryAction}\n\t\t\t\tsecondaryActions={secondaryActions}\n\t\t\t\tmaxVisibleSecondaryActions={maxVisibleSecondaryActions}\n\t\t\t\tmoreActionsLabel={moreActionsLabel}\n\t\t\t\trenderLink={renderLink}\n\t\t\t\tclassName={headerClassName}\n\t\t\t/>\n\t\t) : null);\n\tconst toolbarNode = slots?.toolbar ?? toolbar;\n\tconst loadingNode = slots?.loading ?? (\n\t\t<LoadingState\n\t\t\tvariant=\"panel\"\n\t\t\tlabel={strings.loadingLabel}\n\t\t\tdescription={strings.loadingDescription}\n\t\t\tskeleton\n\t\t\tlines={4}\n\t\t\tclassName=\"resource-shell--loading rounded-surface border border-border bg-card\"\n\t\t/>\n\t);\n\tconst emptyNode = slots?.empty ?? emptySlot ?? (\n\t\t<ResourceEmptyState title={strings.emptyTitle} description={strings.emptyDescription} border />\n\t);\n\tconst defaultErrorNode = (\n\t\t<ErrorState\n\t\t\ttitle={strings.errorTitle}\n\t\t\tdescription={\n\t\t\t\terror instanceof Error\n\t\t\t\t\t? error.message\n\t\t\t\t\t: typeof error === 'string' || typeof error === 'number'\n\t\t\t\t\t\t? String(error)\n\t\t\t\t\t\t: strings.errorDescription\n\t\t\t}\n\t\t\tonRetry={onRetry}\n\t\t\tretryLabel={strings.retryLabel}\n\t\t/>\n\t);\n\tconst errorNode =\n\t\tslots?.error ??\n\t\t(error &&\n\t\ttypeof error !== 'boolean' &&\n\t\ttypeof error !== 'string' &&\n\t\ttypeof error !== 'number' &&\n\t\t!(error instanceof Error)\n\t\t\t? error\n\t\t\t: defaultErrorNode);\n\tconst body = loading ? loadingNode : error ? errorNode : emptyState ? emptyNode : children;\n\n\treturn (\n\t\t<section\n\t\t\tdata-component={`resource-${variant}-shell`}\n\t\t\tdata-slot={`resource-${variant}-shell`}\n\t\t\tclassName={cn(\n\t\t\t\t`resource-${variant}-shell--component flex min-w-0 flex-col`, compositionClasses.subjects,\n\t\t\t\tvariant === 'index' && '@container/resource-index',\n\t\t\t\tvariant === 'show' && '@container/resource-show',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!header && (\n\t\t\t\t<div data-slot={`resource-${variant}-header`} className={`resource-${variant}-shell--header`}>\n\t\t\t\t\t{header}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!toolbarNode && (\n\t\t\t\t<div data-slot={`resource-${variant}-toolbar`} className={`resource-${variant}-shell--toolbar`}>\n\t\t\t\t\t{toolbarNode}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-slot={`resource-${variant}-layout`}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t`resource-${variant}-shell--layout grid min-w-0`, compositionClasses.subjects,\n\t\t\t\t\tslots?.aside &&\n\t\t\t\t\t\tvariant === 'show' &&\n\t\t\t\t\t\t'@4xl/resource-show:grid-cols-[minmax(0,1fr)_var(--shell-sidebar-width)]',\n\t\t\t\t\tslots?.aside &&\n\t\t\t\t\t\tvariant === 'index' &&\n\t\t\t\t\t\t'@4xl/resource-index:grid-cols-[minmax(0,1fr)_var(--shell-sidebar-width)]',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<Stack gap={compositionRhythm.subjects}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-slot={`resource-${variant}-content`}\n\t\t\t\t\t\tclassName={cn(`resource-${variant}-shell--content flex min-w-0 flex-col`, compositionClasses.subjects, contentClassName)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{body}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!slots?.footer && (\n\t\t\t\t\t\t<div data-slot={`resource-${variant}-footer`} className={`resource-${variant}-shell--footer`}>\n\t\t\t\t\t\t\t{slots.footer}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t\t{!!slots?.aside && (\n\t\t\t\t\t<aside\n\t\t\t\t\t\tdata-slot={`resource-${variant}-aside`}\n\t\t\t\t\t\tclassName={cn(`resource-${variant}-shell--aside flex min-w-0 flex-col`, compositionClasses.subjects, asideClassName)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{slots.aside}\n\t\t\t\t\t</aside>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</section>\n\t);\n}\n\n/** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */\nexport function ResourceIndexShell(props: ResourceIndexShellProps) {\n\treturn <ResourceShellFrame {...props} variant=\"index\" />;\n}\n\n/** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */\nexport function ResourceShowShell(props: ResourceShowShellProps) {\n\treturn <ResourceShellFrame {...props} variant=\"show\" />;\n}\n\n/** @deprecated Use Page from themelia-react-ui/layout/page; PageHeader is available for embedded headers. */\nexport function TabbedResourceShell({\n\ttabs,\n\tactiveTab,\n\tonTabChange,\n\ttabsClassName,\n\tmoreLabel,\n\ttabsAriaLabel,\n\ttoolbar,\n\tslots,\n\tclassName,\n\tstrings: stringsProp,\n\t...props\n}: TabbedResourceShellProps) {\n\tconst strings = useStrings(defaultResourceStrings, stringsProp);\n\tconst toolbarNode = (\n\t\t<Stack gap=\"lg\" data-slot=\"tabbed-resource-toolbar\" className=\"tabbed-resource-shell--toolbar\">\n\t\t\t<OverflowTabBar\n\t\t\t\titems={tabs}\n\t\t\t\tvalue={activeTab}\n\t\t\t\tonValueChange={onTabChange}\n\t\t\t\tclassName={tabsClassName}\n\t\t\t\tstrings={{\n\t\t\t\t\tmore: moreLabel,\n\t\t\t\t\tnavigationLabel: tabsAriaLabel ?? strings.tabsAriaLabel,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{toolbar}\n\t\t</Stack>\n\t);\n\n\treturn (\n\t\t<ResourceShowShell\n\t\t\t{...props}\n\t\t\tstrings={stringsProp}\n\t\t\tclassName={cn('tabbed-resource-shell--component', className)}\n\t\t\ttoolbar={toolbarNode}\n\t\t\tslots={{ ...slots, toolbar: slots?.toolbar ?? toolbarNode }}\n\t\t/>\n\t);\n}\n\nfunction ResourceCard({\n\ttitle,\n\tdescription,\n\tactions,\n\theaderAction,\n\tchildren,\n\tfooter,\n\tpadding = 'md',\n\tsurface = 'card',\n\tclassName,\n\tcontentClassName,\n\tname,\n}: ResourceDetailsSectionProps & { name: string }) {\n\treturn (\n\t\t<ContentBlock\n\t\t\tdata-component={name}\n\t\t\tdata-slot={name}\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tactions={actions}\n\t\t\theaderAction={headerAction}\n\t\t\tfooterSlot={footer}\n\t\t\tpadding={padding}\n\t\t\tsurface={surface}\n\t\t\tclassName={cn(`${name}--component`, className)}\n\t\t\tcontentClassName={contentClassName}\n\t\t>\n\t\t\t{children}\n\t\t</ContentBlock>\n\t);\n}\n\nexport function ResourceDetailsSection({\n\tmetadata,\n\tmetadataColumns = 2,\n\tmetadataDense = false,\n\tbody,\n\thelp,\n\tchildren,\n\tcontentClassName,\n\t...props\n}: ResourceDetailsSectionProps) {\n\treturn (\n\t\t<ResourceCard\n\t\t\t{...props}\n\t\t\tname=\"resource-details-section\"\n\t\t\tcontentClassName={cn('resource-details-section--content grid gap-space-xl', contentClassName)}\n\t\t>\n\t\t\t{!!metadata?.length && (\n\t\t\t\t<MetadataList adaptTo=\"container\" items={metadata} columns={metadataColumns} density={metadataDense ? 'compact' : 'default'} />\n\t\t\t)}\n\t\t\t{body}\n\t\t\t{children}\n\t\t\t{!!help && (\n\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"resource-details-section--help\">\n\t\t\t\t\t{help}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</ResourceCard>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"resource.js","names":["cn","Text","Stack","surfaceRecipes","Card","MetadataList","EmptyState","ResourceActionBar","sticky","className","leading","children","trailing","ResourceEmptyState","ariaLabel","props","RESOURCE_BLOCK_HOOKS","RESOURCE_BLOCK_CLASSES","ResourceCard","padding","footer","name","contentClassName","ResourceDetailsSection","metadata","metadataColumns","metadataDense","body","help"],"sources":["../../src/components/features/resource/resource.tsx"],"sourcesContent":["/** Resource workspace parts that compose inside a Page: the action bar, details sections and the empty state. */\nimport { Card } from '../../base/cards';\nimport { MetadataList } from '../../base/metadata-list';\nimport { EmptyState } from '../../blocks/data-display';\nimport { Stack } from '../../base/structure';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport { surfaceRecipes } from '../../../lib/surface-recipes';\n\nimport type {\n\tResourceActionBarProps,\n\tResourceDetailsSectionProps,\n\tResourceEmptyStateProps,\n} from './resource.types';\n\nexport function ResourceActionBar({ children, leading, trailing, sticky = false, className }: ResourceActionBarProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"resource-action-bar\"\n\t\t\tdata-slot=\"resource-action-bar\"\n\t\t\tclassName={cn(\n\t\t\t\t'resource-action-bar--component box-border px-surface py-row-y-lg',\n\t\t\t\tsurfaceRecipes.frame,\n\t\t\t\tsticky && 'sticky top-shell-header z-30',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Stack\n\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\tgap=\"lg\"\n\t\t\t\talign={{ sm: 'center' }}\n\t\t\t\tjustify={{ sm: 'between' }}\n\t\t\t\twrap={{ sm: false }}\n\t\t\t\tclassName=\"resource-action-bar--layout\"\n\t\t\t>\n\t\t\t\t<Stack\n\t\t\t\t\tdata-slot=\"resource-action-leading\"\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\tclassName=\"resource-action-bar--leading flex-1\"\n\t\t\t\t>\n\t\t\t\t\t{leading ?? children}\n\t\t\t\t</Stack>\n\t\t\t\t{!!trailing && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdata-slot=\"resource-action-trailing\"\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tclassName=\"resource-action-bar--trailing shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{trailing}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</Stack>\n\t\t</div>\n\t);\n}\n\nexport function ResourceEmptyState({ 'aria-label': ariaLabel, ...props }: ResourceEmptyStateProps) {\n\treturn (\n\t\t<EmptyState\n\t\t\t{...props}\n\t\t\tariaLabel={ariaLabel}\n\t\t\tdata-component=\"resource-empty-state\"\n\t\t\tdata-slot=\"resource-empty-state\"\n\t\t\tclassName={cn('resource-empty-state--component', props.className)}\n\t\t/>\n\t);\n}\n\n/*\n * Resource sections used to render through the deprecated ContentBlock adapter\n * and now compose Card directly. They keep the DOM hooks that adapter painted\n * (it replaced the section's own data attributes with its own), so consumer\n * selectors written against them still match. The section's identity stays on\n * its `--component` class.\n */\nconst RESOURCE_BLOCK_HOOKS = { 'data-component': 'content-block', 'data-slot': 'content-block' } as const;\nconst RESOURCE_BLOCK_CLASSES = {\n\troot: 'content-block--component',\n\theader: 'content-block--header',\n\tcontent: 'content-block--content',\n\tfooter: 'content-block--footer',\n} as const;\n\nfunction ResourceCard({\n\ttitle,\n\tdescription,\n\tactions,\n\theaderAction,\n\tchildren,\n\tfooter,\n\tpadding = 'md',\n\tsurface = 'card',\n\tclassName,\n\tcontentClassName,\n\tname,\n}: ResourceDetailsSectionProps & { name: string }) {\n\treturn (\n\t\t<Card\n\t\t\t{...RESOURCE_BLOCK_HOOKS}\n\t\t\tdata-padding={padding}\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t\tactions={actions}\n\t\t\theaderAction={headerAction}\n\t\t\tfooterSlot={footer}\n\t\t\tpadding={padding}\n\t\t\tsurface={surface}\n\t\t\tclassName={cn(RESOURCE_BLOCK_CLASSES.root, `${name}--component`, className)}\n\t\t\theaderClassName={RESOURCE_BLOCK_CLASSES.header}\n\t\t\tcontentClassName={cn(RESOURCE_BLOCK_CLASSES.content, contentClassName)}\n\t\t\tfooterClassName={RESOURCE_BLOCK_CLASSES.footer}\n\t\t>\n\t\t\t{children}\n\t\t</Card>\n\t);\n}\n\nexport function ResourceDetailsSection({\n\tmetadata,\n\tmetadataColumns = 2,\n\tmetadataDense = false,\n\tbody,\n\thelp,\n\tchildren,\n\tcontentClassName,\n\t...props\n}: ResourceDetailsSectionProps) {\n\treturn (\n\t\t<ResourceCard\n\t\t\t{...props}\n\t\t\tname=\"resource-details-section\"\n\t\t\tcontentClassName={cn('resource-details-section--content grid gap-space-xl', contentClassName)}\n\t\t>\n\t\t\t{!!metadata?.length && (\n\t\t\t\t<MetadataList adaptTo=\"container\" items={metadata} columns={metadataColumns} density={metadataDense ? 'compact' : 'default'} />\n\t\t\t)}\n\t\t\t{body}\n\t\t\t{children}\n\t\t\t{!!help && (\n\t\t\t\t<Text size=\"xs\" type=\"secondary\" className=\"resource-details-section--help\">\n\t\t\t\t\t{help}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</ResourceCard>\n\t);\n}\n"],"mappings":";;;;;;;;;;AAeA,SAAgBO,EAAkB,EAAE,aAAU,YAAS,aAAU,YAAS,IAAO,gBAAqC;CACrH,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWP,EACV,oEACAG,EAAe,OACfK,KAAU,gCACVC,CACD;EAEA,UAAA,kBAACP,GAAD;GACC,WAAW;IAAE,MAAM;IAAY,IAAI;GAAa;GAChD,KAAI;GACJ,OAAO,EAAE,IAAI,SAAS;GACtB,SAAS,EAAE,IAAI,UAAU;GACzB,MAAM,EAAE,IAAI,GAAM;GAClB,WAAU;GANX,UAAA,CAQC,kBAACA,GAAD;IACC,aAAU;IACV,WAAU;IACV,KAAI;IACJ,WAAU;IAET,UAAAQ,KAAWC;GACN,CAAA,GACN,CAAC,CAACC,KACF,kBAACV,GAAD;IACC,aAAU;IACV,WAAU;IACV,KAAI;IACJ,WAAU;IAET,UAAAU;GACK,CAAA,CAEF;;CACH,CAAA;AAEP;AAEA,SAAgBC,EAAmB,EAAE,cAAcC,GAAW,GAAGC,KAAkC;CAClG,OACC,kBAACT,GAAD;EACC,GAAIS;EACO;EACX,kBAAe;EACf,aAAU;EACV,WAAWf,EAAG,mCAAmCe,EAAM,SAAS;CAChE,CAAA;AAEH;AASA,IAAMC,IAAuB;CAAE,kBAAkB;CAAiB,aAAa;AAAgB,GACzFC,IAAyB;CAC9B,MAAM;CACN,QAAQ;CACR,SAAS;CACT,QAAQ;AACT;AAEA,SAASC,EAAa,EACrB,UACA,gBACA,YACA,iBACA,aACA,WACA,aAAU,MACV,aAAU,QACV,cACA,qBACA,WACkD;CAClD,OACC,kBAACd,GAAD;EACC,GAAIY;EACJ,gBAAcG;EACP;EACM;EACJ;EACK;EACd,YAAYC;EACH;EACA;EACT,WAAWpB,EAAGiB,EAAuB,MAAM,GAAGI,EAAK,cAAcZ,CAAS;EAC1E,iBAAiBQ,EAAuB;EACxC,kBAAkBjB,EAAGiB,EAAuB,SAASK,CAAgB;EACrE,iBAAiBL,EAAuB;EAEvC;CACI,CAAA;AAER;AAEA,SAAgBM,EAAuB,EACtC,aACA,qBAAkB,GAClB,mBAAgB,IAChB,SACA,SACA,aACA,qBACA,GAAGR,KAC4B;CAC/B,OACC,kBAACG,GAAD;EACC,GAAIH;EACJ,MAAK;EACL,kBAAkBf,EAAG,uDAAuDsB,CAAgB;EAH7F,UAAA;GAKE,CAAC,CAACE,GAAU,UACZ,kBAACnB,GAAD;IAAc,SAAQ;IAAY,OAAOmB;IAAU,SAASC;IAAiB,SAASC,IAAgB,YAAY;GAAY,CAAA;GAE9HC;GACAhB;GACA,CAAC,CAACiB,KACF,kBAAC3B,GAAD;IAAM,MAAK;IAAK,MAAK;IAAY,WAAU;IACzC,UAAA2B;GACI,CAAA;EAEM;;AAEhB"}
@@ -1,30 +1,39 @@
1
1
  "use client";
2
- import { t as e } from "../rich-text-editor-toolbar-laT3tpBT.js";
3
- import { t } from "../rich-text-editor.strings-CB59ekH2.js";
4
- import { n, t as r } from "../rich-text-editor-C1fOjBTd.js";
5
- import { useMemo as i, useRef as a } from "react";
6
- import { jsx as o } from "react/jsx-runtime";
7
- import { useController as s, useFormContext as c } from "react-hook-form";
2
+ import { t as e } from "../utils-BVbAG2J6.js";
3
+ import { t } from "../rich-text-editor-toolbar-DYbRJARB.js";
4
+ import { t as n } from "../rich-text-editor.strings-CB59ekH2.js";
5
+ import { n as r, t as i } from "../rich-text-editor-Z6cQepsA.js";
6
+ import { useMemo as a, useRef as o } from "react";
7
+ import { jsx as s } from "react/jsx-runtime";
8
+ import { useController as c, useFormContext as l } from "react-hook-form";
8
9
  //#region src/components/features/rich-text-editor/form-rich-text-editor.tsx
9
- function l({ name: e, ...t }) {
10
- let { control: n } = c(), { field: i } = s({
11
- name: e,
12
- control: n
10
+ function u({ name: t, className: n, disabled: r, invalid: a, onBlur: o, ...u }) {
11
+ let { control: d } = l(), { field: f, fieldState: p } = c({
12
+ name: t,
13
+ control: d,
14
+ disabled: r
13
15
  });
14
- return /* @__PURE__ */ o(r, {
15
- className: "form-rich-text-editor--component",
16
- ...t,
17
- value: typeof i.value == "string" ? i.value : "",
18
- onValueChange: i.onChange
16
+ return /* @__PURE__ */ s(i, {
17
+ ...u,
18
+ ref: f.ref,
19
+ name: f.name,
20
+ className: e("form-rich-text-editor--component", n),
21
+ disabled: f.disabled,
22
+ invalid: a || p.invalid,
23
+ value: typeof f.value == "string" ? f.value : "",
24
+ onValueChange: f.onChange,
25
+ onBlur: (e) => {
26
+ f.onBlur(), o?.(e);
27
+ }
19
28
  });
20
29
  }
21
30
  //#endregion
22
31
  //#region src/components/features/rich-text-editor/use-rich-text-images.ts
23
- function u(e) {
24
- let t = a(e);
32
+ function d(e) {
33
+ let t = o(e);
25
34
  t.current = e;
26
35
  let n = !!e.renderImage;
27
- return i(() => ({
36
+ return a(() => ({
28
37
  upload: (e, n) => t.current.upload(e, n),
29
38
  onError: (e, n) => t.current.onError?.(e, n),
30
39
  renderImage: n ? (e) => t.current.renderImage?.(e) : void 0,
@@ -37,6 +46,6 @@ function u(e) {
37
46
  }), [n]);
38
47
  }
39
48
  //#endregion
40
- export { n as CountsFooterText, l as FormRichTextEditor, r as RichTextEditor, e as RichTextEditorToolbar, t as defaultRichTextEditorStrings, u as useRichTextImages };
49
+ export { r as CountsFooterText, u as FormRichTextEditor, i as RichTextEditor, t as RichTextEditorToolbar, n as defaultRichTextEditorStrings, d as useRichTextImages };
41
50
 
42
51
  //# sourceMappingURL=rich-text-editor.js.map