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":"async-preview.js","names":["_Fragment","Stack","LoadingState","ErrorState","popoverWidthRecipes","Value","Name","SecondaryValue","EmptyValue","Badge","PopoverTrigger","Popover","PopoverContent","EmptyState","React","Fragment$1","defaultAsyncPreviewStrings","asyncPreviewCache","readCache","cacheKey","cached","staleTime","normalizeLoading","loading","hasStaticDataSource","options","useAsyncPreview","openProp","hasStaticData","staticData","onShow","isControlled","uncontrolledOpen","setUncontrolledOpen","useState","defaultOpen","open","data","setData","status","setStatus","error","setError","setLoadingState","meta","setMetaState","setCached","resolvedData","resolvedStatus","abortRef","useRef","requestIdRef","prefetchedRef","metaRef","openRunKeyRef","activeRunKeyRef","stateRef","setOpen","useCallback","nextOpen","currentState","onOpenChange","run","requestKey","type","activeController","reason","cachedEntry","cachePolicy","controller","requestId","hadCache","loadingState","onBeforeShow","onRefresh","applyIfCurrent","fn","result","nextLoading","next","nextMeta","nextStatus","nextData","settledState","onData","onSettled","err","onError","context","refresh","prefetch","close","state","useMemo","useEffect","openRunKey","clearAsyncPreviewCache","AsyncPreviewContext","createContext","useAsyncPreviewContext","ctx","useContext","AsyncPreviewRoot","stringsProp","strings","useStrings","preview","AsyncPreviewTrigger","maybePrefetch","prefetchOn","triggerProps","render","renderedTrigger","Button","AsyncPreviewContent","props","contentProps","sizeClassName","size","inset","padding","cn","className","children","AsyncPreviewState","AsyncPreviewBody","AsyncPreviewLoading","label","phase","progress","AsyncPreviewError","AsyncPreviewEmpty","createAsyncPreview","AsyncPreview","isEmpty","value","renderBadge","badge","PreviewTriggerCellInner","Icon","primaryIsEmpty","name","contentClassName","leading","emptyLabel","forceNameCase","secondary","trailing","PreviewTriggerCell","rootProps","cellProps","hasPreview","disabledReason","ChevronDown"],"sources":["../../src/components/features/async-preview/async-preview.strings.ts","../../src/components/features/async-preview/hooks/use-async-preview.ts","../../src/components/features/async-preview/async-preview.tsx","../../src/components/features/async-preview/preview-trigger-cell.tsx"],"sourcesContent":["/**\n * Strings for AsyncPreview. Consumers override with `strings={{ ... }}` on\n * `<AsyncPreview.Root />`; all user-facing copy is deep-merged via\n * `useStrings`.\n */\nexport interface AsyncPreviewStrings {\n\tloading: string;\n\terrorTitle: string;\n\terrorDescription: string;\n\tretry: string;\n\temptyTitle: string;\n\temptyDescription: string;\n}\n\nexport const defaultAsyncPreviewStrings: AsyncPreviewStrings = {\n\tloading: 'Loading preview...',\n\terrorTitle: 'Could not load preview',\n\terrorDescription: 'Try again or open the full record.',\n\tretry: 'Retry',\n\temptyTitle: 'No preview data',\n\temptyDescription: 'There is nothing to show for this record yet.',\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type {\n\t\tAsyncPreviewLoadingState,\n\t\tAsyncPreviewReason,\n\t\tAsyncPreviewRootProps,\n\t\tAsyncPreviewState,\n\t\tAsyncPreviewStatus,\n} from '../async-preview.types';\n\ninterface CacheEntry {\n\t\t/** Formatted time for the entry. */\n\t\ttimestamp: number;\n\t\t/** Records to render. */\n\t\tdata: unknown | null;\n\t\tstatus: 'success' | 'empty';\n\t\tmeta: Record<string, unknown>;\n}\n\nconst asyncPreviewCache = new Map<string, CacheEntry>();\n\nfunction readCache(cacheKey: string | undefined, staleTime: number): CacheEntry | undefined {\n\t\tif (!cacheKey) return undefined;\n\t\tconst cached = asyncPreviewCache.get(cacheKey);\n\t\tif (!cached) return undefined;\n\t\tif (Date.now() - cached.timestamp > staleTime) {\n\t\t\t\tasyncPreviewCache.delete(cacheKey);\n\t\t\t\treturn undefined;\n\t\t}\n\t\treturn cached;\n}\n\nfunction normalizeLoading(\n\t\tloading: AsyncPreviewLoadingState,\n): false | Exclude<AsyncPreviewLoadingState, false> {\n\t\treturn loading === false ? false : loading;\n}\n\nfunction hasStaticDataSource<\n\t\tTData,\n\t\tTContext,\n\t\tTType extends string,\n>(options: UseAsyncPreviewOptions<TData, TContext, TType>) {\n\t\treturn Object.prototype.hasOwnProperty.call(options, 'data');\n}\n\nexport interface UseAsyncPreviewOptions<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n> extends Omit<AsyncPreviewRootProps<TData, TContext, TType>, 'children' | 'strings'> {}\n\nexport type UseAsyncPreviewReturn<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n> = AsyncPreviewState<TData, TContext, TType> & {\n\t\tsetOpen: (open: boolean) => void;\n};\n\nexport function useAsyncPreview<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>(options: UseAsyncPreviewOptions<TData, TContext, TType>): UseAsyncPreviewReturn<TData, TContext, TType> {\n\t\tconst {\n\t\t\t\ttype,\n\t\t\t\tcontext,\n\t\t\t\tcacheKey,\n\t\t\t\tcachePolicy = 'cache-first',\n\t\t\t\tstaleTime = 300_000,\n\t\t\t\topen: openProp,\n\t\t\t\tdefaultOpen = false,\n\t\t\t\tonOpenChange,\n\t\t\t\tonBeforeShow,\n\t\t\t\tonData,\n\t\t\t\tonError,\n\t\t\t\tonSettled,\n\t\t\t\tonRefresh,\n\t\t} = options;\n\t\tconst hasStaticData = hasStaticDataSource(options);\n\t\tconst staticData = hasStaticData ? options.data ?? null : null;\n\t\tconst onShow = hasStaticData ? undefined : options.onShow;\n\n\t\tconst isControlled = openProp !== undefined;\n\t\tconst [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n\t\tconst open = openProp ?? uncontrolledOpen;\n\n\t\tconst [data, setData] = useState<TData | null>(() => {\n\t\t\t\tif (hasStaticData) return staticData as TData | null;\n\t\t\t\tconst cached = readCache(cacheKey, staleTime);\n\t\t\t\treturn cached?.status === 'success' ? cached.data as TData : null;\n\t\t});\n\t\tconst [status, setStatus] = useState<AsyncPreviewStatus>(() => {\n\t\t\t\tif (hasStaticData) return staticData === null ? 'empty' : 'success';\n\t\t\t\tconst cached = readCache(cacheKey, staleTime);\n\t\t\t\treturn cached?.status ?? 'idle';\n\t\t});\n\t\tconst [error, setError] = useState<unknown>(null);\n\t\tconst [loading, setLoadingState] = useState<false | Exclude<AsyncPreviewLoadingState, false>>(false);\n\t\tconst [meta, setMetaState] = useState<Record<string, unknown>>(() => {\n\t\t\t\tconst cached = readCache(cacheKey, staleTime);\n\t\t\t\treturn cached?.meta ?? {};\n\t\t});\n\t\tconst [cached, setCached] = useState(() => readCache(cacheKey, staleTime) !== undefined);\n\t\tconst resolvedData = hasStaticData ? staticData as TData | null : data;\n\t\tconst resolvedStatus = hasStaticData\n\t\t\t\t? staticData === null ? 'empty' : 'success'\n\t\t\t\t: status;\n\n\t\tconst abortRef = useRef<AbortController | null>(null);\n\t\tconst requestIdRef = useRef(0);\n\t\tconst prefetchedRef = useRef(false);\n\t\tconst metaRef = useRef(meta);\n\t\tconst openRunKeyRef = useRef<string | null>(null);\n\t\tconst activeRunKeyRef = useRef<string | null>(null);\n\n\t\tconst stateRef = useRef<AsyncPreviewState<TData, TContext, TType> | null>(null);\n\n\t\tconst setOpen = useCallback(\n\t\t\t\t(nextOpen: boolean) => {\n\t\t\t\t\t\tif (!isControlled) setUncontrolledOpen(nextOpen);\n\t\t\t\t\t\tconst currentState = stateRef.current;\n\t\t\t\t\t\tif (currentState) {\n\t\t\t\t\t\t\t\tonOpenChange?.(nextOpen, { ...currentState, open: nextOpen });\n\t\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[isControlled, onOpenChange],\n\t\t);\n\n\t\tconst run = useCallback(\n\t\t\t\tasync (reason: AsyncPreviewReason) => {\n\t\t\t\t\t\tif (hasStaticData || !onShow) return;\n\n\t\t\t\t\t\tconst requestKey = cacheKey ?? type;\n\t\t\t\t\t\tconst activeController = abortRef.current;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\treason === 'open' &&\n\t\t\t\t\t\t\t\tactiveRunKeyRef.current === requestKey &&\n\t\t\t\t\t\t\t\tactiveController &&\n\t\t\t\t\t\t\t\t!activeController.signal.aborted\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// A cache hit still supersedes work for the previous preview.\n\t\t\t\t\t\tabortRef.current?.abort();\n\t\t\t\t\t\tabortRef.current = null;\n\t\t\t\t\t\tactiveRunKeyRef.current = null;\n\n\t\t\t\t\t\tconst cachedEntry = readCache(cacheKey, staleTime);\n\t\t\t\t\t\tconst canUseCache =\n\t\t\t\t\t\t\t\treason === 'open' &&\n\t\t\t\t\t\t\t\tcachedEntry !== undefined &&\n\t\t\t\t\t\t\t\tcachePolicy === 'cache-first';\n\n\t\t\t\t\t\tif (canUseCache) {\n\t\t\t\t\t\t\t\tsetCached(true);\n\t\t\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\t\t\tmetaRef.current = cachedEntry.meta;\n\t\t\t\t\t\t\t\tsetMetaState(cachedEntry.meta);\n\t\t\t\t\t\t\t\tsetData(cachedEntry.status === 'success' ? cachedEntry.data as TData : null);\n\t\t\t\t\t\t\t\tsetStatus(cachedEntry.status);\n\t\t\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\tabortRef.current = controller;\n\t\t\t\t\t\tactiveRunKeyRef.current = requestKey;\n\t\t\t\t\t\tconst requestId = requestIdRef.current + 1;\n\t\t\t\t\t\trequestIdRef.current = requestId;\n\t\t\t\t\t\tconst hadCache = cachedEntry !== undefined;\n\n\t\t\t\t\t\tsetCached(false);\n\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\tsetStatus('loading');\n\t\t\t\t\t\tsetLoadingState({ label: undefined });\n\n\t\t\t\t\t\tconst loadingState = stateRef.current\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\terror: null,\n\t\t\t\t\t\t\t\t\t\t\t\tloading: { label: undefined },\n\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'loading' as const,\n\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\tif (loadingState) onBeforeShow?.(loadingState);\n\t\t\t\t\t\tif (reason === 'refresh') {\n\t\t\t\t\t\t\t\tif (loadingState) onRefresh?.(loadingState);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst applyIfCurrent = (fn: () => void) => {\n\t\t\t\t\t\t\t\tif (requestIdRef.current !== requestId || controller.signal.aborted) return;\n\t\t\t\t\t\t\t\tfn();\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst result = await onShow({\n\t\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\tsignal: controller.signal,\n\t\t\t\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\t\t\t\tcached: hadCache,\n\t\t\t\t\t\t\t\t\t\tsetLoading: (nextLoading) =>\n\t\t\t\t\t\t\t\t\t\t\t\tapplyIfCurrent(() => setLoadingState(normalizeLoading(nextLoading))),\n\t\t\t\t\t\t\t\t\t\tsetMeta: (nextMeta) =>\n\t\t\t\t\t\t\t\t\t\t\t\tapplyIfCurrent(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst next = { ...metaRef.current, ...nextMeta };\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmetaRef.current = next;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMetaState(next);\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tapplyIfCurrent(() => {\n\t\t\t\t\t\t\t\t\t\tconst nextStatus: Extract<AsyncPreviewStatus, 'empty' | 'success'> =\n\t\t\t\t\t\t\t\t\t\t\t\tresult === null || result === undefined ? 'empty' : 'success';\n\t\t\t\t\t\t\t\t\t\tconst nextData = nextStatus === 'success' ? result as TData : null;\n\t\t\t\t\t\t\t\t\t\tsetData(nextData);\n\t\t\t\t\t\t\t\t\t\tsetStatus(nextStatus);\n\t\t\t\t\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\t\t\t\t\tsetCached(false);\n\n\t\t\t\t\t\t\t\t\t\tif (cacheKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tasyncPreviewCache.set(cacheKey, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: nextData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: nextStatus,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmeta: metaRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tconst settledState = stateRef.current\n\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: nextData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror: null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: false as const,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: nextStatus,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmeta: metaRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\t\t\t\t\tif (nextData !== null && settledState) {\n\t\t\t\t\t\t\t\t\t\t\t\tonData?.(nextData, settledState);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (settledState) onSettled?.(settledState);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (controller.signal.aborted) return;\n\t\t\t\t\t\t\t\tapplyIfCurrent(() => {\n\t\t\t\t\t\t\t\t\t\tsetError(err);\n\t\t\t\t\t\t\t\t\t\tsetStatus('error');\n\t\t\t\t\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\t\t\t\t\tconst settledState = stateRef.current\n\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror: err,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: false as const,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'error' as const,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\t\t\t\tif (settledState) onError?.(err, settledState);\n\t\t\t\t\t\t\t\t\t\tif (settledState) onSettled?.(settledState);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\tif (requestIdRef.current === requestId) {\n\t\t\t\t\t\t\t\t\t\tif (abortRef.current === controller) abortRef.current = null;\n\t\t\t\t\t\t\t\t\t\tif (activeRunKeyRef.current === requestKey) activeRunKeyRef.current = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tcachePolicy,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\thasStaticData,\n\t\t\t\t\t\tonBeforeShow,\n\t\t\t\t\t\tonData,\n\t\t\t\t\t\tonError,\n\t\t\t\t\t\tonRefresh,\n\t\t\t\t\t\tonSettled,\n\t\t\t\t\t\tonShow,\n\t\t\t\t\t\tstaleTime,\n\t\t\t\t\t\ttype,\n\t\t\t\t],\n\t\t);\n\n\t\tconst refresh = useCallback(() => {\n\t\t\t\tvoid run('refresh');\n\t\t}, [run]);\n\n\t\tconst prefetch = useCallback(() => {\n\t\t\t\tif (hasStaticData) return;\n\t\t\t\tif (prefetchedRef.current) return;\n\t\t\t\tprefetchedRef.current = true;\n\t\t\t\tvoid run('prefetch');\n\t\t}, [hasStaticData, run]);\n\n\t\tconst close = useCallback(() => {\n\t\t\t\tsetOpen(false);\n\t\t}, [setOpen]);\n\n\t\tconst state = useMemo<AsyncPreviewState<TData, TContext, TType>>(\n\t\t\t\t() => ({\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tdata: resolvedData,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\tstatus: resolvedStatus,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\topen,\n\t\t\t\t\t\tcached,\n\t\t\t\t\t\trefresh,\n\t\t\t\t\t\tprefetch,\n\t\t\t\t\t\tclose,\n\t\t\t\t}),\n\t\t\t\t[cached, close, context, error, loading, meta, open, prefetch, refresh, resolvedData, resolvedStatus, type],\n\t\t);\n\t\tstateRef.current = state;\n\t\tmetaRef.current = meta;\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!hasStaticData) return;\n\t\t\t\tabortRef.current?.abort();\n\t\t\t\tabortRef.current = null;\n\t\t\t\tactiveRunKeyRef.current = null;\n\t\t\t\topenRunKeyRef.current = null;\n\t\t\t\tsetError(null);\n\t\t\t\tsetLoadingState(false);\n\t\t\t\tsetCached(false);\n\t\t}, [hasStaticData, staticData]);\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!open) {\n\t\t\t\t\t\topenRunKeyRef.current = null;\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (hasStaticData) return;\n\n\t\t\t\tconst openRunKey = cacheKey ?? type;\n\t\t\t\tif (openRunKeyRef.current === openRunKey) return;\n\t\t\t\topenRunKeyRef.current = openRunKey;\n\t\t\t\tvoid run('open');\n\t\t}, [cacheKey, hasStaticData, open, run, type]);\n\n\t\tuseEffect(() => {\n\t\t\t\tprefetchedRef.current = false;\n\t\t}, [cacheKey, hasStaticData, type]);\n\n\t\tuseEffect(\n\t\t\t\t() => () => {\n\t\t\t\t\t\tabortRef.current?.abort();\n\t\t\t\t},\n\t\t\t\t[],\n\t\t);\n\n\t\treturn { ...state, setOpen };\n}\n\nexport function clearAsyncPreviewCache(cacheKey?: string) {\n\t\tif (cacheKey) {\n\t\t\t\tasyncPreviewCache.delete(cacheKey);\n\t\t\t\treturn;\n\t\t}\n\t\tasyncPreviewCache.clear();\n}\n","/**\n * AsyncPreview — generic lazy preview popover for table cells, inline values,\n * buttons, badges, or any other trigger.\n *\n * The library owns popover chrome, async state, abort/race protection, cache,\n * loading/error/empty defaults, and composition primitives. Consumers own the\n * fetcher, routing callbacks, telemetry, and domain rendering.\n */\nimport {\n\t\tcreateContext,\n\t\tuseContext,\n} from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { ErrorState, LoadingState } from '../../base/feedback';\nimport { EmptyState } from '../../blocks/data-display';\nimport {\n\t\tPopover,\n\t\tPopoverContent,\n\t\tPopoverTrigger,\n} from '../../base/popover';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\t\tdefaultAsyncPreviewStrings,\n\t\ttype AsyncPreviewStrings,\n} from './async-preview.strings';\nimport type {\n\t\tAsyncPreviewBodyProps,\n\t\tAsyncPreviewContentProps,\n\t\tAsyncPreviewEmptyProps,\n\t\tAsyncPreviewErrorProps,\n\t\tAsyncPreviewLoadingProps,\n\t\tAsyncPreviewRootProps,\n\t\tAsyncPreviewState as AsyncPreviewStateValue,\n\t\tAsyncPreviewStateProps,\n\t\tAsyncPreviewTriggerProps,\n} from './async-preview.types';\nimport { useAsyncPreview } from './hooks/use-async-preview';\nimport { popoverWidthRecipes } from '../../base/popover/popover.recipes';\n\ninterface AsyncPreviewContextValue<TData, TContext, TType extends string> {\n\t\tstate: AsyncPreviewStateValue<TData, TContext, TType>;\n\t\tsetOpen: (open: boolean) => void;\n\t\t/** Overrides this surface's own copy. */\n\t\tstrings: AsyncPreviewStrings;\n\t\tprefetchOn: false | 'hover' | 'focus';\n}\n\nconst AsyncPreviewContext =\n\t\tcreateContext<AsyncPreviewContextValue<unknown, unknown, string> | null>(null);\n\nfunction useAsyncPreviewContext<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>(): AsyncPreviewContextValue<TData, TContext, TType> {\n\t\tconst ctx = useContext(AsyncPreviewContext);\n\t\tif (!ctx) {\n\t\t\t\tthrow new Error('AsyncPreview compound parts must be rendered inside <AsyncPreview.Root>.');\n\t\t}\n\t\treturn ctx as AsyncPreviewContextValue<TData, TContext, TType>;\n}\n\nfunction AsyncPreviewRoot<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({\n\t\tchildren,\n\t\tstrings: stringsProp,\n\t\tprefetchOn = false,\n\t\t...options\n}: AsyncPreviewRootProps<TData, TContext, TType>) {\n\t\tconst strings = useStrings(defaultAsyncPreviewStrings, stringsProp);\n\t\tconst preview = useAsyncPreview<TData, TContext, TType>(options);\n\t\tconst state: AsyncPreviewStateValue<TData, TContext, TType> = {\n\t\t\t\ttype: preview.type,\n\t\t\t\tcontext: preview.context,\n\t\t\t\tdata: preview.data,\n\t\t\t\terror: preview.error,\n\t\t\t\tloading: preview.loading,\n\t\t\t\tstatus: preview.status,\n\t\t\t\tmeta: preview.meta,\n\t\t\t\topen: preview.open,\n\t\t\t\tcached: preview.cached,\n\t\t\t\trefresh: preview.refresh,\n\t\t\t\tprefetch: preview.prefetch,\n\t\t\t\tclose: () => preview.setOpen(false),\n\t\t};\n\n\t\treturn (\n\t\t\t\t<AsyncPreviewContext.Provider\n\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tstate: state as AsyncPreviewStateValue<unknown, unknown, string>,\n\t\t\t\t\t\t\t\tsetOpen: preview.setOpen,\n\t\t\t\t\t\t\t\tstrings,\n\t\t\t\t\t\t\t\tprefetchOn,\n\t\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\t<span className=\"async-preview--component contents\">\n\t\t\t\t\t\t\t\t<Popover open={state.open} onOpenChange={preview.setOpen}>\n\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</Popover>\n\t\t\t\t\t\t</span>\n\t\t\t\t</AsyncPreviewContext.Provider>\n\t\t);\n}\n\nfunction AsyncPreviewTrigger<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ render, children }: AsyncPreviewTriggerProps<TData, TContext, TType>) {\n\t\tconst { state, prefetchOn } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tconst maybePrefetch = () => {\n\t\t\t\tif (prefetchOn) state.prefetch();\n\t\t};\n\t\tconst triggerProps = {\n\t\t\t\t'aria-busy': state.status === 'loading' ? true as const : undefined,\n\t\t\t\t'data-state': state.open ? 'open' as const : 'closed' as const,\n\t\t\t\t'data-loading': state.status === 'loading' ? true as const : undefined,\n\t\t\t\tonPointerEnter: prefetchOn === 'hover' ? maybePrefetch : undefined,\n\t\t\t\tonFocus: prefetchOn === 'focus' ? maybePrefetch : undefined,\n\t\t};\n\n\t\tif (render) {\n\t\t\t\tconst renderedTrigger = typeof render === 'function'\n\t\t\t\t\t\t? render({ state, triggerProps })\n\t\t\t\t\t\t: render;\n\t\t\t\treturn (\n\t\t\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\t\t\trender={renderedTrigger}\n\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t}\n\t\t\t\t/>\n\t\t);\n}\n\nfunction AsyncPreviewContent({\n\t\tclassName,\n\t\tchildren,\n\t\talign = 'start',\n\t\tsideOffset = 8,\n\t\tfinalFocus = true,\n\t\t...props\n}: AsyncPreviewContentProps) {\n\t\tconst { state } = useAsyncPreviewContext();\n\t\tconst { size = 'md', padding = 'none', ...contentProps } = props;\n\t\tconst sizeClassName = {\n\t\t\t\tsm: popoverWidthRecipes.md,\n\t\t\t\tmd: popoverWidthRecipes.lg,\n\t\t\t\tlg: popoverWidthRecipes.xl,\n\t\t}[size];\n\t\tconst inset = ({\n\t\t\t\tnone: 'flush',\n\t\t\t\tsm: 'compact',\n\t\t\t\tmd: 'default',\n\t\t\t\tlg: 'flush',\n\t\t} as const)[padding];\n\t\tconst paddingClassName = padding === 'none'\n\t\t\t\t? 'gap-0'\n\t\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t\t<PopoverContent\n\t\t\t\t\t\ttype=\"display\"\n\t\t\t\t\t\talign={align}\n\t\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t\t\tfinalFocus={finalFocus}\n\t\t\t\t\t\tinset={inset}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'async-preview--content overflow-hidden',\n\t\t\t\t\t\t\t\tsizeClassName,\n\t\t\t\t\t\t\t\tpaddingClassName,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-status={state.status}\n\t\t\t\t\t\tdata-preview-type={state.type}\n\t\t\t\t\t\t{...contentProps}\n\t\t\t\t>\n\t\t\t\t\t\t{padding === 'lg' ? <div className=\"p-surface-lg\">{children}</div> : children}\n\t\t\t\t</PopoverContent>\n\t\t);\n}\n\nfunction AsyncPreviewState<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children }: AsyncPreviewStateProps<TData, TContext, TType>) {\n\t\tconst { state } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\treturn <>{children(state)}</>;\n}\n\nfunction AsyncPreviewBody<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children }: AsyncPreviewBodyProps<TData, TContext, TType>) {\n\t\tconst { state } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'success' || state.data === null) return null;\n\t\treturn <>{children({ ...state, data: state.data })}</>;\n}\n\nfunction AsyncPreviewLoading<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children, className }: AsyncPreviewLoadingProps<TData, TContext, TType>) {\n\t\tconst { state, strings } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'loading') return null;\n\t\tif (children) return <>{children(state)}</>;\n\t\tconst label =\n\t\t\t\ttypeof state.loading === 'object' && state.loading !== null\n\t\t\t\t\t\t? state.loading.label\n\t\t\t\t\t\t: undefined;\n\t\tconst phase =\n\t\t\t\ttypeof state.loading === 'object' && state.loading !== null\n\t\t\t\t\t\t? state.loading.phase\n\t\t\t\t\t\t: undefined;\n\t\tconst progress =\n\t\t\t\ttypeof state.loading === 'object' &&\n\t\t\t\tstate.loading !== null &&\n\t\t\t\ttypeof state.loading.progress === 'number'\n\t\t\t\t\t\t? Math.min(100, Math.max(0, state.loading.progress))\n\t\t\t\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t\t<LoadingState\n\t\t\t\t\t\tclassName={cn('async-preview--loading p-surface', className)}\n\t\t\t\t\t\tvariant=\"panel\"\n\t\t\t\t\t\tlabel={label ?? strings.loading}\n\t\t\t\t\t\tdescription={phase}\n\t\t\t\t\t\tprogress={progress}\n\t\t\t\t\t\tskeleton\n\t\t\t\t\t\tlines={3}\n\t\t\t\t/>\n\t\t);\n}\n\nfunction AsyncPreviewError<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children, className }: AsyncPreviewErrorProps<TData, TContext, TType>) {\n\t\tconst { state, strings } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'error') return null;\n\t\tif (children) return <>{children(state)}</>;\n\t\treturn (\n\t\t\t\t<ErrorState\n\t\t\t\t\t\tclassName={cn('async-preview--error p-surface', className)}\n\t\t\t\t\t\ttitle={strings.errorTitle}\n\t\t\t\t\t\tdescription={strings.errorDescription}\n\t\t\t\t\t\tonRetry={state.refresh}\n\t\t\t\t\t\tretryLabel={strings.retry}\n\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t/>\n\t\t);\n}\n\nfunction AsyncPreviewEmpty<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children, className }: AsyncPreviewEmptyProps<TData, TContext, TType>) {\n\t\tconst { state, strings } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'empty') return null;\n\t\tif (children) return <>{children(state)}</>;\n\t\treturn (\n\t\t\t\t<EmptyState\n\t\t\t\t\t\tclassName={cn('async-preview--empty', className)}\n\t\t\t\t\t\tpadding=\"md\"\n\t\t\t\t\t\ttitle={strings.emptyTitle}\n\t\t\t\t\t\tdescription={strings.emptyDescription}\n\t\t\t\t/>\n\t\t);\n}\n\nfunction createAsyncPreview<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>() {\n\t\treturn {\n\t\t\t\tRoot: AsyncPreviewRoot<TData, TContext, TType>,\n\t\t\t\tTrigger: AsyncPreviewTrigger<TData, TContext, TType>,\n\t\t\t\tContent: AsyncPreviewContent,\n\t\t\t\tState: AsyncPreviewState<TData, TContext, TType>,\n\t\t\t\tBody: AsyncPreviewBody<TData, TContext, TType>,\n\t\t\t\tLoading: AsyncPreviewLoading<TData, TContext, TType>,\n\t\t\t\tError: AsyncPreviewError<TData, TContext, TType>,\n\t\t\t\tEmpty: AsyncPreviewEmpty<TData, TContext, TType>,\n\t\t};\n}\n\nconst AsyncPreview = {\n\t\tRoot: AsyncPreviewRoot,\n\t\tTrigger: AsyncPreviewTrigger,\n\t\tContent: AsyncPreviewContent,\n\t\tState: AsyncPreviewState,\n\t\tBody: AsyncPreviewBody,\n\t\tLoading: AsyncPreviewLoading,\n\t\tError: AsyncPreviewError,\n\t\tEmpty: AsyncPreviewEmpty,\n};\n\nAsyncPreviewRoot.displayName = 'AsyncPreviewRoot';\nAsyncPreviewTrigger.displayName = 'AsyncPreviewTrigger';\nAsyncPreviewContent.displayName = 'AsyncPreviewContent';\nAsyncPreviewState.displayName = 'AsyncPreviewState';\nAsyncPreviewBody.displayName = 'AsyncPreviewBody';\nAsyncPreviewLoading.displayName = 'AsyncPreviewLoading';\nAsyncPreviewError.displayName = 'AsyncPreviewError';\nAsyncPreviewEmpty.displayName = 'AsyncPreviewEmpty';\n\nexport {\n\t\tAsyncPreview,\n\t\tAsyncPreviewRoot,\n\t\tAsyncPreviewTrigger,\n\t\tAsyncPreviewContent,\n\t\tAsyncPreviewState,\n\t\tAsyncPreviewBody,\n\t\tAsyncPreviewLoading,\n\t\tAsyncPreviewError,\n\t\tAsyncPreviewEmpty,\n\t\tcreateAsyncPreview,\n\t\tuseAsyncPreviewContext,\n};\n","/**\n * PreviewTriggerCell — table-cell trigger chrome for AsyncPreview.\n *\n * It renders a button only when preview interaction exists. Empty, disabled,\n * or explicitly non-previewable values keep the same table rhythm without a\n * caret, pointer cursor, popup ARIA, or trigger padding that implies action.\n */\nimport { ChevronDown, type LucideIcon } from 'lucide-react';\nimport React, { type ReactNode } from 'react';\n\nimport { Badge, type BadgeProps } from '../../base/badge';\nimport { Button } from '../../base/buttons';\nimport { Stack } from '../../base/structure';\nimport {\n\tEmptyValue,\n\tName,\n\tSecondaryValue,\n\tValue,\n} from '../../primitives';\nimport { cn } from '../../../lib/utils';\n\ntype PreviewTriggerCellRootProps = Omit<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t'children' | 'disabled' | 'name' | 'value'\n>;\n\nexport interface PreviewTriggerCellProps extends PreviewTriggerCellRootProps {\n\t/** Primary text of the cell. */\n\tvalue?: ReactNode | null;\n\t/** Display name. */\n\tname?: string | null;\n\t/** Supporting text under the value. */\n\tsecondary?: ReactNode | null;\n\t/** Content before the value. */\n\tleading?: ReactNode;\n\t/** Content after the value. */\n\ttrailing?: ReactNode;\n\t/** Chip rendered beside the label. */\n\tbadge?: ReactNode | { label: ReactNode; tone?: BadgeProps['tone']; size?: BadgeProps['size'] };\n\t/** Leading glyph. */\n\ticon?: LucideIcon;\n\t/** Copy shown when the value is empty. */\n\temptyLabel?: ReactNode;\n\t/** Whether this row has a preview to open. */\n\thasPreview?: boolean;\n\t/** Explains why the preview is unavailable, shown as a tooltip. */\n\tdisabledReason?: ReactNode;\n\t/** Applies name casing to the value regardless of how it arrives. */\n\tforceNameCase?: boolean;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Merged onto the content. */\n\tcontentClassName?: string;\n}\n\nfunction isEmpty(value: ReactNode | null | undefined) {\n\treturn value === null || value === undefined || value === '';\n}\n\nfunction renderBadge(badge: PreviewTriggerCellProps['badge']) {\n\tif (!badge) return null;\n\tif (typeof badge === 'object' && !Array.isArray(badge) && 'label' in badge) {\n\t\treturn (\n\t\t\t<Badge inline tone={badge.tone ?? 'secondary'} size={badge.size}>\n\t\t\t\t{badge.label}\n\t\t\t</Badge>\n\t\t);\n\t}\n\treturn badge;\n}\n\nfunction PreviewTriggerCellInner({\n\tvalue,\n\tname,\n\tsecondary,\n\tleading,\n\ttrailing,\n\tbadge,\n\ticon: Icon,\n\temptyLabel = '--',\n\tforceNameCase,\n\tcontentClassName,\n}: PreviewTriggerCellProps) {\n\tconst primaryIsEmpty = isEmpty(name) && isEmpty(value);\n\treturn (\n\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"sm\" wrap={false} className={cn('preview-trigger-cell--inner', contentClassName)}>\n\t\t\t{!!leading && <span className=\"preview-trigger-cell--leading inline-flex shrink-0 items-center\">{leading}</span>}\n\t\t\t{!!Icon && (\n\t\t\t\t<span className=\"preview-trigger-cell--icon inline-flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t<Icon className=\"size-icon-sm\" aria-hidden />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<span className=\"preview-trigger-cell--content flex min-w-0 flex-1 flex-col items-start\">\n\t\t\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"sm\" wrap={false} className=\"max-w-full\">\n\t\t\t\t\t{primaryIsEmpty ? (\n\t\t\t\t\t\t<EmptyValue className=\"truncate\">\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</EmptyValue>\n\t\t\t\t\t) : name ? (\n\t\t\t\t\t\t<Name\n\t\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\t\tforce={forceNameCase}\n\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\tclassName=\"truncate\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Value type=\"inherit\" weight=\"medium\" className=\"truncate\">\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Value>\n\t\t\t\t\t)}\n\t\t\t\t\t{renderBadge(badge)}\n\t\t\t\t</Stack>\n\t\t\t\t{!isEmpty(secondary) && (\n\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"max-w-full truncate\">\n\t\t\t\t\t\t{secondary}\n\t\t\t\t\t</SecondaryValue>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t{!!trailing && <span className=\"preview-trigger-cell--trailing inline-flex shrink-0 items-center\">{trailing}</span>}\n\t\t</Stack>\n\t);\n}\n\nexport const PreviewTriggerCell = React.forwardRef<HTMLButtonElement, PreviewTriggerCellProps>(function PreviewTriggerCell({\n\tvalue,\n\tname,\n\tsecondary,\n\tleading,\n\ttrailing,\n\tbadge,\n\ticon,\n\temptyLabel,\n\thasPreview,\n\tdisabledReason,\n\tforceNameCase,\n\tclassName,\n\tcontentClassName,\n\ttype,\n\t...rootProps\n}, ref) {\n\tconst cellProps = {\n\t\tvalue,\n\t\tname,\n\t\tsecondary,\n\t\tleading,\n\t\ttrailing,\n\t\tbadge,\n\t\ticon,\n\t\temptyLabel,\n\t\tforceNameCase,\n\t\tcontentClassName,\n\t};\n\tconst previewable =\n\t\thasPreview ?? (!isEmpty(name) || !isEmpty(value));\n\tconst interactive = previewable && !disabledReason;\n\n\tif (!interactive) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'preview-trigger-cell--component flex h-auto min-h-action-sm max-w-full items-center justify-start rounded-radius px-control-sm py-space-xs text-left',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-disabled={disabledReason ? true : undefined}\n\t\t\t\ttitle={typeof disabledReason === 'string' ? disabledReason : undefined}\n\t\t\t>\n\t\t\t\t<PreviewTriggerCellInner {...cellProps} />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t{...rootProps}\n\t\t\tref={ref}\n\t\t\ttype={type ?? 'button'}\n\t\t\ttone=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tsize=\"sm\"\n\t\t\tclassName={cn(\n\t\t\t\t'preview-trigger-cell--component h-auto min-h-action-sm max-w-full justify-start px-control-sm py-space-xs text-left',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<PreviewTriggerCellInner {...cellProps} />\n\t\t\t<ChevronDown className=\"preview-trigger-cell--caret size-icon-sm shrink-0 text-muted-foreground\" aria-hidden />\n\t\t</Button>\n\t);\n});\n\nPreviewTriggerCell.displayName = 'PreviewTriggerCell';\n"],"mappings":"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"}
1
+ {"version":3,"file":"async-preview.js","names":["_Fragment","focusRecipes","Button","TooltipContent","Tooltip","Stack","LoadingState","ErrorState","popoverWidthRecipes","Value","Name","SecondaryValue","EmptyValue","Badge","PopoverTrigger","Popover","PopoverContent","EmptyState","React","Fragment$1","defaultAsyncPreviewStrings","ASYNC_PREVIEW_CACHE_LIMIT","asyncPreviewCache","readCache","cacheKey","cached","staleTime","peekCache","writeCache","entry","oldest","resolveRunKey","contextKey","context","type","IDLE_OPEN_LOADING","normalizeLoading","loading","hasStaticDataSource","options","useAsyncPreview","openProp","hasStaticData","staticData","onShow","isControlled","uncontrolledOpen","setUncontrolledOpen","useState","defaultOpen","open","data","setData","status","setStatus","error","setError","setLoadingState","meta","setMetaState","setCached","runKey","awaitingFirstRun","warmEntry","cachePolicy","resolvedData","resolvedStatus","resolvedLoading","resolvedMeta","resolvedCached","abortRef","useRef","requestIdRef","prefetchedRef","metaRef","openRunKeyRef","activeRunKeyRef","wasOpenRef","requests","settledRunRef","settledPrefetchRef","stateRef","setOpen","useCallback","nextOpen","currentState","onOpenChange","run","requestKey","activeController","reason","cachedEntry","settledPrefetch","controller","requestMeta","requestId","hadCache","loadingState","onBeforeShow","onRefresh","applyIfCurrent","fn","result","nextLoading","nextMeta","next","settled","nextStatus","nextData","settledState","onData","onSettled","err","onError","refresh","prefetch","close","state","useMemo","useEffect","pending","current","clearAsyncPreviewCache","AsyncPreviewContext","createContext","useAsyncPreviewContext","ctx","useContext","AsyncPreviewRoot","stringsProp","strings","useStrings","preview","AsyncPreviewTrigger","maybePrefetch","prefetchOn","triggerProps","render","renderedTrigger","AsyncPreviewContent","props","contentProps","sizeClassName","size","inset","padding","cn","className","children","AsyncPreviewState","AsyncPreviewBody","AsyncPreviewLoading","label","phase","progress","AsyncPreviewError","AsyncPreviewEmpty","createAsyncPreview","AsyncPreview","isEmpty","value","renderBadge","badge","PreviewTriggerCellInner","Icon","primaryIsEmpty","name","contentClassName","leading","emptyLabel","forceNameCase","secondary","trailing","PreviewTriggerCell","rootProps","cellProps","hasPreview","disabledReason","cellClassName","TooltipTrigger","ChevronDown"],"sources":["../../src/components/features/async-preview/async-preview.strings.ts","../../src/components/features/async-preview/hooks/use-async-preview.ts","../../src/components/features/async-preview/async-preview.tsx","../../src/components/features/async-preview/preview-trigger-cell.tsx"],"sourcesContent":["/**\n * Strings for AsyncPreview. Consumers override with `strings={{ ... }}` on\n * `<AsyncPreview.Root />`; all user-facing copy is deep-merged via\n * `useStrings`.\n */\nexport interface AsyncPreviewStrings {\n\tloading: string;\n\terrorTitle: string;\n\terrorDescription: string;\n\tretry: string;\n\temptyTitle: string;\n\temptyDescription: string;\n}\n\nexport const defaultAsyncPreviewStrings: AsyncPreviewStrings = {\n\tloading: 'Loading preview...',\n\terrorTitle: 'Could not load preview',\n\terrorDescription: 'Try again or open the full record.',\n\tretry: 'Retry',\n\temptyTitle: 'No preview data',\n\temptyDescription: 'There is nothing to show for this record yet.',\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport type {\n\t\tAsyncPreviewLoadingState,\n\t\tAsyncPreviewReason,\n\t\tAsyncPreviewRootProps,\n\t\tAsyncPreviewState,\n\t\tAsyncPreviewStatus,\n} from '../async-preview.types';\n\ninterface CacheEntry {\n\t\t/** Formatted time for the entry. */\n\t\ttimestamp: number;\n\t\t/** Records to render. */\n\t\tdata: unknown | null;\n\t\tstatus: 'success' | 'empty';\n\t\tmeta: Record<string, unknown>;\n}\n\n/**\n * Entries kept in the shared preview cache. A Map iterates in insertion\n * order, so re-inserting on read and write keeps the least recently used\n * entry first; long table sessions stop growing at this size.\n */\nconst ASYNC_PREVIEW_CACHE_LIMIT = 200;\nconst asyncPreviewCache = new Map<string, CacheEntry>();\n\nfunction readCache(cacheKey: string | undefined, staleTime: number): CacheEntry | undefined {\n\t\tif (!cacheKey) return undefined;\n\t\tconst cached = asyncPreviewCache.get(cacheKey);\n\t\tif (!cached) return undefined;\n\t\tasyncPreviewCache.delete(cacheKey);\n\t\tif (Date.now() - cached.timestamp > staleTime) return undefined;\n\t\tasyncPreviewCache.set(cacheKey, cached);\n\t\treturn cached;\n}\n\n/** Reads without touching recency, for use while rendering. */\nfunction peekCache(cacheKey: string | undefined, staleTime: number): CacheEntry | undefined {\n\t\tif (!cacheKey) return undefined;\n\t\tconst cached = asyncPreviewCache.get(cacheKey);\n\t\treturn cached && Date.now() - cached.timestamp <= staleTime ? cached : undefined;\n}\n\nfunction writeCache(cacheKey: string, entry: CacheEntry) {\n\t\tasyncPreviewCache.delete(cacheKey);\n\t\tasyncPreviewCache.set(cacheKey, entry);\n\t\twhile (asyncPreviewCache.size > ASYNC_PREVIEW_CACHE_LIMIT) {\n\t\t\t\tconst oldest = asyncPreviewCache.keys().next();\n\t\t\t\tif (oldest.done) break;\n\t\t\t\tasyncPreviewCache.delete(oldest.value);\n\t\t}\n}\n\n/**\n * Identifies the record a run belongs to. Without a `cacheKey`, a\n * `contextKey` or a primitive `context` separates one record from the next;\n * an object context has no stable identity across renders, so it needs one\n * of the two keys to be told apart.\n */\nfunction resolveRunKey(type: string, context: unknown, cacheKey?: string, contextKey?: string | number): string {\n\t\tif (cacheKey) return cacheKey;\n\t\tif (contextKey !== undefined) return `${type}:key:${contextKey}`;\n\t\tif (typeof context === 'string' || typeof context === 'number' || typeof context === 'boolean') {\n\t\t\t\treturn `${type}:${typeof context}:${context}`;\n\t\t}\n\t\treturn type;\n}\n\nconst IDLE_OPEN_LOADING: Exclude<AsyncPreviewLoadingState, boolean> = { label: undefined };\n\nfunction normalizeLoading(\n\t\tloading: AsyncPreviewLoadingState,\n): false | Exclude<AsyncPreviewLoadingState, false> {\n\t\treturn loading === false ? false : loading;\n}\n\nfunction hasStaticDataSource<\n\t\tTData,\n\t\tTContext,\n\t\tTType extends string,\n>(options: UseAsyncPreviewOptions<TData, TContext, TType>) {\n\t\treturn Object.prototype.hasOwnProperty.call(options, 'data');\n}\n\nexport interface UseAsyncPreviewOptions<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n> extends Omit<AsyncPreviewRootProps<TData, TContext, TType>, 'children' | 'strings'> {}\n\nexport type UseAsyncPreviewReturn<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n> = AsyncPreviewState<TData, TContext, TType> & {\n\t\tsetOpen: (open: boolean) => void;\n};\n\nexport function useAsyncPreview<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>(options: UseAsyncPreviewOptions<TData, TContext, TType>): UseAsyncPreviewReturn<TData, TContext, TType> {\n\t\tconst {\n\t\t\t\ttype,\n\t\t\t\tcontext,\n\t\t\t\tcontextKey,\n\t\t\t\tcacheKey,\n\t\t\t\tcachePolicy = 'cache-first',\n\t\t\t\tstaleTime = 300_000,\n\t\t\t\topen: openProp,\n\t\t\t\tdefaultOpen = false,\n\t\t\t\tonOpenChange,\n\t\t\t\tonBeforeShow,\n\t\t\t\tonData,\n\t\t\t\tonError,\n\t\t\t\tonSettled,\n\t\t\t\tonRefresh,\n\t\t} = options;\n\t\tconst hasStaticData = hasStaticDataSource(options);\n\t\tconst staticData = hasStaticData ? options.data ?? null : null;\n\t\tconst onShow = hasStaticData ? undefined : options.onShow;\n\n\t\tconst isControlled = openProp !== undefined;\n\t\tconst [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n\t\tconst open = openProp ?? uncontrolledOpen;\n\n\t\tconst [data, setData] = useState<TData | null>(() => {\n\t\t\t\tif (hasStaticData) return staticData as TData | null;\n\t\t\t\tconst cached = readCache(cacheKey, staleTime);\n\t\t\t\treturn cached?.status === 'success' ? cached.data as TData : null;\n\t\t});\n\t\tconst [status, setStatus] = useState<AsyncPreviewStatus>(() => {\n\t\t\t\tif (hasStaticData) return staticData === null ? 'empty' : 'success';\n\t\t\t\tconst cached = readCache(cacheKey, staleTime);\n\t\t\t\treturn cached?.status ?? 'idle';\n\t\t});\n\t\tconst [error, setError] = useState<unknown>(null);\n\t\tconst [loading, setLoadingState] = useState<false | Exclude<AsyncPreviewLoadingState, false>>(false);\n\t\tconst [meta, setMetaState] = useState<Record<string, unknown>>(() => {\n\t\t\t\tconst cached = readCache(cacheKey, staleTime);\n\t\t\t\treturn cached?.meta ?? {};\n\t\t});\n\t\tconst [cached, setCached] = useState(() => readCache(cacheKey, staleTime) !== undefined);\n\t\tconst runKey = resolveRunKey(type, context, cacheKey, contextKey);\n\t\t// The open effect starts the request after this render commits. Report the\n\t\t// request as already loading so the opened surface never shows an empty frame.\n\t\tconst awaitingFirstRun = !hasStaticData && Boolean(onShow) && open && status === 'idle';\n\t\t// A request that finished after this preview closed left its result in the\n\t\t// shared cache only. The open effect adopts it; this render already shows it.\n\t\tconst warmEntry = awaitingFirstRun && cachePolicy === 'cache-first'\n\t\t\t\t? peekCache(cacheKey, staleTime)\n\t\t\t\t: undefined;\n\t\tconst resolvedData = hasStaticData\n\t\t\t\t? staticData as TData | null\n\t\t\t\t: warmEntry ? (warmEntry.status === 'success' ? warmEntry.data as TData : null) : data;\n\t\tconst resolvedStatus: AsyncPreviewStatus = hasStaticData\n\t\t\t\t? staticData === null ? 'empty' : 'success'\n\t\t\t\t: warmEntry ? warmEntry.status : awaitingFirstRun ? 'loading' : status;\n\t\tconst resolvedLoading = awaitingFirstRun && !warmEntry && loading === false ? IDLE_OPEN_LOADING : loading;\n\t\tconst resolvedMeta = warmEntry ? warmEntry.meta : meta;\n\t\tconst resolvedCached = warmEntry ? true : cached;\n\n\t\tconst abortRef = useRef<AbortController | null>(null);\n\t\tconst requestIdRef = useRef(0);\n\t\tconst prefetchedRef = useRef(false);\n\t\tconst metaRef = useRef(meta);\n\t\tconst openRunKeyRef = useRef<string | null>(null);\n\t\tconst activeRunKeyRef = useRef<string | null>(null);\n\t\tconst wasOpenRef = useRef(false);\n\t\t/**\n\t\t * Requests issued with a cacheKey, and those that kept running after their\n\t\t * preview closed or unmounted. A detached request finishes into the shared\n\t\t * cache and sets no state on this instance.\n\t\t */\n\t\tconst [requests] = useState(() => ({\n\t\t\t\tcacheKeys: new WeakMap<AbortController, string>(),\n\t\t\t\tdetached: new WeakSet<AbortController>(),\n\t\t}));\n\t\t/** The record held in `data`, so another record's data is never shown as this one's. */\n\t\tconst settledRunRef = useRef<{ key: string; status: 'success' | 'empty' } | null>(\n\t\t\t\tstatus === 'success' || status === 'empty' ? { key: runKey, status } : null,\n\t\t);\n\t\t/** A prefetch that settled while closed; the next open shows it instead of fetching again. */\n\t\tconst settledPrefetchRef = useRef<{ key: string; timestamp: number } | null>(null);\n\n\t\tconst stateRef = useRef<AsyncPreviewState<TData, TContext, TType> | null>(null);\n\n\t\tconst setOpen = useCallback(\n\t\t\t\t(nextOpen: boolean) => {\n\t\t\t\t\t\tif (!isControlled) setUncontrolledOpen(nextOpen);\n\t\t\t\t\t\tconst currentState = stateRef.current;\n\t\t\t\t\t\tif (currentState) {\n\t\t\t\t\t\t\t\tonOpenChange?.(nextOpen, { ...currentState, open: nextOpen });\n\t\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[isControlled, onOpenChange],\n\t\t);\n\n\t\tconst run = useCallback(\n\t\t\t\tasync (reason: AsyncPreviewReason) => {\n\t\t\t\t\t\tif (hasStaticData || !onShow) return;\n\n\t\t\t\t\t\tconst requestKey = runKey;\n\t\t\t\t\t\tconst activeController = abortRef.current;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\treason !== 'refresh' &&\n\t\t\t\t\t\t\t\tactiveRunKeyRef.current === requestKey &&\n\t\t\t\t\t\t\t\tactiveController &&\n\t\t\t\t\t\t\t\t!activeController.signal.aborted\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t// An open rejoins the request its last close left running.\n\t\t\t\t\t\t\t\tif (reason === 'open' && requests.detached.delete(activeController)) {\n\t\t\t\t\t\t\t\t\t\tsetCached(false);\n\t\t\t\t\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\t\t\t\t\tsetStatus('loading');\n\t\t\t\t\t\t\t\t\t\tsetLoadingState({ label: undefined });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// A cache hit still supersedes work for the previous preview. A\n\t\t\t\t\t\t// request left running for the cache keeps going and is only let go.\n\t\t\t\t\t\tif (activeController && !requests.detached.has(activeController)) activeController.abort();\n\t\t\t\t\t\tabortRef.current = null;\n\t\t\t\t\t\tactiveRunKeyRef.current = null;\n\n\t\t\t\t\t\tconst cachedEntry = readCache(cacheKey, staleTime);\n\t\t\t\t\t\tconst canUseCache =\n\t\t\t\t\t\t\t\treason === 'open' &&\n\t\t\t\t\t\t\t\tcachedEntry !== undefined &&\n\t\t\t\t\t\t\t\tcachePolicy === 'cache-first';\n\n\t\t\t\t\t\tif (canUseCache) {\n\t\t\t\t\t\t\t\tsetCached(true);\n\t\t\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\t\t\tmetaRef.current = cachedEntry.meta;\n\t\t\t\t\t\t\t\tsetMetaState(cachedEntry.meta);\n\t\t\t\t\t\t\t\tsetData(cachedEntry.status === 'success' ? cachedEntry.data as TData : null);\n\t\t\t\t\t\t\t\tsetStatus(cachedEntry.status);\n\t\t\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\t\t\tsettledRunRef.current = { key: requestKey, status: cachedEntry.status };\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst settledPrefetch = settledPrefetchRef.current;\n\t\t\t\t\t\tsettledPrefetchRef.current = null;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\treason === 'open' &&\n\t\t\t\t\t\t\t\tcachePolicy === 'cache-first' &&\n\t\t\t\t\t\t\t\tsettledPrefetch?.key === requestKey &&\n\t\t\t\t\t\t\t\tDate.now() - settledPrefetch.timestamp <= staleTime\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t// Without a cacheKey the prefetched result serves this one open;\n\t\t\t\t\t\t\t\t// the next hover or open requests fresh data.\n\t\t\t\t\t\t\t\tprefetchedRef.current = false;\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst controller = new AbortController();\n\t\t\t\t\t\tif (cacheKey) requests.cacheKeys.set(controller, cacheKey);\n\t\t\t\t\t\tlet requestMeta = metaRef.current;\n\t\t\t\t\t\tabortRef.current = controller;\n\t\t\t\t\t\tactiveRunKeyRef.current = requestKey;\n\t\t\t\t\t\tconst requestId = requestIdRef.current + 1;\n\t\t\t\t\t\trequestIdRef.current = requestId;\n\t\t\t\t\t\tconst hadCache = cachedEntry !== undefined;\n\n\t\t\t\t\t\tsetCached(false);\n\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\tif (settledRunRef.current?.key !== requestKey) {\n\t\t\t\t\t\t\t\tsettledRunRef.current = null;\n\t\t\t\t\t\t\t\tsetData(null);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetStatus('loading');\n\t\t\t\t\t\tsetLoadingState({ label: undefined });\n\n\t\t\t\t\t\tconst loadingState = stateRef.current\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\terror: null,\n\t\t\t\t\t\t\t\t\t\t\t\tloading: { label: undefined },\n\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'loading' as const,\n\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\tif (loadingState) onBeforeShow?.(loadingState);\n\t\t\t\t\t\tif (reason === 'refresh') {\n\t\t\t\t\t\t\t\tif (loadingState) onRefresh?.(loadingState);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst applyIfCurrent = (fn: () => void) => {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\trequestIdRef.current !== requestId ||\n\t\t\t\t\t\t\t\t\t\tcontroller.signal.aborted ||\n\t\t\t\t\t\t\t\t\t\trequests.detached.has(controller)\n\t\t\t\t\t\t\t\t) return;\n\t\t\t\t\t\t\t\tfn();\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst result = await onShow({\n\t\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\tsignal: controller.signal,\n\t\t\t\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\t\t\t\tcached: hadCache,\n\t\t\t\t\t\t\t\t\t\tsetLoading: (nextLoading) =>\n\t\t\t\t\t\t\t\t\t\t\t\tapplyIfCurrent(() => setLoadingState(normalizeLoading(nextLoading))),\n\t\t\t\t\t\t\t\t\t\tsetMeta: (nextMeta) => {\n\t\t\t\t\t\t\t\t\t\t\t\trequestMeta = { ...requestMeta, ...nextMeta };\n\t\t\t\t\t\t\t\t\t\t\t\tapplyIfCurrent(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst next = { ...metaRef.current, ...nextMeta };\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmetaRef.current = next;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetMetaState(next);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (!controller.signal.aborted && requests.detached.has(controller)) {\n\t\t\t\t\t\t\t\t\t\t// The preview closed or unmounted first: fill the cache for the\n\t\t\t\t\t\t\t\t\t\t// next open and leave this instance's state alone.\n\t\t\t\t\t\t\t\t\t\tif (cacheKey) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst settled = result === null || result === undefined ? 'empty' : 'success';\n\t\t\t\t\t\t\t\t\t\t\t\twriteCache(cacheKey, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: settled === 'success' ? result : null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: settled,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmeta: requestMeta,\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tapplyIfCurrent(() => {\n\t\t\t\t\t\t\t\t\t\tconst nextStatus: Extract<AsyncPreviewStatus, 'empty' | 'success'> =\n\t\t\t\t\t\t\t\t\t\t\t\tresult === null || result === undefined ? 'empty' : 'success';\n\t\t\t\t\t\t\t\t\t\tconst nextData = nextStatus === 'success' ? result as TData : null;\n\t\t\t\t\t\t\t\t\t\tsetData(nextData);\n\t\t\t\t\t\t\t\t\t\tsetStatus(nextStatus);\n\t\t\t\t\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t\t\t\t\t\tsetCached(false);\n\t\t\t\t\t\t\t\t\t\tsettledRunRef.current = { key: requestKey, status: nextStatus };\n\t\t\t\t\t\t\t\t\t\t// With a cacheKey the shared cache already serves the next open.\n\t\t\t\t\t\t\t\t\t\tif (!cacheKey && reason === 'prefetch' && !stateRef.current?.open) {\n\t\t\t\t\t\t\t\t\t\t\t\tsettledPrefetchRef.current = { key: requestKey, timestamp: Date.now() };\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (cacheKey) {\n\t\t\t\t\t\t\t\t\t\t\t\twriteCache(cacheKey, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: nextData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: nextStatus,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmeta: metaRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tconst settledState = stateRef.current\n\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: nextData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror: null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: false as const,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: nextStatus,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmeta: metaRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\t\t\t\t\t\tif (nextData !== null && settledState) {\n\t\t\t\t\t\t\t\t\t\t\t\tonData?.(nextData, settledState);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (settledState) onSettled?.(settledState);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (controller.signal.aborted) return;\n\t\t\t\t\t\t\t\tif (requests.detached.has(controller)) {\n\t\t\t\t\t\t\t\t\t\t// Nothing is cached, so the next open fetches again. The failure\n\t\t\t\t\t\t\t\t\t\t// is still reported; no state on this instance changes.\n\t\t\t\t\t\t\t\t\t\tif (stateRef.current) {\n\t\t\t\t\t\t\t\t\t\t\t\tonError?.(err, {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terror: err,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'error',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tapplyIfCurrent(() => {\n\t\t\t\t\t\t\t\t\t\tsetError(err);\n\t\t\t\t\t\t\t\t\t\tsetStatus('error');\n\t\t\t\t\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\t\t\t\t\tconst settledState = stateRef.current\n\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terror: err,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: false as const,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'error' as const,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\t\t\t\tif (settledState) onError?.(err, settledState);\n\t\t\t\t\t\t\t\t\t\tif (settledState) onSettled?.(settledState);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\tif (requestIdRef.current === requestId) {\n\t\t\t\t\t\t\t\t\t\tif (abortRef.current === controller) abortRef.current = null;\n\t\t\t\t\t\t\t\t\t\tif (activeRunKeyRef.current === requestKey) activeRunKeyRef.current = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t\tcacheKey,\n\t\t\t\t\t\tcachePolicy,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\thasStaticData,\n\t\t\t\t\t\tonBeforeShow,\n\t\t\t\t\t\tonData,\n\t\t\t\t\t\tonError,\n\t\t\t\t\t\tonRefresh,\n\t\t\t\t\t\tonSettled,\n\t\t\t\t\t\tonShow,\n\t\t\t\t\t\trequests,\n\t\t\t\t\t\trunKey,\n\t\t\t\t\t\tstaleTime,\n\t\t\t\t\t\ttype,\n\t\t\t\t],\n\t\t);\n\n\t\tconst refresh = useCallback(() => {\n\t\t\t\tvoid run('refresh');\n\t\t}, [run]);\n\n\t\tconst prefetch = useCallback(() => {\n\t\t\t\tif (hasStaticData) return;\n\t\t\t\tif (prefetchedRef.current) return;\n\t\t\t\tprefetchedRef.current = true;\n\t\t\t\tvoid run('prefetch');\n\t\t}, [hasStaticData, run]);\n\n\t\tconst close = useCallback(() => {\n\t\t\t\tsetOpen(false);\n\t\t}, [setOpen]);\n\n\t\tconst state = useMemo<AsyncPreviewState<TData, TContext, TType>>(\n\t\t\t\t() => ({\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tdata: resolvedData,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tloading: resolvedLoading,\n\t\t\t\t\t\tstatus: resolvedStatus,\n\t\t\t\t\t\tmeta: resolvedMeta,\n\t\t\t\t\t\topen,\n\t\t\t\t\t\tcached: resolvedCached,\n\t\t\t\t\t\trefresh,\n\t\t\t\t\t\tprefetch,\n\t\t\t\t\t\tclose,\n\t\t\t\t}),\n\t\t\t\t[close, context, error, open, prefetch, refresh, resolvedCached, resolvedData, resolvedLoading, resolvedMeta, resolvedStatus, type],\n\t\t);\n\t\tstateRef.current = state;\n\t\tmetaRef.current = meta;\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!hasStaticData) return;\n\t\t\t\tabortRef.current?.abort();\n\t\t\t\tabortRef.current = null;\n\t\t\t\tactiveRunKeyRef.current = null;\n\t\t\t\topenRunKeyRef.current = null;\n\t\t\t\tsetError(null);\n\t\t\t\tsetLoadingState(false);\n\t\t\t\tsetCached(false);\n\t\t}, [hasStaticData, staticData]);\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!open) {\n\t\t\t\t\t\topenRunKeyRef.current = null;\n\t\t\t\t\t\t// Only the open-to-closed change ends work. This effect also runs for\n\t\t\t\t\t\t// unrelated renders while closed, when a hover prefetch may be in flight.\n\t\t\t\t\t\tif (!wasOpenRef.current) return;\n\t\t\t\t\t\twasOpenRef.current = false;\n\t\t\t\t\t\tconst pending = abortRef.current;\n\t\t\t\t\t\tif (!pending) return;\n\t\t\t\t\t\tif (requests.cacheKeys.has(pending)) {\n\t\t\t\t\t\t\t\t// Keyed: the request keeps running and fills the shared cache.\n\t\t\t\t\t\t\t\trequests.detached.add(pending);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tpending.abort();\n\t\t\t\t\t\t\t\tabortRef.current = null;\n\t\t\t\t\t\t\t\tactiveRunKeyRef.current = null;\n\t\t\t\t\t\t\t\tprefetchedRef.current = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetLoadingState(false);\n\t\t\t\t\t\tsetStatus((current) => {\n\t\t\t\t\t\t\t\tif (current !== 'loading') return current;\n\t\t\t\t\t\t\t\t// A cancelled refresh falls back to the result it was replacing.\n\t\t\t\t\t\t\t\treturn settledRunRef.current?.status ?? 'idle';\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\twasOpenRef.current = true;\n\t\t\t\tif (hasStaticData) return;\n\n\t\t\t\tif (openRunKeyRef.current === runKey) return;\n\t\t\t\topenRunKeyRef.current = runKey;\n\t\t\t\tvoid run('open');\n\t\t}, [hasStaticData, open, requests, run, runKey]);\n\n\t\tuseEffect(() => {\n\t\t\t\tprefetchedRef.current = false;\n\t\t\t\tsettledPrefetchRef.current = null;\n\t\t}, [hasStaticData, runKey]);\n\n\t\tuseEffect(\n\t\t\t\t() => () => {\n\t\t\t\t\t\t// Let a later mount of this instance (StrictMode) open again.\n\t\t\t\t\t\topenRunKeyRef.current = null;\n\t\t\t\t\t\tconst pending = abortRef.current;\n\t\t\t\t\t\tif (!pending) return;\n\t\t\t\t\t\tif (requests.cacheKeys.has(pending)) requests.detached.add(pending);\n\t\t\t\t\t\telse pending.abort();\n\t\t\t\t},\n\t\t\t\t[requests],\n\t\t);\n\n\t\treturn { ...state, setOpen };\n}\n\nexport function clearAsyncPreviewCache(cacheKey?: string) {\n\t\tif (cacheKey) {\n\t\t\t\tasyncPreviewCache.delete(cacheKey);\n\t\t\t\treturn;\n\t\t}\n\t\tasyncPreviewCache.clear();\n}\n","/**\n * AsyncPreview — generic lazy preview popover for table cells, inline values,\n * buttons, badges, or any other trigger.\n *\n * The library owns popover chrome, async state, abort/race protection, cache,\n * loading/error/empty defaults, and composition primitives. Consumers own the\n * fetcher, routing callbacks, telemetry, and domain rendering.\n */\nimport {\n\t\tcreateContext,\n\t\tuseContext,\n} from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { ErrorState, LoadingState } from '../../base/feedback';\nimport { EmptyState } from '../../blocks/data-display';\nimport {\n\t\tPopover,\n\t\tPopoverContent,\n\t\tPopoverTrigger,\n} from '../../base/popover';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\t\tdefaultAsyncPreviewStrings,\n\t\ttype AsyncPreviewStrings,\n} from './async-preview.strings';\nimport type {\n\t\tAsyncPreviewBodyProps,\n\t\tAsyncPreviewContentProps,\n\t\tAsyncPreviewEmptyProps,\n\t\tAsyncPreviewErrorProps,\n\t\tAsyncPreviewLoadingProps,\n\t\tAsyncPreviewRootProps,\n\t\tAsyncPreviewState as AsyncPreviewStateValue,\n\t\tAsyncPreviewStateProps,\n\t\tAsyncPreviewTriggerProps,\n} from './async-preview.types';\nimport { useAsyncPreview } from './hooks/use-async-preview';\nimport { popoverWidthRecipes } from '../../base/popover/popover.recipes';\n\ninterface AsyncPreviewContextValue<TData, TContext, TType extends string> {\n\t\tstate: AsyncPreviewStateValue<TData, TContext, TType>;\n\t\tsetOpen: (open: boolean) => void;\n\t\t/** Overrides this surface's own copy. */\n\t\tstrings: AsyncPreviewStrings;\n\t\tprefetchOn: false | 'hover' | 'focus';\n}\n\nconst AsyncPreviewContext =\n\t\tcreateContext<AsyncPreviewContextValue<unknown, unknown, string> | null>(null);\n\nfunction useAsyncPreviewContext<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>(): AsyncPreviewContextValue<TData, TContext, TType> {\n\t\tconst ctx = useContext(AsyncPreviewContext);\n\t\tif (!ctx) {\n\t\t\t\tthrow new Error('AsyncPreview compound parts must be rendered inside <AsyncPreview.Root>.');\n\t\t}\n\t\treturn ctx as AsyncPreviewContextValue<TData, TContext, TType>;\n}\n\nfunction AsyncPreviewRoot<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({\n\t\tchildren,\n\t\tstrings: stringsProp,\n\t\tprefetchOn = false,\n\t\t...options\n}: AsyncPreviewRootProps<TData, TContext, TType>) {\n\t\tconst strings = useStrings(defaultAsyncPreviewStrings, stringsProp);\n\t\tconst preview = useAsyncPreview<TData, TContext, TType>(options);\n\t\tconst state: AsyncPreviewStateValue<TData, TContext, TType> = {\n\t\t\t\ttype: preview.type,\n\t\t\t\tcontext: preview.context,\n\t\t\t\tdata: preview.data,\n\t\t\t\terror: preview.error,\n\t\t\t\tloading: preview.loading,\n\t\t\t\tstatus: preview.status,\n\t\t\t\tmeta: preview.meta,\n\t\t\t\topen: preview.open,\n\t\t\t\tcached: preview.cached,\n\t\t\t\trefresh: preview.refresh,\n\t\t\t\tprefetch: preview.prefetch,\n\t\t\t\tclose: () => preview.setOpen(false),\n\t\t};\n\n\t\treturn (\n\t\t\t\t<AsyncPreviewContext.Provider\n\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tstate: state as AsyncPreviewStateValue<unknown, unknown, string>,\n\t\t\t\t\t\t\t\tsetOpen: preview.setOpen,\n\t\t\t\t\t\t\t\tstrings,\n\t\t\t\t\t\t\t\tprefetchOn,\n\t\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\t<span className=\"async-preview--component contents\">\n\t\t\t\t\t\t\t\t<Popover open={state.open} onOpenChange={preview.setOpen}>\n\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</Popover>\n\t\t\t\t\t\t</span>\n\t\t\t\t</AsyncPreviewContext.Provider>\n\t\t);\n}\n\nfunction AsyncPreviewTrigger<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ render, children, openOnHover, delay, closeDelay }: AsyncPreviewTriggerProps<TData, TContext, TType>) {\n\t\tconst { state, prefetchOn } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tconst maybePrefetch = () => {\n\t\t\t\tif (prefetchOn) state.prefetch();\n\t\t};\n\t\tconst triggerProps = {\n\t\t\t\t'aria-busy': state.status === 'loading' ? true as const : undefined,\n\t\t\t\t'data-state': state.open ? 'open' as const : 'closed' as const,\n\t\t\t\t'data-loading': state.status === 'loading' ? true as const : undefined,\n\t\t\t\tonPointerEnter: prefetchOn === 'hover' ? maybePrefetch : undefined,\n\t\t\t\tonFocus: prefetchOn === 'focus' ? maybePrefetch : undefined,\n\t\t};\n\n\t\tif (render) {\n\t\t\t\tconst renderedTrigger = typeof render === 'function'\n\t\t\t\t\t\t? render({ state, triggerProps })\n\t\t\t\t\t\t: render;\n\t\t\t\treturn (\n\t\t\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\t\t\trender={renderedTrigger}\n\t\t\t\t\t\t\t\topenOnHover={openOnHover}\n\t\t\t\t\t\t\t\tdelay={delay}\n\t\t\t\t\t\t\t\tcloseDelay={closeDelay}\n\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\topenOnHover={openOnHover}\n\t\t\t\t\t\tdelay={delay}\n\t\t\t\t\t\tcloseDelay={closeDelay}\n\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t}\n\t\t\t\t/>\n\t\t);\n}\n\nfunction AsyncPreviewContent({\n\t\tclassName,\n\t\tchildren,\n\t\talign = 'start',\n\t\tsideOffset = 8,\n\t\tfinalFocus = true,\n\t\t...props\n}: AsyncPreviewContentProps) {\n\t\tconst { state } = useAsyncPreviewContext();\n\t\tconst { size = 'md', padding = 'none', ...contentProps } = props;\n\t\tconst sizeClassName = {\n\t\t\t\tsm: popoverWidthRecipes.md,\n\t\t\t\tmd: popoverWidthRecipes.lg,\n\t\t\t\tlg: popoverWidthRecipes.xl,\n\t\t}[size];\n\t\tconst inset = ({\n\t\t\t\tnone: 'flush',\n\t\t\t\tsm: 'compact',\n\t\t\t\tmd: 'default',\n\t\t\t\tlg: 'flush',\n\t\t} as const)[padding];\n\t\tconst paddingClassName = padding === 'none'\n\t\t\t\t? 'gap-0'\n\t\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t\t<PopoverContent\n\t\t\t\t\t\ttype=\"display\"\n\t\t\t\t\t\talign={align}\n\t\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t\t\tfinalFocus={finalFocus}\n\t\t\t\t\t\tinset={inset}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'async-preview--content overflow-hidden',\n\t\t\t\t\t\t\t\tsizeClassName,\n\t\t\t\t\t\t\t\tpaddingClassName,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-status={state.status}\n\t\t\t\t\t\tdata-preview-type={state.type}\n\t\t\t\t\t\t// Focus is inside the popup while the request runs, so the region\n\t\t\t\t\t\t// itself reports the wait and then the content that replaced it.\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t\taria-busy={state.status === 'loading' || undefined}\n\t\t\t\t\t\t{...contentProps}\n\t\t\t\t>\n\t\t\t\t\t\t{padding === 'lg' ? <div className=\"p-surface-lg\">{children}</div> : children}\n\t\t\t\t</PopoverContent>\n\t\t);\n}\n\nfunction AsyncPreviewState<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children }: AsyncPreviewStateProps<TData, TContext, TType>) {\n\t\tconst { state } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\treturn <>{children(state)}</>;\n}\n\nfunction AsyncPreviewBody<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children }: AsyncPreviewBodyProps<TData, TContext, TType>) {\n\t\tconst { state } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'success' || state.data === null) return null;\n\t\treturn <>{children({ ...state, data: state.data })}</>;\n}\n\nfunction AsyncPreviewLoading<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children, className }: AsyncPreviewLoadingProps<TData, TContext, TType>) {\n\t\tconst { state, strings } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'loading') return null;\n\t\tif (children) return <>{children(state)}</>;\n\t\tconst label =\n\t\t\t\ttypeof state.loading === 'object' && state.loading !== null\n\t\t\t\t\t\t? state.loading.label\n\t\t\t\t\t\t: undefined;\n\t\tconst phase =\n\t\t\t\ttypeof state.loading === 'object' && state.loading !== null\n\t\t\t\t\t\t? state.loading.phase\n\t\t\t\t\t\t: undefined;\n\t\tconst progress =\n\t\t\t\ttypeof state.loading === 'object' &&\n\t\t\t\tstate.loading !== null &&\n\t\t\t\ttypeof state.loading.progress === 'number'\n\t\t\t\t\t\t? Math.min(100, Math.max(0, state.loading.progress))\n\t\t\t\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t\t<LoadingState\n\t\t\t\t\t\tclassName={cn('async-preview--loading p-surface', className)}\n\t\t\t\t\t\tvariant=\"panel\"\n\t\t\t\t\t\tlabel={label ?? strings.loading}\n\t\t\t\t\t\tdescription={phase}\n\t\t\t\t\t\tprogress={progress}\n\t\t\t\t\t\tskeleton\n\t\t\t\t\t\tlines={3}\n\t\t\t\t/>\n\t\t);\n}\n\nfunction AsyncPreviewError<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children, className }: AsyncPreviewErrorProps<TData, TContext, TType>) {\n\t\tconst { state, strings } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'error') return null;\n\t\tif (children) return <>{children(state)}</>;\n\t\treturn (\n\t\t\t\t<ErrorState\n\t\t\t\t\t\tclassName={cn('async-preview--error p-surface', className)}\n\t\t\t\t\t\ttitle={strings.errorTitle}\n\t\t\t\t\t\tdescription={strings.errorDescription}\n\t\t\t\t\t\tonRetry={state.refresh}\n\t\t\t\t\t\tretryLabel={strings.retry}\n\t\t\t\t\t\tvariant=\"inline\"\n\t\t\t\t/>\n\t\t);\n}\n\nfunction AsyncPreviewEmpty<\n\t\tTData = unknown,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>({ children, className }: AsyncPreviewEmptyProps<TData, TContext, TType>) {\n\t\tconst { state, strings } = useAsyncPreviewContext<TData, TContext, TType>();\n\t\tif (state.status !== 'empty') return null;\n\t\tif (children) return <>{children(state)}</>;\n\t\treturn (\n\t\t\t\t<EmptyState\n\t\t\t\t\t\tclassName={cn('async-preview--empty', className)}\n\t\t\t\t\t\tpadding=\"md\"\n\t\t\t\t\t\ttitle={strings.emptyTitle}\n\t\t\t\t\t\tdescription={strings.emptyDescription}\n\t\t\t\t/>\n\t\t);\n}\n\nfunction createAsyncPreview<\n\t\tTData,\n\t\tTContext = unknown,\n\t\tTType extends string = string,\n>() {\n\t\treturn {\n\t\t\t\tRoot: AsyncPreviewRoot<TData, TContext, TType>,\n\t\t\t\tTrigger: AsyncPreviewTrigger<TData, TContext, TType>,\n\t\t\t\tContent: AsyncPreviewContent,\n\t\t\t\tState: AsyncPreviewState<TData, TContext, TType>,\n\t\t\t\tBody: AsyncPreviewBody<TData, TContext, TType>,\n\t\t\t\tLoading: AsyncPreviewLoading<TData, TContext, TType>,\n\t\t\t\tError: AsyncPreviewError<TData, TContext, TType>,\n\t\t\t\tEmpty: AsyncPreviewEmpty<TData, TContext, TType>,\n\t\t};\n}\n\nconst AsyncPreview = {\n\t\tRoot: AsyncPreviewRoot,\n\t\tTrigger: AsyncPreviewTrigger,\n\t\tContent: AsyncPreviewContent,\n\t\tState: AsyncPreviewState,\n\t\tBody: AsyncPreviewBody,\n\t\tLoading: AsyncPreviewLoading,\n\t\tError: AsyncPreviewError,\n\t\tEmpty: AsyncPreviewEmpty,\n};\n\nAsyncPreviewRoot.displayName = 'AsyncPreviewRoot';\nAsyncPreviewTrigger.displayName = 'AsyncPreviewTrigger';\nAsyncPreviewContent.displayName = 'AsyncPreviewContent';\nAsyncPreviewState.displayName = 'AsyncPreviewState';\nAsyncPreviewBody.displayName = 'AsyncPreviewBody';\nAsyncPreviewLoading.displayName = 'AsyncPreviewLoading';\nAsyncPreviewError.displayName = 'AsyncPreviewError';\nAsyncPreviewEmpty.displayName = 'AsyncPreviewEmpty';\n\nexport {\n\t\tAsyncPreview,\n\t\tAsyncPreviewRoot,\n\t\tAsyncPreviewTrigger,\n\t\tAsyncPreviewContent,\n\t\tAsyncPreviewState,\n\t\tAsyncPreviewBody,\n\t\tAsyncPreviewLoading,\n\t\tAsyncPreviewError,\n\t\tAsyncPreviewEmpty,\n\t\tcreateAsyncPreview,\n\t\tuseAsyncPreviewContext,\n};\n","/**\n * PreviewTriggerCell — table-cell trigger chrome for AsyncPreview.\n *\n * It renders a button only when preview interaction exists. Empty, disabled,\n * or explicitly non-previewable values keep the same table rhythm without a\n * caret, pointer cursor, popup ARIA, or trigger padding that implies action.\n * A `disabledReason` keeps the cell focusable as an unavailable button, so\n * keyboard, touch and pointer users reach the reason through the shared Tooltip.\n */\nimport { ChevronDown, type LucideIcon } from 'lucide-react';\nimport React, { type ReactNode } from 'react';\n\nimport { Badge, type BadgeProps } from '../../base/badge';\nimport { Button } from '../../base/buttons';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../../base/display';\nimport { Stack } from '../../base/structure';\nimport {\n\tEmptyValue,\n\tName,\n\tSecondaryValue,\n\tValue,\n} from '../../primitives';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { cn } from '../../../lib/utils';\n\ntype PreviewTriggerCellRootProps = Omit<\n\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t'children' | 'disabled' | 'name' | 'value'\n>;\n\nexport interface PreviewTriggerCellProps extends PreviewTriggerCellRootProps {\n\t/** Primary text of the cell. */\n\tvalue?: ReactNode | null;\n\t/** Display name. */\n\tname?: string | null;\n\t/** Supporting text under the value. */\n\tsecondary?: ReactNode | null;\n\t/** Content before the value. */\n\tleading?: ReactNode;\n\t/** Content after the value. */\n\ttrailing?: ReactNode;\n\t/** Chip rendered beside the label. */\n\tbadge?: ReactNode | { label: ReactNode; tone?: BadgeProps['tone']; size?: BadgeProps['size'] };\n\t/** Leading glyph. */\n\ticon?: LucideIcon;\n\t/** Copy shown when the value is empty. Defaults to the shared em dash. */\n\temptyLabel?: ReactNode;\n\t/** Whether this row has a preview to open. */\n\thasPreview?: boolean;\n\t/**\n\t * Explains why the preview is unavailable. The cell stays focusable as an\n\t * unavailable button and shows this in a tooltip on hover and focus.\n\t */\n\tdisabledReason?: ReactNode;\n\t/** Applies name casing to the value regardless of how it arrives. */\n\tforceNameCase?: boolean;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n\t/** Merged onto the content. */\n\tcontentClassName?: string;\n}\n\nfunction isEmpty(value: ReactNode | null | undefined) {\n\treturn value === null || value === undefined || value === '';\n}\n\nfunction renderBadge(badge: PreviewTriggerCellProps['badge']) {\n\tif (!badge) return null;\n\tif (typeof badge === 'object' && !Array.isArray(badge) && 'label' in badge) {\n\t\treturn (\n\t\t\t<Badge inline tone={badge.tone ?? 'secondary'} size={badge.size}>\n\t\t\t\t{badge.label}\n\t\t\t</Badge>\n\t\t);\n\t}\n\treturn badge;\n}\n\nfunction PreviewTriggerCellInner({\n\tvalue,\n\tname,\n\tsecondary,\n\tleading,\n\ttrailing,\n\tbadge,\n\ticon: Icon,\n\temptyLabel,\n\tforceNameCase,\n\tcontentClassName,\n}: PreviewTriggerCellProps) {\n\tconst primaryIsEmpty = isEmpty(name) && isEmpty(value);\n\treturn (\n\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"sm\" wrap={false} className={cn('preview-trigger-cell--inner', contentClassName)}>\n\t\t\t{!!leading && <span className=\"preview-trigger-cell--leading inline-flex shrink-0 items-center\">{leading}</span>}\n\t\t\t{!!Icon && (\n\t\t\t\t<span className=\"preview-trigger-cell--icon inline-flex shrink-0 items-center text-muted-foreground\">\n\t\t\t\t\t<Icon className=\"size-icon-sm\" aria-hidden />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<span className=\"preview-trigger-cell--content flex min-w-0 flex-1 flex-col items-start\">\n\t\t\t\t<Stack render={<span />} direction=\"horizontal\" gap=\"sm\" wrap={false} className=\"max-w-full\">\n\t\t\t\t\t{primaryIsEmpty ? (\n\t\t\t\t\t\t<EmptyValue className=\"truncate\">\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</EmptyValue>\n\t\t\t\t\t) : name ? (\n\t\t\t\t\t\t<Name\n\t\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\t\tforce={forceNameCase}\n\t\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\t\tclassName=\"truncate\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Value type=\"inherit\" weight=\"medium\" className=\"truncate\">\n\t\t\t\t\t\t\t{value}\n\t\t\t\t\t\t</Value>\n\t\t\t\t\t)}\n\t\t\t\t\t{renderBadge(badge)}\n\t\t\t\t</Stack>\n\t\t\t\t{!isEmpty(secondary) && (\n\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"max-w-full truncate\">\n\t\t\t\t\t\t{secondary}\n\t\t\t\t\t</SecondaryValue>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t\t{!!trailing && <span className=\"preview-trigger-cell--trailing inline-flex shrink-0 items-center\">{trailing}</span>}\n\t\t</Stack>\n\t);\n}\n\nexport const PreviewTriggerCell = React.forwardRef<HTMLButtonElement, PreviewTriggerCellProps>(function PreviewTriggerCell({\n\tvalue,\n\tname,\n\tsecondary,\n\tleading,\n\ttrailing,\n\tbadge,\n\ticon,\n\temptyLabel,\n\thasPreview,\n\tdisabledReason,\n\tforceNameCase,\n\tclassName,\n\tcontentClassName,\n\ttype,\n\t...rootProps\n}, ref) {\n\tconst cellProps = {\n\t\tvalue,\n\t\tname,\n\t\tsecondary,\n\t\tleading,\n\t\ttrailing,\n\t\tbadge,\n\t\ticon,\n\t\temptyLabel,\n\t\tforceNameCase,\n\t\tcontentClassName,\n\t};\n\tconst previewable =\n\t\thasPreview ?? (!isEmpty(name) || !isEmpty(value));\n\tconst interactive = previewable && !disabledReason;\n\n\tif (!interactive) {\n\t\tconst cellClassName = cn(\n\t\t\t'preview-trigger-cell--component flex h-auto min-h-action-sm max-w-full items-center justify-start rounded-radius px-control-sm py-space-xs text-left',\n\t\t\tclassName,\n\t\t);\n\t\tif (!disabledReason) {\n\t\t\treturn (\n\t\t\t\t<div className={cellClassName}>\n\t\t\t\t\t<PreviewTriggerCellInner {...cellProps} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger\n\t\t\t\t\trender={\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\taria-disabled=\"true\"\n\t\t\t\t\t\t\tclassName={cn(cellClassName, 'outline-none', focusRecipes.edge)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<PreviewTriggerCellInner {...cellProps} />\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent>{disabledReason}</TooltipContent>\n\t\t\t</Tooltip>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t{...rootProps}\n\t\t\tref={ref}\n\t\t\ttype={type ?? 'button'}\n\t\t\ttone=\"secondary\"\n\t\t\tbuttonStyle=\"ghost\"\n\t\t\tsize=\"sm\"\n\t\t\tclassName={cn(\n\t\t\t\t'preview-trigger-cell--component h-auto min-h-action-sm max-w-full justify-start px-control-sm py-space-xs text-left',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<PreviewTriggerCellInner {...cellProps} />\n\t\t\t<ChevronDown className=\"preview-trigger-cell--caret size-icon-sm shrink-0 text-muted-foreground\" aria-hidden />\n\t\t</Button>\n\t);\n});\n\nPreviewTriggerCell.displayName = 'PreviewTriggerCell';\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, i as t, n, o as r, r as i, t as a } from "../combobox-BwzoXFSG.js";
3
- export { a as AsyncResourceCombobox, i as Combobox, t as MultiCombobox, n as defaultAsyncResourceComboboxStrings, r as defaultComboboxStrings, e as useComboboxCore };
2
+ import { a as e, n as t, o as n, r, s as i, t as a } from "../combobox-DrDXtSSt.js";
3
+ export { a as AsyncResourceCombobox, r as Combobox, e as MultiCombobox, t as defaultAsyncResourceComboboxStrings, i as defaultComboboxStrings, n as useComboboxCore };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../comments-Dmpp0YIc.js";
2
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../comments-C2MZyRmh.js";
3
3
  export { a as CommentAttachmentChip, s as CommentComposer, i as CommentContent, e as CommentEmpty, l as CommentItem, o as CommentTimeline, d as Comments, c as defaultCommentsStrings, u as makeReplyEyebrow, t as useAttachmentUpload, f as useComments, n as useResolvedAccessors, r as useResolvedStrings };