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":"questionnaire.js","names":["_Fragment","Text","Heading","Label","Button","Stack","Progress","Input","Textarea","Select","CardRadioGroup","Checkbox","FormField","Fragment$1","QuestionnaireControl","context","common","error","labelId","descriptionId","question","answer","onAnswerChange","event","values","optionId","index","disabled","option","checked","entry","defaultQuestionnaireStrings","current","total","getVisibleQuestions","questions","answers","getQuestionnaireAnswer","id","validateQuestion","value","empty","strings","selected","url","result","getSubmissionAnswers","emptyAnswers","Questionnaire","forwardRef","controlledValue","stringsProp","formProps","props","controlled","stepControlled","internalValue","setInternalValue","useState","defaultValue","answersRef","useRef","visible","internalId","setInternalId","defaultQuestionId","requestedId","questionId","position","errors","setErrors","submitError","setSubmitError","busy","setBusy","completed","setCompleted","submission","resetTimer","mounted","stageRef","useStrings","useId","locked","cancelReset","cancel","goTo","nextId","onQuestionChange","setAnswer","next","onValueChange","previous","useEffect","advance","submit","validation","firstInvalid","controller","snapshot","onSubmit","onComplete","formatSubmitError","onError","currentError","description","cn","className","nativeEvent","initialVisible","initialQuestion","headerSlot","completionSlot","emptySlot"],"sources":["../../src/components/features/questionnaire/questionnaire-control.tsx","../../src/components/features/questionnaire/questionnaire.types.ts","../../src/components/features/questionnaire/questionnaire.utils.ts","../../src/components/features/questionnaire/questionnaire.tsx"],"sourcesContent":["import { CardRadioGroup, Checkbox, Select } from '../../base/choice-inputs';\nimport { Input, Textarea } from '../../base/text-inputs';\nimport { Stack } from '../../base/structure';\nimport { Label, Text } from '../../typography';\nimport type { QuestionnaireQuestionContext } from './questionnaire.types';\n\n/** All interactive behavior remains with public Base UI-backed field owners. */\nexport function QuestionnaireControl({ question, answer, disabled, error, labelId, descriptionId, onAnswerChange, ...context }: QuestionnaireQuestionContext) {\n\tconst common = { disabled, invalid: Boolean(error), 'aria-labelledby': labelId, 'aria-describedby': descriptionId, required: question.required };\n\tif (question.type === 'custom') return question.render({ ...context, question, answer, disabled, error, labelId, descriptionId, onAnswerChange });\n\tif (question.type === 'text') return <Input {...common} type={question.inputType ?? 'text'} maxLength={question.maxLength} placeholder={question.placeholder} value={typeof answer === 'string' ? answer : ''} onChange={(event) => onAnswerChange(event.target.value)} />;\n\tif (question.type === 'textarea') return <Textarea {...common} rows={question.rows ?? 4} maxLength={question.maxLength} placeholder={question.placeholder} value={typeof answer === 'string' ? answer : ''} onChange={(event) => onAnswerChange(event.target.value)} />;\n\tif (question.type === 'select') return <Select {...common} options={question.options} value={typeof answer === 'string' ? answer : null} onValueChange={onAnswerChange} />;\n\tif (question.type === 'single') return <fieldset aria-labelledby={labelId} aria-describedby={descriptionId} className=\"questionnaire--choices m-0 min-w-0 border-0 p-0\"><CardRadioGroup options={question.options} value={typeof answer === 'string' ? answer : ''} disabled={disabled} invalid={Boolean(error)} onValueChange={onAnswerChange} columns={1} /></fieldset>;\n\tif (question.type === 'multiple') return <fieldset aria-labelledby={labelId} aria-describedby={descriptionId} className=\"questionnaire--choices m-0 min-w-0 border-0 p-0\"><Stack gap=\"sm\">{question.options.map((option, index) => {\n\t\tconst values = Array.isArray(answer) ? answer : [];\n\t\tconst optionId = `${labelId}-option-${index}`;\n\t\treturn <Stack key={option.value} direction=\"horizontal\" align=\"start\" gap=\"sm\">\n\t\t\t<Checkbox id={optionId} disabled={disabled || option.disabled} aria-invalid={Boolean(error) || undefined} aria-describedby={[descriptionId, option.description ? `${optionId}-description` : undefined].filter(Boolean).join(' ') || undefined} checked={values.includes(option.value)} onCheckedChange={(checked) => onAnswerChange(checked ? [...values, option.value] : values.filter((entry) => entry !== option.value))} />\n\t\t\t<Stack gap=\"dense\"><Label htmlFor={optionId}>{option.label}</Label>{option.description && <Text id={`${optionId}-description`} size=\"xs\" type=\"secondary\">{option.description}</Text>}</Stack>\n\t\t</Stack>;\n\t})}</Stack></fieldset>;\n\tif (question.type === 'boolean') return <Stack direction=\"horizontal\" align=\"center\" gap=\"sm\"><Checkbox {...common} aria-labelledby={undefined} id={`${labelId}-checkbox`} checked={answer === true} onCheckedChange={(checked) => onAnswerChange(checked)} /><Label htmlFor={`${labelId}-checkbox`}>{question.label ?? question.title}</Label></Stack>;\n\treturn null;\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport type { StringsProp } from '../../../lib/strings';\n\nexport type QuestionnaireAnswer = string | string[] | boolean | undefined;\nexport type QuestionnaireAnswers = Record<string, QuestionnaireAnswer>;\nexport interface QuestionnaireOption { value: string; label: string; description?: string; disabled?: boolean }\nexport interface QuestionnaireQuestionBase {\n\t/** Unique stable key, used to retain answers across conditional visibility changes. */\n\tid: string;\n\ttitle: string;\n\tdescription?: string;\n\trequired?: boolean;\n\tdisabled?: boolean;\n\t/** Hidden answers are retained for editing, but excluded from validation/submission. */\n\twhen?: (answers: QuestionnaireAnswers) => boolean;\n\t/** Return an error message, or undefined/true for a valid answer. */\n\tvalidate?: (answer: QuestionnaireAnswer, answers: QuestionnaireAnswers) => string | true | undefined;\n}\nexport interface QuestionnaireTextQuestion extends QuestionnaireQuestionBase {\n\ttype: 'text' | 'textarea';\n\tplaceholder?: string;\n\t/** Native text input type. */\n\tinputType?: 'text' | 'email' | 'url' | 'tel';\n\trows?: number;\n\tmaxLength?: number;\n}\nexport interface QuestionnaireChoiceQuestion extends QuestionnaireQuestionBase {\n\ttype: 'single' | 'multiple' | 'select';\n\toptions: QuestionnaireOption[];\n}\nexport interface QuestionnaireBooleanQuestion extends QuestionnaireQuestionBase { type: 'boolean'; label?: string }\nexport interface QuestionnaireCustomQuestion extends QuestionnaireQuestionBase {\n\ttype: 'custom';\n\trender: (context: QuestionnaireQuestionContext) => ReactNode;\n}\nexport type QuestionnaireQuestion = QuestionnaireTextQuestion | QuestionnaireChoiceQuestion | QuestionnaireBooleanQuestion | QuestionnaireCustomQuestion;\nexport interface QuestionnaireQuestionContext {\n\tquestion: QuestionnaireQuestion;\n\tanswer: QuestionnaireAnswer;\n\tanswers: QuestionnaireAnswers;\n\tdisabled: boolean;\n\terror?: string;\n\t/** Connect custom controls to the visible title and description/error. */\n\tlabelId: string;\n\tdescriptionId?: string;\n\tonAnswerChange: (answer: QuestionnaireAnswer) => void;\n}\nexport interface QuestionnaireSubmitContext { signal: AbortSignal }\nexport interface QuestionnaireStrings {\n\tprevious: string; next: string; submit: string; retry: string; cancel: string;\n\tsubmitting: string; submitted: string; editAnswers: string; empty: string;\n\trequired: string; invalidChoice: string; invalidFormat: string; progress: string;\n\tstep: (current: number, total: number) => string;\n\tsubmitError: string;\n}\nexport const defaultQuestionnaireStrings: QuestionnaireStrings = {\n\tprevious: 'Previous', next: 'Next', submit: 'Submit answers', retry: 'Try again', cancel: 'Cancel submission',\n\tsubmitting: 'Submitting answers…', submitted: 'Your answers have been submitted.', editAnswers: 'Edit answers',\n\tempty: 'There are no questions to answer.', required: 'Please answer this question.', invalidChoice: 'Choose an available option.',\n\tinvalidFormat: 'Enter a valid answer.', progress: 'Questionnaire progress', step: (current, total) => `Question ${current} of ${total}`,\n\tsubmitError: 'Answers could not be submitted. Please try again.',\n};\nexport interface QuestionnaireProps extends Omit<ComponentPropsWithoutRef<'form'>, 'children' | 'onSubmit' | 'defaultValue' | 'onChange'> {\n\tquestions: readonly QuestionnaireQuestion[];\n\t/** Controlled answers. */\n\tvalue?: QuestionnaireAnswers;\n\t/** Initial answers for uncontrolled use. */\n\tdefaultValue?: QuestionnaireAnswers;\n\tonValueChange?: (answers: QuestionnaireAnswers) => void;\n\t/** Controlled active question key. */\n\tquestionId?: string;\n\tdefaultQuestionId?: string;\n\tonQuestionChange?: (id: string) => void;\n\tdisabled?: boolean;\n\t/** Receives only visible, enabled questions. Respect signal to cancel application requests. */\n\tonSubmit?: (answers: QuestionnaireAnswers, context: QuestionnaireSubmitContext) => void | Promise<void>;\n\tonComplete?: (answers: QuestionnaireAnswers) => void;\n\tonError?: (error: unknown) => void;\n\tformatSubmitError?: (error: unknown) => string;\n\theaderSlot?: ReactNode;\n\temptySlot?: ReactNode;\n\t/** Replaces the completion state; default includes an edit-answers action. */\n\tcompletionSlot?: ReactNode;\n\tstrings?: StringsProp<QuestionnaireStrings>;\n}\n","import type { QuestionnaireAnswers, QuestionnaireQuestion, QuestionnaireStrings } from './questionnaire.types';\n\nexport function getVisibleQuestions(questions: readonly QuestionnaireQuestion[], answers: QuestionnaireAnswers) {\n\treturn questions.filter((question) => !question.when || question.when(answers));\n}\nexport function getQuestionnaireAnswer(answers: QuestionnaireAnswers, id: string) {\n\treturn Object.hasOwn(answers, id) ? answers[id] : undefined;\n}\nexport function validateQuestion(question: QuestionnaireQuestion, answers: QuestionnaireAnswers, strings: QuestionnaireStrings): string | undefined {\n\tif (question.disabled) return;\n\tconst value = getQuestionnaireAnswer(answers, question.id);\n\tconst empty = value === undefined || (typeof value === 'string' && !value.trim()) || (Array.isArray(value) && value.length === 0);\n\tif (question.required && (empty || (question.type === 'boolean' && value !== true))) return strings.required;\n\tif (value !== undefined) {\n\t\tif ((question.type === 'text' || question.type === 'textarea') && typeof value !== 'string') return strings.invalidFormat;\n\t\tif (question.type === 'boolean' && typeof value !== 'boolean') return strings.invalidFormat;\n\t\tif ((question.type === 'multiple' && !Array.isArray(value)) || ((question.type === 'single' || question.type === 'select') && typeof value !== 'string')) return strings.invalidChoice;\n\t}\n\tif (!empty) {\n\t\tif (question.type === 'single' || question.type === 'select' || question.type === 'multiple') {\n\t\t\tconst selected = Array.isArray(value) ? value : [value];\n\t\t\tif ((question.type === 'multiple' ? !Array.isArray(value) : typeof value !== 'string') || selected.some((entry) => !question.options.some((option) => option.value === entry && !option.disabled))) return strings.invalidChoice;\n\t\t} else if (question.type === 'text' || question.type === 'textarea') {\n\t\t\tif (typeof value !== 'string' || (question.maxLength !== undefined && value.length > question.maxLength)) return strings.invalidFormat;\n\t\t\tif (question.inputType === 'email' && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) return strings.invalidFormat;\n\t\t\tif (question.inputType === 'url') { try { const url = new URL(value); if (!url.host || !['http:', 'https:'].includes(url.protocol)) return strings.invalidFormat; } catch { return strings.invalidFormat; } }\n\t\t} else if (question.type === 'boolean' && typeof value !== 'boolean') return strings.invalidFormat;\n\t}\n\tconst result = question.validate?.(value, answers);\n\treturn typeof result === 'string' && result.length > 0 ? result : undefined;\n}\n\nexport function getSubmissionAnswers(questions: readonly QuestionnaireQuestion[], answers: QuestionnaireAnswers): QuestionnaireAnswers {\n\treturn Object.fromEntries(getVisibleQuestions(questions, answers).filter((question) => !question.disabled).map((question) => {\n\t\tconst answer = getQuestionnaireAnswer(answers, question.id);\n\t\treturn [question.id, Array.isArray(answer) ? [...answer] : answer];\n\t}));\n}\n","import { forwardRef, useEffect, useId, useRef, useState } from 'react';\nimport { Button } from '../../base/buttons';\nimport { FormField } from '../../base/forms/form-field';\nimport { Progress } from '../../base/feedback';\nimport { Stack } from '../../base/structure';\nimport { Heading, Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport { QuestionnaireControl } from './questionnaire-control';\nimport { defaultQuestionnaireStrings, type QuestionnaireAnswer, type QuestionnaireAnswers, type QuestionnaireProps } from './questionnaire.types';\nimport { getQuestionnaireAnswer, getSubmissionAnswers, getVisibleQuestions, validateQuestion } from './questionnaire.utils';\n\nconst emptyAnswers: QuestionnaireAnswers = {};\n\nexport const Questionnaire = forwardRef<HTMLFormElement, QuestionnaireProps>(function Questionnaire(props, ref) {\n\tconst { questions, value: controlledValue, defaultValue = {}, onValueChange, questionId, defaultQuestionId, onQuestionChange,\n\t\tdisabled = false, onSubmit, onComplete, onError, formatSubmitError, headerSlot, emptySlot, completionSlot, strings: stringsProp,\n\t\tclassName, onReset, ...formProps } = props;\n\tconst controlled = Object.prototype.hasOwnProperty.call(props, 'value');\n\tconst stepControlled = Object.prototype.hasOwnProperty.call(props, 'questionId');\n\tconst [internalValue, setInternalValue] = useState<QuestionnaireAnswers>(defaultValue);\n\tconst answers = controlled ? controlledValue ?? emptyAnswers : internalValue;\n\tconst answersRef = useRef(answers); answersRef.current = answers;\n\tconst visible = getVisibleQuestions(questions, answers);\n\tconst [internalId, setInternalId] = useState<string | undefined>(defaultQuestionId ?? visible[0]?.id);\n\tconst requestedId = stepControlled ? questionId : internalId;\n\tconst current = visible.find((question) => question.id === requestedId) ?? visible[0];\n\tconst position = current ? visible.indexOf(current) : 0;\n\tconst [errors, setErrors] = useState<Record<string, string | undefined>>({});\n\tconst [submitError, setSubmitError] = useState<string>();\n\tconst [busy, setBusy] = useState(false);\n\tconst [completed, setCompleted] = useState(false);\n\tconst submission = useRef<AbortController | null>(null);\n\tconst resetTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\tconst mounted = useRef(true);\n\tconst stageRef = useRef<HTMLDivElement>(null);\n\tconst strings = useStrings(defaultQuestionnaireStrings, stringsProp);\n\tconst id = useId();\n\tconst labelId = `${id}-title`;\n\tconst descriptionId = `${id}-description`;\n\tconst locked = busy || disabled;\n\tconst cancelReset = () => { clearTimeout(resetTimer.current); resetTimer.current = undefined; };\n\tconst cancel = () => { submission.current?.abort(); submission.current = null; setBusy(false); };\n\tconst goTo = (nextId: string) => { if (!stepControlled) setInternalId(nextId); onQuestionChange?.(nextId); };\n\tconst setAnswer = (answer: QuestionnaireAnswer) => {\n\t\tif (!current || current.disabled || locked) return;\n\t\tconst next = { ...answersRef.current, [current.id]: answer };\n\t\tif (!controlled) { answersRef.current = next; setInternalValue(next); }\n\t\tonValueChange?.(next);\n\t\tsetErrors((previous) => ({ ...previous, [current.id]: undefined })); setSubmitError(undefined); setCompleted(false);\n\t};\n\tuseEffect(() => { stageRef.current?.focus(); }, [current?.id, completed]);\n\tuseEffect(() => {\n\t\t// Replacing data/schema or disabling during a request invalidates that result.\n\t\tcancelReset(); cancel(); setErrors({}); setSubmitError(undefined); setCompleted(false);\n\t}, [answers, questions, disabled]);\n\tuseEffect(() => { mounted.current = true; return () => { mounted.current = false; cancelReset(); submission.current?.abort(); submission.current = null; }; }, []);\n\tconst advance = () => {\n\t\tif (!current || locked) return;\n\t\tconst error = validateQuestion(current, answersRef.current, strings);\n\t\tsetErrors((previous) => ({ ...previous, [current.id]: error }));\n\t\tif (error) { stageRef.current?.focus(); return; }\n\t\tif (visible[position + 1]) goTo(visible[position + 1].id);\n\t};\n\tconst submit = async () => {\n\t\tif (submission.current || disabled || !visible.length) return;\n\t\tconst validation = Object.fromEntries(visible.map((question) => [question.id, validateQuestion(question, answersRef.current, strings)]));\n\t\tsetErrors(validation);\n\t\tconst firstInvalid = visible.find((question) => validation[question.id]);\n\t\tif (firstInvalid) { goTo(firstInvalid.id); stageRef.current?.focus(); return; }\n\t\tconst controller = new AbortController(); submission.current = controller;\n\t\tsetSubmitError(undefined); setBusy(true);\n\t\tconst snapshot = getSubmissionAnswers(questions, answersRef.current);\n\t\ttry {\n\t\t\tawait onSubmit?.(snapshot, { signal: controller.signal });\n\t\t\tif (submission.current !== controller || controller.signal.aborted) return;\n\t\t\tsetCompleted(true); onComplete?.(snapshot);\n\t\t} catch (error) {\n\t\t\tif (submission.current !== controller || controller.signal.aborted) return;\n\t\t\tsetSubmitError(formatSubmitError?.(error) ?? strings.submitError); onError?.(error);\n\t\t} finally { if (submission.current === controller) { submission.current = null; setBusy(false); } }\n\t};\n\tconst currentError = current && Object.hasOwn(errors, current.id) ? errors[current.id] : undefined;\n\tconst description = current && (currentError || current.description);\n\treturn <form {...formProps} ref={ref} noValidate aria-busy={busy || undefined} className={cn('questionnaire--component min-w-0', className)} onSubmit={(event) => { event.preventDefault(); if (position < visible.length - 1) advance(); else void submit(); }} onReset={(event) => {\n\t\tonReset?.(event); const nativeEvent = event.nativeEvent;\n\t\t// Trusted events can run microtasks before native ancestor listeners have cancelled reset.\n\t\tcancelReset(); resetTimer.current = setTimeout(() => {\n\t\t\tresetTimer.current = undefined;\n\t\t\tif (!mounted.current || nativeEvent.defaultPrevented || disabled) return; cancel();\n\t\t\tif (!controlled) { answersRef.current = defaultValue; setInternalValue(defaultValue); } onValueChange?.(defaultValue);\n\t\t\tsetErrors({}); setSubmitError(undefined); setCompleted(false);\n\t\t\tconst initialVisible = getVisibleQuestions(questions, defaultValue);\n\t\t\tconst initialQuestion = initialVisible.find((question) => question.id === defaultQuestionId) ?? initialVisible[0];\n\t\t\tif (initialQuestion) goTo(initialQuestion.id); else if (!stepControlled) setInternalId(undefined);\n\t\t}, 0);\n\t}}>\n\t\t<Stack gap=\"lg\">\n\t\t\t{headerSlot}\n\t\t\t{!current ? emptySlot ?? <Text type=\"secondary\">{strings.empty}</Text> : completed ? completionSlot ?? <Stack gap=\"sm\"><Text role=\"status\">{strings.submitted}</Text><Button disabled={disabled} type=\"button\" buttonStyle=\"outline\" onClick={() => { setCompleted(false); if (visible[0]) goTo(visible[0].id); }}>{strings.editAnswers}</Button></Stack> : <>\n\t\t\t\t<Progress value={position + 1} max={visible.length} label={strings.progress} valueSlot={<Text size=\"xs\" type=\"secondary\" aria-live=\"polite\">{strings.step(position + 1, visible.length)}</Text>} />\n\t\t\t\t<Stack ref={stageRef} gap=\"normal\" tabIndex={-1} role=\"group\" aria-labelledby={labelId} className=\"questionnaire--question outline-none\">\n\t\t\t\t\t<Heading id={labelId} tag=\"h3\">{current.title}</Heading>\n\t\t\t\t\t<FormField required={current.required} error={currentError} hint={current.description} supportingTextId={descriptionId}>\n\t\t\t\t\t\t<QuestionnaireControl key={current.id} question={current} answer={getQuestionnaireAnswer(answers, current.id)} answers={answers} disabled={locked || Boolean(current.disabled)} error={currentError} labelId={labelId} descriptionId={description ? descriptionId : undefined} onAnswerChange={setAnswer} />\n\t\t\t\t\t</FormField>\n\t\t\t\t</Stack>\n\t\t\t\t{submitError && <Text role=\"alert\" type=\"error\">{submitError}</Text>}\n\t\t\t\t{busy && <Text role=\"status\" type=\"secondary\">{strings.submitting}</Text>}\n\t\t\t\t<Stack direction=\"horizontal\" gap=\"sm\" wrap>\n\t\t\t\t\t<Button type=\"button\" buttonStyle=\"outline\" disabled={locked || position === 0} onClick={() => { setSubmitError(undefined); goTo(visible[position - 1].id); }}>{strings.previous}</Button>\n\t\t\t\t\t{position < visible.length - 1 ? <Button type=\"button\" disabled={locked} onClick={advance}>{strings.next}</Button> : <Button type=\"submit\" disabled={locked}>{submitError ? strings.retry : strings.submit}</Button>}\n\t\t\t\t\t{busy && <Button type=\"button\" buttonStyle=\"outline\" disabled={disabled} onClick={cancel}>{strings.cancel}</Button>}\n\t\t\t\t</Stack>\n\t\t\t</>}\n\t\t</Stack>\n\t</form>;\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"questionnaire.js","names":["_Fragment","useDensityConfig","resolveComponentScale","cn","Button","Label","Stack","Progress","formLabelSizeClasses","Input","FormField","Textarea","Select","CardRadioGroup","choiceControlTrackClasses","Checkbox","Fragment$1","QuestionnaireControl","context","checkTrack","defaultScale","common","error","labelId","descriptionId","question","answer","onAnswerChange","event","values","optionId","index","disabled","option","checked","entry","Text","defaultQuestionnaireStrings","current","total","getVisibleQuestions","questions","answers","getQuestionnaireAnswer","id","validateQuestion","value","empty","strings","selected","url","result","getSubmissionAnswers","emptyAnswers","Questionnaire","forwardRef","controlledValue","stringsProp","formProps","props","controlled","stepControlled","internalValue","setInternalValue","useState","defaultValue","answersRef","useRef","visible","internalId","setInternalId","defaultQuestionId","requestedId","questionId","position","errors","setErrors","submitError","setSubmitError","busy","setBusy","completed","setCompleted","submission","resetTimer","mounted","stageRef","useStrings","useId","locked","cancelReset","cancel","goTo","nextId","onQuestionChange","setAnswer","next","onValueChange","previous","useEffect","advance","submit","validation","firstInvalid","controller","snapshot","onSubmit","onComplete","formatSubmitError","onError","currentError","description","className","nativeEvent","initialVisible","initialQuestion","headerSlot","completionSlot","Heading","emptySlot"],"sources":["../../src/components/features/questionnaire/questionnaire-control.tsx","../../src/components/features/questionnaire/questionnaire.types.ts","../../src/components/features/questionnaire/questionnaire.utils.ts","../../src/components/features/questionnaire/questionnaire.tsx"],"sourcesContent":["import { CardRadioGroup, Checkbox, Select } from '../../base/choice-inputs';\nimport { choiceControlTrackClasses } from '../../base/choice-inputs/choice-types';\nimport { formLabelSizeClasses } from '../../base/forms/form-sizing';\nimport { Input, Textarea } from '../../base/text-inputs';\nimport { Stack } from '../../base/structure';\nimport { Label, Text } from '../../typography';\nimport { useDensityConfig } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\nimport type { QuestionnaireQuestionContext } from './questionnaire.types';\n\n/** All interactive behavior remains with public Base UI-backed field owners. */\nexport function QuestionnaireControl({ question, answer, disabled, error, labelId, descriptionId, onAnswerChange, ...context }: QuestionnaireQuestionContext) {\n\tconst { defaultScale } = useDensityConfig();\n\t// Each checkbox sits in a track one Label line tall, so it centres on the\n\t// option's first line whether or not the label wraps.\n\tconst checkTrack = cn('questionnaire--check', choiceControlTrackClasses, formLabelSizeClasses[resolveComponentScale(undefined, defaultScale)]);\n\tconst common = { disabled, invalid: Boolean(error), 'aria-labelledby': labelId, 'aria-describedby': descriptionId, required: question.required };\n\tif (question.type === 'custom') return question.render({ ...context, question, answer, disabled, error, labelId, descriptionId, onAnswerChange });\n\tif (question.type === 'text') return <Input {...common} type={question.inputType ?? 'text'} maxLength={question.maxLength} placeholder={question.placeholder} value={typeof answer === 'string' ? answer : ''} onChange={(event) => onAnswerChange(event.target.value)} />;\n\tif (question.type === 'textarea') return <Textarea {...common} rows={question.rows ?? 4} maxLength={question.maxLength} placeholder={question.placeholder} value={typeof answer === 'string' ? answer : ''} onChange={(event) => onAnswerChange(event.target.value)} />;\n\tif (question.type === 'select') return <Select {...common} options={question.options} value={typeof answer === 'string' ? answer : null} onValueChange={onAnswerChange} />;\n\tif (question.type === 'single') return <fieldset aria-labelledby={labelId} aria-describedby={descriptionId} className=\"questionnaire--choices m-0 min-w-0 border-0 p-0\"><CardRadioGroup options={question.options} value={typeof answer === 'string' ? answer : ''} disabled={disabled} invalid={Boolean(error)} onValueChange={onAnswerChange} columns={1} /></fieldset>;\n\tif (question.type === 'multiple') return <fieldset aria-labelledby={labelId} aria-describedby={descriptionId} className=\"questionnaire--choices m-0 min-w-0 border-0 p-0\"><Stack gap=\"sm\">{question.options.map((option, index) => {\n\t\tconst values = Array.isArray(answer) ? answer : [];\n\t\tconst optionId = `${labelId}-option-${index}`;\n\t\treturn <Stack key={option.value} direction=\"horizontal\" align=\"start\" gap=\"sm\">\n\t\t\t<span className={checkTrack}><Checkbox id={optionId} disabled={disabled || option.disabled} aria-invalid={Boolean(error) || undefined} aria-describedby={[descriptionId, option.description ? `${optionId}-description` : undefined].filter(Boolean).join(' ') || undefined} checked={values.includes(option.value)} onCheckedChange={(checked) => onAnswerChange(checked ? [...values, option.value] : values.filter((entry) => entry !== option.value))} /></span>\n\t\t\t<Stack gap=\"dense\"><Label htmlFor={optionId}>{option.label}</Label>{option.description && <Text id={`${optionId}-description`} size=\"xs\" type=\"secondary\">{option.description}</Text>}</Stack>\n\t\t</Stack>;\n\t})}</Stack></fieldset>;\n\tif (question.type === 'boolean') return <Stack direction=\"horizontal\" align=\"start\" gap=\"sm\"><span className={checkTrack}><Checkbox {...common} aria-labelledby={undefined} id={`${labelId}-checkbox`} checked={answer === true} onCheckedChange={(checked) => onAnswerChange(checked)} /></span><Label htmlFor={`${labelId}-checkbox`}>{question.label ?? question.title}</Label></Stack>;\n\treturn null;\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport type { StringsProp } from '../../../lib/strings';\n\nexport type QuestionnaireAnswer = string | string[] | boolean | undefined;\nexport type QuestionnaireAnswers = Record<string, QuestionnaireAnswer>;\nexport interface QuestionnaireOption { value: string; label: string; description?: string; disabled?: boolean }\nexport interface QuestionnaireQuestionBase {\n\t/** Unique stable key, used to retain answers across conditional visibility changes. */\n\tid: string;\n\ttitle: string;\n\tdescription?: string;\n\trequired?: boolean;\n\tdisabled?: boolean;\n\t/** Hidden answers are retained for editing, but excluded from validation/submission. */\n\twhen?: (answers: QuestionnaireAnswers) => boolean;\n\t/** Return an error message, or undefined/true for a valid answer. */\n\tvalidate?: (answer: QuestionnaireAnswer, answers: QuestionnaireAnswers) => string | true | undefined;\n}\nexport interface QuestionnaireTextQuestion extends QuestionnaireQuestionBase {\n\ttype: 'text' | 'textarea';\n\tplaceholder?: string;\n\t/** Native text input type. */\n\tinputType?: 'text' | 'email' | 'url' | 'tel';\n\trows?: number;\n\tmaxLength?: number;\n}\nexport interface QuestionnaireChoiceQuestion extends QuestionnaireQuestionBase {\n\ttype: 'single' | 'multiple' | 'select';\n\toptions: QuestionnaireOption[];\n}\nexport interface QuestionnaireBooleanQuestion extends QuestionnaireQuestionBase { type: 'boolean'; label?: string }\nexport interface QuestionnaireCustomQuestion extends QuestionnaireQuestionBase {\n\ttype: 'custom';\n\trender: (context: QuestionnaireQuestionContext) => ReactNode;\n}\nexport type QuestionnaireQuestion = QuestionnaireTextQuestion | QuestionnaireChoiceQuestion | QuestionnaireBooleanQuestion | QuestionnaireCustomQuestion;\nexport interface QuestionnaireQuestionContext {\n\tquestion: QuestionnaireQuestion;\n\tanswer: QuestionnaireAnswer;\n\tanswers: QuestionnaireAnswers;\n\tdisabled: boolean;\n\terror?: string;\n\t/** Connect custom controls to the visible title and description/error. */\n\tlabelId: string;\n\tdescriptionId?: string;\n\tonAnswerChange: (answer: QuestionnaireAnswer) => void;\n}\nexport interface QuestionnaireSubmitContext { signal: AbortSignal }\nexport interface QuestionnaireStrings {\n\tprevious: string; next: string; submit: string; retry: string; cancel: string;\n\tsubmitting: string; submitted: string; editAnswers: string; empty: string;\n\trequired: string; invalidChoice: string; invalidFormat: string; progress: string;\n\tstep: (current: number, total: number) => string;\n\tsubmitError: string;\n}\nexport const defaultQuestionnaireStrings: QuestionnaireStrings = {\n\tprevious: 'Previous', next: 'Next', submit: 'Submit answers', retry: 'Try again', cancel: 'Cancel submission',\n\tsubmitting: 'Submitting answers…', submitted: 'Your answers have been submitted.', editAnswers: 'Edit answers',\n\tempty: 'There are no questions to answer.', required: 'Please answer this question.', invalidChoice: 'Choose an available option.',\n\tinvalidFormat: 'Enter a valid answer.', progress: 'Questionnaire progress', step: (current, total) => `Question ${current} of ${total}`,\n\tsubmitError: 'Answers could not be submitted. Please try again.',\n};\nexport interface QuestionnaireProps extends Omit<ComponentPropsWithoutRef<'form'>, 'children' | 'onSubmit' | 'defaultValue' | 'onChange'> {\n\tquestions: readonly QuestionnaireQuestion[];\n\t/** Controlled answers. */\n\tvalue?: QuestionnaireAnswers;\n\t/** Initial answers for uncontrolled use. */\n\tdefaultValue?: QuestionnaireAnswers;\n\tonValueChange?: (answers: QuestionnaireAnswers) => void;\n\t/** Controlled active question key. */\n\tquestionId?: string;\n\tdefaultQuestionId?: string;\n\tonQuestionChange?: (id: string) => void;\n\tdisabled?: boolean;\n\t/** Receives only visible, enabled questions. Respect signal to cancel application requests. */\n\tonSubmit?: (answers: QuestionnaireAnswers, context: QuestionnaireSubmitContext) => void | Promise<void>;\n\tonComplete?: (answers: QuestionnaireAnswers) => void;\n\tonError?: (error: unknown) => void;\n\tformatSubmitError?: (error: unknown) => string;\n\theaderSlot?: ReactNode;\n\temptySlot?: ReactNode;\n\t/** Replaces the completion state; default includes an edit-answers action. */\n\tcompletionSlot?: ReactNode;\n\tstrings?: StringsProp<QuestionnaireStrings>;\n}\n","import type { QuestionnaireAnswers, QuestionnaireQuestion, QuestionnaireStrings } from './questionnaire.types';\n\nexport function getVisibleQuestions(questions: readonly QuestionnaireQuestion[], answers: QuestionnaireAnswers) {\n\treturn questions.filter((question) => !question.when || question.when(answers));\n}\nexport function getQuestionnaireAnswer(answers: QuestionnaireAnswers, id: string) {\n\treturn Object.hasOwn(answers, id) ? answers[id] : undefined;\n}\nexport function validateQuestion(question: QuestionnaireQuestion, answers: QuestionnaireAnswers, strings: QuestionnaireStrings): string | undefined {\n\tif (question.disabled) return;\n\tconst value = getQuestionnaireAnswer(answers, question.id);\n\tconst empty = value === undefined || (typeof value === 'string' && !value.trim()) || (Array.isArray(value) && value.length === 0);\n\tif (question.required && (empty || (question.type === 'boolean' && value !== true))) return strings.required;\n\tif (value !== undefined) {\n\t\tif ((question.type === 'text' || question.type === 'textarea') && typeof value !== 'string') return strings.invalidFormat;\n\t\tif (question.type === 'boolean' && typeof value !== 'boolean') return strings.invalidFormat;\n\t\tif ((question.type === 'multiple' && !Array.isArray(value)) || ((question.type === 'single' || question.type === 'select') && typeof value !== 'string')) return strings.invalidChoice;\n\t}\n\tif (!empty) {\n\t\tif (question.type === 'single' || question.type === 'select' || question.type === 'multiple') {\n\t\t\tconst selected = Array.isArray(value) ? value : [value];\n\t\t\tif ((question.type === 'multiple' ? !Array.isArray(value) : typeof value !== 'string') || selected.some((entry) => !question.options.some((option) => option.value === entry && !option.disabled))) return strings.invalidChoice;\n\t\t} else if (question.type === 'text' || question.type === 'textarea') {\n\t\t\tif (typeof value !== 'string' || (question.maxLength !== undefined && value.length > question.maxLength)) return strings.invalidFormat;\n\t\t\tif (question.inputType === 'email' && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) return strings.invalidFormat;\n\t\t\tif (question.inputType === 'url') { try { const url = new URL(value); if (!url.host || !['http:', 'https:'].includes(url.protocol)) return strings.invalidFormat; } catch { return strings.invalidFormat; } }\n\t\t} else if (question.type === 'boolean' && typeof value !== 'boolean') return strings.invalidFormat;\n\t}\n\tconst result = question.validate?.(value, answers);\n\treturn typeof result === 'string' && result.length > 0 ? result : undefined;\n}\n\nexport function getSubmissionAnswers(questions: readonly QuestionnaireQuestion[], answers: QuestionnaireAnswers): QuestionnaireAnswers {\n\treturn Object.fromEntries(getVisibleQuestions(questions, answers).filter((question) => !question.disabled).map((question) => {\n\t\tconst answer = getQuestionnaireAnswer(answers, question.id);\n\t\treturn [question.id, Array.isArray(answer) ? [...answer] : answer];\n\t}));\n}\n","import { forwardRef, useEffect, useId, useRef, useState } from 'react';\nimport { Button } from '../../base/buttons';\nimport { FormField } from '../../base/forms/form-field';\nimport { Progress } from '../../base/feedback';\nimport { Stack } from '../../base/structure';\nimport { Heading, Text } from '../../typography';\nimport { useStrings } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport { QuestionnaireControl } from './questionnaire-control';\nimport { defaultQuestionnaireStrings, type QuestionnaireAnswer, type QuestionnaireAnswers, type QuestionnaireProps } from './questionnaire.types';\nimport { getQuestionnaireAnswer, getSubmissionAnswers, getVisibleQuestions, validateQuestion } from './questionnaire.utils';\n\nconst emptyAnswers: QuestionnaireAnswers = {};\n\nexport const Questionnaire = forwardRef<HTMLFormElement, QuestionnaireProps>(function Questionnaire(props, ref) {\n\tconst { questions, value: controlledValue, defaultValue = {}, onValueChange, questionId, defaultQuestionId, onQuestionChange,\n\t\tdisabled = false, onSubmit, onComplete, onError, formatSubmitError, headerSlot, emptySlot, completionSlot, strings: stringsProp,\n\t\tclassName, onReset, ...formProps } = props;\n\tconst controlled = Object.prototype.hasOwnProperty.call(props, 'value');\n\tconst stepControlled = Object.prototype.hasOwnProperty.call(props, 'questionId');\n\tconst [internalValue, setInternalValue] = useState<QuestionnaireAnswers>(defaultValue);\n\tconst answers = controlled ? controlledValue ?? emptyAnswers : internalValue;\n\tconst answersRef = useRef(answers); answersRef.current = answers;\n\tconst visible = getVisibleQuestions(questions, answers);\n\tconst [internalId, setInternalId] = useState<string | undefined>(defaultQuestionId ?? visible[0]?.id);\n\tconst requestedId = stepControlled ? questionId : internalId;\n\tconst current = visible.find((question) => question.id === requestedId) ?? visible[0];\n\tconst position = current ? visible.indexOf(current) : 0;\n\tconst [errors, setErrors] = useState<Record<string, string | undefined>>({});\n\tconst [submitError, setSubmitError] = useState<string>();\n\tconst [busy, setBusy] = useState(false);\n\tconst [completed, setCompleted] = useState(false);\n\tconst submission = useRef<AbortController | null>(null);\n\tconst resetTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\tconst mounted = useRef(true);\n\tconst stageRef = useRef<HTMLDivElement>(null);\n\tconst strings = useStrings(defaultQuestionnaireStrings, stringsProp);\n\tconst id = useId();\n\tconst labelId = `${id}-title`;\n\tconst descriptionId = `${id}-description`;\n\tconst locked = busy || disabled;\n\tconst cancelReset = () => { clearTimeout(resetTimer.current); resetTimer.current = undefined; };\n\tconst cancel = () => { submission.current?.abort(); submission.current = null; setBusy(false); };\n\tconst goTo = (nextId: string) => { if (!stepControlled) setInternalId(nextId); onQuestionChange?.(nextId); };\n\tconst setAnswer = (answer: QuestionnaireAnswer) => {\n\t\tif (!current || current.disabled || locked) return;\n\t\tconst next = { ...answersRef.current, [current.id]: answer };\n\t\tif (!controlled) { answersRef.current = next; setInternalValue(next); }\n\t\tonValueChange?.(next);\n\t\tsetErrors((previous) => ({ ...previous, [current.id]: undefined })); setSubmitError(undefined); setCompleted(false);\n\t};\n\tuseEffect(() => { stageRef.current?.focus(); }, [current?.id, completed]);\n\tuseEffect(() => {\n\t\t// Replacing data/schema or disabling during a request invalidates that result.\n\t\tcancelReset(); cancel(); setErrors({}); setSubmitError(undefined); setCompleted(false);\n\t}, [answers, questions, disabled]);\n\tuseEffect(() => { mounted.current = true; return () => { mounted.current = false; cancelReset(); submission.current?.abort(); submission.current = null; }; }, []);\n\tconst advance = () => {\n\t\tif (!current || locked) return;\n\t\tconst error = validateQuestion(current, answersRef.current, strings);\n\t\tsetErrors((previous) => ({ ...previous, [current.id]: error }));\n\t\tif (error) { stageRef.current?.focus(); return; }\n\t\tif (visible[position + 1]) goTo(visible[position + 1].id);\n\t};\n\tconst submit = async () => {\n\t\tif (submission.current || disabled || !visible.length) return;\n\t\tconst validation = Object.fromEntries(visible.map((question) => [question.id, validateQuestion(question, answersRef.current, strings)]));\n\t\tsetErrors(validation);\n\t\tconst firstInvalid = visible.find((question) => validation[question.id]);\n\t\tif (firstInvalid) { goTo(firstInvalid.id); stageRef.current?.focus(); return; }\n\t\tconst controller = new AbortController(); submission.current = controller;\n\t\tsetSubmitError(undefined); setBusy(true);\n\t\tconst snapshot = getSubmissionAnswers(questions, answersRef.current);\n\t\ttry {\n\t\t\tawait onSubmit?.(snapshot, { signal: controller.signal });\n\t\t\tif (submission.current !== controller || controller.signal.aborted) return;\n\t\t\tsetCompleted(true); onComplete?.(snapshot);\n\t\t} catch (error) {\n\t\t\tif (submission.current !== controller || controller.signal.aborted) return;\n\t\t\tsetSubmitError(formatSubmitError?.(error) ?? strings.submitError); onError?.(error);\n\t\t} finally { if (submission.current === controller) { submission.current = null; setBusy(false); } }\n\t};\n\tconst currentError = current && Object.hasOwn(errors, current.id) ? errors[current.id] : undefined;\n\tconst description = current && (currentError || current.description);\n\treturn <form {...formProps} ref={ref} noValidate aria-busy={busy || undefined} className={cn('questionnaire--component min-w-0', className)} onSubmit={(event) => { event.preventDefault(); if (position < visible.length - 1) advance(); else void submit(); }} onReset={(event) => {\n\t\tonReset?.(event); const nativeEvent = event.nativeEvent;\n\t\t// Trusted events can run microtasks before native ancestor listeners have cancelled reset.\n\t\tcancelReset(); resetTimer.current = setTimeout(() => {\n\t\t\tresetTimer.current = undefined;\n\t\t\tif (!mounted.current || nativeEvent.defaultPrevented || disabled) return; cancel();\n\t\t\tif (!controlled) { answersRef.current = defaultValue; setInternalValue(defaultValue); } onValueChange?.(defaultValue);\n\t\t\tsetErrors({}); setSubmitError(undefined); setCompleted(false);\n\t\t\tconst initialVisible = getVisibleQuestions(questions, defaultValue);\n\t\t\tconst initialQuestion = initialVisible.find((question) => question.id === defaultQuestionId) ?? initialVisible[0];\n\t\t\tif (initialQuestion) goTo(initialQuestion.id); else if (!stepControlled) setInternalId(undefined);\n\t\t}, 0);\n\t}}>\n\t\t<Stack gap=\"lg\">\n\t\t\t{headerSlot}\n\t\t\t{!current ? emptySlot ?? <Text type=\"secondary\">{strings.empty}</Text> : completed ? completionSlot ?? <Stack gap=\"sm\"><Text role=\"status\">{strings.submitted}</Text><Button disabled={disabled} type=\"button\" buttonStyle=\"outline\" onClick={() => { setCompleted(false); if (visible[0]) goTo(visible[0].id); }}>{strings.editAnswers}</Button></Stack> : <>\n\t\t\t\t<Progress value={position + 1} max={visible.length} label={strings.progress} valueSlot={<Text size=\"xs\" type=\"secondary\" aria-live=\"polite\">{strings.step(position + 1, visible.length)}</Text>} />\n\t\t\t\t<Stack ref={stageRef} gap=\"normal\" tabIndex={-1} role=\"group\" aria-labelledby={labelId} className=\"questionnaire--question outline-none\">\n\t\t\t\t\t<Heading id={labelId} tag=\"h3\">{current.title}</Heading>\n\t\t\t\t\t<FormField required={current.required} error={currentError} hint={current.description} supportingTextId={descriptionId}>\n\t\t\t\t\t\t<QuestionnaireControl key={current.id} question={current} answer={getQuestionnaireAnswer(answers, current.id)} answers={answers} disabled={locked || Boolean(current.disabled)} error={currentError} labelId={labelId} descriptionId={description ? descriptionId : undefined} onAnswerChange={setAnswer} />\n\t\t\t\t\t</FormField>\n\t\t\t\t</Stack>\n\t\t\t\t{submitError && <Text role=\"alert\" type=\"error\">{submitError}</Text>}\n\t\t\t\t{busy && <Text role=\"status\" type=\"secondary\">{strings.submitting}</Text>}\n\t\t\t\t<Stack direction=\"horizontal\" gap=\"sm\" wrap>\n\t\t\t\t\t<Button type=\"button\" buttonStyle=\"outline\" disabled={locked || position === 0} onClick={() => { setSubmitError(undefined); goTo(visible[position - 1].id); }}>{strings.previous}</Button>\n\t\t\t\t\t{position < visible.length - 1 ? <Button tone=\"primary\" type=\"button\" disabled={locked} onClick={advance}>{strings.next}</Button> : <Button tone=\"primary\" type=\"submit\" disabled={locked}>{submitError ? strings.retry : strings.submit}</Button>}\n\t\t\t\t\t{busy && <Button type=\"button\" buttonStyle=\"outline\" disabled={disabled} onClick={cancel}>{strings.cancel}</Button>}\n\t\t\t\t</Stack>\n\t\t\t</>}\n\t\t</Stack>\n\t</form>;\n});\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import { useStrings as e } from "../lib/strings.js";
3
- import { t } from "../utils-BvH9PSmq.js";
4
- import { a as n, r } from "../typography-BxQgiZyw.js";
5
- import { t as i } from "../button-BZDasD04.js";
6
- import { t as a } from "../structure-CRdqVawd.js";
7
- import { n as o } from "../cards-qGSErLw_.js";
8
- import { r as s } from "../overlays-DUbs1KEi.js";
9
- import { n as c } from "../display-CS6Hbk18.js";
10
- import { l } from "../data-display-Bihs9Ven.js";
3
+ import { t } from "../utils-l5LpDw2z.js";
4
+ import { n } from "../buttons-SbIcm1HJ.js";
5
+ import { a as r, s as i } from "../typography-DTRkE9zL.js";
6
+ import { t as a } from "../structure-DC2dygdA.js";
7
+ import { n as o } from "../cards-CiiHpKYd.js";
8
+ import { r as s } from "../overlays-I0axtYA6.js";
9
+ import { n as c } from "../display-DsQTVzMz.js";
10
+ import { s as l } from "../data-display-DafIvCl5.js";
11
11
  import { useCallback as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
12
12
  import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
13
13
  import { Eye as v, PackageOpen as y } from "lucide-react";
@@ -101,39 +101,39 @@ function x({ resource: e, mapInitialSelected: t, onConfirmSelection: n, isConfir
101
101
  }
102
102
  //#endregion
103
103
  //#region src/components/features/resource-assignment/partials/default-shared-resource-partials.tsx
104
- function S({ context: t, strings: i, getSelectionLabel: o }) {
105
- let s = e(b, i), c = t.selectedSuggestion;
104
+ function S({ context: t, strings: n, getSelectionLabel: o }) {
105
+ let s = e(b, n), c = t.selectedSuggestion;
106
106
  if (c === null) return null;
107
107
  let l = o?.(c) ?? (typeof c == "object" && c && "label" in c && typeof c.label == "string" ? c.label : null);
108
108
  return l == null || l === "" ? null : /* @__PURE__ */ _(a, {
109
109
  gap: "dense",
110
- className: "default-dialog-summary--component shared-resource-card--dialog-summary rounded-radius bg-muted p-surface",
111
- children: [/* @__PURE__ */ g(r, { children: s.currentlySelected }), /* @__PURE__ */ g(n, { children: l })]
110
+ className: "default-dialog-summary--component shared-resource-card--dialog-summary",
111
+ children: [/* @__PURE__ */ g(r, { children: s.currentlySelected }), /* @__PURE__ */ g(i, { children: l })]
112
112
  });
113
113
  }
114
114
  S.displayName = "DefaultDialogSummary";
115
- function C({ context: t, strings: r }) {
116
- let i = e(b, r);
117
- return /* @__PURE__ */ g(n, {
115
+ function C({ context: t, strings: n }) {
116
+ let r = e(b, n);
117
+ return /* @__PURE__ */ g(i, {
118
118
  type: "secondary",
119
119
  className: "default-resource-content--component",
120
- children: i.noResourceContent
120
+ children: r.noResourceContent
121
121
  });
122
122
  }
123
123
  C.displayName = "DefaultResourceContent";
124
- function w({ context: t, strings: n }) {
125
- let r = e(b, n);
124
+ function w({ context: t, strings: r }) {
125
+ let i = e(b, r);
126
126
  return /* @__PURE__ */ g(l, {
127
- title: r.noResourceSelected,
127
+ title: i.noResourceSelected,
128
128
  description: !1,
129
129
  media: /* @__PURE__ */ g(y, { className: "size-icon" }),
130
130
  mediaVariant: "icon-soft",
131
- actions: /* @__PURE__ */ g(i, {
131
+ actions: /* @__PURE__ */ g(n, {
132
132
  tone: "secondary",
133
133
  buttonStyle: "outline",
134
134
  onClick: t.openSelector,
135
135
  type: "button",
136
- children: r.changeAction
136
+ children: i.changeAction
137
137
  }),
138
138
  className: "default-empty-content--component"
139
139
  });
@@ -149,15 +149,15 @@ function T({ SelectorComponent: e, selectorProps: t, context: n }) {
149
149
  context: "dialog"
150
150
  };
151
151
  return /* @__PURE__ */ g("div", {
152
- className: "default-dialog-content--component py-space-sm",
152
+ className: "default-dialog-content--component",
153
153
  children: /* @__PURE__ */ g(e, { ...r })
154
154
  });
155
155
  }
156
156
  T.displayName = "DefaultDialogContent";
157
157
  //#endregion
158
158
  //#region src/components/features/resource-assignment/resource-assignment.tsx
159
- function E({ icon: r, title: l, description: u, className: d, contentClassName: p, alert: m, alertTone: y, actions: E, headerAction: D, footerText: O, resource: k, selector: A, sections: j, sectionsClassName: M, viewAction: N, viewLink: P, ResourceContentComponent: F, EmptyContentComponent: I, renderResourceContent: L, renderEmptyContent: R, strings: z }) {
160
- let B = e(b, z), V = x({
159
+ function E({ icon: r, title: l, description: u, className: d, contentClassName: p, alert: m, alertTone: y, actions: E, headerAction: D, footerText: O, resource: k, selector: A, sections: j, sectionsClassName: M, viewAction: N, viewLink: P, ResourceContentComponent: F, EmptyContentComponent: I, renderResourceContent: L, renderEmptyContent: R, strings: ee }) {
160
+ let z = e(b, ee), B = x({
161
161
  resource: k,
162
162
  mapInitialSelected: A?.mapInitialSelected ?? (() => null),
163
163
  onConfirmSelection: A?.onConfirmSelection ?? (() => void 0),
@@ -171,142 +171,150 @@ function E({ icon: r, title: l, description: u, className: d, contentClassName:
171
171
  value: A?.value,
172
172
  defaultValue: A?.defaultValue,
173
173
  onValueChange: A?.onValueChange
174
- }), H = A !== void 0, U = A?.actionLabel?.trim(), W = E?.filter((e) => e.visible !== !1).length ?? 0, G = !!(H && U && W === 0), K = f(() => {
174
+ }), V = A !== void 0, H = A?.actionLabel?.trim(), U = E?.filter((e) => e.visible !== !1).length ?? 0, W = V && !B.hasResource && !R && !I, G = !!(V && H && U === 0 && !W), K = f(() => {
175
175
  let e = E ?? [];
176
- return !H || !U || G ? e.length > 0 ? e : void 0 : [...e, {
176
+ return !V || !H || W || G ? e.length > 0 ? e : void 0 : [...e, {
177
177
  id: "shared-resource-selector-change",
178
- label: U,
179
- onClick: V.openSelector
178
+ label: H,
179
+ onClick: B.openSelector
180
180
  }];
181
181
  }, [
182
182
  E,
183
+ V,
183
184
  H,
184
- U,
185
- V.openSelector,
186
- G
187
- ]), ee = D || G ? /* @__PURE__ */ _(h, { children: [D, G && /* @__PURE__ */ g(i, {
185
+ B.openSelector,
186
+ G,
187
+ W
188
+ ]), te = D || G ? /* @__PURE__ */ _(h, { children: [D, G && /* @__PURE__ */ g(n, {
188
189
  type: "button",
189
190
  tone: "secondary",
190
191
  buttonStyle: "outline",
191
192
  size: "sm",
192
- onClick: V.openSelector,
193
+ onClick: B.openSelector,
193
194
  className: "shared-resource-card--selector-action",
194
- children: U
195
- })] }) : void 0, te = f(() => {
196
- if (L) return L(V);
197
- if (F) return /* @__PURE__ */ g(F, { context: V });
195
+ children: H
196
+ })] }) : void 0, ne = f(() => {
197
+ if (L) return L(B);
198
+ if (F) return /* @__PURE__ */ g(F, { context: B });
198
199
  if (Array.isArray(j) && j.length > 0) {
199
- let e = j.filter((e) => !e.when || e.when(V));
200
+ let e = j.filter((e) => !e.when || e.when(B));
200
201
  if (e.length > 0) return /* @__PURE__ */ g("div", {
201
202
  className: M ?? "grid gap-space-lg",
202
203
  children: e.map((e) => {
203
204
  let t = e.Component;
204
205
  return /* @__PURE__ */ g("div", {
205
206
  className: e.className,
206
- children: /* @__PURE__ */ g(t, { context: V })
207
+ children: /* @__PURE__ */ g(t, { context: B })
207
208
  }, e.id);
208
209
  })
209
210
  });
210
211
  }
211
212
  return /* @__PURE__ */ g(C, {
212
- context: V,
213
- strings: B
213
+ context: B,
214
+ strings: z
214
215
  });
215
216
  }, [
216
217
  F,
217
218
  L,
218
219
  j,
219
220
  M,
220
- V,
221
- B
222
- ]), ne = f(() => R ? R(V) : I ? /* @__PURE__ */ g(I, { context: V }) : H ? /* @__PURE__ */ g(w, {
223
- context: V,
224
- strings: B
225
- }) : /* @__PURE__ */ g(n, {
221
+ B,
222
+ z
223
+ ]), re = f(() => R ? R(B) : I ? /* @__PURE__ */ g(I, { context: B }) : V ? /* @__PURE__ */ g(w, {
224
+ context: B,
225
+ strings: z
226
+ }) : /* @__PURE__ */ g(i, {
226
227
  type: "secondary",
227
- children: B.noResourceSelected
228
+ children: z.noResourceSelected
228
229
  }), [
229
230
  I,
230
- H,
231
- R,
232
231
  V,
233
- B
234
- ]), q = A?.DialogContentComponent, J = A?.DialogSummaryComponent, Y = A?.SelectorComponent, X = A?.selectorProps, re = A?.dialogContentProps ?? {}, Z = V.hasResource, ie = Z ? te : ne, ae = !!(H && A && Y), Q = N !== void 0, $ = null;
232
+ R,
233
+ B,
234
+ z
235
+ ]), q = A?.DialogContentComponent, J = A?.DialogSummaryComponent, Y = A?.SelectorComponent, X = A?.selectorProps, ie = A?.dialogContentProps ?? {}, Z = B.hasResource, ae = Z ? ne : re, oe = !!(V && A && Y), Q = N !== void 0, $ = null;
235
236
  Z && Q ? $ = N : Z && P && ($ = /* @__PURE__ */ g(o, {
236
237
  href: P.href,
237
238
  icon: v,
238
239
  children: P.label
239
240
  }));
240
- let oe = $ === null || $ === !1 ? null : /* @__PURE__ */ g("div", {
241
- className: t("shared-resource-card--view-action border-t border-border/60 pt-space-lg", !Q && P?.className),
241
+ let se = $ === null || $ === !1 ? null : /* @__PURE__ */ g("div", {
242
+ className: t("shared-resource-card--view-action", !Q && P?.className),
242
243
  children: $
243
- }), se = ae && A && Y ? /* @__PURE__ */ _(s, {
244
- open: V.isSelectorOpen,
244
+ }), ce = oe && A && Y ? /* @__PURE__ */ g(s, {
245
+ open: B.isSelectorOpen,
245
246
  onOpenChange: (e) => {
246
- e || V.closeSelector();
247
+ e || B.closeSelector();
247
248
  },
248
249
  title: A.title,
249
250
  description: A.description,
250
251
  size: A.dialogSize ?? "2xl",
251
252
  showCancel: !1,
252
253
  showConfirm: !1,
253
- children: [
254
- q ? /* @__PURE__ */ g(q, {
254
+ footer: /* @__PURE__ */ _(a, {
255
+ direction: {
256
+ base: "vertical",
257
+ sm: "horizontal"
258
+ },
259
+ gap: "sm",
260
+ align: {
261
+ base: "stretch",
262
+ sm: "center"
263
+ },
264
+ justify: "end",
265
+ className: "w-full",
266
+ children: [/* @__PURE__ */ g(n, {
267
+ tone: "secondary",
268
+ buttonStyle: "outline",
269
+ onClick: B.closeSelector,
270
+ disabled: B.isConfirming,
271
+ type: "button",
272
+ children: A.cancelText
273
+ }), /* @__PURE__ */ g(n, {
274
+ tone: "primary",
275
+ onClick: () => {
276
+ B.confirmSelection();
277
+ },
278
+ disabled: !B.canConfirmSelection || B.isConfirming,
279
+ loading: B.isConfirming,
280
+ type: "button",
281
+ children: A.confirmText
282
+ })]
283
+ }),
284
+ children: /* @__PURE__ */ _(a, {
285
+ gap: "lg",
286
+ className: "shared-resource-card--dialog-body",
287
+ children: [q ? /* @__PURE__ */ g(q, {
255
288
  SelectorComponent: Y,
256
289
  selectorProps: X,
257
- context: V,
258
- ...re
290
+ context: B,
291
+ ...ie
259
292
  }) : /* @__PURE__ */ g(T, {
260
293
  SelectorComponent: Y,
261
294
  selectorProps: X,
262
- context: V
263
- }),
264
- J ? /* @__PURE__ */ g(J, { context: V }) : /* @__PURE__ */ g(S, {
265
- context: V,
266
- strings: B,
295
+ context: B
296
+ }), J ? /* @__PURE__ */ g(J, { context: B }) : /* @__PURE__ */ g(S, {
297
+ context: B,
298
+ strings: z,
267
299
  getSelectionLabel: A.getSelectionLabel
268
- }),
269
- /* @__PURE__ */ _(a, {
270
- direction: "horizontal",
271
- gap: "md",
272
- justify: "end",
273
- wrap: !1,
274
- className: "border-t border-border/60 pt-space-lg",
275
- children: [/* @__PURE__ */ g(i, {
276
- tone: "secondary",
277
- buttonStyle: "outline",
278
- onClick: V.closeSelector,
279
- disabled: V.isConfirming,
280
- type: "button",
281
- children: A.cancelText
282
- }), /* @__PURE__ */ g(i, {
283
- onClick: () => {
284
- V.confirmSelection();
285
- },
286
- disabled: !V.canConfirmSelection || V.isConfirming,
287
- loading: V.isConfirming,
288
- type: "button",
289
- children: A.confirmText
290
- })]
291
- })
292
- ]
300
+ })]
301
+ })
293
302
  }) : null;
294
303
  return /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ _(c, {
295
304
  icon: r,
296
305
  title: l,
297
306
  description: u,
298
307
  "data-state": Z ? "selected" : "empty",
299
- headerDivider: !0,
300
308
  className: t("shared-resource-card--component", d),
301
309
  contentGap: "lg",
302
310
  contentClassName: p,
303
311
  alert: m,
304
312
  alertTone: y,
305
313
  actions: K,
306
- headerAction: ee,
314
+ headerAction: te,
307
315
  footerText: O,
308
- children: [ie, oe]
309
- }), se] });
316
+ children: [ae, se]
317
+ }), ce] });
310
318
  }
311
319
  E.displayName = "SharedResourceCard";
312
320
  //#endregion