themelia-react-ui 1.0.2 → 2.0.1

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 (748) hide show
  1. package/CHANGELOG.md +632 -1
  2. package/README.md +31 -13
  3. package/dist/accordion-B6a3vVgA.js +207 -0
  4. package/dist/accordion-B6a3vVgA.js.map +1 -0
  5. package/dist/action-menu-TzCoSlwL.js +280 -0
  6. package/dist/action-menu-TzCoSlwL.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-CL84ZN9A.js → affordance-geometry.generated-B5iu-Mkr.js} +9 -3
  8. package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +1 -0
  9. package/dist/{ai-artifact-DLVdK0Py.js → ai-artifact-BMJdv-6q.js} +389 -391
  10. package/dist/ai-artifact-BMJdv-6q.js.map +1 -0
  11. package/dist/{app-shell-C_fKpljx.js → app-shell-ZK5RWdo6.js} +4 -4
  12. package/dist/{app-shell-C_fKpljx.js.map → app-shell-ZK5RWdo6.js.map} +1 -1
  13. package/dist/attachment-BtfhGm8i.js +245 -0
  14. package/dist/attachment-BtfhGm8i.js.map +1 -0
  15. package/dist/{auth-CAQcasMV.js → auth-CYxKfo69.js} +239 -237
  16. package/dist/auth-CYxKfo69.js.map +1 -0
  17. package/dist/{avatar-Bu2HhitA.js → avatar-BBnEJIx8.js} +71 -68
  18. package/dist/avatar-BBnEJIx8.js.map +1 -0
  19. package/dist/badge-MrKVNzW9.js +93 -0
  20. package/dist/badge-MrKVNzW9.js.map +1 -0
  21. package/dist/base/accordion.js +1 -1
  22. package/dist/base/action-menu.js +1 -1
  23. package/dist/base/attachment.js +1 -1
  24. package/dist/base/avatar.js +1 -1
  25. package/dist/base/badge.js +1 -1
  26. package/dist/base/batch-action-bar.js +3 -0
  27. package/dist/base/buttons.js +2 -3
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +19 -19
  30. package/dist/base/carousel.js.map +1 -1
  31. package/dist/base/cascader.js +234 -224
  32. package/dist/base/cascader.js.map +1 -1
  33. package/dist/base/chart.js +1 -1
  34. package/dist/base/choice-inputs.js +3 -3
  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 +3 -3
  42. package/dist/base/forms-numeric.js +1 -1
  43. package/dist/base/forms.js +2 -2
  44. package/dist/base/inline-edit.js +81 -76
  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 +1 -1
  48. package/dist/base/metadata-list.js +3 -0
  49. package/dist/base/navigation.js +7 -7
  50. package/dist/base/popover-menu.js +1 -1
  51. package/dist/base/popover.js +1 -1
  52. package/dist/base/qr-code.js +7 -4
  53. package/dist/base/qr-code.js.map +1 -1
  54. package/dist/base/repeaters.js +175 -174
  55. package/dist/base/repeaters.js.map +1 -1
  56. package/dist/base/sheet.js +1 -1
  57. package/dist/base/sidebar.js +1 -1
  58. package/dist/base/signature-pad.js +148 -138
  59. package/dist/base/signature-pad.js.map +1 -1
  60. package/dist/base/skeleton.js +1 -1
  61. package/dist/base/spinner.js +1 -1
  62. package/dist/base/structure.js +1 -1
  63. package/dist/base/table.js +1 -1
  64. package/dist/base/text-inputs.js +2 -2
  65. package/dist/base/toaster.js +4 -4
  66. package/dist/base/toaster.js.map +1 -1
  67. package/dist/base/tree.js +1 -1
  68. package/dist/base/upload-queue.js +1 -1
  69. package/dist/base/upload.js +3 -3
  70. package/dist/base/value-inputs.js +2 -2
  71. package/dist/batch-action-bar-BZGDG-Si.js +104 -0
  72. package/dist/batch-action-bar-BZGDG-Si.js.map +1 -0
  73. package/dist/blocks/admin.js +264 -253
  74. package/dist/blocks/admin.js.map +1 -1
  75. package/dist/blocks/ai.js +293 -323
  76. package/dist/blocks/ai.js.map +1 -1
  77. package/dist/blocks/analytics/usage-card.js +1 -1
  78. package/dist/blocks/analytics.js +596 -587
  79. package/dist/blocks/analytics.js.map +1 -1
  80. package/dist/blocks/collaboration.js +1 -1
  81. package/dist/blocks/commerce/receipt.js +1 -1
  82. package/dist/blocks/commerce.js +2246 -1693
  83. package/dist/blocks/commerce.js.map +1 -1
  84. package/dist/blocks/data-display.js +3 -2
  85. package/dist/blocks/onboarding.js +50 -49
  86. package/dist/blocks/onboarding.js.map +1 -1
  87. package/dist/blocks/planning.js +82 -91
  88. package/dist/blocks/planning.js.map +1 -1
  89. package/dist/blocks/timelines.js +1 -1
  90. package/dist/breadcrumbs-D5t7I023.js +129 -0
  91. package/dist/breadcrumbs-D5t7I023.js.map +1 -0
  92. package/dist/{button-BZyfTvwm.js → button-QYwiyhD2.js} +15 -14
  93. package/dist/button-QYwiyhD2.js.map +1 -0
  94. package/dist/buttons-SbIcm1HJ.js +661 -0
  95. package/dist/buttons-SbIcm1HJ.js.map +1 -0
  96. package/dist/{cards-qGSErLw_.js → cards-CiiHpKYd.js} +8 -8
  97. package/dist/cards-CiiHpKYd.js.map +1 -0
  98. package/dist/{chart-Bsc5BICK.js → chart-QfrARkXl.js} +17 -15
  99. package/dist/chart-QfrARkXl.js.map +1 -0
  100. package/dist/checkbox-DhB6K0bK.js +36 -0
  101. package/dist/checkbox-DhB6K0bK.js.map +1 -0
  102. package/dist/choice-inputs-t6w3ATNz.js +766 -0
  103. package/dist/choice-inputs-t6w3ATNz.js.map +1 -0
  104. package/dist/code-block-Dgbu-CU3.js +185 -0
  105. package/dist/code-block-Dgbu-CU3.js.map +1 -0
  106. package/dist/{collapsible-ClvC7Bj3.js → collapsible-D8AEGU1-.js} +4 -4
  107. package/dist/{collapsible-ClvC7Bj3.js.map → collapsible-D8AEGU1-.js.map} +1 -1
  108. package/dist/{collection-content-D6S8cv_n.js → collection-content-uK16Grv0.js} +3 -3
  109. package/dist/{collection-content-D6S8cv_n.js.map → collection-content-uK16Grv0.js.map} +1 -1
  110. package/dist/{combobox-BFnbJJp3.js → combobox-2Ic8N9bL.js} +103 -98
  111. package/dist/combobox-2Ic8N9bL.js.map +1 -0
  112. package/dist/combobox-DLl0bfiq.js +867 -0
  113. package/dist/combobox-DLl0bfiq.js.map +1 -0
  114. package/dist/{command-BnmSchli.js → command-kNR20o7x.js} +34 -30
  115. package/dist/command-kNR20o7x.js.map +1 -0
  116. package/dist/{comments-u5L0OGip.js → comments-BpDuCUUu.js} +304 -301
  117. package/dist/comments-BpDuCUUu.js.map +1 -0
  118. package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
  119. package/dist/components/base/action-menu/action-menu.d.ts +27 -5
  120. package/dist/components/base/action-menu/action-menu.recipes.d.ts +21 -0
  121. package/dist/components/base/action-menu/index.d.ts +1 -0
  122. package/dist/components/base/avatar/stacked-avatars.d.ts +5 -4
  123. package/dist/components/base/badge/badge.d.ts +1 -1
  124. package/dist/components/base/badge/badge.recipes.d.ts +6 -6
  125. package/dist/components/base/batch-action-bar/batch-action-bar.d.ts +50 -0
  126. package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.ts +20 -0
  127. package/dist/components/base/batch-action-bar/index.d.ts +8 -0
  128. package/dist/components/base/buttons/base-button.d.ts +7 -0
  129. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  130. package/dist/components/base/buttons/button.recipes.d.ts +2 -2
  131. package/dist/components/base/buttons/button.variants.d.ts +1 -0
  132. package/dist/components/base/buttons/loader-button.d.ts +3 -1
  133. package/dist/components/base/buttons/text-button.d.ts +2 -2
  134. package/dist/components/base/carousel/carousel.d.ts +3 -1
  135. package/dist/components/base/chart/chart.d.ts +7 -7
  136. package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
  137. package/dist/components/base/choice-inputs/choice-types.d.ts +24 -3
  138. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
  139. package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
  140. package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
  141. package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
  142. package/dist/components/base/date-pickers/datepicker.types.d.ts +13 -3
  143. package/dist/components/base/display/alert-dialog.d.ts +10 -3
  144. package/dist/components/base/display/content-block.d.ts +4 -2
  145. package/dist/components/base/display/date-block.d.ts +1 -1
  146. package/dist/components/base/display/dialog.d.ts +8 -5
  147. package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
  148. package/dist/components/base/display/surface-title.d.ts +6 -1
  149. package/dist/components/base/feedback/alert.d.ts +1 -1
  150. package/dist/components/base/feedback/state-display.d.ts +5 -4
  151. package/dist/components/base/forms/form-sizing.d.ts +43 -8
  152. package/dist/components/base/forms/workflow.d.ts +2 -0
  153. package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
  154. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
  155. package/dist/components/base/metadata-list/index.d.ts +12 -0
  156. package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.d.ts +28 -25
  157. package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-value.d.ts +2 -2
  158. package/dist/components/base/navigation/dropdown-menu.d.ts +2 -2
  159. package/dist/components/base/navigation/index.d.ts +1 -1
  160. package/dist/components/base/navigation/language-switcher.d.ts +4 -1
  161. package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
  162. package/dist/components/base/navigation/page-header/index.d.ts +1 -0
  163. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +73 -0
  164. package/dist/components/base/navigation/page-header/page-header.d.ts +30 -4
  165. package/dist/components/base/qr-code/qr-code.d.ts +2 -0
  166. package/dist/components/base/sheet/index.d.ts +29 -1
  167. package/dist/components/base/sheet/sheet.d.ts +10 -5
  168. package/dist/components/base/signature-pad/signature-pad.types.d.ts +5 -1
  169. package/dist/components/base/signature-pad/signature-pad.utils.d.ts +11 -3
  170. package/dist/components/base/spinner/spinner.d.ts +3 -2
  171. package/dist/components/base/structure/structure.types.d.ts +1 -1
  172. package/dist/components/base/text-inputs/field-clear-button.d.ts +6 -0
  173. package/dist/components/base/text-inputs/input-group.d.ts +2 -2
  174. package/dist/components/base/upload/upload.recipes.d.ts +33 -0
  175. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
  176. package/dist/components/base/value-inputs/index.d.ts +5 -5
  177. package/dist/components/base/value-inputs/tags-input.d.ts +38 -12
  178. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
  179. package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
  180. package/dist/components/blocks/analytics/index.d.ts +1 -1
  181. package/dist/components/blocks/analytics/use-metric-format-options.d.ts +3 -0
  182. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  183. package/dist/components/blocks/commerce/address-card/types.d.ts +4 -1
  184. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
  185. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
  186. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +3 -1
  187. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  188. package/dist/components/blocks/commerce/cart-summary/types.d.ts +6 -1
  189. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +3 -1
  190. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  191. package/dist/components/blocks/commerce/discount-stack/types.d.ts +16 -4
  192. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +5 -0
  193. package/dist/components/blocks/commerce/fulfillment-group/index.d.ts +2 -0
  194. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +43 -0
  195. package/dist/components/blocks/commerce/index.d.ts +13 -5
  196. package/dist/components/blocks/commerce/inventory-section/types.d.ts +4 -1
  197. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  198. package/dist/components/blocks/commerce/invoice-header/types.d.ts +4 -2
  199. package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +1 -1
  200. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +2 -1
  201. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +1 -1
  202. package/dist/components/blocks/commerce/order-customer/index.d.ts +2 -0
  203. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +5 -0
  204. package/dist/components/blocks/commerce/order-customer/types.d.ts +48 -0
  205. package/dist/components/blocks/commerce/order-header/index.d.ts +2 -0
  206. package/dist/components/blocks/commerce/order-header/order-header.d.ts +5 -0
  207. package/dist/components/blocks/commerce/order-header/types.d.ts +37 -0
  208. package/dist/components/blocks/commerce/order-line-item/index.d.ts +2 -0
  209. package/dist/components/blocks/commerce/order-line-item/order-line-item.d.ts +5 -0
  210. package/dist/components/blocks/commerce/order-line-item/types.d.ts +46 -0
  211. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  212. package/dist/components/blocks/commerce/order-summary/index.d.ts +2 -0
  213. package/dist/components/blocks/commerce/order-summary/order-summary.d.ts +5 -0
  214. package/dist/components/blocks/commerce/order-summary/types.d.ts +42 -0
  215. package/dist/components/blocks/commerce/order-transactions/index.d.ts +2 -0
  216. package/dist/components/blocks/commerce/order-transactions/order-transactions.d.ts +5 -0
  217. package/dist/components/blocks/commerce/order-transactions/types.d.ts +46 -0
  218. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  219. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +9 -1
  220. package/dist/components/blocks/commerce/payment-method/types.d.ts +14 -1
  221. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  222. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +3 -1
  223. package/dist/components/blocks/commerce/refund-status/types.d.ts +6 -3
  224. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +1 -1
  225. package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
  226. package/dist/components/blocks/commerce/shared/address-lines.d.ts +21 -0
  227. package/dist/components/blocks/commerce/shared/line-thumbnail.d.ts +9 -0
  228. package/dist/components/blocks/commerce/shared/order-status.d.ts +51 -0
  229. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  230. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +27 -6
  231. package/dist/components/blocks/commerce/summary-panel/amount-row.d.ts +2 -0
  232. package/dist/components/blocks/commerce/summary-panel/index.d.ts +3 -0
  233. package/dist/components/blocks/commerce/summary-panel/summary-panel.d.ts +2 -0
  234. package/dist/components/blocks/commerce/summary-panel/types.d.ts +26 -0
  235. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  236. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +2 -1
  237. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -1
  238. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
  239. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -1
  240. package/dist/components/blocks/data-display/metadata/index.d.ts +30 -4
  241. package/dist/components/features/activities/partials/activity-row.d.ts +6 -2
  242. package/dist/components/features/activities/partials/tone-tokens.d.ts +0 -6
  243. package/dist/components/features/global-search/partials/global-search-group-heading.d.ts +15 -0
  244. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
  245. package/dist/components/features/global-search/partials/tone-palettes.d.ts +0 -5
  246. package/dist/components/features/kanban/kanban.d.ts +1 -1
  247. package/dist/components/features/kanban/kanban.strings.d.ts +1 -1
  248. package/dist/components/features/kanban/kanban.types.d.ts +2 -2
  249. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  250. package/dist/components/features/media-library/index.d.ts +1 -1
  251. package/dist/components/features/media-library/media-library.d.ts +1 -1
  252. package/dist/components/features/media-library/media-library.strings.d.ts +4 -0
  253. package/dist/components/features/media-library/media-library.types.d.ts +74 -1
  254. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  255. package/dist/components/features/mentions/partials/mention-kind-toggles.d.ts +16 -0
  256. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  257. package/dist/components/features/overlays/dialog.d.ts +1 -1
  258. package/dist/components/features/overlays/drawer.d.ts +1 -1
  259. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
  260. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
  261. package/dist/components/features/overlays/index.d.ts +1 -1
  262. package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
  263. package/dist/components/features/overlays/overlays.types.d.ts +62 -19
  264. package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
  265. package/dist/components/features/products/components/product-details-card.d.ts +5 -0
  266. package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
  267. package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
  268. package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
  269. package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
  270. package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
  271. package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
  272. package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
  273. package/dist/components/features/products/components/product-variant-action-menu.d.ts +23 -1
  274. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  275. package/dist/components/features/products/partials/index.d.ts +1 -1
  276. package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
  277. package/dist/components/features/products/partials/product-tone.d.ts +11 -1
  278. package/dist/components/features/products/products.types.d.ts +11 -3
  279. package/dist/components/features/resource/index.d.ts +1 -1
  280. package/dist/components/features/resource/resource.d.ts +1 -1
  281. package/dist/components/features/resource/resource.types.d.ts +34 -6
  282. package/dist/components/features/rich-text-editor/index.d.ts +2 -1
  283. package/dist/components/features/rich-text-editor/partials/image-nodes.d.ts +13 -0
  284. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +66 -0
  285. package/dist/components/features/rich-text-editor/partials/inline-reference-node.d.ts +19 -0
  286. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  287. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +14 -0
  288. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +45 -0
  289. package/dist/components/features/rich-text-editor/use-rich-text-images.d.ts +18 -0
  290. package/dist/components/features/sync/index.d.ts +26 -3
  291. package/dist/components/features/table/data-table.d.ts +1 -1
  292. package/dist/components/features/table/partials/cell-renderers.d.ts +1 -1
  293. package/dist/components/features/table/table.types.d.ts +32 -7
  294. package/dist/components/layout/page/index.d.ts +1 -1
  295. package/dist/components/layout/page/page.types.d.ts +51 -4
  296. package/dist/components/layout/page/partials/page-actions.d.ts +1 -0
  297. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  298. package/dist/components/layout/settings/settings.d.ts +16 -2
  299. package/dist/components/layout/workspace/workspace.types.d.ts +21 -4
  300. package/dist/components/primitives/date.d.ts +16 -3
  301. package/dist/components/primitives/dimensions.d.ts +6 -0
  302. package/dist/components/primitives/duration.d.ts +6 -0
  303. package/dist/components/primitives/file-size.d.ts +6 -0
  304. package/dist/components/primitives/index.d.ts +1 -1
  305. package/dist/components/primitives/initials.d.ts +11 -2
  306. package/dist/components/primitives/link.d.ts +7 -0
  307. package/dist/components/primitives/money.d.ts +29 -7
  308. package/dist/components/primitives/number.d.ts +17 -0
  309. package/dist/components/primitives/value-typography.d.ts +54 -0
  310. package/dist/components/primitives/value.d.ts +31 -6
  311. package/dist/components/typography/heading.d.ts +9 -1
  312. package/dist/components/typography/label.d.ts +3 -0
  313. package/dist/components/typography/rich-text/index.d.ts +1 -1
  314. package/dist/components/typography/rich-text/rich-text-tree.d.ts +19 -0
  315. package/dist/components/typography/rich-text/rich-text.d.ts +16 -0
  316. package/dist/components/typography/running-text.d.ts +12 -0
  317. package/dist/components/typography/text-link.d.ts +24 -1
  318. package/dist/components/typography/text.d.ts +12 -0
  319. package/dist/components/typography/text.styles.d.ts +35 -13
  320. package/dist/components/ui/button.d.ts +1 -1
  321. package/dist/components/ui/checkbox.d.ts +6 -0
  322. package/dist/components/ui/overlay.recipes.d.ts +6 -2
  323. package/dist/components/ui/select.d.ts +3 -1
  324. package/dist/components/ui/switch.d.ts +5 -0
  325. package/dist/{containers-DqB-bSYE.js → containers-DmWiJa2I.js} +36 -35
  326. package/dist/containers-DmWiJa2I.js.map +1 -0
  327. package/dist/{copyable-BTSByfmq.js → copyable-B3Gwgdqc.js} +6 -6
  328. package/dist/{copyable-BTSByfmq.js.map → copyable-B3Gwgdqc.js.map} +1 -1
  329. package/dist/data-display-DafIvCl5.js +960 -0
  330. package/dist/data-display-DafIvCl5.js.map +1 -0
  331. package/dist/date-BgK3bTdo.js +144 -0
  332. package/dist/date-BgK3bTdo.js.map +1 -0
  333. package/dist/date-picker-CF-DtUpF.js +1529 -0
  334. package/dist/date-picker-CF-DtUpF.js.map +1 -0
  335. package/dist/date-pickers-BmzxJl5l.js +174 -0
  336. package/dist/date-pickers-BmzxJl5l.js.map +1 -0
  337. package/dist/{display-CS6Hbk18.js → display-DsQTVzMz.js} +88 -87
  338. package/dist/display-DsQTVzMz.js.map +1 -0
  339. package/dist/{dropdown-menu-D-boNgGO.js → dropdown-menu-E2qmdC7o.js} +23 -16
  340. package/dist/dropdown-menu-E2qmdC7o.js.map +1 -0
  341. package/dist/features/activities.js +437 -521
  342. package/dist/features/activities.js.map +1 -1
  343. package/dist/features/ai-chat.js +174 -172
  344. package/dist/features/ai-chat.js.map +1 -1
  345. package/dist/features/async-preview.js +8 -8
  346. package/dist/features/async-preview.js.map +1 -1
  347. package/dist/features/combobox.js +1 -1
  348. package/dist/features/comments.js +1 -1
  349. package/dist/features/data-view.js +139 -138
  350. package/dist/features/data-view.js.map +1 -1
  351. package/dist/features/email-composer/engine.js +1 -1
  352. package/dist/features/email-composer.js +353 -352
  353. package/dist/features/email-composer.js.map +1 -1
  354. package/dist/features/event-calendar.js +262 -269
  355. package/dist/features/event-calendar.js.map +1 -1
  356. package/dist/features/filters.js +1 -1
  357. package/dist/features/global-search.js +307 -310
  358. package/dist/features/global-search.js.map +1 -1
  359. package/dist/features/kanban.js +95 -97
  360. package/dist/features/kanban.js.map +1 -1
  361. package/dist/features/map.js +56 -57
  362. package/dist/features/map.js.map +1 -1
  363. package/dist/features/media-library.js +914 -824
  364. package/dist/features/media-library.js.map +1 -1
  365. package/dist/features/mentions.js +1 -1
  366. package/dist/features/overlays.js +1 -1
  367. package/dist/features/products.js +1272 -1311
  368. package/dist/features/products.js.map +1 -1
  369. package/dist/features/questionnaire.js +204 -194
  370. package/dist/features/questionnaire.js.map +1 -1
  371. package/dist/features/resource-assignment.js +103 -95
  372. package/dist/features/resource-assignment.js.map +1 -1
  373. package/dist/features/resource.js +77 -69
  374. package/dist/features/resource.js.map +1 -1
  375. package/dist/features/rich-text-editor.js +30 -11
  376. package/dist/features/rich-text-editor.js.map +1 -1
  377. package/dist/features/schema-form.js +193 -189
  378. package/dist/features/schema-form.js.map +1 -1
  379. package/dist/features/suggestions.js +3 -3
  380. package/dist/features/sync.js +7 -7
  381. package/dist/features/sync.js.map +1 -1
  382. package/dist/features/table.js +1 -1
  383. package/dist/features/theme-tweaker.js +455 -455
  384. package/dist/features/theme-tweaker.js.map +1 -1
  385. package/dist/feedback-qNuMBtRH.js +233 -0
  386. package/dist/feedback-qNuMBtRH.js.map +1 -0
  387. package/dist/field-affordance-recipes-qQeIf4lG.js +48 -0
  388. package/dist/field-affordance-recipes-qQeIf4lG.js.map +1 -0
  389. package/dist/field-state-recipes-BVA2CWHo.js +12 -0
  390. package/dist/field-state-recipes-BVA2CWHo.js.map +1 -0
  391. package/dist/{filters-D6FF8L6s.js → filters-BkHH53uv.js} +414 -412
  392. package/dist/filters-BkHH53uv.js.map +1 -0
  393. package/dist/focus-recipes-B653VaLq.js +12 -0
  394. package/dist/focus-recipes-B653VaLq.js.map +1 -0
  395. package/dist/{form-field-CZwrkP7m.js → form-field-DUt4UxSV.js} +7 -7
  396. package/dist/{form-field-CZwrkP7m.js.map → form-field-DUt4UxSV.js.map} +1 -1
  397. package/dist/form-sizing-By94KzXE.js +130 -0
  398. package/dist/form-sizing-By94KzXE.js.map +1 -0
  399. package/dist/{forms-B5NCbkSC.js → forms-Bzha-Y3B.js} +25 -25
  400. package/dist/forms-Bzha-Y3B.js.map +1 -0
  401. package/dist/forms-numeric-C0bvjRPZ.js +906 -0
  402. package/dist/forms-numeric-C0bvjRPZ.js.map +1 -0
  403. package/dist/{header-kxruN3RM.js → header-BOefOKd1.js} +38 -41
  404. package/dist/header-BOefOKd1.js.map +1 -0
  405. package/dist/{hooks-BrlnCwQd.js → hooks-9k_TtmKh.js} +2 -2
  406. package/dist/{hooks-BrlnCwQd.js.map → hooks-9k_TtmKh.js.map} +1 -1
  407. package/dist/{http-CdEIHyQf.js → http-D_6rOnzU.js} +2 -2
  408. package/dist/{http-CdEIHyQf.js.map → http-D_6rOnzU.js.map} +1 -1
  409. package/dist/icon-badge-CAuKupo9.js +55 -0
  410. package/dist/icon-badge-CAuKupo9.js.map +1 -0
  411. package/dist/index.js +7 -7
  412. package/dist/input-DWhBBBww.js +262 -0
  413. package/dist/input-DWhBBBww.js.map +1 -0
  414. package/dist/{input-vxcaNCYC.js → input-Ddi_LSYv.js} +3 -3
  415. package/dist/{input-vxcaNCYC.js.map → input-Ddi_LSYv.js.map} +1 -1
  416. package/dist/interaction-recipes-CHr0dJUs.js +24 -0
  417. package/dist/interaction-recipes-CHr0dJUs.js.map +1 -0
  418. package/dist/item-DEmDiTlD.js +265 -0
  419. package/dist/item-DEmDiTlD.js.map +1 -0
  420. package/dist/layer-recipes-CCpklYME.js +13 -0
  421. package/dist/layer-recipes-CCpklYME.js.map +1 -0
  422. package/dist/layout/app-shell.js +1 -1
  423. package/dist/layout/auth.js +1 -1
  424. package/dist/layout/containers.js +1 -1
  425. package/dist/layout/header.js +1 -1
  426. package/dist/layout/hooks.js +1 -1
  427. package/dist/layout/navigation.js +1 -1
  428. package/dist/layout/page.js +1 -1
  429. package/dist/layout/settings.js +1 -1
  430. package/dist/layout/sidebar.js +2 -2
  431. package/dist/layout/workspace.js +1 -1
  432. package/dist/layout.js +10 -10
  433. package/dist/lib/affordance-geometry.generated.d.ts +7 -1
  434. package/dist/lib/field-affordance-recipes.d.ts +41 -1
  435. package/dist/lib/field-state-recipes.d.ts +9 -6
  436. package/dist/lib/focus-recipes.d.ts +24 -0
  437. package/dist/lib/format.d.ts +9 -0
  438. package/dist/lib/interaction-recipes.d.ts +35 -0
  439. package/dist/lib/layer-recipes.d.ts +19 -0
  440. package/dist/lib/money-format.d.ts +30 -0
  441. package/dist/lib/motion-recipes.d.ts +1 -0
  442. package/dist/lib/overlay-anatomy-recipes.d.ts +2 -1
  443. package/dist/lib/safe-image-src.d.ts +10 -0
  444. package/dist/lib/sanitize-html.d.ts +15 -3
  445. package/dist/lib/surface-recipes.d.ts +48 -6
  446. package/dist/lib/token-merge.generated.d.ts +17 -14
  447. package/dist/lib/tone-recipes.d.ts +79 -0
  448. package/dist/lib/track-recipes.d.ts +1 -1
  449. package/dist/lib/ui-provider/hooks.d.ts +2 -1
  450. package/dist/lib/ui-provider/index.d.ts +2 -2
  451. package/dist/lib/ui-provider/provider.d.ts +7 -2
  452. package/dist/lib/ui-provider/store.d.ts +6 -2
  453. package/dist/lib/ui-provider/types.d.ts +14 -2
  454. package/dist/lib/utils.js +1 -1
  455. package/dist/media-gallery-DcTtAaeC.js +203 -0
  456. package/dist/media-gallery-DcTtAaeC.js.map +1 -0
  457. package/dist/mentions-D-uyCh01.js +568 -0
  458. package/dist/mentions-D-uyCh01.js.map +1 -0
  459. package/dist/{message-SZUNB1eX.js → message-CdHgIWKf.js} +5 -5
  460. package/dist/{message-SZUNB1eX.js.map → message-CdHgIWKf.js.map} +1 -1
  461. package/dist/metadata-list-X5rYAKSB.js +394 -0
  462. package/dist/metadata-list-X5rYAKSB.js.map +1 -0
  463. package/dist/{motion-recipes-B6jKXEcN.js → motion-recipes-ChBg4HBq.js} +3 -2
  464. package/dist/{motion-recipes-B6jKXEcN.js.map → motion-recipes-ChBg4HBq.js.map} +1 -1
  465. package/dist/navigation-D3KwXmaq.js +145 -0
  466. package/dist/navigation-D3KwXmaq.js.map +1 -0
  467. package/dist/navigation-HJf5zxlH.js +268 -0
  468. package/dist/navigation-HJf5zxlH.js.map +1 -0
  469. package/dist/{navigation-row-recipes-DQEXQcqY.js → navigation-row-recipes-BVowojQw.js} +2 -2
  470. package/dist/{navigation-row-recipes-DQEXQcqY.js.map → navigation-row-recipes-BVowojQw.js.map} +1 -1
  471. package/dist/number-DMhe-Vsk.js +352 -0
  472. package/dist/number-DMhe-Vsk.js.map +1 -0
  473. package/dist/overflow-tab-bar-sQHXLlwQ.js +280 -0
  474. package/dist/overflow-tab-bar-sQHXLlwQ.js.map +1 -0
  475. package/dist/overlay.recipes-8GHqmlb4.js +6 -0
  476. package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
  477. package/dist/overlays-I0axtYA6.js +999 -0
  478. package/dist/overlays-I0axtYA6.js.map +1 -0
  479. package/dist/{page-hGmT4nWK.js → page-B5dTH9gE.js} +79 -68
  480. package/dist/page-B5dTH9gE.js.map +1 -0
  481. package/dist/page-header-commands-DjzFEq3E.js +126 -0
  482. package/dist/page-header-commands-DjzFEq3E.js.map +1 -0
  483. package/dist/{pagination-NLGqRirf.js → pagination-3bPA_a6K.js} +19 -19
  484. package/dist/{pagination-NLGqRirf.js.map → pagination-3bPA_a6K.js.map} +1 -1
  485. package/dist/{popover-CghIYdQf.js → popover-Di55PyAI.js} +8 -8
  486. package/dist/popover-Di55PyAI.js.map +1 -0
  487. package/dist/{popover-menu-B4PoWhRl.js → popover-menu-B71Tn2Qz.js} +6 -6
  488. package/dist/{popover-menu-B4PoWhRl.js.map → popover-menu-B71Tn2Qz.js.map} +1 -1
  489. package/dist/{popover.recipes-QlD4JenO.js → popover.recipes-Bdyhj2db.js} +2 -2
  490. package/dist/{popover.recipes-QlD4JenO.js.map → popover.recipes-Bdyhj2db.js.map} +1 -1
  491. package/dist/primitives-B-CkiEMU.js +379 -0
  492. package/dist/primitives-B-CkiEMU.js.map +1 -0
  493. package/dist/primitives.js +5 -5
  494. package/dist/{progress-BroqrAyV.js → progress-rnS8-uAW.js} +11 -11
  495. package/dist/progress-rnS8-uAW.js.map +1 -0
  496. package/dist/{receipt-BuJynLgf.js → receipt-D0oswZ0p.js} +6 -6
  497. package/dist/{receipt-BuJynLgf.js.map → receipt-D0oswZ0p.js.map} +1 -1
  498. package/dist/rich-text-DvGulsNJ.js +78 -0
  499. package/dist/rich-text-DvGulsNJ.js.map +1 -0
  500. package/dist/rich-text-editor-sMU_Scqm.js +1204 -0
  501. package/dist/rich-text-editor-sMU_Scqm.js.map +1 -0
  502. package/dist/rich-text-editor.recipes-CadiF_Uu.js +88 -0
  503. package/dist/rich-text-editor.recipes-CadiF_Uu.js.map +1 -0
  504. package/dist/rich-text-editor.strings-CB59ekH2.js +38 -0
  505. package/dist/rich-text-editor.strings-CB59ekH2.js.map +1 -0
  506. package/dist/safe-image-src-C6kQSMBZ.js +17 -0
  507. package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
  508. package/dist/sanitize-html-DsQmI48u.js +92 -0
  509. package/dist/sanitize-html-DsQmI48u.js.map +1 -0
  510. package/dist/scroll-area-Bt_vXY2b.js +48 -0
  511. package/dist/scroll-area-Bt_vXY2b.js.map +1 -0
  512. package/dist/{separator-BNIgG3au.js → separator-C8DlRGwF.js} +4 -4
  513. package/dist/separator-C8DlRGwF.js.map +1 -0
  514. package/dist/{separator-BhtFyo4x.js → separator-CYHnjsAb.js} +2 -2
  515. package/dist/{separator-BhtFyo4x.js.map → separator-CYHnjsAb.js.map} +1 -1
  516. package/dist/services/actions/action-adapters.d.ts +22 -0
  517. package/dist/services/actions/index.d.ts +1 -1
  518. package/dist/services/actions.js +23 -6
  519. package/dist/services/actions.js.map +1 -1
  520. package/dist/settings-CQW3b-Cu.js +170 -0
  521. package/dist/settings-CQW3b-Cu.js.map +1 -0
  522. package/dist/sheet-4SEvVYzA.js +210 -0
  523. package/dist/sheet-4SEvVYzA.js.map +1 -0
  524. package/dist/{sidebar-CyR4XKwR.js → sidebar-C7WWR29L.js} +181 -180
  525. package/dist/sidebar-C7WWR29L.js.map +1 -0
  526. package/dist/sidebar-d7Dg80ln.js +511 -0
  527. package/dist/sidebar-d7Dg80ln.js.map +1 -0
  528. package/dist/{skeleton-3F0uhYn3.js → skeleton-Cz890JZF.js} +10 -10
  529. package/dist/skeleton-Cz890JZF.js.map +1 -0
  530. package/dist/smart-card-lFKxn5Hu.js +595 -0
  531. package/dist/smart-card-lFKxn5Hu.js.map +1 -0
  532. package/dist/{spinner-Cpf7oRkF.js → spinner-fa3h1Aif.js} +10 -8
  533. package/dist/spinner-fa3h1Aif.js.map +1 -0
  534. package/dist/{structure-CRdqVawd.js → structure-DC2dygdA.js} +3 -3
  535. package/dist/{structure-CRdqVawd.js.map → structure-DC2dygdA.js.map} +1 -1
  536. package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
  537. package/dist/structure.recipes-EPz60cU8.js.map +1 -0
  538. package/dist/style.css +1 -1
  539. package/dist/surface-recipes-BKRVW8Os.js +43 -0
  540. package/dist/surface-recipes-BKRVW8Os.js.map +1 -0
  541. package/dist/table-CIKyLUsy.js +163 -0
  542. package/dist/table-CIKyLUsy.js.map +1 -0
  543. package/dist/{table-CcRDZiLP.js → table-CrcLN9Io.js} +544 -530
  544. package/dist/table-CrcLN9Io.js.map +1 -0
  545. package/dist/tabs-DwBJfjxX.js +190 -0
  546. package/dist/tabs-DwBJfjxX.js.map +1 -0
  547. package/dist/{text-inputs-DsR56TR-.js → text-inputs-aaK9wcDT.js} +151 -155
  548. package/dist/text-inputs-aaK9wcDT.js.map +1 -0
  549. package/dist/{text.styles-Q4sGAIgA.js → text.styles-g4He6UIW.js} +17 -14
  550. package/dist/text.styles-g4He6UIW.js.map +1 -0
  551. package/dist/theme.css +16 -12
  552. package/dist/themes/green.css +24 -0
  553. package/dist/{timelines-D1pkt3se.js → timelines-C_SBwHNP.js} +154 -164
  554. package/dist/timelines-C_SBwHNP.js.map +1 -0
  555. package/dist/tone-recipes-CPoExcTE.js +70 -0
  556. package/dist/tone-recipes-CPoExcTE.js.map +1 -0
  557. package/dist/tooltip-CsfgrfS7.js +111 -0
  558. package/dist/tooltip-CsfgrfS7.js.map +1 -0
  559. package/dist/track-recipes-CDcKmndW.js +10 -0
  560. package/dist/track-recipes-CDcKmndW.js.map +1 -0
  561. package/dist/{tree-BtmYyMZV.js → tree-BiKhg8AY.js} +72 -70
  562. package/dist/tree-BiKhg8AY.js.map +1 -0
  563. package/dist/typography/rich-text.js +1 -1
  564. package/dist/typography-DTRkE9zL.js +117 -0
  565. package/dist/typography-DTRkE9zL.js.map +1 -0
  566. package/dist/typography.js +2 -2
  567. package/dist/{ui-provider-DRPn3qNl.js → ui-provider-1D_NSYzO.js} +30 -23
  568. package/dist/ui-provider-1D_NSYzO.js.map +1 -0
  569. package/dist/ui-provider.js +3 -3
  570. package/dist/{upload-CDbYw1WN.js → upload-BO8-CLN6.js} +294 -293
  571. package/dist/upload-BO8-CLN6.js.map +1 -0
  572. package/dist/{upload-queue-CNd_hH_a.js → upload-queue-EOC8g1gf.js} +133 -138
  573. package/dist/upload-queue-EOC8g1gf.js.map +1 -0
  574. package/dist/upload.recipes-BbxTqrCT.js +61 -0
  575. package/dist/upload.recipes-BbxTqrCT.js.map +1 -0
  576. package/dist/{usage-card-VyJLUwRr.js → usage-card-obRaBskq.js} +42 -43
  577. package/dist/{usage-card-VyJLUwRr.js.map → usage-card-obRaBskq.js.map} +1 -1
  578. package/dist/{utils-BvH9PSmq.js → utils-l5LpDw2z.js} +264 -62
  579. package/dist/utils-l5LpDw2z.js.map +1 -0
  580. package/dist/value-inputs-TAYMX111.js +947 -0
  581. package/dist/value-inputs-TAYMX111.js.map +1 -0
  582. package/dist/value-typography-b8wpz1eX.js +116 -0
  583. package/dist/value-typography-b8wpz1eX.js.map +1 -0
  584. package/dist/workspace-DH0v0KcB.js +407 -0
  585. package/dist/workspace-DH0v0KcB.js.map +1 -0
  586. package/docs/consumer-skill/SKILL.md +62 -50
  587. package/docs/consumer-skill/examples/app-layout.tsx +3 -5
  588. package/docs/consumer-skill/examples/composition.tsx +3 -3
  589. package/docs/consumer-skill/examples/detail.tsx +59 -13
  590. package/docs/consumer-skill/examples/edit.tsx +2 -2
  591. package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
  592. package/docs/consumer-skill/examples/manifest.json +28 -6
  593. package/docs/consumer-skill/examples/receipt.tsx +2 -2
  594. package/docs/consumer-skill/examples/scoped-directory.tsx +3 -3
  595. package/docs/consumer-skill/examples/website.tsx +1 -1
  596. package/docs/consumer-skill/references/agents-md.md +33 -0
  597. package/docs/consumer-skill/references/analytics.md +1 -1
  598. package/docs/consumer-skill/references/composition.md +139 -24
  599. package/docs/consumer-skill/references/design-contract.md +12 -3
  600. package/docs/consumer-skill/references/discovery.md +4 -0
  601. package/docs/consumer-skill/references/installation.md +33 -1
  602. package/docs/consumer-skill/references/integration.md +32 -1
  603. package/docs/consumer-skill/references/public-api.json +1051 -610
  604. package/docs/consumer-skill/references/review.md +44 -8
  605. package/docs/consumer-skill/references/theming.md +14 -4
  606. package/docs/consumer-skill/references/tokens.json +5 -2
  607. package/docs/consumer-skill/references/workflows.md +30 -9
  608. package/docs/consumer-skill/scripts/composition-policy.mjs +127 -6
  609. package/docs/consumer-skill/scripts/discovery.mjs +11 -3
  610. package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
  611. package/docs/consumer-skill/scripts/surface-policy.mjs +139 -5
  612. package/package.json +13 -3
  613. package/dist/accordion-BRTcsp8J.js +0 -205
  614. package/dist/accordion-BRTcsp8J.js.map +0 -1
  615. package/dist/action-menu-Drxw_vJk.js +0 -265
  616. package/dist/action-menu-Drxw_vJk.js.map +0 -1
  617. package/dist/affordance-geometry.generated-CL84ZN9A.js.map +0 -1
  618. package/dist/ai-artifact-DLVdK0Py.js.map +0 -1
  619. package/dist/attachment-DbjUWsP0.js +0 -244
  620. package/dist/attachment-DbjUWsP0.js.map +0 -1
  621. package/dist/auth-CAQcasMV.js.map +0 -1
  622. package/dist/avatar-Bu2HhitA.js.map +0 -1
  623. package/dist/badge-CzId1Wlm.js +0 -92
  624. package/dist/badge-CzId1Wlm.js.map +0 -1
  625. package/dist/breadcrumbs-BuYz5SDU.js +0 -128
  626. package/dist/breadcrumbs-BuYz5SDU.js.map +0 -1
  627. package/dist/button-BZDasD04.js +0 -651
  628. package/dist/button-BZDasD04.js.map +0 -1
  629. package/dist/button-BZyfTvwm.js.map +0 -1
  630. package/dist/buttons-D_6KJvEE.js +0 -99
  631. package/dist/buttons-D_6KJvEE.js.map +0 -1
  632. package/dist/cards-qGSErLw_.js.map +0 -1
  633. package/dist/chart-Bsc5BICK.js.map +0 -1
  634. package/dist/checkbox-BQNDjUCh.js +0 -34
  635. package/dist/checkbox-BQNDjUCh.js.map +0 -1
  636. package/dist/choice-inputs-Mk3iWbhr.js +0 -725
  637. package/dist/choice-inputs-Mk3iWbhr.js.map +0 -1
  638. package/dist/code-block-DzHKRybS.js +0 -183
  639. package/dist/code-block-DzHKRybS.js.map +0 -1
  640. package/dist/combobox-BFnbJJp3.js.map +0 -1
  641. package/dist/combobox-hozNwUcc.js +0 -847
  642. package/dist/combobox-hozNwUcc.js.map +0 -1
  643. package/dist/command-BnmSchli.js.map +0 -1
  644. package/dist/comments-u5L0OGip.js.map +0 -1
  645. package/dist/containers-DqB-bSYE.js.map +0 -1
  646. package/dist/data-display-Bihs9Ven.js +0 -1342
  647. package/dist/data-display-Bihs9Ven.js.map +0 -1
  648. package/dist/date-DOKhJPu7.js +0 -140
  649. package/dist/date-DOKhJPu7.js.map +0 -1
  650. package/dist/date-picker-DzP5HQq7.js +0 -1541
  651. package/dist/date-picker-DzP5HQq7.js.map +0 -1
  652. package/dist/date-pickers-BpgGz7S-.js +0 -196
  653. package/dist/date-pickers-BpgGz7S-.js.map +0 -1
  654. package/dist/display-CS6Hbk18.js.map +0 -1
  655. package/dist/dropdown-menu-D-boNgGO.js.map +0 -1
  656. package/dist/feedback-CJkUAapr.js +0 -233
  657. package/dist/feedback-CJkUAapr.js.map +0 -1
  658. package/dist/field-affordance-recipes-uKY4MsZ_.js +0 -25
  659. package/dist/field-affordance-recipes-uKY4MsZ_.js.map +0 -1
  660. package/dist/field-state-recipes-DQQpiLWC.js +0 -11
  661. package/dist/field-state-recipes-DQQpiLWC.js.map +0 -1
  662. package/dist/filters-D6FF8L6s.js.map +0 -1
  663. package/dist/form-sizing-QP8aIRaW.js +0 -103
  664. package/dist/form-sizing-QP8aIRaW.js.map +0 -1
  665. package/dist/format-iamDSqs2.js +0 -110
  666. package/dist/format-iamDSqs2.js.map +0 -1
  667. package/dist/forms-B5NCbkSC.js.map +0 -1
  668. package/dist/forms-numeric-Crrm80Lm.js +0 -867
  669. package/dist/forms-numeric-Crrm80Lm.js.map +0 -1
  670. package/dist/header-kxruN3RM.js.map +0 -1
  671. package/dist/icon-badge-Btc6pQrp.js +0 -53
  672. package/dist/icon-badge-Btc6pQrp.js.map +0 -1
  673. package/dist/input-SX9V0AL3.js +0 -255
  674. package/dist/input-SX9V0AL3.js.map +0 -1
  675. package/dist/item-DE4YnuJx.js +0 -258
  676. package/dist/item-DE4YnuJx.js.map +0 -1
  677. package/dist/media-gallery-DLp3HAz0.js +0 -201
  678. package/dist/media-gallery-DLp3HAz0.js.map +0 -1
  679. package/dist/mentions-Cl0Kt_Pd.js +0 -565
  680. package/dist/mentions-Cl0Kt_Pd.js.map +0 -1
  681. package/dist/navigation-DnQSNMT0.js +0 -276
  682. package/dist/navigation-DnQSNMT0.js.map +0 -1
  683. package/dist/navigation-DyytsLRB.js +0 -265
  684. package/dist/navigation-DyytsLRB.js.map +0 -1
  685. package/dist/number-DasMFWEG.js +0 -269
  686. package/dist/number-DasMFWEG.js.map +0 -1
  687. package/dist/overlay.recipes-BxW5FIfK.js +0 -6
  688. package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
  689. package/dist/overlays-DUbs1KEi.js +0 -1011
  690. package/dist/overlays-DUbs1KEi.js.map +0 -1
  691. package/dist/page-hGmT4nWK.js.map +0 -1
  692. package/dist/page-header-D8nERkn5.js +0 -112
  693. package/dist/page-header-D8nERkn5.js.map +0 -1
  694. package/dist/popover-CghIYdQf.js.map +0 -1
  695. package/dist/primitives-C7ff0QaI.js +0 -337
  696. package/dist/primitives-C7ff0QaI.js.map +0 -1
  697. package/dist/progress-BroqrAyV.js.map +0 -1
  698. package/dist/rich-text-DlxDOtf4.js +0 -32
  699. package/dist/rich-text-DlxDOtf4.js.map +0 -1
  700. package/dist/rich-text-editor-BKyG7rWz.js +0 -574
  701. package/dist/rich-text-editor-BKyG7rWz.js.map +0 -1
  702. package/dist/rich-text-editor.recipes-B72Nfuze.js +0 -81
  703. package/dist/rich-text-editor.recipes-B72Nfuze.js.map +0 -1
  704. package/dist/rich-text-editor.strings-BpnIQgMl.js +0 -25
  705. package/dist/rich-text-editor.strings-BpnIQgMl.js.map +0 -1
  706. package/dist/sanitize-html-BG9FGe-j.js +0 -64
  707. package/dist/sanitize-html-BG9FGe-j.js.map +0 -1
  708. package/dist/scroll-area-D-pIhEKl.js +0 -47
  709. package/dist/scroll-area-D-pIhEKl.js.map +0 -1
  710. package/dist/separator-BNIgG3au.js.map +0 -1
  711. package/dist/settings-DOTOzeZ2.js +0 -161
  712. package/dist/settings-DOTOzeZ2.js.map +0 -1
  713. package/dist/sheet-BFhrNehm.js +0 -205
  714. package/dist/sheet-BFhrNehm.js.map +0 -1
  715. package/dist/sidebar-CyR4XKwR.js.map +0 -1
  716. package/dist/sidebar-SvGJ0Zwi.js +0 -506
  717. package/dist/sidebar-SvGJ0Zwi.js.map +0 -1
  718. package/dist/skeleton-3F0uhYn3.js.map +0 -1
  719. package/dist/smart-card-DjGVV2xr.js +0 -584
  720. package/dist/smart-card-DjGVV2xr.js.map +0 -1
  721. package/dist/spinner-Cpf7oRkF.js.map +0 -1
  722. package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
  723. package/dist/surface-recipes-Dd__PD-w.js +0 -28
  724. package/dist/surface-recipes-Dd__PD-w.js.map +0 -1
  725. package/dist/table-CLtJTxoR.js +0 -147
  726. package/dist/table-CLtJTxoR.js.map +0 -1
  727. package/dist/table-CcRDZiLP.js.map +0 -1
  728. package/dist/tabs-BNgu7g0u.js +0 -188
  729. package/dist/tabs-BNgu7g0u.js.map +0 -1
  730. package/dist/text-inputs-DsR56TR-.js.map +0 -1
  731. package/dist/text.styles-Q4sGAIgA.js.map +0 -1
  732. package/dist/timelines-D1pkt3se.js.map +0 -1
  733. package/dist/track-recipes-LLPNVwFg.js +0 -10
  734. package/dist/track-recipes-LLPNVwFg.js.map +0 -1
  735. package/dist/tree-BtmYyMZV.js.map +0 -1
  736. package/dist/typography-BxQgiZyw.js +0 -96
  737. package/dist/typography-BxQgiZyw.js.map +0 -1
  738. package/dist/ui-provider-DRPn3qNl.js.map +0 -1
  739. package/dist/upload-CDbYw1WN.js.map +0 -1
  740. package/dist/upload-queue-CNd_hH_a.js.map +0 -1
  741. package/dist/use-file-drop-target-BX7GnhoQ.js +0 -39
  742. package/dist/use-file-drop-target-BX7GnhoQ.js.map +0 -1
  743. package/dist/utils-BvH9PSmq.js.map +0 -1
  744. package/dist/value-inputs-D0KCrfVC.js +0 -840
  745. package/dist/value-inputs-D0KCrfVC.js.map +0 -1
  746. package/dist/workspace-CcR8r-Nt.js +0 -395
  747. package/dist/workspace-CcR8r-Nt.js.map +0 -1
  748. /package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.strings.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"data-view.js","names":["_Fragment","NumberValue","Text","Button","Grid","Stack","SecondaryValue","Number$1","TabsTrigger","TabsList","Tabs","PopoverMenu","FilterOperatorEnum","getDefaultOperatorForType","FilterType","useFilters","FilterLayout","FilterProvider","Fragment$1","defaultDataViewPaginationStrings","defaultDataViewFilterTabsLabel","getPathValue","path","current","part","row","stringifyFilterValue","value","collectSearchText","depth","entry","normalizeCandidateValues","stringified","toComparableNumber","next","toComparableDate","dateFormat","formattedDate","parse","isValid","nativeDate","matchesComparableOperator","toComparable","filterConfig","candidateNumbers","candidateValues","filterNumbers","filterValues","operator","candidate","fallbackFilterConfig","key","rowMatchesFilter","filter","haystack","resolvedFilterConfig","getFilterValue","applyDataViewFilters","activeFilters","data","filtersByKey","filters","useDataView","onErrorRef","useRef","filtering","lastReportedResultRef","filterRows","hasFiltering","result","useMemo","error","useEffect","useFilterTabState","nonSearchFilters","searchFilters","activeTab","tab","tabs","active","preset","sortedPreset","sortedActive","index","applyTab","presetFilters","DataViewFilterTabSelect","item","Check","label","ChevronsUpDown","DataViewShell","emptyState","cn","className","header","toolbar","contentClassName","emptySlot","children","footer","DataViewToolbar","leading","search","views","actions","DataViewTableFrame","toolbarClassName","footerClassName","DataViewRoot","resolvedFilterTabs","filterTabsDisplay","layoutTabs","showAuxiliaryToolbar","slots","hasIntegratedTopbar","tableNode","DataTable","table","rows","DataView","DataViewPagination","stringsProp","strings","useStrings","hasPrevious","page","hasNext","pageCount","pageLabel","canChangePage","onPageChange","disabled","total","SavedViewTabs","onValueChange","view"],"sources":["../../src/components/features/data-view/data-view.strings.ts","../../src/components/features/data-view/data-view-filtering.ts","../../src/components/features/data-view/hooks/use-data-view.ts","../../src/components/features/data-view/data-view.tsx"],"sourcesContent":["export interface DataViewPaginationStrings {\n\t/** Current page, 1-based. */\n\tpage: string;\n\tprevious: string;\n\tnext: string;\n}\n\nexport const defaultDataViewPaginationStrings: DataViewPaginationStrings = {\n\tpage: 'Page',\n\tprevious: 'Previous',\n\tnext: 'Next',\n};\n\n/** Default for the directly overrideable `filterTabsLabel` control label. */\nexport const defaultDataViewFilterTabsLabel = 'View';\n","import { isValid, parse } from 'date-fns';\n\nimport {\n\tFilterOperatorEnum,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterConfig,\n} from '../filters';\n\nimport type { DataViewFilterValueGetter } from './data-view.types';\n\nfunction getPathValue(row: unknown, path: string): unknown {\n\tif (!path.includes('.')) {\n\t\treturn row && typeof row === 'object'\n\t\t\t? (row as Record<string, unknown>)[path]\n\t\t\t: undefined;\n\t}\n\n\treturn path.split('.').reduce<unknown>((current, part) => {\n\t\tif (!current || typeof current !== 'object') return undefined;\n\t\treturn (current as Record<string, unknown>)[part];\n\t}, row);\n}\n\nfunction stringifyFilterValue(value: unknown): string {\n\tif (value === null || value === undefined) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string') return value;\n\tif (typeof value === 'number' || typeof value === 'boolean') return String(value);\n\treturn '';\n}\n\nfunction collectSearchText(value: unknown, depth = 0): string {\n\tif (value === null || value === undefined || depth > 2) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn String(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => collectSearchText(entry, depth + 1)).join(' ');\n\t}\n\tif (typeof value === 'object') {\n\t\treturn Object.values(value as Record<string, unknown>)\n\t\t\t.map((entry) => collectSearchText(entry, depth + 1))\n\t\t\t.join(' ');\n\t}\n\treturn '';\n}\n\nfunction normalizeCandidateValues(value: unknown): string[] {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(stringifyFilterValue).filter(Boolean).map((entry) => entry.toLowerCase());\n\t}\n\n\tconst stringified = stringifyFilterValue(value);\n\treturn stringified ? [stringified.toLowerCase()] : [];\n}\n\nfunction toComparableNumber(value: string): number | undefined {\n\tconst next = Number(value);\n\treturn Number.isFinite(next) ? next : undefined;\n}\n\nfunction toComparableDate(value: string, dateFormat?: string): number | undefined {\n\tif (dateFormat) {\n\t\tconst formattedDate = parse(value, dateFormat, new Date(0));\n\t\tif (isValid(formattedDate)) return formattedDate.getTime();\n\t}\n\n\tconst nativeDate = new Date(value);\n\treturn isValid(nativeDate) ? nativeDate.getTime() : undefined;\n}\n\nfunction matchesComparableOperator(\n\tcandidateValues: string[],\n\tfilterValues: string[],\n\toperator: ActiveFilter['operator'],\n\tfilterConfig?: FilterConfig,\n) {\n\tconst toComparable = filterConfig?.type === FilterType.DATE\n\t\t? (value: string) => toComparableDate(value, filterConfig.dateFormat?.param ?? 'yyyy-MM-dd')\n\t\t: toComparableNumber;\n\tconst candidateNumbers = candidateValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\tconst filterNumbers = filterValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\n\tif (candidateNumbers.length === 0 || filterNumbers.length === 0) return false;\n\n\tswitch (operator) {\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\t\treturn candidateNumbers.some((candidate) => candidate > filterNumbers[0]);\n\t\tcase FilterOperatorEnum.GTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate < filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate <= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\tif (filterNumbers.length < 2) return false;\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0] && candidate <= filterNumbers[1]);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nfunction fallbackFilterConfig(key: string): FilterConfig {\n\treturn {\n\t\tkey,\n\t\tlabel: key,\n\t\ttype: FilterType.SEARCH,\n\t\ticon: null,\n\t\tdisplayConfig: {},\n\t};\n}\n\nfunction rowMatchesFilter<TData extends object>(\n\trow: TData,\n\tfilter: ActiveFilter,\n\tfilterConfig: FilterConfig | undefined,\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n) {\n\tconst filterValues = filter.value.map((value) => value.trim().toLowerCase()).filter(Boolean);\n\tif (filterValues.length === 0) return true;\n\n\tif (filterConfig?.type === FilterType.SEARCH) {\n\t\tconst haystack = collectSearchText(row).toLowerCase();\n\t\tif (\n\t\t\tfilter.operator === FilterOperatorEnum.NOT ||\n\t\t\tfilter.operator === FilterOperatorEnum.NOT_IN\n\t\t) {\n\t\t\treturn filterValues.every((value) => !haystack.includes(value));\n\t\t}\n\t\treturn filterValues.every((value) => haystack.includes(value));\n\t}\n\n\tconst resolvedFilterConfig = filterConfig ?? fallbackFilterConfig(filter.key);\n\tconst rawValue = getFilterValue?.(row, resolvedFilterConfig) ?? getPathValue(row, filter.key);\n\tconst candidateValues = normalizeCandidateValues(rawValue);\n\tif (candidateValues.length === 0) return false;\n\n\tswitch (filter.operator) {\n\t\tcase FilterOperatorEnum.CONTAINS:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.some((candidate) => candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.HAS:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.NOT_IN:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t);\n\t\tcase FilterOperatorEnum.NOT:\n\t\t\tif (\n\t\t\t\tfilterConfig?.type === FilterType.SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.MULTI_SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.ASYNC_SELECT\n\t\t\t) {\n\t\t\t\treturn filterValues.every((value) =>\n\t\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => !candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.IN:\n\t\tcase FilterOperatorEnum.EQUALS:\n\t\tcase FilterOperatorEnum.HAS_ANY:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.HAS_ALL:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.GTE:\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.LTE:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\treturn matchesComparableOperator(\n\t\t\t\tcandidateValues,\n\t\t\t\tfilterValues,\n\t\t\t\tfilter.operator,\n\t\t\t\tfilterConfig,\n\t\t\t);\n\t\tdefault:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t}\n}\n\nexport function applyDataViewFilters<TData extends object>(\n\tdata: readonly TData[],\n\tactiveFilters: readonly ActiveFilter[],\n\tfilters: readonly FilterConfig[],\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n): readonly TData[] {\n\tif (activeFilters.length === 0) return data;\n\n\tconst filtersByKey = new Map(filters.map((filter) => [filter.key, filter]));\n\treturn data.filter((row) =>\n\t\tactiveFilters.every((filter) =>\n\t\t\trowMatchesFilter(row, filter, filtersByKey.get(filter.key), getFilterValue),\n\t\t),\n\t);\n}\n","import { useEffect, useMemo, useRef } from 'react';\n\nimport { applyDataViewFilters } from '../data-view-filtering';\nimport type {\n\tUseDataViewOptions,\n\tUseDataViewResult,\n} from '../data-view.types';\n\nexport function useDataView<TData extends object>({\n\tdata,\n\tfiltering,\n}: UseDataViewOptions<TData>): UseDataViewResult<TData> {\n\tconst onErrorRef = useRef(filtering?.onError);\n\tonErrorRef.current = filtering?.onError;\n\tconst lastReportedResultRef = useRef<UseDataViewResult<TData> | null>(null);\n\tconst activeFilters = filtering?.activeFilters;\n\tconst filterRows = filtering?.filterRows;\n\tconst filters = filtering?.filters;\n\tconst getFilterValue = filtering?.getFilterValue;\n\tconst hasFiltering = filtering !== undefined;\n\n\tconst result = useMemo<UseDataViewResult<TData>>(() => {\n\t\tif (!hasFiltering || !activeFilters || !filters) {\n\t\t\treturn { rows: data, error: null, failed: false };\n\t\t}\n\n\t\ttry {\n\t\t\treturn {\n\t\t\t\trows: filterRows\n\t\t\t\t\t? filterRows({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t})\n\t\t\t\t\t: applyDataViewFilters(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t\tgetFilterValue,\n\t\t\t\t\t),\n\t\t\t\terror: null,\n\t\t\t\tfailed: false,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn { rows: data, error, failed: true };\n\t\t}\n\t}, [\n\t\tactiveFilters,\n\t\tdata,\n\t\tfilterRows,\n\t\tfilters,\n\t\tgetFilterValue,\n\t\thasFiltering,\n\t]);\n\n\tuseEffect(() => {\n\t\tif (!result.failed) {\n\t\t\tlastReportedResultRef.current = null;\n\t\t\treturn;\n\t\t}\n\t\tif (lastReportedResultRef.current === result) return;\n\t\tlastReportedResultRef.current = result;\n\t\tonErrorRef.current?.(result.error, { phase: 'apply' });\n\t}, [result]);\n\n\treturn result;\n}\n","import { Tabs, TabsList, TabsTrigger } from '../../base/navigation/tabs';\n/** DataView feature chrome — controlled shells for tables, filters, and saved views. */\nimport { useMemo } from 'react';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nimport { Button } from '../../base/buttons';\nimport { PopoverMenu } from '../../base/popover-menu';\nimport { Grid, Stack } from '../../base/structure';\nimport { DataTable } from '../table';\nimport { Number as NumberValue, SecondaryValue } from '../../primitives';\nimport {\n\tFilterLayout,\n\tFilterOperatorEnum,\n\tFilterProvider,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterTab,\n\tgetDefaultOperatorForType,\n\tuseFilters,\n} from '../filters';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultDataViewFilterTabsLabel, defaultDataViewPaginationStrings } from './data-view.strings';\nimport { useDataView } from './hooks';\nimport type {\n\tDataViewFilteringConfig,\n\tDataViewPaginationProps,\n\tDataViewProps,\n\tDataViewShellProps,\n\tDataViewSlots,\n\tDataViewTableOptions,\n\tDataViewTableFrameProps,\n\tDataViewToolbarProps,\n\tSavedViewTabsProps,\n} from './data-view.types';\n\nfunction useFilterTabState(tabs: readonly FilterTab[]) {\n\tconst { activeFilters, filters, replaceFilters } = useFilters();\n\tconst nonSearchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type !== FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst searchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type === FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst activeTab = useMemo(() => {\n\t\tfor (const tab of tabs) {\n\t\t\tif (tab.presets.length === 0) {\n\t\t\t\tif (nonSearchFilters.length === 0) return tab;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (tab.presets.length !== nonSearchFilters.length) continue;\n\n\t\t\tconst allMatch = tab.presets.every((preset) => {\n\t\t\t\tconst active = nonSearchFilters.find((filter) => filter.key === preset.key);\n\t\t\t\tif (!active) return false;\n\n\t\t\t\tconst sortedPreset = [...preset.value].sort();\n\t\t\t\tconst sortedActive = [...active.value].sort();\n\t\t\t\tif (sortedPreset.length !== sortedActive.length) return false;\n\t\t\t\tif (sortedPreset.some((value, index) => value !== sortedActive[index])) return false;\n\n\t\t\t\treturn !preset.operator || active.operator === preset.operator;\n\t\t\t});\n\n\t\t\tif (allMatch) return tab;\n\t\t}\n\n\t\treturn undefined;\n\t}, [nonSearchFilters, tabs]);\n\n\tfunction applyTab(tab: FilterTab) {\n\t\tif (tab.presets.length === 0) {\n\t\t\treplaceFilters([...searchFilters]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst presetFilters: ActiveFilter[] = tab.presets.map((preset) => {\n\t\t\tconst filterConfig = filters.find((filter) => filter.key === preset.key);\n\t\t\tconst operator =\n\t\t\t\tpreset.operator ??\n\t\t\t\tfilterConfig?.operator ??\n\t\t\t\t(filterConfig ? getDefaultOperatorForType(filterConfig.type) : FilterOperatorEnum.EQUALS);\n\n\t\t\treturn {\n\t\t\t\tid: preset.key,\n\t\t\t\tkey: preset.key,\n\t\t\t\tvalue: preset.value,\n\t\t\t\toperator,\n\t\t\t};\n\t\t});\n\n\t\treplaceFilters([...searchFilters, ...presetFilters]);\n\t}\n\n\treturn { activeTab, applyTab };\n}\n\nfunction DataViewFilterTabSelect({\n\ttabs,\n\tlabel = defaultDataViewFilterTabsLabel,\n}: {\n\t/** Tabs to offer, in display order. */\n\ttabs: readonly FilterTab[];\n\t/** Display label. */\n\tlabel?: string;\n}) {\n\tconst { activeTab, applyTab } = useFilterTabState(tabs);\n\tif (tabs.length === 0) return null;\n\n\treturn (\n\t\t<PopoverMenu\n\t\t\tsearch={false}\n\t\t\tcontentClassName=\"w-48\"\n\t\t\titems={tabs.map((tab) => ({\n\t\t\t\tvalue: tab.id,\n\t\t\t\tlabel: tab.label,\n\t\t\t\tdescription: tab.count === undefined ? undefined : String(tab.count),\n\t\t\t\tselected: tab.id === activeTab?.id,\n\t\t\t\tdata: tab,\n\t\t\t}))}\n\t\t\tonSelect={(item) => {\n\t\t\t\tif (item.data) applyTab(item.data);\n\t\t\t}}\n\t\t\trenderItem={(item) => (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"flex size-icon-sm shrink-0 items-center justify-center\">\n\t\t\t\t\t\t{!!item.selected && <Check className=\"size-icon-sm\" aria-hidden=\"true\" />}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Text tag=\"span\" weight={item.selected ? 'medium' : 'regular'} className=\"min-w-0 flex-1 truncate\">\n\t\t\t\t\t\t{item.label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName=\"h-action-sm px-control-sm\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t>\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t{activeTab?.label ?? label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ChevronsUpDown className=\"size-icon-sm\" aria-hidden=\"true\" />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport function DataViewShell({\n\tchildren,\n\theader,\n\ttoolbar,\n\tfooter,\n\temptySlot,\n\tempty: emptyState = false,\n\tclassName,\n\tcontentClassName,\n}: DataViewShellProps) {\n\treturn (\n\t\t<Stack\n\t\t\trender={<section />}\n\t\t\tgap=\"lg\"\n\t\t\tdata-component=\"data-view-shell\"\n\t\t\tdata-slot=\"data-view-shell\"\n\t\t\tclassName={cn('data-view-shell--component @container/data-view', className)}\n\t\t>\n\t\t\t{!!header && (\n\t\t\t\t<div data-slot=\"data-view-header\" className=\"data-view-shell--header\">\n\t\t\t\t\t{header}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!toolbar && (\n\t\t\t\t<div data-slot=\"data-view-toolbar-slot\" className=\"data-view-shell--toolbar\">\n\t\t\t\t\t{toolbar}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div data-slot=\"data-view-content\" className={cn('data-view-shell--content min-w-0', contentClassName)}>\n\t\t\t\t{emptyState ? emptySlot : children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div data-slot=\"data-view-footer\" className=\"data-view-shell--footer\">\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Stack>\n\t);\n}\n\nexport function DataViewToolbar({ leading, search, filters, views, actions, className }: DataViewToolbarProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"data-view-toolbar\"\n\t\t\tdata-slot=\"data-view-toolbar\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-toolbar--component rounded-radius border border-border/70 bg-card p-surface shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-col gap-space-lg @2xl/data-view:flex-row @2xl/data-view:items-center @2xl/data-view:justify-between @2xl/data-view:flex-nowrap\">\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\twrap\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\tdata-slot=\"data-view-toolbar-leading\"\n\t\t\t\t\tclassName=\"data-view-toolbar--leading min-w-0 flex-1\"\n\t\t\t\t>\n\t\t\t\t\t{leading}\n\t\t\t\t\t{search}\n\t\t\t\t\t{filters}\n\t\t\t\t\t{views}\n\t\t\t\t</Stack>\n\t\t\t\t{!!actions && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tdata-slot=\"data-view-toolbar-actions\"\n\t\t\t\t\t\tclassName=\"data-view-toolbar--actions shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function DataViewTableFrame({\n\ttoolbar,\n\tchildren,\n\tfooter,\n\tclassName,\n\ttoolbarClassName,\n\tcontentClassName,\n\tfooterClassName,\n}: DataViewTableFrameProps) {\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"data-view-table-frame\"\n\t\t\tdata-slot=\"data-view-table-frame\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-table-frame--component @container/data-view overflow-hidden rounded-radius border border-border bg-card shadow-[0_1px_3px_0_color-mix(in_oklch,var(--foreground)_4%,transparent)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!toolbar && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-toolbar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'data-view-table-frame--toolbar border-b border-border/70 px-surface py-surface',\n\t\t\t\t\t\ttoolbarClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Grid columns={1} gap=\"lg\">\n\t\t\t\t\t\t{toolbar}\n\t\t\t\t\t</Grid>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-table-frame-content\"\n\t\t\t\tclassName={cn('data-view-table-frame--content min-w-0', contentClassName)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-footer\"\n\t\t\t\t\tclassName={cn('data-view-table-frame--footer border-t border-border/70 px-surface py-row-y', footerClassName)}\n\t\t\t\t>\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</section>\n\t);\n}\n\ninterface DataViewRootProps<TData extends object, TValue> {\n\t/** Records to render. */\n\tdata: readonly TData[];\n\t/** Column definitions, in display order. */\n\tcolumns: DataViewProps<TData, TValue>['columns'];\n\tfiltering?: DataViewFilteringConfig<TData>;\n\ttable?: DataViewTableOptions<TData, TValue>;\n\t/** Replaces individual regions of the shell. */\n\tslots?: DataViewSlots;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nfunction DataViewRoot<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewRootProps<TData, TValue>) {\n\tconst { rows } = useDataView({ data, filtering });\n\tconst resolvedFilterTabs = filtering?.tabs ?? filtering?.layout?.tabs ?? [];\n\tconst filterTabsDisplay = filtering?.tabsDisplay ?? 'tabs';\n\tconst layoutTabs = filterTabsDisplay === 'tabs' ? resolvedFilterTabs : filtering?.layout?.tabs;\n\tconst showAuxiliaryToolbar =\n\t\t!!slots?.toolbarStart ||\n\t\t!!slots?.toolbarAfterFilters ||\n\t\t(filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0);\n\tconst hasIntegratedTopbar = !!filtering || !!slots?.topbarContent || showAuxiliaryToolbar;\n\tconst tableNode = (\n\t\t<DataViewTableFrame\n\t\t\tclassName={cn('data-view--component', className)}\n\t\t\tcontentClassName=\"data-view--content data-view-table--content\"\n\t\t\tfooterClassName=\"data-view--footer data-view-table--footer\"\n\t\t\tfooter={slots?.footer}\n\t\t>\n\t\t\t<DataTable<TData, TValue>\n\t\t\t\t{...table}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdata={rows as TData[]}\n\t\t\t\tsurface=\"flat\"\n\t\t\t\theaderTransparent={false}\n\t\t\t\ttopbarClassName={cn(\n\t\t\t\t\t'data-view--topbar data-view-table--topbar py-surface @2xl/data-table:items-start',\n\t\t\t\t\ttable?.topbarClassName,\n\t\t\t\t)}\n\t\t\t\ttoolbarLabelVisibility={table?.toolbarLabelVisibility ?? 'hidden'}\n\t\t\t\ttopbarContent={\n\t\t\t\t\thasIntegratedTopbar ? (\n\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\t\tdata-slot=\"data-view-topbar-content\"\n\t\t\t\t\t\t\tclassName=\"data-view--topbar-content data-view-table--topbar-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{slots?.topbarContent}\n\t\t\t\t\t\t\t{showAuxiliaryToolbar && (\n\t\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\t\tdata-slot=\"data-view-toolbar-row\"\n\t\t\t\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\t\t\t\tclassName=\"data-view--toolbar-row data-view-table--toolbar-row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{slots?.toolbarStart}\n\t\t\t\t\t\t\t\t\t{filtering && filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t<DataViewFilterTabSelect tabs={resolvedFilterTabs} label={filtering.tabsLabel} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{slots?.toolbarAfterFilters}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{filtering && (\n\t\t\t\t\t\t\t\t<div data-slot=\"data-view-filters\" className=\"data-view--filters data-view-table--filters min-w-0\">\n\t\t\t\t\t\t\t\t\t<FilterLayout\n\t\t\t\t\t\t\t\t\t\t{...filtering.layout}\n\t\t\t\t\t\t\t\t\t\tvariant={filtering.layout?.variant ?? 'compact'}\n\t\t\t\t\t\t\t\t\t\tshowClearFilters={filtering.layout?.showClearFilters ?? filtering.activeFilters.length > 0}\n\t\t\t\t\t\t\t\t\t\ttabs={layoutTabs}\n\t\t\t\t\t\t\t\t\t\tclassName={cn('min-w-0', filtering.layout?.className)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\ttopbarEnd={\n\t\t\t\t\t!!(slots?.toolbarEnd || slots?.topbarEnd) && (\n\t\t\t\t\t\t<div data-slot=\"data-view-topbar-end\" className=\"data-view--topbar-end\">\n\t\t\t\t\t\t\t{slots?.toolbarEnd}\n\t\t\t\t\t\t\t{slots?.topbarEnd}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t</DataViewTableFrame>\n\t);\n\n\tif (!filtering) return tableNode;\n\n\treturn (\n\t\t<FilterProvider\n\t\t\tfilters={filtering.filters}\n\t\t\tactiveFilters={filtering.activeFilters}\n\t\t\tonFilterChange={filtering.onFilterChange}\n\t\t\tnavigating={filtering.isFiltering ?? false}\n\t\t\tstrings={filtering.strings}\n\t\t\tonError={filtering.onError}\n\t\t>\n\t\t\t{tableNode}\n\t\t</FilterProvider>\n\t);\n}\n\nexport function DataView<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewProps<TData, TValue>) {\n\treturn (\n\t\t<DataViewRoot\n\t\t\tdata={data}\n\t\t\tcolumns={columns}\n\t\t\tfiltering={filtering}\n\t\t\ttable={table}\n\t\t\tslots={slots}\n\t\t\tclassName={className}\n\t\t/>\n\t);\n}\n\nexport function DataViewPagination({\n\tpage,\n\tpageCount,\n\ttotal,\n\tonPageChange,\n\tdisabled = false,\n\tclassName,\n\tstrings: stringsProp,\n}: DataViewPaginationProps) {\n\tconst strings = useStrings(defaultDataViewPaginationStrings, stringsProp);\n\tconst hasPrevious = page > 1;\n\tconst hasNext = pageCount === undefined ? true : page < pageCount;\n\tconst pageLabel = pageCount ? `${strings.page} ${page} / ${pageCount}` : `${strings.page} ${page}`;\n\tconst canChangePage = Boolean(onPageChange) && !disabled;\n\n\treturn (\n\t\t<nav\n\t\t\tdata-component=\"data-view-pagination\"\n\t\t\tdata-slot=\"data-view-pagination\"\n\t\t\tclassName={cn('data-view-pagination--component flex min-w-0 flex-col gap-space-md @md/data-view:flex-row @md/data-view:justify-between', className)}\n\t\t\taria-label={strings.page}\n\t\t>\n\t\t\t<div data-slot=\"data-view-pagination-summary\" className=\"data-view-pagination--summary min-w-0\">\n\t\t\t\t{total !== undefined && total !== null && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t{total}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-pagination-controls\"\n\t\t\t\tclassName=\"data-view-pagination--controls flex shrink-0 items-center gap-space-md\"\n\t\t\t>\n\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\" aria-label={pageLabel}>\n\t\t\t\t\t{strings.page} <NumberValue value={page} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t{pageCount ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{' / '}\n\t\t\t\t\t\t\t<NumberValue value={pageCount} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : null}\n\t\t\t\t</SecondaryValue>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasPrevious}\n\t\t\t\t\tonClick={() => onPageChange?.(page - 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.previous}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasNext}\n\t\t\t\t\tonClick={() => onPageChange?.(page + 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.next}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</nav>\n\t);\n}\n\nexport function SavedViewTabs({ views, value, onValueChange, className }: SavedViewTabsProps) {\n\treturn (\n\t\t<Tabs\n\t\t\tdata-component=\"saved-view-tabs\"\n\t\t\tdata-slot=\"saved-view-tabs\"\n\t\t\tclassName={cn('saved-view-tabs--component rounded-radius bg-muted/60 p-space-xs', className)}\n\t\t\tvalue={value}\n onValueChange={next => { if (typeof next === 'string') onValueChange(next); }}\n\t\t>\n <TabsList role=\"group\" aria-orientation={undefined} activateOnFocus className=\"h-auto! flex-wrap justify-start gap-space-xs bg-transparent p-0\">\n\t\t\t{views.map((view) => {\n\t\t\t\tconst active = view.id === value;\n\t\t\t\treturn (\n\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\tkey={view.id}\n\t\t\t\t\t\tdata-slot=\"saved-view-tab\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n value={view.id}\n aria-selected={undefined}\n aria-controls={undefined}\n aria-pressed={active}\n\t\t\t\t\t\tdisabled={view.disabled}\n\t\t\t\t\t\tclassName={cn('saved-view-tabs--tab h-action-sm flex-none gap-space-xs rounded-inner px-control-sm py-0 after:hidden data-active:bg-secondary data-active:text-secondary-foreground data-active:hover:bg-secondary data-active:hover:text-secondary-foreground', active && 'shadow-sm')}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t\t{view.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{view.count !== undefined && view.count !== null && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"saved-view-tabs--count\">\n\t\t\t\t\t\t\t\t{view.count}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TabsTrigger>\n\t\t\t\t);\n\t\t\t})}\n </TabsList>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAOA,IAAamB,IAA8D;CAC1E,MAAM;CACN,UAAU;CACV,MAAM;AACP,GAGaC,IAAiC;;;ACH9C,SAASC,EAAa,GAAc,GAAuB;CAO1D,OANKC,EAAK,SAAS,GAAG,IAMfA,EAAK,MAAM,GAAG,CAAC,CAAC,QAAiB,GAAS,MAAS;EACzD,IAAKC,KAAW,OAAOA,KAAY,UACnC,OAAQA,EAAoCC;CAC7C,GAAGC,CAAG,IAREA,KAAO,OAAOA,KAAQ,WACzBA,EAAgCH,KACjC,KAAA;AAOL;AAEA,SAASI,EAAqB,GAAwB;CAKrD,OAJIC,KAAU,OAAoC,KAC9CA,aAAiB,OAAaA,EAAM,YAAY,IAChD,OAAOA,KAAU,WAAiBA,IAClC,OAAOA,KAAU,YAAY,OAAOA,KAAU,YAAkB,OAAOA,CAAK,IACzE;AACR;AAEA,SAASC,EAAkB,GAAgB,IAAQ,GAAW;CAc7D,OAbID,KAAU,QAA+BE,IAAQ,IAAU,KAC3DF,aAAiB,OAAaA,EAAM,YAAY,IAChD,OAAOA,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU,YACvE,OAAOA,CAAK,IAEhB,MAAM,QAAQA,CAAK,IACfA,EAAM,KAAK,MAAUC,EAAkBE,GAAOD,IAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAEtE,OAAOF,KAAU,WACb,OAAO,OAAOA,CAAgC,CAAC,CACpD,KAAK,MAAUC,EAAkBE,GAAOD,IAAQ,CAAC,CAAC,CAAC,CACnD,KAAK,GAAG,IAEJ;AACR;AAEA,SAASE,EAAyB,GAA0B;CAC3D,IAAI,MAAM,QAAQJ,CAAK,GACtB,OAAOA,EAAM,IAAID,CAAoB,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,MAAUI,EAAM,YAAY,CAAC;CAG1F,IAAME,IAAcN,EAAqBC,CAAK;CAC9C,OAAOK,IAAc,CAACA,EAAY,YAAY,CAAC,IAAI,CAAC;AACrD;AAEA,SAASC,EAAmB,GAAmC;CAC9D,IAAMC,IAAO,OAAOP,CAAK;CACzB,OAAO,OAAO,SAASO,CAAI,IAAIA,IAAO,KAAA;AACvC;AAEA,SAASC,EAAiB,GAAe,GAAyC;CACjF,IAAIC,GAAY;EACf,IAAMC,IAAgBC,EAAMX,GAAOS,mBAAY,IAAI,KAAK,CAAC,CAAC;EAC1D,IAAIG,EAAQF,CAAa,GAAG,OAAOA,EAAc,QAAQ;CAC1D;CAEA,IAAMG,IAAa,IAAI,KAAKb,CAAK;CACjC,OAAOY,EAAQC,CAAU,IAAIA,EAAW,QAAQ,IAAI,KAAA;AACrD;AAEA,SAASC,EACR,GACA,GACA,GACA,GACC;CACD,IAAMC,IAAeC,GAAc,SAAS7B,EAAW,QACnD,MAAkBqB,EAAiBR,GAAOgB,EAAa,YAAY,SAAS,YAAY,IACzFV,GACGW,IAAmBC,EACvB,IAAIH,CAAY,CAAC,CACjB,QAAQ,MAA2Bf,MAAU,KAAA,CAAS,GAClDmB,IAAgBC,EACpB,IAAIL,CAAY,CAAC,CACjB,QAAQ,MAA2Bf,MAAU,KAAA,CAAS;CAExD,IAAIiB,EAAiB,WAAW,KAAKE,EAAc,WAAW,GAAG,OAAO;CAExE,QAAQE,GAAR;EACC,KAAKpC,EAAmB;EACxB,KAAKA,EAAmB,OACvB,OAAOgC,EAAiB,MAAM,MAAcK,IAAYH,EAAc,EAAE;EACzE,KAAKlC,EAAmB,KACvB,OAAOgC,EAAiB,MAAM,MAAcK,KAAaH,EAAc,EAAE;EAC1E,KAAKlC,EAAmB;EACxB,KAAKA,EAAmB,QACvB,OAAOgC,EAAiB,MAAM,MAAcK,IAAYH,EAAc,EAAE;EACzE,KAAKlC,EAAmB,KACvB,OAAOgC,EAAiB,MAAM,MAAcK,KAAaH,EAAc,EAAE;EAC1E,KAAKlC,EAAmB,SAEvB,OADIkC,EAAc,SAAS,IAAU,KAC9BF,EAAiB,MAAM,MAAcK,KAAaH,EAAc,MAAMG,KAAaH,EAAc,EAAE;EAC3G,SACC,OAAO;CACT;AACD;AAEA,SAASI,EAAqB,GAA2B;CACxD,OAAO;EACN;EACA,OAAOC;EACP,MAAMrC,EAAW;EACjB,MAAM;EACN,eAAe,CAAC;CACjB;AACD;AAEA,SAASsC,EACR,GACA,GACA,GACA,GACC;CACD,IAAML,IAAeM,EAAO,MAAM,KAAK,MAAU1B,EAAM,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,OAAO;CAC3F,IAAIoB,EAAa,WAAW,GAAG,OAAO;CAEtC,IAAIJ,GAAc,SAAS7B,EAAW,QAAQ;EAC7C,IAAMwC,IAAW1B,EAAkBH,CAAG,CAAC,CAAC,YAAY;EAOpD,OALC4B,EAAO,aAAazC,EAAmB,OACvCyC,EAAO,aAAazC,EAAmB,SAEhCmC,EAAa,OAAO,MAAU,CAACO,EAAS,SAAS3B,CAAK,CAAC,IAExDoB,EAAa,OAAO,MAAUO,EAAS,SAAS3B,CAAK,CAAC;CAC9D;CAEA,IAAM4B,IAAuBZ,KAAgBO,EAAqBG,EAAO,GAAG,GAEtER,IAAkBd,EADPyB,IAAiB/B,GAAK8B,CAAoB,KAAKlC,EAAaI,GAAK4B,EAAO,GAAG,CACnC;CACzD,IAAIR,EAAgB,WAAW,GAAG,OAAO;CAEzC,QAAQQ,EAAO,UAAf;EACC,KAAKzC,EAAmB,UACvB,OAAOmC,EAAa,OAAO,MAC1BF,EAAgB,MAAM,MAAcI,EAAU,SAAStB,CAAK,CAAC,CAC9D;EACD,KAAKf,EAAmB,KACvB,OAAOmC,EAAa,OAAO,MAAUF,EAAgB,SAASlB,CAAK,CAAC;EACrE,KAAKf,EAAmB,QACvB,OAAOmC,EAAa,OAAO,MAC1BF,EAAgB,OAAO,MAAcI,MAActB,CAAK,CACzD;EACD,KAAKf,EAAmB,KAUvB,OARC+B,GAAc,SAAS7B,EAAW,UAClC6B,GAAc,SAAS7B,EAAW,gBAClC6B,GAAc,SAAS7B,EAAW,eAE3BiC,EAAa,OAAO,MAC1BF,EAAgB,OAAO,MAAcI,MAActB,CAAK,CACzD,IAEMoB,EAAa,OAAO,MAC1BF,EAAgB,OAAO,MAAc,CAACI,EAAU,SAAStB,CAAK,CAAC,CAChE;EACD,KAAKf,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB,SACvB,OAAOmC,EAAa,MAAM,MAAUF,EAAgB,SAASlB,CAAK,CAAC;EACpE,KAAKf,EAAmB,SACvB,OAAOmC,EAAa,OAAO,MAAUF,EAAgB,SAASlB,CAAK,CAAC;EACrE,KAAKf,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB,SACvB,OAAO6B,EACNI,GACAE,GACAM,EAAO,UACPV,CACD;EACD,SACC,OAAOI,EAAa,MAAM,MAAUF,EAAgB,SAASlB,CAAK,CAAC;CACrE;AACD;AAEA,SAAgB8B,EACf,GACA,GACA,GACA,GACmB;CACnB,IAAIC,EAAc,WAAW,GAAG,OAAOC;CAEvC,IAAMC,IAAe,IAAI,IAAIC,EAAQ,KAAK,MAAW,CAACR,EAAO,KAAKA,CAAM,CAAC,CAAC;CAC1E,OAAOM,EAAK,QAAQ,MACnBD,EAAc,OAAO,MACpBN,EAAiB3B,GAAK4B,GAAQO,EAAa,IAAIP,EAAO,GAAG,GAAGG,CAAc,CAC3E,CACD;AACD;;;ACvMA,SAAgBM,EAAkC,EACjD,SACA,gBACuD;CACvD,IAAMC,IAAaC,EAAOC,GAAW,OAAO;CAC5C,EAAW,UAAUA,GAAW;CAChC,IAAMC,IAAwBF,EAAwC,IAAI,GACpEN,IAAgBO,GAAW,eAC3BE,IAAaF,GAAW,YACxBJ,IAAUI,GAAW,SACrBT,IAAiBS,GAAW,gBAC5BG,IAAeH,MAAc,KAAA,GAE7BI,IAASC,QAAwC;EACtD,IAAI,CAACF,KAAgB,CAACV,KAAiB,CAACG,GACvC,OAAO;GAAE,MAAMF;GAAM,OAAO;GAAM,QAAQ;EAAM;EAGjD,IAAI;GACH,OAAO;IACN,MAAMQ,IACHA,EAAW;KACZ;KACA;KACA;IACD,CAAC,IACCV,EACDE,GACAD,GACAG,GACAL,CACD;IACD,OAAO;IACP,QAAQ;GACT;EACD,SAASe,GAAO;GACf,OAAO;IAAE,MAAMZ;IAAM;IAAO,QAAQ;GAAK;EAC1C;CACD,GAAG;EACFD;EACAC;EACAQ;EACAN;EACAL;EACAY;CACD,CAAC;CAYD,OAVAI,QAAgB;EACf,IAAI,CAACH,EAAO,QAAQ;GACnB,EAAsB,UAAU;GAChC;EACD;EACA,AAAIH,EAAsB,YAAYG,MACtC,EAAsB,UAAUA,GAChCN,EAAW,UAAUM,EAAO,OAAO,EAAE,OAAO,QAAQ,CAAC;CACtD,GAAG,CAACA,CAAM,CAAC,GAEJA;AACR;;;AC5BA,SAASI,EAAkB,GAA4B;CACtD,IAAM,EAAE,kBAAe,YAAS,sBAAmB1D,EAAW,GACxD2D,IAAmBJ,QAEvBZ,EAAc,QAAQ,MACNG,EAAQ,MAAM,MAAcZ,EAAU,QAAQI,EAAO,GAC7D,CAAA,EAAQ,SAASvC,EAAW,MACnC,GACF,CAAC4C,GAAeG,CAAO,CACxB,GACMc,IAAgBL,QAEpBZ,EAAc,QAAQ,MACNG,EAAQ,MAAM,MAAcZ,EAAU,QAAQI,EAAO,GAC7D,CAAA,EAAQ,SAASvC,EAAW,MACnC,GACF,CAAC4C,GAAeG,CAAO,CACxB,GACMe,IAAYN,QAAc;EAC/B,KAAK,IAAMO,KAAOC,GAAM;GACvB,IAAID,EAAI,QAAQ,WAAW,GAAG;IAC7B,IAAIH,EAAiB,WAAW,GAAG,OAAOG;IAC1C;GACD;GAEA,IAAIA,EAAI,QAAQ,WAAWH,EAAiB,UAE3BG,EAAI,QAAQ,OAAO,MAAW;IAC9C,IAAME,IAASL,EAAiB,MAAM,MAAWrB,EAAO,QAAQ2B,EAAO,GAAG;IAC1E,IAAI,CAACD,GAAQ,OAAO;IAEpB,IAAME,IAAe,CAAC,GAAGD,EAAO,KAAK,CAAC,CAAC,KAAK,GACtCE,IAAe,CAAC,GAAGH,EAAO,KAAK,CAAC,CAAC,KAAK;IAI5C,OAHIE,EAAa,WAAWC,EAAa,UACrCD,EAAa,MAAM,GAAO,MAAUtD,MAAUuD,EAAaC,EAAM,IAAU,KAExE,CAACH,EAAO,YAAYD,EAAO,aAAaC,EAAO;GACvD,CAEI,GAAU,OAAOH;EACtB;CAGD,GAAG,CAACH,GAAkBI,CAAI,CAAC;CAE3B,SAASM,EAAS,GAAgB;EACjC,IAAIP,EAAI,QAAQ,WAAW,GAAG;GAC7B,EAAe,CAAC,GAAGF,CAAa,CAAC;GACjC;EACD;EAEA,IAAMU,IAAgCR,EAAI,QAAQ,KAAK,MAAW;GACjE,IAAMlC,IAAekB,EAAQ,MAAM,MAAWR,EAAO,QAAQ2B,EAAO,GAAG,GACjEhC,IACLgC,EAAO,YACPrC,GAAc,aACbA,IAAe9B,EAA0B8B,EAAa,IAAI,IAAI/B,EAAmB;GAEnF,OAAO;IACN,IAAIoE,EAAO;IACX,KAAKA,EAAO;IACZ,OAAOA,EAAO;IACd;GACD;EACD,CAAC;EAED,EAAe,CAAC,GAAGL,GAAe,GAAGU,CAAa,CAAC;CACpD;CAEA,OAAO;EAAE;EAAW;CAAS;AAC9B;AAEA,SAASC,EAAwB,EAChC,SACA,WAAQlE,KAMN;CACF,IAAM,EAAE,cAAW,gBAAaqD,EAAkBK,CAAI;CAGtD,OAFIA,EAAK,WAAW,IAAU,OAG7B,kBAACnE,GAAD;EACC,QAAQ;EACR,kBAAiB;EACjB,OAAOmE,EAAK,KAAK,OAAS;GACzB,OAAOD,EAAI;GACX,OAAOA,EAAI;GACX,aAAaA,EAAI,UAAU,KAAA,IAAY,KAAA,IAAY,OAAOA,EAAI,KAAK;GACnE,UAAUA,EAAI,OAAOD,GAAW;GAChC,MAAMC;EACP,EAAE;EACF,WAAW,MAAS;GACnB,AAAIU,EAAK,QAAMH,EAASG,EAAK,IAAI;EAClC;EACA,aAAa,MACZ,kBAAAvF,GAAA,EAAA,UAAA;GACC,kBAAC,QAAD;IAAM,WAAU;IACd,UAAA,CAAC,CAACuF,EAAK,YAAY,kBAACC,GAAD;KAAO,WAAU;KAAe,eAAY;IAAQ,CAAA;GACnE,CAAA;GACN,kBAACtF,GAAD;IAAM,KAAI;IAAO,QAAQqF,EAAK,WAAW,WAAW;IAAW,WAAU;IACvE,UAAAA,EAAK;GACD,CAAA;GACL,CAAC,CAACA,EAAK,eACP,kBAACjF,GAAD;IAAgB,MAAK;IAAK,WAAU;IAClC,UAAAiF,EAAK;GACS,CAAA;EAEhB,EAAA,CAAA;EAEH,SACC,kBAACpF,GAAD;GACC,MAAK;GACL,MAAK;GACL,aAAY;GACZ,MAAK;GACL,WAAU;GACV,cAAYsF;GANb,UAAA,CAQC,kBAACvF,GAAD;IAAM,KAAI;IAAO,MAAK;IAAU,WAAU;IACxC,UAAA0E,GAAW,SAASa;GAChB,CAAA,GACN,kBAACC,GAAD;IAAgB,WAAU;IAAe,eAAY;GAAQ,CAAA,CACtD;;CAET,CAAA;AAEH;AAEA,SAAgBC,EAAc,EAC7B,aACA,WACA,YACA,WACA,cACA,OAAOC,IAAa,IACpB,cACA,uBACsB;CACtB,OACC,kBAACvF,GAAD;EACC,QAAQ,kBAAC,WAAD,CAAU,CAAA;EAClB,KAAI;EACJ,kBAAe;EACf,aAAU;EACV,WAAWwF,EAAG,mDAAmDC,CAAS;EAL3E,UAAA;GAOE,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,aAAU;IAAmB,WAAU;IAC1C,UAAAA;GACG,CAAA;GAEL,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,aAAU;IAAyB,WAAU;IAChD,UAAAA;GACG,CAAA;GAEN,kBAAC,OAAD;IAAK,aAAU;IAAoB,WAAWH,EAAG,oCAAoCI,CAAgB;IACnG,UAAAL,IAAaM,IAAYC;GACtB,CAAA;GACJ,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,aAAU;IAAmB,WAAU;IAC1C,UAAAA;GACG,CAAA;EAEA;;AAET;AAEA,SAAgBC,EAAgB,EAAE,YAAS,WAAQ,YAAS,UAAO,YAAS,gBAAmC;CAC9G,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWR,EACV,mGACAC,CACD;EAEA,UAAA,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACC,kBAACzF,GAAD;IACC,WAAU;IACV,MAAA;IACA,OAAM;IACN,KAAI;IACJ,aAAU;IACV,WAAU;IANX,UAAA;KAQEiG;KACAC;KACA1C;KACA2C;IACK;GACN,CAAA,GAAA,CAAC,CAACC,KACF,kBAACpG,GAAD;IACC,WAAU;IACV,MAAA;IACA,OAAM;IACN,KAAI;IACJ,aAAU;IACV,WAAU;IAET,UAAAoG;GACK,CAAA,CAEJ;;CACD,CAAA;AAEP;AAEA,SAAgBC,EAAmB,EAClC,YACA,aACA,WACA,cACA,qBACA,qBACA,sBAC2B;CAC3B,OACC,kBAAC,WAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWb,EACV,+LACAC,CACD;EAND,UAAA;GAQE,CAAC,CAACE,KACF,kBAAC,OAAD;IACC,aAAU;IACV,WAAWH,EACV,kFACAc,CACD;IAEA,UAAA,kBAACvG,GAAD;KAAM,SAAS;KAAG,KAAI;KACpB,UAAA4F;IACI,CAAA;GACF,CAAA;GAEN,kBAAC,OAAD;IACC,aAAU;IACV,WAAWH,EAAG,0CAA0CI,CAAgB;IAEvE;GACG,CAAA;GACJ,CAAC,CAACG,KACF,kBAAC,OAAD;IACC,aAAU;IACV,WAAWP,EAAG,+EAA+Ee,CAAe;IAE3G,UAAAR;GACG,CAAA;EAEE;;AAEX;AAeA,SAASS,EAAqD,EAC7D,SACA,YACA,cACA,UACA,UACA,gBACoC;CACpC,IAAM,EAAE,YAAS/C,EAAY;EAAE;EAAM;CAAU,CAAC,GAC1CgD,IAAqB7C,GAAW,QAAQA,GAAW,QAAQ,QAAQ,CAAC,GACpE8C,IAAoB9C,GAAW,eAAe,QAC9C+C,IAAaD,MAAsB,SAASD,IAAqB7C,GAAW,QAAQ,MACpFgD,IACL,CAAC,CAACC,GAAO,gBACT,CAAC,CAACA,GAAO,uBACRH,MAAsB,YAAYD,EAAmB,SAAS,GAC1DK,IAAsB,CAAC,CAAClD,KAAa,CAAC,CAACiD,GAAO,iBAAiBD,GAC/DG,IACL,kBAACV,GAAD;EACC,WAAWb,EAAG,wBAAwBC,CAAS;EAC/C,kBAAiB;EACjB,iBAAgB;EAChB,QAAQoB,GAAO;EAEf,UAAA,kBAACG,GAAD;GACC,GAAIC;GACK;GACT,MAAMC;GACN,SAAQ;GACR,mBAAmB;GACnB,iBAAiB1B,EAChB,oFACAyB,GAAO,eACR;GACA,wBAAwBA,GAAO,0BAA0B;GACzD,eACCH,IACC,kBAAC9G,GAAD;IACC,KAAI;IACJ,aAAU;IACV,WAAU;IAHX,UAAA;KAKE6G,GAAO;KACPD,KACA,kBAAC5G,GAAD;MACC,aAAU;MACV,WAAU;MACV,KAAI;MACJ,WAAU;MAJX,UAAA;OAME6G,GAAO;OACPjD,KAAa8C,MAAsB,YAAYD,EAAmB,SAAS,KAC3E,kBAACxB,GAAD;QAAyB,MAAMwB;QAAoB,OAAO7C,EAAU;OAAY,CAAA;OAEhFiD,GAAO;MACF;;KAEPjD,KACA,kBAAC,OAAD;MAAK,aAAU;MAAoB,WAAU;MAC5C,UAAA,kBAACjD,GAAD;OACC,GAAIiD,EAAU;OACd,SAASA,EAAU,QAAQ,WAAW;OACtC,kBAAkBA,EAAU,QAAQ,oBAAoBA,EAAU,cAAc,SAAS;OACzF,MAAM+C;OACN,WAAWnB,EAAG,WAAW5B,EAAU,QAAQ,SAAS;MACpD,CAAA;KACG,CAAA;IAEA;GACJ,CAAA,IAAA,KAAA;GAEL,WACC,CAAC,EAAEiD,GAAO,cAAcA,GAAO,cAC9B,kBAAC,OAAD;IAAK,aAAU;IAAuB,WAAU;IAAhD,UAAA,CACEA,GAAO,YACPA,GAAO,SACJ;;EAGP,CAAA;CACkB,CAAA;CAKrB,OAFKjD,IAGJ,kBAAChD,GAAD;EACC,SAASgD,EAAU;EACnB,eAAeA,EAAU;EACzB,gBAAgBA,EAAU;EAC1B,YAAYA,EAAU,eAAe;EACrC,SAASA,EAAU;EACnB,SAASA,EAAU;EAElB,UAAAmD;CACc,CAAA,IAZMA;AAcxB;AAEA,SAAgBI,EAAiD,EAChE,SACA,YACA,cACA,UACA,UACA,gBACgC;CAChC,OACC,kBAACX,GAAD;EACO;EACG;EACE;EACJ;EACA;EACI;CACX,CAAA;AAEH;AAEA,SAAgBY,EAAmB,EAClC,SACA,cACA,UACA,iBACA,cAAW,IACX,cACA,SAASC,KACkB;CAC3B,IAAMC,IAAUC,EAAWzG,GAAkCuG,CAAW,GAClEG,IAAcC,IAAO,GACrBC,IAAUC,MAAc,KAAA,KAAmBF,IAAOE,GAClDC,IAAYD,IAAY,GAAGL,EAAQ,KAAK,GAAGG,EAAK,KAAKE,MAAc,GAAGL,EAAQ,KAAK,GAAGG,KACtFI,IAAgB,EAAQC,KAAiB,CAACC;CAEhD,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWvC,EAAG,2HAA2HC,CAAS;EAClJ,cAAY6B,EAAQ;EAJrB,UAAA,CAMC,kBAAC,OAAD;GAAK,aAAU;GAA+B,WAAU;GACtD,UAAAU,KAAiC,QACjC,kBAACnI,GAAD;IAAM,MAAK;IAAK,MAAK;IACnB,UAAAmI;GACI,CAAA;EAEH,CAAA,GACL,kBAAC,OAAD;GACC,aAAU;GACV,WAAU;GAFX,UAAA;IAIC,kBAAC/H,GAAD;KAAgB,MAAK;KAAK,WAAU;KAAe,cAAY2H;KAA/D,UAAA;MACEN,EAAQ;MAAK;MAAC,kBAAC1H,GAAD;OAAa,OAAO6H;OAAM,MAAK;OAAK,OAAM;OAAO,MAAK;MAAa,CAAA;MACjFE,IACA,kBAAAhI,GAAA,EAAA,UAAA,CACE,OACD,kBAACC,GAAD;OAAa,OAAO+H;OAAW,MAAK;OAAK,OAAM;OAAO,MAAK;MAAa,CAAA,CACvE,EAAA,CAAA,IACC;KACW;;IAChB,kBAAC7H,GAAD;KACC,MAAK;KACL,MAAK;KACL,MAAK;KACL,aAAY;KACZ,UAAU,CAAC+H,KAAiB,CAACL;KAC7B,eAAeM,IAAeL,IAAO,CAAC;KAErC,UAAAH,EAAQ;IACF,CAAA;IACR,kBAACxH,GAAD;KACC,MAAK;KACL,MAAK;KACL,MAAK;KACL,aAAY;KACZ,UAAU,CAAC+H,KAAiB,CAACH;KAC7B,eAAeI,IAAeL,IAAO,CAAC;KAErC,UAAAH,EAAQ;IACF,CAAA;GACJ;EACD,CAAA,CAAA;;AAEP;AAEA,SAAgBW,EAAc,EAAE,UAAO,UAAO,kBAAe,gBAAiC;CAC7F,OACC,kBAAC5H,GAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWmF,EAAG,oEAAoEC,CAAS;EACpF;EACE,gBAAe,MAAQ;GAAE,AAAI,OAAO5D,KAAS,YAAUqG,EAAcrG,CAAI;EAAG;EAE5E,UAAA,kBAACzB,GAAD;GAAU,MAAK;GAAQ,oBAAkB,KAAA;GAAW,iBAAA;GAAgB,WAAU;GACtF,UAAA+F,EAAM,KAAK,MAAS;IACpB,IAAMzB,IAASyD,EAAK,OAAO7G;IAC3B,OACC,kBAACnB,GAAD;KAEC,aAAU;KACV,MAAK;KACL,MAAK;KACa,OAAOgI,EAAK;KACZ,iBAAe,KAAA;KACf,iBAAe,KAAA;KACf,gBAAczD;KAChC,UAAUyD,EAAK;KACf,WAAW3C,EAAG,mPAAmPd,KAAU,WAAW;KAVvR,UAAA,CAYC,kBAAC7E,GAAD;MAAM,KAAI;MAAO,MAAK;MAAU,WAAU;MACxC,UAAAsI,EAAK;KACD,CAAA,GACLA,EAAK,UAAU,KAAA,KAAaA,EAAK,UAAU,QAC3C,kBAACtI,GAAD;MAAM,KAAI;MAAO,MAAK;MAAK,MAAK;MAAY,WAAU;MACpD,UAAAsI,EAAK;KACD,CAAA,CAEK;IAnBP,GAAAA,EAAK,EAmBE;GAEf,CAAC;EACkB,CAAA;CACd,CAAA;AAER"}
1
+ {"version":3,"file":"data-view.js","names":["_Fragment","NumberValue","Text","Grid","Stack","interactionRecipes","SecondaryValue","Number$1","TabsTrigger","TabsList","Tabs","PopoverMenu","DataTable","FilterOperatorEnum","getDefaultOperatorForType","FilterType","useFilters","FilterLayout","FilterProvider","Fragment$1","defaultDataViewPaginationStrings","defaultDataViewFilterTabsLabel","getPathValue","path","current","part","row","stringifyFilterValue","value","collectSearchText","depth","entry","normalizeCandidateValues","stringified","toComparableNumber","next","toComparableDate","dateFormat","formattedDate","parse","isValid","nativeDate","matchesComparableOperator","toComparable","filterConfig","candidateNumbers","candidateValues","filterNumbers","filterValues","operator","candidate","fallbackFilterConfig","key","rowMatchesFilter","filter","haystack","resolvedFilterConfig","getFilterValue","applyDataViewFilters","activeFilters","data","filtersByKey","filters","useDataView","onErrorRef","useRef","filtering","lastReportedResultRef","filterRows","hasFiltering","result","useMemo","error","useEffect","useFilterTabState","nonSearchFilters","searchFilters","activeTab","tab","tabs","active","preset","sortedPreset","sortedActive","index","applyTab","presetFilters","DataViewFilterTabSelect","item","Check","Button","label","ChevronsUpDown","DataViewShell","emptyState","cn","className","header","toolbar","contentClassName","emptySlot","children","footer","DataViewToolbar","leading","search","views","actions","DataViewTableFrame","toolbarClassName","footerClassName","DataViewRoot","resolvedFilterTabs","filterTabsDisplay","layoutTabs","showAuxiliaryToolbar","slots","hasIntegratedTopbar","tableNode","table","rows","DataView","DataViewPagination","stringsProp","strings","useStrings","hasPrevious","page","hasNext","pageCount","pageLabel","canChangePage","onPageChange","disabled","total","SavedViewTabs","onValueChange","view"],"sources":["../../src/components/features/data-view/data-view.strings.ts","../../src/components/features/data-view/data-view-filtering.ts","../../src/components/features/data-view/hooks/use-data-view.ts","../../src/components/features/data-view/data-view.tsx"],"sourcesContent":["export interface DataViewPaginationStrings {\n\t/** Current page, 1-based. */\n\tpage: string;\n\tprevious: string;\n\tnext: string;\n}\n\nexport const defaultDataViewPaginationStrings: DataViewPaginationStrings = {\n\tpage: 'Page',\n\tprevious: 'Previous',\n\tnext: 'Next',\n};\n\n/** Default for the directly overrideable `filterTabsLabel` control label. */\nexport const defaultDataViewFilterTabsLabel = 'View';\n","import { isValid, parse } from 'date-fns';\n\nimport {\n\tFilterOperatorEnum,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterConfig,\n} from '../filters';\n\nimport type { DataViewFilterValueGetter } from './data-view.types';\n\nfunction getPathValue(row: unknown, path: string): unknown {\n\tif (!path.includes('.')) {\n\t\treturn row && typeof row === 'object'\n\t\t\t? (row as Record<string, unknown>)[path]\n\t\t\t: undefined;\n\t}\n\n\treturn path.split('.').reduce<unknown>((current, part) => {\n\t\tif (!current || typeof current !== 'object') return undefined;\n\t\treturn (current as Record<string, unknown>)[part];\n\t}, row);\n}\n\nfunction stringifyFilterValue(value: unknown): string {\n\tif (value === null || value === undefined) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string') return value;\n\tif (typeof value === 'number' || typeof value === 'boolean') return String(value);\n\treturn '';\n}\n\nfunction collectSearchText(value: unknown, depth = 0): string {\n\tif (value === null || value === undefined || depth > 2) return '';\n\tif (value instanceof Date) return value.toISOString();\n\tif (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn String(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => collectSearchText(entry, depth + 1)).join(' ');\n\t}\n\tif (typeof value === 'object') {\n\t\treturn Object.values(value as Record<string, unknown>)\n\t\t\t.map((entry) => collectSearchText(entry, depth + 1))\n\t\t\t.join(' ');\n\t}\n\treturn '';\n}\n\nfunction normalizeCandidateValues(value: unknown): string[] {\n\tif (Array.isArray(value)) {\n\t\treturn value.map(stringifyFilterValue).filter(Boolean).map((entry) => entry.toLowerCase());\n\t}\n\n\tconst stringified = stringifyFilterValue(value);\n\treturn stringified ? [stringified.toLowerCase()] : [];\n}\n\nfunction toComparableNumber(value: string): number | undefined {\n\tconst next = Number(value);\n\treturn Number.isFinite(next) ? next : undefined;\n}\n\nfunction toComparableDate(value: string, dateFormat?: string): number | undefined {\n\tif (dateFormat) {\n\t\tconst formattedDate = parse(value, dateFormat, new Date(0));\n\t\tif (isValid(formattedDate)) return formattedDate.getTime();\n\t}\n\n\tconst nativeDate = new Date(value);\n\treturn isValid(nativeDate) ? nativeDate.getTime() : undefined;\n}\n\nfunction matchesComparableOperator(\n\tcandidateValues: string[],\n\tfilterValues: string[],\n\toperator: ActiveFilter['operator'],\n\tfilterConfig?: FilterConfig,\n) {\n\tconst toComparable = filterConfig?.type === FilterType.DATE\n\t\t? (value: string) => toComparableDate(value, filterConfig.dateFormat?.param ?? 'yyyy-MM-dd')\n\t\t: toComparableNumber;\n\tconst candidateNumbers = candidateValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\tconst filterNumbers = filterValues\n\t\t.map(toComparable)\n\t\t.filter((value): value is number => value !== undefined);\n\n\tif (candidateNumbers.length === 0 || filterNumbers.length === 0) return false;\n\n\tswitch (operator) {\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\t\treturn candidateNumbers.some((candidate) => candidate > filterNumbers[0]);\n\t\tcase FilterOperatorEnum.GTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate < filterNumbers[0]);\n\t\tcase FilterOperatorEnum.LTE:\n\t\t\treturn candidateNumbers.some((candidate) => candidate <= filterNumbers[0]);\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\tif (filterNumbers.length < 2) return false;\n\t\t\treturn candidateNumbers.some((candidate) => candidate >= filterNumbers[0] && candidate <= filterNumbers[1]);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nfunction fallbackFilterConfig(key: string): FilterConfig {\n\treturn {\n\t\tkey,\n\t\tlabel: key,\n\t\ttype: FilterType.SEARCH,\n\t\ticon: null,\n\t\tdisplayConfig: {},\n\t};\n}\n\nfunction rowMatchesFilter<TData extends object>(\n\trow: TData,\n\tfilter: ActiveFilter,\n\tfilterConfig: FilterConfig | undefined,\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n) {\n\tconst filterValues = filter.value.map((value) => value.trim().toLowerCase()).filter(Boolean);\n\tif (filterValues.length === 0) return true;\n\n\tif (filterConfig?.type === FilterType.SEARCH) {\n\t\tconst haystack = collectSearchText(row).toLowerCase();\n\t\tif (\n\t\t\tfilter.operator === FilterOperatorEnum.NOT ||\n\t\t\tfilter.operator === FilterOperatorEnum.NOT_IN\n\t\t) {\n\t\t\treturn filterValues.every((value) => !haystack.includes(value));\n\t\t}\n\t\treturn filterValues.every((value) => haystack.includes(value));\n\t}\n\n\tconst resolvedFilterConfig = filterConfig ?? fallbackFilterConfig(filter.key);\n\tconst rawValue = getFilterValue?.(row, resolvedFilterConfig) ?? getPathValue(row, filter.key);\n\tconst candidateValues = normalizeCandidateValues(rawValue);\n\tif (candidateValues.length === 0) return false;\n\n\tswitch (filter.operator) {\n\t\tcase FilterOperatorEnum.CONTAINS:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.some((candidate) => candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.HAS:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.NOT_IN:\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t);\n\t\tcase FilterOperatorEnum.NOT:\n\t\t\tif (\n\t\t\t\tfilterConfig?.type === FilterType.SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.MULTI_SELECT ||\n\t\t\t\tfilterConfig?.type === FilterType.ASYNC_SELECT\n\t\t\t) {\n\t\t\t\treturn filterValues.every((value) =>\n\t\t\t\t\tcandidateValues.every((candidate) => candidate !== value),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn filterValues.every((value) =>\n\t\t\t\tcandidateValues.every((candidate) => !candidate.includes(value)),\n\t\t\t);\n\t\tcase FilterOperatorEnum.IN:\n\t\tcase FilterOperatorEnum.EQUALS:\n\t\tcase FilterOperatorEnum.HAS_ANY:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.HAS_ALL:\n\t\t\treturn filterValues.every((value) => candidateValues.includes(value));\n\t\tcase FilterOperatorEnum.GT:\n\t\tcase FilterOperatorEnum.GTE:\n\t\tcase FilterOperatorEnum.LT:\n\t\tcase FilterOperatorEnum.LTE:\n\t\tcase FilterOperatorEnum.BEFORE:\n\t\tcase FilterOperatorEnum.AFTER:\n\t\tcase FilterOperatorEnum.BETWEEN:\n\t\t\treturn matchesComparableOperator(\n\t\t\t\tcandidateValues,\n\t\t\t\tfilterValues,\n\t\t\t\tfilter.operator,\n\t\t\t\tfilterConfig,\n\t\t\t);\n\t\tdefault:\n\t\t\treturn filterValues.some((value) => candidateValues.includes(value));\n\t}\n}\n\nexport function applyDataViewFilters<TData extends object>(\n\tdata: readonly TData[],\n\tactiveFilters: readonly ActiveFilter[],\n\tfilters: readonly FilterConfig[],\n\tgetFilterValue?: DataViewFilterValueGetter<TData>,\n): readonly TData[] {\n\tif (activeFilters.length === 0) return data;\n\n\tconst filtersByKey = new Map(filters.map((filter) => [filter.key, filter]));\n\treturn data.filter((row) =>\n\t\tactiveFilters.every((filter) =>\n\t\t\trowMatchesFilter(row, filter, filtersByKey.get(filter.key), getFilterValue),\n\t\t),\n\t);\n}\n","import { useEffect, useMemo, useRef } from 'react';\n\nimport { applyDataViewFilters } from '../data-view-filtering';\nimport type {\n\tUseDataViewOptions,\n\tUseDataViewResult,\n} from '../data-view.types';\n\nexport function useDataView<TData extends object>({\n\tdata,\n\tfiltering,\n}: UseDataViewOptions<TData>): UseDataViewResult<TData> {\n\tconst onErrorRef = useRef(filtering?.onError);\n\tonErrorRef.current = filtering?.onError;\n\tconst lastReportedResultRef = useRef<UseDataViewResult<TData> | null>(null);\n\tconst activeFilters = filtering?.activeFilters;\n\tconst filterRows = filtering?.filterRows;\n\tconst filters = filtering?.filters;\n\tconst getFilterValue = filtering?.getFilterValue;\n\tconst hasFiltering = filtering !== undefined;\n\n\tconst result = useMemo<UseDataViewResult<TData>>(() => {\n\t\tif (!hasFiltering || !activeFilters || !filters) {\n\t\t\treturn { rows: data, error: null, failed: false };\n\t\t}\n\n\t\ttry {\n\t\t\treturn {\n\t\t\t\trows: filterRows\n\t\t\t\t\t? filterRows({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t})\n\t\t\t\t\t: applyDataViewFilters(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tactiveFilters,\n\t\t\t\t\t\tfilters,\n\t\t\t\t\t\tgetFilterValue,\n\t\t\t\t\t),\n\t\t\t\terror: null,\n\t\t\t\tfailed: false,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\treturn { rows: data, error, failed: true };\n\t\t}\n\t}, [\n\t\tactiveFilters,\n\t\tdata,\n\t\tfilterRows,\n\t\tfilters,\n\t\tgetFilterValue,\n\t\thasFiltering,\n\t]);\n\n\tuseEffect(() => {\n\t\tif (!result.failed) {\n\t\t\tlastReportedResultRef.current = null;\n\t\t\treturn;\n\t\t}\n\t\tif (lastReportedResultRef.current === result) return;\n\t\tlastReportedResultRef.current = result;\n\t\tonErrorRef.current?.(result.error, { phase: 'apply' });\n\t}, [result]);\n\n\treturn result;\n}\n","import { Tabs, TabsList, TabsTrigger } from '../../base/navigation/tabs';\n/** DataView feature chrome — controlled shells for tables, filters, and saved views. */\nimport { useMemo } from 'react';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nimport { Button } from '../../base/buttons';\nimport { PopoverMenu } from '../../base/popover-menu';\nimport { Grid, Stack } from '../../base/structure';\nimport { DataTable } from '../table';\nimport { Number as NumberValue, SecondaryValue } from '../../primitives';\nimport {\n\tFilterLayout,\n\tFilterOperatorEnum,\n\tFilterProvider,\n\tFilterType,\n\ttype ActiveFilter,\n\ttype FilterTab,\n\tgetDefaultOperatorForType,\n\tuseFilters,\n} from '../filters';\nimport { Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport { defaultDataViewFilterTabsLabel, defaultDataViewPaginationStrings } from './data-view.strings';\nimport { useDataView } from './hooks';\nimport type {\n\tDataViewFilteringConfig,\n\tDataViewPaginationProps,\n\tDataViewProps,\n\tDataViewShellProps,\n\tDataViewSlots,\n\tDataViewTableOptions,\n\tDataViewTableFrameProps,\n\tDataViewToolbarProps,\n\tSavedViewTabsProps,\n} from './data-view.types';\nimport { interactionRecipes } from '../../../lib/interaction-recipes';\n\nfunction useFilterTabState(tabs: readonly FilterTab[]) {\n\tconst { activeFilters, filters, replaceFilters } = useFilters();\n\tconst nonSearchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type !== FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst searchFilters = useMemo(\n\t\t() =>\n\t\t\tactiveFilters.filter((filter) => {\n\t\t\t\tconst config = filters.find((candidate) => candidate.key === filter.key);\n\t\t\t\treturn config?.type === FilterType.SEARCH;\n\t\t\t}),\n\t\t[activeFilters, filters],\n\t);\n\tconst activeTab = useMemo(() => {\n\t\tfor (const tab of tabs) {\n\t\t\tif (tab.presets.length === 0) {\n\t\t\t\tif (nonSearchFilters.length === 0) return tab;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (tab.presets.length !== nonSearchFilters.length) continue;\n\n\t\t\tconst allMatch = tab.presets.every((preset) => {\n\t\t\t\tconst active = nonSearchFilters.find((filter) => filter.key === preset.key);\n\t\t\t\tif (!active) return false;\n\n\t\t\t\tconst sortedPreset = [...preset.value].sort();\n\t\t\t\tconst sortedActive = [...active.value].sort();\n\t\t\t\tif (sortedPreset.length !== sortedActive.length) return false;\n\t\t\t\tif (sortedPreset.some((value, index) => value !== sortedActive[index])) return false;\n\n\t\t\t\treturn !preset.operator || active.operator === preset.operator;\n\t\t\t});\n\n\t\t\tif (allMatch) return tab;\n\t\t}\n\n\t\treturn undefined;\n\t}, [nonSearchFilters, tabs]);\n\n\tfunction applyTab(tab: FilterTab) {\n\t\tif (tab.presets.length === 0) {\n\t\t\treplaceFilters([...searchFilters]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst presetFilters: ActiveFilter[] = tab.presets.map((preset) => {\n\t\t\tconst filterConfig = filters.find((filter) => filter.key === preset.key);\n\t\t\tconst operator =\n\t\t\t\tpreset.operator ??\n\t\t\t\tfilterConfig?.operator ??\n\t\t\t\t(filterConfig ? getDefaultOperatorForType(filterConfig.type) : FilterOperatorEnum.EQUALS);\n\n\t\t\treturn {\n\t\t\t\tid: preset.key,\n\t\t\t\tkey: preset.key,\n\t\t\t\tvalue: preset.value,\n\t\t\t\toperator,\n\t\t\t};\n\t\t});\n\n\t\treplaceFilters([...searchFilters, ...presetFilters]);\n\t}\n\n\treturn { activeTab, applyTab };\n}\n\nfunction DataViewFilterTabSelect({\n\ttabs,\n\tlabel = defaultDataViewFilterTabsLabel,\n}: {\n\t/** Tabs to offer, in display order. */\n\ttabs: readonly FilterTab[];\n\t/** Display label. */\n\tlabel?: string;\n}) {\n\tconst { activeTab, applyTab } = useFilterTabState(tabs);\n\tif (tabs.length === 0) return null;\n\n\treturn (\n\t\t<PopoverMenu\n\t\t\tsearch={false}\n\t\t\tcontentClassName=\"w-48\"\n\t\t\titems={tabs.map((tab) => ({\n\t\t\t\tvalue: tab.id,\n\t\t\t\tlabel: tab.label,\n\t\t\t\tdescription: tab.count === undefined ? undefined : String(tab.count),\n\t\t\t\tselected: tab.id === activeTab?.id,\n\t\t\t\tdata: tab,\n\t\t\t}))}\n\t\t\tonSelect={(item) => {\n\t\t\t\tif (item.data) applyTab(item.data);\n\t\t\t}}\n\t\t\trenderItem={(item) => (\n\t\t\t\t<>\n\t\t\t\t\t<span className=\"flex size-icon-sm shrink-0 items-center justify-center\">\n\t\t\t\t\t\t{!!item.selected && <Check className=\"size-icon-sm\" aria-hidden=\"true\" />}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Text tag=\"span\" weight={item.selected ? 'medium' : 'regular'} className=\"min-w-0 flex-1 truncate\">\n\t\t\t\t\t\t{item.label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\">\n\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t</SecondaryValue>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName=\"h-action-sm px-control-sm\"\n\t\t\t\t\taria-label={label}\n\t\t\t\t>\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t{activeTab?.label ?? label}\n\t\t\t\t\t</Text>\n\t\t\t\t\t<ChevronsUpDown className=\"size-icon-sm\" aria-hidden=\"true\" />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport function DataViewShell({\n\tchildren,\n\theader,\n\ttoolbar,\n\tfooter,\n\temptySlot,\n\tempty: emptyState = false,\n\tclassName,\n\tcontentClassName,\n}: DataViewShellProps) {\n\treturn (\n\t\t<Stack\n\t\t\trender={<section />}\n\t\t\tgap=\"lg\"\n\t\t\tdata-component=\"data-view-shell\"\n\t\t\tdata-slot=\"data-view-shell\"\n\t\t\tclassName={cn('data-view-shell--component @container/data-view', className)}\n\t\t>\n\t\t\t{!!header && (\n\t\t\t\t<div data-slot=\"data-view-header\" className=\"data-view-shell--header\">\n\t\t\t\t\t{header}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{!!toolbar && (\n\t\t\t\t<div data-slot=\"data-view-toolbar-slot\" className=\"data-view-shell--toolbar\">\n\t\t\t\t\t{toolbar}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div data-slot=\"data-view-content\" className={cn('data-view-shell--content min-w-0', contentClassName)}>\n\t\t\t\t{emptyState ? emptySlot : children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div data-slot=\"data-view-footer\" className=\"data-view-shell--footer\">\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Stack>\n\t);\n}\n\nexport function DataViewToolbar({ leading, search, filters, views, actions, className }: DataViewToolbarProps) {\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"data-view-toolbar\"\n\t\t\tdata-slot=\"data-view-toolbar\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-toolbar--component rounded-radius border border-border bg-card p-surface shadow-sm',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"flex min-w-0 flex-col gap-space-lg @2xl/data-view:flex-row @2xl/data-view:items-center @2xl/data-view:justify-between @2xl/data-view:flex-nowrap\">\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\twrap\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap=\"md\"\n\t\t\t\t\tdata-slot=\"data-view-toolbar-leading\"\n\t\t\t\t\tclassName=\"data-view-toolbar--leading min-w-0 flex-1\"\n\t\t\t\t>\n\t\t\t\t\t{leading}\n\t\t\t\t\t{search}\n\t\t\t\t\t{filters}\n\t\t\t\t\t{views}\n\t\t\t\t</Stack>\n\t\t\t\t{!!actions && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\tdata-slot=\"data-view-toolbar-actions\"\n\t\t\t\t\t\tclassName=\"data-view-toolbar--actions shrink-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function DataViewTableFrame({\n\ttoolbar,\n\tchildren,\n\tfooter,\n\tclassName,\n\ttoolbarClassName,\n\tcontentClassName,\n\tfooterClassName,\n}: DataViewTableFrameProps) {\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"data-view-table-frame\"\n\t\t\tdata-slot=\"data-view-table-frame\"\n\t\t\tclassName={cn(\n\t\t\t\t'data-view-table-frame--component @container/data-view overflow-hidden rounded-radius border border-border bg-card shadow-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!!toolbar && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-toolbar\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'data-view-table-frame--toolbar border-b border-border/60 px-surface py-surface',\n\t\t\t\t\t\ttoolbarClassName,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Grid columns={1} gap=\"lg\">\n\t\t\t\t\t\t{toolbar}\n\t\t\t\t\t</Grid>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-table-frame-content\"\n\t\t\t\tclassName={cn('data-view-table-frame--content min-w-0', contentClassName)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t\t{!!footer && (\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"data-view-table-frame-footer\"\n\t\t\t\t\tclassName={cn('data-view-table-frame--footer border-t border-border/60 px-surface py-row-y', footerClassName)}\n\t\t\t\t>\n\t\t\t\t\t{footer}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</section>\n\t);\n}\n\ninterface DataViewRootProps<TData extends object, TValue> {\n\t/** Records to render. */\n\tdata: readonly TData[];\n\t/** Column definitions, in display order. */\n\tcolumns: DataViewProps<TData, TValue>['columns'];\n\tfiltering?: DataViewFilteringConfig<TData>;\n\ttable?: DataViewTableOptions<TData, TValue>;\n\t/** Replaces individual regions of the shell. */\n\tslots?: DataViewSlots;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nfunction DataViewRoot<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewRootProps<TData, TValue>) {\n\tconst { rows } = useDataView({ data, filtering });\n\tconst resolvedFilterTabs = filtering?.tabs ?? filtering?.layout?.tabs ?? [];\n\tconst filterTabsDisplay = filtering?.tabsDisplay ?? 'tabs';\n\tconst layoutTabs = filterTabsDisplay === 'tabs' ? resolvedFilterTabs : filtering?.layout?.tabs;\n\tconst showAuxiliaryToolbar =\n\t\t!!slots?.toolbarStart ||\n\t\t!!slots?.toolbarAfterFilters ||\n\t\t(filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0);\n\tconst hasIntegratedTopbar = !!filtering || !!slots?.topbarContent || showAuxiliaryToolbar;\n\tconst tableNode = (\n\t\t<DataViewTableFrame\n\t\t\tclassName={cn('data-view--component', className)}\n\t\t\tcontentClassName=\"data-view--content data-view-table--content\"\n\t\t\tfooterClassName=\"data-view--footer data-view-table--footer\"\n\t\t\tfooter={slots?.footer}\n\t\t>\n\t\t\t<DataTable<TData, TValue>\n\t\t\t\t{...table}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdata={rows as TData[]}\n\t\t\t\tsurface=\"flat\"\n\t\t\t\theaderTransparent={false}\n\t\t\t\ttopbarClassName={cn(\n\t\t\t\t\t'data-view--topbar data-view-table--topbar py-surface @2xl/data-table:items-start',\n\t\t\t\t\ttable?.topbarClassName,\n\t\t\t\t)}\n\t\t\t\ttoolbarLabelVisibility={table?.toolbarLabelVisibility ?? 'hidden'}\n\t\t\t\ttopbarContent={\n\t\t\t\t\thasIntegratedTopbar ? (\n\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\t\tdata-slot=\"data-view-topbar-content\"\n\t\t\t\t\t\t\tclassName=\"data-view--topbar-content data-view-table--topbar-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{slots?.topbarContent}\n\t\t\t\t\t\t\t{showAuxiliaryToolbar && (\n\t\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\t\tdata-slot=\"data-view-toolbar-row\"\n\t\t\t\t\t\t\t\t\tdirection=\"horizontal\"\n\t\t\t\t\t\t\t\t\tgap=\"md\"\n\t\t\t\t\t\t\t\t\tclassName=\"data-view--toolbar-row data-view-table--toolbar-row\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{slots?.toolbarStart}\n\t\t\t\t\t\t\t\t\t{filtering && filterTabsDisplay === 'select' && resolvedFilterTabs.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t<DataViewFilterTabSelect tabs={resolvedFilterTabs} label={filtering.tabsLabel} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{slots?.toolbarAfterFilters}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{filtering && (\n\t\t\t\t\t\t\t\t<div data-slot=\"data-view-filters\" className=\"data-view--filters data-view-table--filters min-w-0\">\n\t\t\t\t\t\t\t\t\t<FilterLayout\n\t\t\t\t\t\t\t\t\t\t{...filtering.layout}\n\t\t\t\t\t\t\t\t\t\tvariant={filtering.layout?.variant ?? 'compact'}\n\t\t\t\t\t\t\t\t\t\tshowClearFilters={filtering.layout?.showClearFilters ?? filtering.activeFilters.length > 0}\n\t\t\t\t\t\t\t\t\t\ttabs={layoutTabs}\n\t\t\t\t\t\t\t\t\t\tclassName={cn('min-w-0', filtering.layout?.className)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\ttopbarEnd={\n\t\t\t\t\t!!(slots?.toolbarEnd || slots?.topbarEnd) && (\n\t\t\t\t\t\t<div data-slot=\"data-view-topbar-end\" className=\"data-view--topbar-end\">\n\t\t\t\t\t\t\t{slots?.toolbarEnd}\n\t\t\t\t\t\t\t{slots?.topbarEnd}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t</DataViewTableFrame>\n\t);\n\n\tif (!filtering) return tableNode;\n\n\treturn (\n\t\t<FilterProvider\n\t\t\tfilters={filtering.filters}\n\t\t\tactiveFilters={filtering.activeFilters}\n\t\t\tonFilterChange={filtering.onFilterChange}\n\t\t\tnavigating={filtering.isFiltering ?? false}\n\t\t\tstrings={filtering.strings}\n\t\t\tonError={filtering.onError}\n\t\t>\n\t\t\t{tableNode}\n\t\t</FilterProvider>\n\t);\n}\n\nexport function DataView<TData extends object, TValue = unknown>({\n\tdata,\n\tcolumns,\n\tfiltering,\n\ttable,\n\tslots,\n\tclassName,\n}: DataViewProps<TData, TValue>) {\n\treturn (\n\t\t<DataViewRoot\n\t\t\tdata={data}\n\t\t\tcolumns={columns}\n\t\t\tfiltering={filtering}\n\t\t\ttable={table}\n\t\t\tslots={slots}\n\t\t\tclassName={className}\n\t\t/>\n\t);\n}\n\nexport function DataViewPagination({\n\tpage,\n\tpageCount,\n\ttotal,\n\tonPageChange,\n\tdisabled = false,\n\tclassName,\n\tstrings: stringsProp,\n}: DataViewPaginationProps) {\n\tconst strings = useStrings(defaultDataViewPaginationStrings, stringsProp);\n\tconst hasPrevious = page > 1;\n\tconst hasNext = pageCount === undefined ? true : page < pageCount;\n\tconst pageLabel = pageCount ? `${strings.page} ${page} / ${pageCount}` : `${strings.page} ${page}`;\n\tconst canChangePage = Boolean(onPageChange) && !disabled;\n\n\treturn (\n\t\t<nav\n\t\t\tdata-component=\"data-view-pagination\"\n\t\t\tdata-slot=\"data-view-pagination\"\n\t\t\tclassName={cn('data-view-pagination--component flex min-w-0 flex-col gap-space-md @md/data-view:flex-row @md/data-view:justify-between', className)}\n\t\t\taria-label={strings.page}\n\t\t>\n\t\t\t<div data-slot=\"data-view-pagination-summary\" className=\"data-view-pagination--summary min-w-0\">\n\t\t\t\t{total !== undefined && total !== null && (\n\t\t\t\t\t<Text size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t{total}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tdata-slot=\"data-view-pagination-controls\"\n\t\t\t\tclassName=\"data-view-pagination--controls flex shrink-0 items-center gap-space-md\"\n\t\t\t>\n\t\t\t\t<SecondaryValue size=\"xs\" className=\"tabular-nums\" aria-label={pageLabel}>\n\t\t\t\t\t{strings.page} <NumberValue value={page} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t{pageCount ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{' / '}\n\t\t\t\t\t\t\t<NumberValue value={pageCount} size=\"xs\" align=\"left\" type=\"secondary\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : null}\n\t\t\t\t</SecondaryValue>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasPrevious}\n\t\t\t\t\tonClick={() => onPageChange?.(page - 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.previous}\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\tdisabled={!canChangePage || !hasNext}\n\t\t\t\t\tonClick={() => onPageChange?.(page + 1)}\n\t\t\t\t>\n\t\t\t\t\t{strings.next}\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</nav>\n\t);\n}\n\nexport function SavedViewTabs({ views, value, onValueChange, className }: SavedViewTabsProps) {\n\treturn (\n\t\t<Tabs\n\t\t\tdata-component=\"saved-view-tabs\"\n\t\t\tdata-slot=\"saved-view-tabs\"\n\t\t\tclassName={cn('saved-view-tabs--component rounded-radius bg-muted p-space-xs', className)}\n\t\t\tvalue={value}\n onValueChange={next => { if (typeof next === 'string') onValueChange(next); }}\n\t\t>\n <TabsList role=\"group\" aria-orientation={undefined} activateOnFocus className=\"h-auto! flex-wrap justify-start gap-space-xs bg-transparent p-0\">\n\t\t\t{views.map((view) => {\n\t\t\t\tconst active = view.id === value;\n\t\t\t\treturn (\n\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\tkey={view.id}\n\t\t\t\t\t\tdata-slot=\"saved-view-tab\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"button\"\n value={view.id}\n aria-selected={undefined}\n aria-controls={undefined}\n aria-pressed={active}\n\t\t\t\t\t\tdisabled={view.disabled}\n\t\t\t\t\t\tclassName={cn('saved-view-tabs--tab h-action-sm flex-none gap-space-xs rounded-inner px-control-sm py-0 after:hidden data-active:bg-accent data-active:text-accent-foreground data-active:hover:bg-accent data-active:hover:text-accent-foreground', interactionRecipes.toggleHover)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"truncate text-current\">\n\t\t\t\t\t\t\t{view.label}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{view.count !== undefined && view.count !== null && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"saved-view-tabs--count\">\n\t\t\t\t\t\t\t\t{view.count}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TabsTrigger>\n\t\t\t\t);\n\t\t\t})}\n </TabsList>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAOA,IAAaoB,IAA8D;CAC1E,MAAM;CACN,UAAU;CACV,MAAM;AACP,GAGaC,IAAiC;;;ACH9C,SAASC,EAAa,GAAc,GAAuB;CAO1D,OANKC,EAAK,SAAS,GAAG,IAMfA,EAAK,MAAM,GAAG,CAAC,CAAC,QAAiB,GAAS,MAAS;EACzD,IAAKC,KAAW,OAAOA,KAAY,UACnC,OAAQA,EAAoCC;CAC7C,GAAGC,CAAG,IAREA,KAAO,OAAOA,KAAQ,WACzBA,EAAgCH,KACjC,KAAA;AAOL;AAEA,SAASI,EAAqB,GAAwB;CAKrD,OAJIC,KAAU,OAAoC,KAC9CA,aAAiB,OAAaA,EAAM,YAAY,IAChD,OAAOA,KAAU,WAAiBA,IAClC,OAAOA,KAAU,YAAY,OAAOA,KAAU,YAAkB,OAAOA,CAAK,IACzE;AACR;AAEA,SAASC,EAAkB,GAAgB,IAAQ,GAAW;CAc7D,OAbID,KAAU,QAA+BE,IAAQ,IAAU,KAC3DF,aAAiB,OAAaA,EAAM,YAAY,IAChD,OAAOA,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU,YACvE,OAAOA,CAAK,IAEhB,MAAM,QAAQA,CAAK,IACfA,EAAM,KAAK,MAAUC,EAAkBE,GAAOD,IAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAEtE,OAAOF,KAAU,WACb,OAAO,OAAOA,CAAgC,CAAC,CACpD,KAAK,MAAUC,EAAkBE,GAAOD,IAAQ,CAAC,CAAC,CAAC,CACnD,KAAK,GAAG,IAEJ;AACR;AAEA,SAASE,EAAyB,GAA0B;CAC3D,IAAI,MAAM,QAAQJ,CAAK,GACtB,OAAOA,EAAM,IAAID,CAAoB,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,MAAUI,EAAM,YAAY,CAAC;CAG1F,IAAME,IAAcN,EAAqBC,CAAK;CAC9C,OAAOK,IAAc,CAACA,EAAY,YAAY,CAAC,IAAI,CAAC;AACrD;AAEA,SAASC,EAAmB,GAAmC;CAC9D,IAAMC,IAAO,OAAOP,CAAK;CACzB,OAAO,OAAO,SAASO,CAAI,IAAIA,IAAO,KAAA;AACvC;AAEA,SAASC,EAAiB,GAAe,GAAyC;CACjF,IAAIC,GAAY;EACf,IAAMC,IAAgBC,EAAMX,GAAOS,mBAAY,IAAI,KAAK,CAAC,CAAC;EAC1D,IAAIG,EAAQF,CAAa,GAAG,OAAOA,EAAc,QAAQ;CAC1D;CAEA,IAAMG,IAAa,IAAI,KAAKb,CAAK;CACjC,OAAOY,EAAQC,CAAU,IAAIA,EAAW,QAAQ,IAAI,KAAA;AACrD;AAEA,SAASC,EACR,GACA,GACA,GACA,GACC;CACD,IAAMC,IAAeC,GAAc,SAAS7B,EAAW,QACnD,MAAkBqB,EAAiBR,GAAOgB,EAAa,YAAY,SAAS,YAAY,IACzFV,GACGW,IAAmBC,EACvB,IAAIH,CAAY,CAAC,CACjB,QAAQ,MAA2Bf,MAAU,KAAA,CAAS,GAClDmB,IAAgBC,EACpB,IAAIL,CAAY,CAAC,CACjB,QAAQ,MAA2Bf,MAAU,KAAA,CAAS;CAExD,IAAIiB,EAAiB,WAAW,KAAKE,EAAc,WAAW,GAAG,OAAO;CAExE,QAAQE,GAAR;EACC,KAAKpC,EAAmB;EACxB,KAAKA,EAAmB,OACvB,OAAOgC,EAAiB,MAAM,MAAcK,IAAYH,EAAc,EAAE;EACzE,KAAKlC,EAAmB,KACvB,OAAOgC,EAAiB,MAAM,MAAcK,KAAaH,EAAc,EAAE;EAC1E,KAAKlC,EAAmB;EACxB,KAAKA,EAAmB,QACvB,OAAOgC,EAAiB,MAAM,MAAcK,IAAYH,EAAc,EAAE;EACzE,KAAKlC,EAAmB,KACvB,OAAOgC,EAAiB,MAAM,MAAcK,KAAaH,EAAc,EAAE;EAC1E,KAAKlC,EAAmB,SAEvB,OADIkC,EAAc,SAAS,IAAU,KAC9BF,EAAiB,MAAM,MAAcK,KAAaH,EAAc,MAAMG,KAAaH,EAAc,EAAE;EAC3G,SACC,OAAO;CACT;AACD;AAEA,SAASI,EAAqB,GAA2B;CACxD,OAAO;EACN;EACA,OAAOC;EACP,MAAMrC,EAAW;EACjB,MAAM;EACN,eAAe,CAAC;CACjB;AACD;AAEA,SAASsC,EACR,GACA,GACA,GACA,GACC;CACD,IAAML,IAAeM,EAAO,MAAM,KAAK,MAAU1B,EAAM,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,OAAO;CAC3F,IAAIoB,EAAa,WAAW,GAAG,OAAO;CAEtC,IAAIJ,GAAc,SAAS7B,EAAW,QAAQ;EAC7C,IAAMwC,IAAW1B,EAAkBH,CAAG,CAAC,CAAC,YAAY;EAOpD,OALC4B,EAAO,aAAazC,EAAmB,OACvCyC,EAAO,aAAazC,EAAmB,SAEhCmC,EAAa,OAAO,MAAU,CAACO,EAAS,SAAS3B,CAAK,CAAC,IAExDoB,EAAa,OAAO,MAAUO,EAAS,SAAS3B,CAAK,CAAC;CAC9D;CAEA,IAAM4B,IAAuBZ,KAAgBO,EAAqBG,EAAO,GAAG,GAEtER,IAAkBd,EADPyB,IAAiB/B,GAAK8B,CAAoB,KAAKlC,EAAaI,GAAK4B,EAAO,GAAG,CACnC;CACzD,IAAIR,EAAgB,WAAW,GAAG,OAAO;CAEzC,QAAQQ,EAAO,UAAf;EACC,KAAKzC,EAAmB,UACvB,OAAOmC,EAAa,OAAO,MAC1BF,EAAgB,MAAM,MAAcI,EAAU,SAAStB,CAAK,CAAC,CAC9D;EACD,KAAKf,EAAmB,KACvB,OAAOmC,EAAa,OAAO,MAAUF,EAAgB,SAASlB,CAAK,CAAC;EACrE,KAAKf,EAAmB,QACvB,OAAOmC,EAAa,OAAO,MAC1BF,EAAgB,OAAO,MAAcI,MAActB,CAAK,CACzD;EACD,KAAKf,EAAmB,KAUvB,OARC+B,GAAc,SAAS7B,EAAW,UAClC6B,GAAc,SAAS7B,EAAW,gBAClC6B,GAAc,SAAS7B,EAAW,eAE3BiC,EAAa,OAAO,MAC1BF,EAAgB,OAAO,MAAcI,MAActB,CAAK,CACzD,IAEMoB,EAAa,OAAO,MAC1BF,EAAgB,OAAO,MAAc,CAACI,EAAU,SAAStB,CAAK,CAAC,CAChE;EACD,KAAKf,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB,SACvB,OAAOmC,EAAa,MAAM,MAAUF,EAAgB,SAASlB,CAAK,CAAC;EACpE,KAAKf,EAAmB,SACvB,OAAOmC,EAAa,OAAO,MAAUF,EAAgB,SAASlB,CAAK,CAAC;EACrE,KAAKf,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB;EACxB,KAAKA,EAAmB,SACvB,OAAO6B,EACNI,GACAE,GACAM,EAAO,UACPV,CACD;EACD,SACC,OAAOI,EAAa,MAAM,MAAUF,EAAgB,SAASlB,CAAK,CAAC;CACrE;AACD;AAEA,SAAgB8B,EACf,GACA,GACA,GACA,GACmB;CACnB,IAAIC,EAAc,WAAW,GAAG,OAAOC;CAEvC,IAAMC,IAAe,IAAI,IAAIC,EAAQ,KAAK,MAAW,CAACR,EAAO,KAAKA,CAAM,CAAC,CAAC;CAC1E,OAAOM,EAAK,QAAQ,MACnBD,EAAc,OAAO,MACpBN,EAAiB3B,GAAK4B,GAAQO,EAAa,IAAIP,EAAO,GAAG,GAAGG,CAAc,CAC3E,CACD;AACD;;;ACvMA,SAAgBM,EAAkC,EACjD,SACA,gBACuD;CACvD,IAAMC,IAAaC,EAAOC,GAAW,OAAO;CAC5C,EAAW,UAAUA,GAAW;CAChC,IAAMC,IAAwBF,EAAwC,IAAI,GACpEN,IAAgBO,GAAW,eAC3BE,IAAaF,GAAW,YACxBJ,IAAUI,GAAW,SACrBT,IAAiBS,GAAW,gBAC5BG,IAAeH,MAAc,KAAA,GAE7BI,IAASC,QAAwC;EACtD,IAAI,CAACF,KAAgB,CAACV,KAAiB,CAACG,GACvC,OAAO;GAAE,MAAMF;GAAM,OAAO;GAAM,QAAQ;EAAM;EAGjD,IAAI;GACH,OAAO;IACN,MAAMQ,IACHA,EAAW;KACZ;KACA;KACA;IACD,CAAC,IACCV,EACDE,GACAD,GACAG,GACAL,CACD;IACD,OAAO;IACP,QAAQ;GACT;EACD,SAASe,GAAO;GACf,OAAO;IAAE,MAAMZ;IAAM;IAAO,QAAQ;GAAK;EAC1C;CACD,GAAG;EACFD;EACAC;EACAQ;EACAN;EACAL;EACAY;CACD,CAAC;CAYD,OAVAI,QAAgB;EACf,IAAI,CAACH,EAAO,QAAQ;GACnB,EAAsB,UAAU;GAChC;EACD;EACA,AAAIH,EAAsB,YAAYG,MACtC,EAAsB,UAAUA,GAChCN,EAAW,UAAUM,EAAO,OAAO,EAAE,OAAO,QAAQ,CAAC;CACtD,GAAG,CAACA,CAAM,CAAC,GAEJA;AACR;;;AC3BA,SAASI,EAAkB,GAA4B;CACtD,IAAM,EAAE,kBAAe,YAAS,sBAAmB1D,EAAW,GACxD2D,IAAmBJ,QAEvBZ,EAAc,QAAQ,MACNG,EAAQ,MAAM,MAAcZ,EAAU,QAAQI,EAAO,GAC7D,CAAA,EAAQ,SAASvC,EAAW,MACnC,GACF,CAAC4C,GAAeG,CAAO,CACxB,GACMc,IAAgBL,QAEpBZ,EAAc,QAAQ,MACNG,EAAQ,MAAM,MAAcZ,EAAU,QAAQI,EAAO,GAC7D,CAAA,EAAQ,SAASvC,EAAW,MACnC,GACF,CAAC4C,GAAeG,CAAO,CACxB,GACMe,IAAYN,QAAc;EAC/B,KAAK,IAAMO,KAAOC,GAAM;GACvB,IAAID,EAAI,QAAQ,WAAW,GAAG;IAC7B,IAAIH,EAAiB,WAAW,GAAG,OAAOG;IAC1C;GACD;GAEA,IAAIA,EAAI,QAAQ,WAAWH,EAAiB,UAE3BG,EAAI,QAAQ,OAAO,MAAW;IAC9C,IAAME,IAASL,EAAiB,MAAM,MAAWrB,EAAO,QAAQ2B,EAAO,GAAG;IAC1E,IAAI,CAACD,GAAQ,OAAO;IAEpB,IAAME,IAAe,CAAC,GAAGD,EAAO,KAAK,CAAC,CAAC,KAAK,GACtCE,IAAe,CAAC,GAAGH,EAAO,KAAK,CAAC,CAAC,KAAK;IAI5C,OAHIE,EAAa,WAAWC,EAAa,UACrCD,EAAa,MAAM,GAAO,MAAUtD,MAAUuD,EAAaC,EAAM,IAAU,KAExE,CAACH,EAAO,YAAYD,EAAO,aAAaC,EAAO;GACvD,CAEI,GAAU,OAAOH;EACtB;CAGD,GAAG,CAACH,GAAkBI,CAAI,CAAC;CAE3B,SAASM,EAAS,GAAgB;EACjC,IAAIP,EAAI,QAAQ,WAAW,GAAG;GAC7B,EAAe,CAAC,GAAGF,CAAa,CAAC;GACjC;EACD;EAEA,IAAMU,IAAgCR,EAAI,QAAQ,KAAK,MAAW;GACjE,IAAMlC,IAAekB,EAAQ,MAAM,MAAWR,EAAO,QAAQ2B,EAAO,GAAG,GACjEhC,IACLgC,EAAO,YACPrC,GAAc,aACbA,IAAe9B,EAA0B8B,EAAa,IAAI,IAAI/B,EAAmB;GAEnF,OAAO;IACN,IAAIoE,EAAO;IACX,KAAKA,EAAO;IACZ,OAAOA,EAAO;IACd;GACD;EACD,CAAC;EAED,EAAe,CAAC,GAAGL,GAAe,GAAGU,CAAa,CAAC;CACpD;CAEA,OAAO;EAAE;EAAW;CAAS;AAC9B;AAEA,SAASC,EAAwB,EAChC,SACA,WAAQlE,KAMN;CACF,IAAM,EAAE,cAAW,gBAAaqD,EAAkBK,CAAI;CAGtD,OAFIA,EAAK,WAAW,IAAU,OAG7B,kBAACpE,GAAD;EACC,QAAQ;EACR,kBAAiB;EACjB,OAAOoE,EAAK,KAAK,OAAS;GACzB,OAAOD,EAAI;GACX,OAAOA,EAAI;GACX,aAAaA,EAAI,UAAU,KAAA,IAAY,KAAA,IAAY,OAAOA,EAAI,KAAK;GACnE,UAAUA,EAAI,OAAOD,GAAW;GAChC,MAAMC;EACP,EAAE;EACF,WAAW,MAAS;GACnB,AAAIU,EAAK,QAAMH,EAASG,EAAK,IAAI;EAClC;EACA,aAAa,MACZ,kBAAAxF,GAAA,EAAA,UAAA;GACC,kBAAC,QAAD;IAAM,WAAU;IACd,UAAA,CAAC,CAACwF,EAAK,YAAY,kBAACC,GAAD;KAAO,WAAU;KAAe,eAAY;IAAQ,CAAA;GACnE,CAAA;GACN,kBAACvF,GAAD;IAAM,KAAI;IAAO,QAAQsF,EAAK,WAAW,WAAW;IAAW,WAAU;IACvE,UAAAA,EAAK;GACD,CAAA;GACL,CAAC,CAACA,EAAK,eACP,kBAAClF,GAAD;IAAgB,MAAK;IAAK,WAAU;IAClC,UAAAkF,EAAK;GACS,CAAA;EAEhB,EAAA,CAAA;EAEH,SACC,kBAACE,GAAD;GACC,MAAK;GACL,MAAK;GACL,aAAY;GACZ,MAAK;GACL,WAAU;GACV,cAAYC;GANb,UAAA,CAQC,kBAACzF,GAAD;IAAM,KAAI;IAAO,MAAK;IAAU,WAAU;IACxC,UAAA2E,GAAW,SAASc;GAChB,CAAA,GACN,kBAACC,GAAD;IAAgB,WAAU;IAAe,eAAY;GAAQ,CAAA,CACtD;;CAET,CAAA;AAEH;AAEA,SAAgBC,EAAc,EAC7B,aACA,WACA,YACA,WACA,cACA,OAAOC,IAAa,IACpB,cACA,uBACsB;CACtB,OACC,kBAAC1F,GAAD;EACC,QAAQ,kBAAC,WAAD,CAAU,CAAA;EAClB,KAAI;EACJ,kBAAe;EACf,aAAU;EACV,WAAW2F,EAAG,mDAAmDC,CAAS;EAL3E,UAAA;GAOE,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,aAAU;IAAmB,WAAU;IAC1C,UAAAA;GACG,CAAA;GAEL,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,aAAU;IAAyB,WAAU;IAChD,UAAAA;GACG,CAAA;GAEN,kBAAC,OAAD;IAAK,aAAU;IAAoB,WAAWH,EAAG,oCAAoCI,CAAgB;IACnG,UAAAL,IAAaM,IAAYC;GACtB,CAAA;GACJ,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,aAAU;IAAmB,WAAU;IAC1C,UAAAA;GACG,CAAA;EAEA;;AAET;AAEA,SAAgBC,EAAgB,EAAE,YAAS,WAAQ,YAAS,UAAO,YAAS,gBAAmC;CAC9G,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWR,EACV,gGACAC,CACD;EAEA,UAAA,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACC,kBAAC5F,GAAD;IACC,WAAU;IACV,MAAA;IACA,OAAM;IACN,KAAI;IACJ,aAAU;IACV,WAAU;IANX,UAAA;KAQEoG;KACAC;KACA3C;KACA4C;IACK;GACN,CAAA,GAAA,CAAC,CAACC,KACF,kBAACvG,GAAD;IACC,WAAU;IACV,MAAA;IACA,OAAM;IACN,KAAI;IACJ,aAAU;IACV,WAAU;IAET,UAAAuG;GACK,CAAA,CAEJ;;CACD,CAAA;AAEP;AAEA,SAAgBC,EAAmB,EAClC,YACA,aACA,WACA,cACA,qBACA,qBACA,sBAC2B;CAC3B,OACC,kBAAC,WAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWb,EACV,+HACAC,CACD;EAND,UAAA;GAQE,CAAC,CAACE,KACF,kBAAC,OAAD;IACC,aAAU;IACV,WAAWH,EACV,kFACAc,CACD;IAEA,UAAA,kBAAC1G,GAAD;KAAM,SAAS;KAAG,KAAI;KACpB,UAAA+F;IACI,CAAA;GACF,CAAA;GAEN,kBAAC,OAAD;IACC,aAAU;IACV,WAAWH,EAAG,0CAA0CI,CAAgB;IAEvE;GACG,CAAA;GACJ,CAAC,CAACG,KACF,kBAAC,OAAD;IACC,aAAU;IACV,WAAWP,EAAG,+EAA+Ee,CAAe;IAE3G,UAAAR;GACG,CAAA;EAEE;;AAEX;AAeA,SAASS,EAAqD,EAC7D,SACA,YACA,cACA,UACA,UACA,gBACoC;CACpC,IAAM,EAAE,YAAShD,EAAY;EAAE;EAAM;CAAU,CAAC,GAC1CiD,IAAqB9C,GAAW,QAAQA,GAAW,QAAQ,QAAQ,CAAC,GACpE+C,IAAoB/C,GAAW,eAAe,QAC9CgD,IAAaD,MAAsB,SAASD,IAAqB9C,GAAW,QAAQ,MACpFiD,IACL,CAAC,CAACC,GAAO,gBACT,CAAC,CAACA,GAAO,uBACRH,MAAsB,YAAYD,EAAmB,SAAS,GAC1DK,IAAsB,CAAC,CAACnD,KAAa,CAAC,CAACkD,GAAO,iBAAiBD,GAC/DG,IACL,kBAACV,GAAD;EACC,WAAWb,EAAG,wBAAwBC,CAAS;EAC/C,kBAAiB;EACjB,iBAAgB;EAChB,QAAQoB,GAAO;EAEf,UAAA,kBAACxG,GAAD;GACC,GAAI2G;GACK;GACT,MAAMC;GACN,SAAQ;GACR,mBAAmB;GACnB,iBAAiBzB,EAChB,oFACAwB,GAAO,eACR;GACA,wBAAwBA,GAAO,0BAA0B;GACzD,eACCF,IACC,kBAACjH,GAAD;IACC,KAAI;IACJ,aAAU;IACV,WAAU;IAHX,UAAA;KAKEgH,GAAO;KACPD,KACA,kBAAC/G,GAAD;MACC,aAAU;MACV,WAAU;MACV,KAAI;MACJ,WAAU;MAJX,UAAA;OAMEgH,GAAO;OACPlD,KAAa+C,MAAsB,YAAYD,EAAmB,SAAS,KAC3E,kBAACzB,GAAD;QAAyB,MAAMyB;QAAoB,OAAO9C,EAAU;OAAY,CAAA;OAEhFkD,GAAO;MACF;;KAEPlD,KACA,kBAAC,OAAD;MAAK,aAAU;MAAoB,WAAU;MAC5C,UAAA,kBAACjD,GAAD;OACC,GAAIiD,EAAU;OACd,SAASA,EAAU,QAAQ,WAAW;OACtC,kBAAkBA,EAAU,QAAQ,oBAAoBA,EAAU,cAAc,SAAS;OACzF,MAAMgD;OACN,WAAWnB,EAAG,WAAW7B,EAAU,QAAQ,SAAS;MACpD,CAAA;KACG,CAAA;IAEA;GACJ,CAAA,IAAA,KAAA;GAEL,WACC,CAAC,EAAEkD,GAAO,cAAcA,GAAO,cAC9B,kBAAC,OAAD;IAAK,aAAU;IAAuB,WAAU;IAAhD,UAAA,CACEA,GAAO,YACPA,GAAO,SACJ;;EAGP,CAAA;CACkB,CAAA;CAKrB,OAFKlD,IAGJ,kBAAChD,GAAD;EACC,SAASgD,EAAU;EACnB,eAAeA,EAAU;EACzB,gBAAgBA,EAAU;EAC1B,YAAYA,EAAU,eAAe;EACrC,SAASA,EAAU;EACnB,SAASA,EAAU;EAElB,UAAAoD;CACc,CAAA,IAZMA;AAcxB;AAEA,SAAgBG,EAAiD,EAChE,SACA,YACA,cACA,UACA,UACA,gBACgC;CAChC,OACC,kBAACV,GAAD;EACO;EACG;EACE;EACJ;EACA;EACI;CACX,CAAA;AAEH;AAEA,SAAgBW,EAAmB,EAClC,SACA,cACA,UACA,iBACA,cAAW,IACX,cACA,SAASC,KACkB;CAC3B,IAAMC,IAAUC,EAAWzG,GAAkCuG,CAAW,GAClEG,IAAcC,IAAO,GACrBC,IAAUC,MAAc,KAAA,KAAmBF,IAAOE,GAClDC,IAAYD,IAAY,GAAGL,EAAQ,KAAK,GAAGG,EAAK,KAAKE,MAAc,GAAGL,EAAQ,KAAK,GAAGG,KACtFI,IAAgB,EAAQC,KAAiB,CAACC;CAEhD,OACC,kBAAC,OAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWtC,EAAG,2HAA2HC,CAAS;EAClJ,cAAY4B,EAAQ;EAJrB,UAAA,CAMC,kBAAC,OAAD;GAAK,aAAU;GAA+B,WAAU;GACtD,UAAAU,KAAiC,QACjC,kBAACpI,GAAD;IAAM,MAAK;IAAK,MAAK;IACnB,UAAAoI;GACI,CAAA;EAEH,CAAA,GACL,kBAAC,OAAD;GACC,aAAU;GACV,WAAU;GAFX,UAAA;IAIC,kBAAChI,GAAD;KAAgB,MAAK;KAAK,WAAU;KAAe,cAAY4H;KAA/D,UAAA;MACEN,EAAQ;MAAK;MAAC,kBAAC3H,GAAD;OAAa,OAAO8H;OAAM,MAAK;OAAK,OAAM;OAAO,MAAK;MAAa,CAAA;MACjFE,IACA,kBAAAjI,GAAA,EAAA,UAAA,CACE,OACD,kBAACC,GAAD;OAAa,OAAOgI;OAAW,MAAK;OAAK,OAAM;OAAO,MAAK;MAAa,CAAA,CACvE,EAAA,CAAA,IACC;KACW;;IAChB,kBAACvC,GAAD;KACC,MAAK;KACL,MAAK;KACL,MAAK;KACL,aAAY;KACZ,UAAU,CAACyC,KAAiB,CAACL;KAC7B,eAAeM,IAAeL,IAAO,CAAC;KAErC,UAAAH,EAAQ;IACF,CAAA;IACR,kBAAClC,GAAD;KACC,MAAK;KACL,MAAK;KACL,MAAK;KACL,aAAY;KACZ,UAAU,CAACyC,KAAiB,CAACH;KAC7B,eAAeI,IAAeL,IAAO,CAAC;KAErC,UAAAH,EAAQ;IACF,CAAA;GACJ;EACD,CAAA,CAAA;;AAEP;AAEA,SAAgBW,EAAc,EAAE,UAAO,UAAO,kBAAe,gBAAiC;CAC7F,OACC,kBAAC7H,GAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWqF,EAAG,iEAAiEC,CAAS;EACjF;EACE,gBAAe,MAAQ;GAAE,AAAI,OAAO7D,KAAS,YAAUqG,EAAcrG,CAAI;EAAG;EAE5E,UAAA,kBAAC1B,GAAD;GAAU,MAAK;GAAQ,oBAAkB,KAAA;GAAW,iBAAA;GAAgB,WAAU;GACtF,UAAAiG,EAAM,KAAK,MAAS;IACpB,IAAM1B,IAASyD,EAAK,OAAO7G;IAC3B,OACC,kBAACpB,GAAD;KAEC,aAAU;KACV,MAAK;KACL,MAAK;KACa,OAAOiI,EAAK;KACZ,iBAAe,KAAA;KACf,iBAAe,KAAA;KACf,gBAAczD;KAChC,UAAUyD,EAAK;KACf,WAAW1C,EAAG,uOAAuO1F,EAAmB,WAAW;KAVpR,UAAA,CAYC,kBAACH,GAAD;MAAM,KAAI;MAAO,MAAK;MAAU,WAAU;MACxC,UAAAuI,EAAK;KACD,CAAA,GACLA,EAAK,UAAU,KAAA,KAAaA,EAAK,UAAU,QAC3C,kBAACvI,GAAD;MAAM,KAAI;MAAO,MAAK;MAAK,MAAK;MAAY,WAAU;MACpD,UAAAuI,EAAK;KACD,CAAA,CAEK;IAnBP,GAAAA,EAAK,EAmBE;GAEf,CAAC;EACkB,CAAA;CACd,CAAA;AAER"}
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, o as r, r as i, s as a, t as o, u as s } from "../../http-CdEIHyQf.js";
1
+ import { a as e, c as t, i as n, o as r, r as i, s as a, t as o, u as s } from "../../http-D_6rOnzU.js";
2
2
  export { t as bodyHtml, o as createHttpSender, s as defaultEmailComposerStrings, i as parseRecipient, n as recipientLabel, e as renderEmail, r as resolveValues, a as validate };