themelia-react-ui 2.0.0 → 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 (625) hide show
  1. package/CHANGELOG.md +351 -0
  2. package/README.md +26 -13
  3. package/dist/{accordion-CQXVcd7Q.js → accordion-B6a3vVgA.js} +84 -82
  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-CCIXb2A1.js → affordance-geometry.generated-B5iu-Mkr.js} +3 -2
  8. package/dist/affordance-geometry.generated-B5iu-Mkr.js.map +1 -0
  9. package/dist/{ai-artifact-2PQ2fItc.js → ai-artifact-BMJdv-6q.js} +379 -376
  10. package/dist/ai-artifact-BMJdv-6q.js.map +1 -0
  11. package/dist/{app-shell-BE_j8-AT.js → app-shell-ZK5RWdo6.js} +4 -4
  12. package/dist/{app-shell-BE_j8-AT.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-M3vGMgDR.js → auth-CYxKfo69.js} +237 -235
  16. package/dist/auth-CYxKfo69.js.map +1 -0
  17. package/dist/{avatar-djdaaQ_s.js → avatar-BBnEJIx8.js} +66 -65
  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 +13 -13
  30. package/dist/base/carousel.js.map +1 -1
  31. package/dist/base/cascader.js +103 -115
  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 +17 -17
  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 +1 -1
  53. package/dist/base/repeaters.js +171 -170
  54. package/dist/base/repeaters.js.map +1 -1
  55. package/dist/base/sheet.js +1 -1
  56. package/dist/base/sidebar.js +1 -1
  57. package/dist/base/signature-pad.js +147 -137
  58. package/dist/base/signature-pad.js.map +1 -1
  59. package/dist/base/skeleton.js +1 -1
  60. package/dist/base/spinner.js +1 -1
  61. package/dist/base/structure.js +1 -1
  62. package/dist/base/table.js +1 -1
  63. package/dist/base/text-inputs.js +2 -2
  64. package/dist/base/toaster.js +2 -2
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +2 -2
  69. package/dist/batch-action-bar-BZGDG-Si.js +104 -0
  70. package/dist/batch-action-bar-BZGDG-Si.js.map +1 -0
  71. package/dist/blocks/admin.js +173 -171
  72. package/dist/blocks/admin.js.map +1 -1
  73. package/dist/blocks/ai.js +266 -263
  74. package/dist/blocks/ai.js.map +1 -1
  75. package/dist/blocks/analytics/usage-card.js +1 -1
  76. package/dist/blocks/analytics.js +440 -438
  77. package/dist/blocks/analytics.js.map +1 -1
  78. package/dist/blocks/collaboration.js +1 -1
  79. package/dist/blocks/commerce/receipt.js +1 -1
  80. package/dist/blocks/commerce.js +1945 -1266
  81. package/dist/blocks/commerce.js.map +1 -1
  82. package/dist/blocks/data-display.js +3 -2
  83. package/dist/blocks/onboarding.js +50 -49
  84. package/dist/blocks/onboarding.js.map +1 -1
  85. package/dist/blocks/planning.js +25 -25
  86. package/dist/blocks/planning.js.map +1 -1
  87. package/dist/blocks/timelines.js +1 -1
  88. package/dist/breadcrumbs-D5t7I023.js +129 -0
  89. package/dist/breadcrumbs-D5t7I023.js.map +1 -0
  90. package/dist/{button-R9CCoH7A.js → button-QYwiyhD2.js} +15 -14
  91. package/dist/button-QYwiyhD2.js.map +1 -0
  92. package/dist/{button-BS3KDg00.js → buttons-SbIcm1HJ.js} +200 -213
  93. package/dist/buttons-SbIcm1HJ.js.map +1 -0
  94. package/dist/{cards-QoJ4syG9.js → cards-CiiHpKYd.js} +8 -8
  95. package/dist/cards-CiiHpKYd.js.map +1 -0
  96. package/dist/{chart-DwYRKKc-.js → chart-QfrARkXl.js} +5 -5
  97. package/dist/{chart-DwYRKKc-.js.map → chart-QfrARkXl.js.map} +1 -1
  98. package/dist/checkbox-DhB6K0bK.js +36 -0
  99. package/dist/checkbox-DhB6K0bK.js.map +1 -0
  100. package/dist/choice-inputs-t6w3ATNz.js +766 -0
  101. package/dist/choice-inputs-t6w3ATNz.js.map +1 -0
  102. package/dist/code-block-Dgbu-CU3.js +185 -0
  103. package/dist/code-block-Dgbu-CU3.js.map +1 -0
  104. package/dist/{collapsible-oMUGM4tr.js → collapsible-D8AEGU1-.js} +4 -4
  105. package/dist/{collapsible-oMUGM4tr.js.map → collapsible-D8AEGU1-.js.map} +1 -1
  106. package/dist/{collection-content-Ys-OZOkY.js → collection-content-uK16Grv0.js} +3 -3
  107. package/dist/{collection-content-Ys-OZOkY.js.map → collection-content-uK16Grv0.js.map} +1 -1
  108. package/dist/{combobox-6dvVny2q.js → combobox-2Ic8N9bL.js} +74 -68
  109. package/dist/combobox-2Ic8N9bL.js.map +1 -0
  110. package/dist/{combobox-CB7039j7.js → combobox-DLl0bfiq.js} +307 -305
  111. package/dist/combobox-DLl0bfiq.js.map +1 -0
  112. package/dist/{command-kPMPjIxJ.js → command-kNR20o7x.js} +7 -7
  113. package/dist/{command-kPMPjIxJ.js.map → command-kNR20o7x.js.map} +1 -1
  114. package/dist/{comments-You0Bzbr.js → comments-BpDuCUUu.js} +341 -339
  115. package/dist/comments-BpDuCUUu.js.map +1 -0
  116. package/dist/components/base/action-menu/action-menu.d.ts +21 -4
  117. package/dist/components/base/action-menu/action-menu.recipes.d.ts +21 -0
  118. package/dist/components/base/action-menu/index.d.ts +1 -0
  119. package/dist/components/base/badge/badge.recipes.d.ts +4 -4
  120. package/dist/components/base/batch-action-bar/batch-action-bar.d.ts +50 -0
  121. package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.ts +20 -0
  122. package/dist/components/base/batch-action-bar/index.d.ts +8 -0
  123. package/dist/components/base/buttons/button-group.recipes.d.ts +1 -1
  124. package/dist/components/base/buttons/button.recipes.d.ts +2 -2
  125. package/dist/components/base/choice-inputs/checkbox.d.ts +2 -2
  126. package/dist/components/base/choice-inputs/choice-types.d.ts +18 -6
  127. package/dist/components/base/display/alert-dialog.d.ts +6 -5
  128. package/dist/components/base/display/dialog.d.ts +4 -8
  129. package/dist/components/base/display/icon-badge/icon-badge.d.ts +1 -1
  130. package/dist/components/base/forms/form-sizing.d.ts +15 -12
  131. package/dist/components/base/metadata-list/index.d.ts +12 -0
  132. package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.d.ts +28 -25
  133. package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-value.d.ts +2 -2
  134. package/dist/components/base/navigation/index.d.ts +1 -1
  135. package/dist/components/base/navigation/page-header/index.d.ts +1 -0
  136. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +73 -0
  137. package/dist/components/base/navigation/page-header/page-header.d.ts +26 -3
  138. package/dist/components/base/sheet/sheet.d.ts +4 -8
  139. package/dist/components/base/signature-pad/signature-pad.types.d.ts +5 -1
  140. package/dist/components/base/signature-pad/signature-pad.utils.d.ts +11 -3
  141. package/dist/components/base/text-inputs/field-clear-button.d.ts +6 -0
  142. package/dist/components/base/upload/upload.recipes.d.ts +25 -3
  143. package/dist/components/base/value-inputs/index.d.ts +5 -5
  144. package/dist/components/base/value-inputs/tags-input.d.ts +36 -12
  145. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  146. package/dist/components/blocks/commerce/address-card/types.d.ts +2 -1
  147. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +3 -1
  148. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  149. package/dist/components/blocks/commerce/cart-summary/types.d.ts +6 -1
  150. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +3 -1
  151. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  152. package/dist/components/blocks/commerce/discount-stack/types.d.ts +16 -4
  153. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +5 -0
  154. package/dist/components/blocks/commerce/fulfillment-group/index.d.ts +2 -0
  155. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +43 -0
  156. package/dist/components/blocks/commerce/index.d.ts +13 -5
  157. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  158. package/dist/components/blocks/commerce/invoice-header/types.d.ts +4 -2
  159. package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +1 -1
  160. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +2 -1
  161. package/dist/components/blocks/commerce/order-customer/index.d.ts +2 -0
  162. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +5 -0
  163. package/dist/components/blocks/commerce/order-customer/types.d.ts +48 -0
  164. package/dist/components/blocks/commerce/order-header/index.d.ts +2 -0
  165. package/dist/components/blocks/commerce/order-header/order-header.d.ts +5 -0
  166. package/dist/components/blocks/commerce/order-header/types.d.ts +37 -0
  167. package/dist/components/blocks/commerce/order-line-item/index.d.ts +2 -0
  168. package/dist/components/blocks/commerce/order-line-item/order-line-item.d.ts +5 -0
  169. package/dist/components/blocks/commerce/order-line-item/types.d.ts +46 -0
  170. package/dist/components/blocks/commerce/order-summary/index.d.ts +2 -0
  171. package/dist/components/blocks/commerce/order-summary/order-summary.d.ts +5 -0
  172. package/dist/components/blocks/commerce/order-summary/types.d.ts +42 -0
  173. package/dist/components/blocks/commerce/order-transactions/index.d.ts +2 -0
  174. package/dist/components/blocks/commerce/order-transactions/order-transactions.d.ts +5 -0
  175. package/dist/components/blocks/commerce/order-transactions/types.d.ts +46 -0
  176. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  177. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +9 -1
  178. package/dist/components/blocks/commerce/payment-method/types.d.ts +12 -1
  179. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  180. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +3 -1
  181. package/dist/components/blocks/commerce/refund-status/types.d.ts +6 -3
  182. package/dist/components/blocks/commerce/shared/address-lines.d.ts +21 -0
  183. package/dist/components/blocks/commerce/shared/line-thumbnail.d.ts +9 -0
  184. package/dist/components/blocks/commerce/shared/order-status.d.ts +51 -0
  185. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  186. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +27 -6
  187. package/dist/components/blocks/commerce/summary-panel/amount-row.d.ts +2 -0
  188. package/dist/components/blocks/commerce/summary-panel/index.d.ts +3 -0
  189. package/dist/components/blocks/commerce/summary-panel/summary-panel.d.ts +2 -0
  190. package/dist/components/blocks/commerce/summary-panel/types.d.ts +26 -0
  191. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  192. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +2 -1
  193. package/dist/components/blocks/data-display/metadata/index.d.ts +30 -4
  194. package/dist/components/features/activities/partials/activity-row.d.ts +6 -2
  195. package/dist/components/features/activities/partials/tone-tokens.d.ts +0 -6
  196. package/dist/components/features/global-search/partials/global-search-group-heading.d.ts +15 -0
  197. package/dist/components/features/global-search/partials/tone-palettes.d.ts +0 -5
  198. package/dist/components/features/kanban/kanban.d.ts +1 -1
  199. package/dist/components/features/kanban/kanban.strings.d.ts +1 -1
  200. package/dist/components/features/kanban/kanban.types.d.ts +2 -2
  201. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  202. package/dist/components/features/media-library/index.d.ts +1 -1
  203. package/dist/components/features/media-library/media-library.d.ts +1 -1
  204. package/dist/components/features/media-library/media-library.strings.d.ts +4 -0
  205. package/dist/components/features/media-library/media-library.types.d.ts +74 -1
  206. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  207. package/dist/components/features/mentions/partials/mention-kind-toggles.d.ts +16 -0
  208. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  209. package/dist/components/features/overlays/dialog.d.ts +1 -1
  210. package/dist/components/features/overlays/index.d.ts +1 -1
  211. package/dist/components/features/overlays/overlay-tone-icon.d.ts +3 -3
  212. package/dist/components/features/overlays/overlays.types.d.ts +20 -0
  213. package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
  214. package/dist/components/features/products/components/product-details-card.d.ts +5 -0
  215. package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
  216. package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
  217. package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
  218. package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
  219. package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
  220. package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
  221. package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
  222. package/dist/components/features/products/components/product-variant-action-menu.d.ts +23 -1
  223. package/dist/components/features/products/products.types.d.ts +9 -2
  224. package/dist/components/features/resource/index.d.ts +1 -1
  225. package/dist/components/features/resource/resource.d.ts +1 -1
  226. package/dist/components/features/resource/resource.types.d.ts +34 -6
  227. package/dist/components/features/rich-text-editor/index.d.ts +2 -1
  228. package/dist/components/features/rich-text-editor/partials/image-nodes.d.ts +13 -0
  229. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +66 -0
  230. package/dist/components/features/rich-text-editor/partials/inline-reference-node.d.ts +19 -0
  231. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  232. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +14 -0
  233. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +45 -0
  234. package/dist/components/features/rich-text-editor/use-rich-text-images.d.ts +18 -0
  235. package/dist/components/features/sync/index.d.ts +26 -3
  236. package/dist/components/features/table/data-table.d.ts +1 -1
  237. package/dist/components/features/table/table.types.d.ts +32 -7
  238. package/dist/components/layout/page/index.d.ts +1 -1
  239. package/dist/components/layout/page/page.types.d.ts +33 -36
  240. package/dist/components/layout/page/partials/page-actions.d.ts +1 -0
  241. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  242. package/dist/components/layout/settings/settings.d.ts +16 -2
  243. package/dist/components/layout/workspace/workspace.types.d.ts +21 -4
  244. package/dist/components/typography/rich-text/index.d.ts +1 -1
  245. package/dist/components/typography/rich-text/rich-text-tree.d.ts +19 -0
  246. package/dist/components/typography/rich-text/rich-text.d.ts +16 -0
  247. package/dist/components/typography/text-link.d.ts +4 -3
  248. package/dist/components/ui/checkbox.d.ts +4 -3
  249. package/dist/components/ui/overlay.recipes.d.ts +0 -9
  250. package/dist/components/ui/switch.d.ts +2 -2
  251. package/dist/{containers-D_L4mTVb.js → containers-DmWiJa2I.js} +36 -35
  252. package/dist/containers-DmWiJa2I.js.map +1 -0
  253. package/dist/{copyable-DDjTeW_j.js → copyable-B3Gwgdqc.js} +6 -6
  254. package/dist/{copyable-DDjTeW_j.js.map → copyable-B3Gwgdqc.js.map} +1 -1
  255. package/dist/data-display-DafIvCl5.js +960 -0
  256. package/dist/data-display-DafIvCl5.js.map +1 -0
  257. package/dist/{date-uf3z37Nm.js → date-BgK3bTdo.js} +5 -5
  258. package/dist/{date-uf3z37Nm.js.map → date-BgK3bTdo.js.map} +1 -1
  259. package/dist/date-picker-CF-DtUpF.js +1529 -0
  260. package/dist/date-picker-CF-DtUpF.js.map +1 -0
  261. package/dist/{date-pickers-CnFCb0n2.js → date-pickers-BmzxJl5l.js} +19 -19
  262. package/dist/{date-pickers-CnFCb0n2.js.map → date-pickers-BmzxJl5l.js.map} +1 -1
  263. package/dist/{display-DrdvPwF0.js → display-DsQTVzMz.js} +88 -87
  264. package/dist/display-DsQTVzMz.js.map +1 -0
  265. package/dist/{dropdown-menu-CURh59jb.js → dropdown-menu-E2qmdC7o.js} +7 -7
  266. package/dist/{dropdown-menu-CURh59jb.js.map → dropdown-menu-E2qmdC7o.js.map} +1 -1
  267. package/dist/features/activities.js +414 -501
  268. package/dist/features/activities.js.map +1 -1
  269. package/dist/features/ai-chat.js +170 -169
  270. package/dist/features/ai-chat.js.map +1 -1
  271. package/dist/features/async-preview.js +8 -8
  272. package/dist/features/async-preview.js.map +1 -1
  273. package/dist/features/combobox.js +1 -1
  274. package/dist/features/comments.js +1 -1
  275. package/dist/features/data-view.js +139 -138
  276. package/dist/features/data-view.js.map +1 -1
  277. package/dist/features/email-composer/engine.js +1 -1
  278. package/dist/features/email-composer.js +73 -71
  279. package/dist/features/email-composer.js.map +1 -1
  280. package/dist/features/event-calendar.js +278 -275
  281. package/dist/features/event-calendar.js.map +1 -1
  282. package/dist/features/filters.js +1 -1
  283. package/dist/features/global-search.js +307 -310
  284. package/dist/features/global-search.js.map +1 -1
  285. package/dist/features/kanban.js +95 -97
  286. package/dist/features/kanban.js.map +1 -1
  287. package/dist/features/map.js +56 -57
  288. package/dist/features/map.js.map +1 -1
  289. package/dist/features/media-library.js +918 -825
  290. package/dist/features/media-library.js.map +1 -1
  291. package/dist/features/mentions.js +1 -1
  292. package/dist/features/overlays.js +1 -1
  293. package/dist/features/products.js +1115 -1122
  294. package/dist/features/products.js.map +1 -1
  295. package/dist/features/questionnaire.js +202 -194
  296. package/dist/features/questionnaire.js.map +1 -1
  297. package/dist/features/resource-assignment.js +25 -25
  298. package/dist/features/resource-assignment.js.map +1 -1
  299. package/dist/features/resource.js +77 -69
  300. package/dist/features/resource.js.map +1 -1
  301. package/dist/features/rich-text-editor.js +30 -11
  302. package/dist/features/rich-text-editor.js.map +1 -1
  303. package/dist/features/schema-form.js +33 -33
  304. package/dist/features/schema-form.js.map +1 -1
  305. package/dist/features/suggestions.js +3 -3
  306. package/dist/features/sync.js +3 -3
  307. package/dist/features/table.js +1 -1
  308. package/dist/features/theme-tweaker.js +397 -396
  309. package/dist/features/theme-tweaker.js.map +1 -1
  310. package/dist/{feedback-C7nR0UtT.js → feedback-qNuMBtRH.js} +84 -83
  311. package/dist/feedback-qNuMBtRH.js.map +1 -0
  312. package/dist/{field-affordance-recipes-CkOCdE2y.js → field-affordance-recipes-qQeIf4lG.js} +8 -6
  313. package/dist/field-affordance-recipes-qQeIf4lG.js.map +1 -0
  314. package/dist/field-state-recipes-BVA2CWHo.js +12 -0
  315. package/dist/field-state-recipes-BVA2CWHo.js.map +1 -0
  316. package/dist/{filters-Da-gNPsE.js → filters-BkHH53uv.js} +565 -563
  317. package/dist/filters-BkHH53uv.js.map +1 -0
  318. package/dist/focus-recipes-B653VaLq.js +12 -0
  319. package/dist/focus-recipes-B653VaLq.js.map +1 -0
  320. package/dist/{form-field-VZRULhUK.js → form-field-DUt4UxSV.js} +4 -4
  321. package/dist/{form-field-VZRULhUK.js.map → form-field-DUt4UxSV.js.map} +1 -1
  322. package/dist/{form-sizing-uWP4lzVh.js → form-sizing-By94KzXE.js} +19 -15
  323. package/dist/form-sizing-By94KzXE.js.map +1 -0
  324. package/dist/{forms-DDeEnXSY.js → forms-Bzha-Y3B.js} +22 -22
  325. package/dist/{forms-DDeEnXSY.js.map → forms-Bzha-Y3B.js.map} +1 -1
  326. package/dist/{forms-numeric-D3CO60IF.js → forms-numeric-C0bvjRPZ.js} +265 -264
  327. package/dist/forms-numeric-C0bvjRPZ.js.map +1 -0
  328. package/dist/{header-2ycNqGOR.js → header-BOefOKd1.js} +47 -51
  329. package/dist/header-BOefOKd1.js.map +1 -0
  330. package/dist/{hooks-DQ5SPwZw.js → hooks-9k_TtmKh.js} +2 -2
  331. package/dist/{hooks-DQ5SPwZw.js.map → hooks-9k_TtmKh.js.map} +1 -1
  332. package/dist/{http-CdEIHyQf.js → http-D_6rOnzU.js} +2 -2
  333. package/dist/{http-CdEIHyQf.js.map → http-D_6rOnzU.js.map} +1 -1
  334. package/dist/icon-badge-CAuKupo9.js +55 -0
  335. package/dist/icon-badge-CAuKupo9.js.map +1 -0
  336. package/dist/index.js +7 -7
  337. package/dist/input-DWhBBBww.js +262 -0
  338. package/dist/input-DWhBBBww.js.map +1 -0
  339. package/dist/{input-BoLm9Hks.js → input-Ddi_LSYv.js} +3 -3
  340. package/dist/{input-BoLm9Hks.js.map → input-Ddi_LSYv.js.map} +1 -1
  341. package/dist/interaction-recipes-CHr0dJUs.js +24 -0
  342. package/dist/interaction-recipes-CHr0dJUs.js.map +1 -0
  343. package/dist/{item-xzh8Df65.js → item-DEmDiTlD.js} +98 -97
  344. package/dist/item-DEmDiTlD.js.map +1 -0
  345. package/dist/layer-recipes-CCpklYME.js +13 -0
  346. package/dist/layer-recipes-CCpklYME.js.map +1 -0
  347. package/dist/layout/app-shell.js +1 -1
  348. package/dist/layout/auth.js +1 -1
  349. package/dist/layout/containers.js +1 -1
  350. package/dist/layout/header.js +1 -1
  351. package/dist/layout/hooks.js +1 -1
  352. package/dist/layout/navigation.js +1 -1
  353. package/dist/layout/page.js +1 -1
  354. package/dist/layout/settings.js +1 -1
  355. package/dist/layout/sidebar.js +2 -2
  356. package/dist/layout/workspace.js +1 -1
  357. package/dist/layout.js +10 -10
  358. package/dist/lib/affordance-geometry.generated.d.ts +1 -0
  359. package/dist/lib/field-affordance-recipes.d.ts +6 -1
  360. package/dist/lib/field-state-recipes.d.ts +9 -8
  361. package/dist/lib/focus-recipes.d.ts +24 -0
  362. package/dist/lib/interaction-recipes.d.ts +35 -0
  363. package/dist/lib/layer-recipes.d.ts +19 -0
  364. package/dist/lib/motion-recipes.d.ts +1 -0
  365. package/dist/lib/overlay-anatomy-recipes.d.ts +1 -0
  366. package/dist/lib/safe-image-src.d.ts +10 -0
  367. package/dist/lib/sanitize-html.d.ts +15 -3
  368. package/dist/lib/surface-recipes.d.ts +47 -7
  369. package/dist/lib/token-merge.generated.d.ts +9 -6
  370. package/dist/lib/tone-recipes.d.ts +79 -0
  371. package/dist/lib/ui-provider/hooks.d.ts +2 -1
  372. package/dist/lib/ui-provider/index.d.ts +2 -2
  373. package/dist/lib/ui-provider/types.d.ts +9 -0
  374. package/dist/lib/utils.js +1 -1
  375. package/dist/media-gallery-DcTtAaeC.js +203 -0
  376. package/dist/media-gallery-DcTtAaeC.js.map +1 -0
  377. package/dist/mentions-D-uyCh01.js +568 -0
  378. package/dist/mentions-D-uyCh01.js.map +1 -0
  379. package/dist/{message-YfFmbXNP.js → message-CdHgIWKf.js} +5 -5
  380. package/dist/{message-YfFmbXNP.js.map → message-CdHgIWKf.js.map} +1 -1
  381. package/dist/metadata-list-X5rYAKSB.js +394 -0
  382. package/dist/metadata-list-X5rYAKSB.js.map +1 -0
  383. package/dist/{motion-recipes-B6jKXEcN.js → motion-recipes-ChBg4HBq.js} +3 -2
  384. package/dist/{motion-recipes-B6jKXEcN.js.map → motion-recipes-ChBg4HBq.js.map} +1 -1
  385. package/dist/navigation-D3KwXmaq.js +145 -0
  386. package/dist/navigation-D3KwXmaq.js.map +1 -0
  387. package/dist/navigation-HJf5zxlH.js +268 -0
  388. package/dist/navigation-HJf5zxlH.js.map +1 -0
  389. package/dist/{navigation-row-recipes-DlU-4QYO.js → navigation-row-recipes-BVowojQw.js} +2 -2
  390. package/dist/{navigation-row-recipes-DlU-4QYO.js.map → navigation-row-recipes-BVowojQw.js.map} +1 -1
  391. package/dist/{number-CKRBYmZK.js → number-DMhe-Vsk.js} +5 -5
  392. package/dist/{number-CKRBYmZK.js.map → number-DMhe-Vsk.js.map} +1 -1
  393. package/dist/overflow-tab-bar-sQHXLlwQ.js +280 -0
  394. package/dist/overflow-tab-bar-sQHXLlwQ.js.map +1 -0
  395. package/dist/overlay.recipes-8GHqmlb4.js +6 -0
  396. package/dist/overlay.recipes-8GHqmlb4.js.map +1 -0
  397. package/dist/overlays-I0axtYA6.js +999 -0
  398. package/dist/overlays-I0axtYA6.js.map +1 -0
  399. package/dist/page-B5dTH9gE.js +224 -0
  400. package/dist/page-B5dTH9gE.js.map +1 -0
  401. package/dist/page-header-commands-DjzFEq3E.js +126 -0
  402. package/dist/page-header-commands-DjzFEq3E.js.map +1 -0
  403. package/dist/{pagination-Cm0jqa3I.js → pagination-3bPA_a6K.js} +15 -15
  404. package/dist/{pagination-Cm0jqa3I.js.map → pagination-3bPA_a6K.js.map} +1 -1
  405. package/dist/{popover-Dcv_9jxr.js → popover-Di55PyAI.js} +8 -8
  406. package/dist/popover-Di55PyAI.js.map +1 -0
  407. package/dist/{popover-menu-DnRFKnHP.js → popover-menu-B71Tn2Qz.js} +6 -6
  408. package/dist/{popover-menu-DnRFKnHP.js.map → popover-menu-B71Tn2Qz.js.map} +1 -1
  409. package/dist/{popover.recipes-wmbvL8Ah.js → popover.recipes-Bdyhj2db.js} +2 -2
  410. package/dist/{popover.recipes-wmbvL8Ah.js.map → popover.recipes-Bdyhj2db.js.map} +1 -1
  411. package/dist/{primitives-BHrwQXFC.js → primitives-B-CkiEMU.js} +5 -5
  412. package/dist/{primitives-BHrwQXFC.js.map → primitives-B-CkiEMU.js.map} +1 -1
  413. package/dist/primitives.js +4 -4
  414. package/dist/{progress-Br9WTFya.js → progress-rnS8-uAW.js} +9 -9
  415. package/dist/{progress-Br9WTFya.js.map → progress-rnS8-uAW.js.map} +1 -1
  416. package/dist/{receipt-CV89q1fs.js → receipt-D0oswZ0p.js} +6 -6
  417. package/dist/{receipt-CV89q1fs.js.map → receipt-D0oswZ0p.js.map} +1 -1
  418. package/dist/rich-text-DvGulsNJ.js +78 -0
  419. package/dist/rich-text-DvGulsNJ.js.map +1 -0
  420. package/dist/rich-text-editor-sMU_Scqm.js +1204 -0
  421. package/dist/rich-text-editor-sMU_Scqm.js.map +1 -0
  422. package/dist/rich-text-editor.recipes-CadiF_Uu.js +88 -0
  423. package/dist/rich-text-editor.recipes-CadiF_Uu.js.map +1 -0
  424. package/dist/rich-text-editor.strings-CB59ekH2.js +38 -0
  425. package/dist/rich-text-editor.strings-CB59ekH2.js.map +1 -0
  426. package/dist/safe-image-src-C6kQSMBZ.js +17 -0
  427. package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
  428. package/dist/sanitize-html-DsQmI48u.js +92 -0
  429. package/dist/sanitize-html-DsQmI48u.js.map +1 -0
  430. package/dist/scroll-area-Bt_vXY2b.js +48 -0
  431. package/dist/scroll-area-Bt_vXY2b.js.map +1 -0
  432. package/dist/{separator-Do5GWDYi.js → separator-C8DlRGwF.js} +3 -3
  433. package/dist/{separator-Do5GWDYi.js.map → separator-C8DlRGwF.js.map} +1 -1
  434. package/dist/{separator-BMEvwnSX.js → separator-CYHnjsAb.js} +2 -2
  435. package/dist/{separator-BMEvwnSX.js.map → separator-CYHnjsAb.js.map} +1 -1
  436. package/dist/services/actions/action-adapters.d.ts +18 -0
  437. package/dist/services/actions/index.d.ts +1 -1
  438. package/dist/services/actions.js +16 -4
  439. package/dist/services/actions.js.map +1 -1
  440. package/dist/settings-CQW3b-Cu.js +170 -0
  441. package/dist/settings-CQW3b-Cu.js.map +1 -0
  442. package/dist/sheet-4SEvVYzA.js +210 -0
  443. package/dist/sheet-4SEvVYzA.js.map +1 -0
  444. package/dist/{sidebar-Crc9M9JV.js → sidebar-C7WWR29L.js} +180 -179
  445. package/dist/sidebar-C7WWR29L.js.map +1 -0
  446. package/dist/{sidebar-Cb8WzOvE.js → sidebar-d7Dg80ln.js} +16 -16
  447. package/dist/sidebar-d7Dg80ln.js.map +1 -0
  448. package/dist/{skeleton-DVMXr15h.js → skeleton-Cz890JZF.js} +9 -9
  449. package/dist/{skeleton-DVMXr15h.js.map → skeleton-Cz890JZF.js.map} +1 -1
  450. package/dist/smart-card-lFKxn5Hu.js +595 -0
  451. package/dist/smart-card-lFKxn5Hu.js.map +1 -0
  452. package/dist/{spinner-CmTAbEp0.js → spinner-fa3h1Aif.js} +7 -7
  453. package/dist/{spinner-CmTAbEp0.js.map → spinner-fa3h1Aif.js.map} +1 -1
  454. package/dist/{structure-hzCW-XsV.js → structure-DC2dygdA.js} +2 -2
  455. package/dist/{structure-hzCW-XsV.js.map → structure-DC2dygdA.js.map} +1 -1
  456. package/dist/style.css +1 -1
  457. package/dist/surface-recipes-BKRVW8Os.js +43 -0
  458. package/dist/surface-recipes-BKRVW8Os.js.map +1 -0
  459. package/dist/{table-D6zKeYQX.js → table-CIKyLUsy.js} +59 -58
  460. package/dist/table-CIKyLUsy.js.map +1 -0
  461. package/dist/table-CrcLN9Io.js +1458 -0
  462. package/dist/table-CrcLN9Io.js.map +1 -0
  463. package/dist/{tabs-Dk8E_knt.js → tabs-DwBJfjxX.js} +58 -57
  464. package/dist/tabs-DwBJfjxX.js.map +1 -0
  465. package/dist/{text-inputs-BFpku0Qd.js → text-inputs-aaK9wcDT.js} +74 -79
  466. package/dist/text-inputs-aaK9wcDT.js.map +1 -0
  467. package/dist/theme.css +3 -3
  468. package/dist/{timelines-CxuAFIc2.js → timelines-C_SBwHNP.js} +153 -150
  469. package/dist/timelines-C_SBwHNP.js.map +1 -0
  470. package/dist/tone-recipes-CPoExcTE.js +70 -0
  471. package/dist/tone-recipes-CPoExcTE.js.map +1 -0
  472. package/dist/tooltip-CsfgrfS7.js +111 -0
  473. package/dist/tooltip-CsfgrfS7.js.map +1 -0
  474. package/dist/{tree-BotPlyiD.js → tree-BiKhg8AY.js} +68 -66
  475. package/dist/tree-BiKhg8AY.js.map +1 -0
  476. package/dist/typography/rich-text.js +1 -1
  477. package/dist/typography-DTRkE9zL.js +117 -0
  478. package/dist/typography-DTRkE9zL.js.map +1 -0
  479. package/dist/typography.js +1 -1
  480. package/dist/{ui-provider-D2_TeLqw.js → ui-provider-1D_NSYzO.js} +11 -3
  481. package/dist/ui-provider-1D_NSYzO.js.map +1 -0
  482. package/dist/ui-provider.js +3 -3
  483. package/dist/{upload-B0WHW7ak.js → upload-BO8-CLN6.js} +209 -209
  484. package/dist/upload-BO8-CLN6.js.map +1 -0
  485. package/dist/{upload-queue-BHZ_wBfd.js → upload-queue-EOC8g1gf.js} +109 -111
  486. package/dist/upload-queue-EOC8g1gf.js.map +1 -0
  487. package/dist/upload.recipes-BbxTqrCT.js +61 -0
  488. package/dist/upload.recipes-BbxTqrCT.js.map +1 -0
  489. package/dist/{usage-card-U0YBLTNT.js → usage-card-obRaBskq.js} +46 -46
  490. package/dist/{usage-card-U0YBLTNT.js.map → usage-card-obRaBskq.js.map} +1 -1
  491. package/dist/{utils-Cospvlj1.js → utils-l5LpDw2z.js} +56 -24
  492. package/dist/utils-l5LpDw2z.js.map +1 -0
  493. package/dist/value-inputs-TAYMX111.js +947 -0
  494. package/dist/value-inputs-TAYMX111.js.map +1 -0
  495. package/dist/{value-typography-Deb3yQZg.js → value-typography-b8wpz1eX.js} +2 -2
  496. package/dist/{value-typography-Deb3yQZg.js.map → value-typography-b8wpz1eX.js.map} +1 -1
  497. package/dist/workspace-DH0v0KcB.js +407 -0
  498. package/dist/workspace-DH0v0KcB.js.map +1 -0
  499. package/docs/consumer-skill/SKILL.md +19 -20
  500. package/docs/consumer-skill/examples/app-layout.tsx +1 -1
  501. package/docs/consumer-skill/examples/composition.tsx +3 -3
  502. package/docs/consumer-skill/examples/detail.tsx +59 -12
  503. package/docs/consumer-skill/examples/edit.tsx +1 -1
  504. package/docs/consumer-skill/examples/receipt.tsx +2 -2
  505. package/docs/consumer-skill/examples/scoped-directory.tsx +1 -1
  506. package/docs/consumer-skill/examples/website.tsx +1 -1
  507. package/docs/consumer-skill/references/agents-md.md +33 -0
  508. package/docs/consumer-skill/references/analytics.md +1 -1
  509. package/docs/consumer-skill/references/composition.md +51 -8
  510. package/docs/consumer-skill/references/design-contract.md +12 -3
  511. package/docs/consumer-skill/references/installation.md +11 -1
  512. package/docs/consumer-skill/references/public-api.json +847 -447
  513. package/docs/consumer-skill/references/review.md +25 -5
  514. package/docs/consumer-skill/references/theming.md +8 -4
  515. package/docs/consumer-skill/references/tokens.json +1 -1
  516. package/docs/consumer-skill/references/workflows.md +29 -10
  517. package/docs/consumer-skill/scripts/composition-policy.mjs +41 -11
  518. package/docs/consumer-skill/scripts/surface-policy.mjs +139 -5
  519. package/package.json +10 -2
  520. package/dist/accordion-CQXVcd7Q.js.map +0 -1
  521. package/dist/action-menu-BTpyPWJ2.js +0 -264
  522. package/dist/action-menu-BTpyPWJ2.js.map +0 -1
  523. package/dist/affordance-geometry.generated-CCIXb2A1.js.map +0 -1
  524. package/dist/ai-artifact-2PQ2fItc.js.map +0 -1
  525. package/dist/attachment-q69dlt5Y.js +0 -244
  526. package/dist/attachment-q69dlt5Y.js.map +0 -1
  527. package/dist/auth-M3vGMgDR.js.map +0 -1
  528. package/dist/avatar-djdaaQ_s.js.map +0 -1
  529. package/dist/badge-0tATj-tW.js +0 -92
  530. package/dist/badge-0tATj-tW.js.map +0 -1
  531. package/dist/breadcrumbs-BG_FfMK4.js +0 -128
  532. package/dist/breadcrumbs-BG_FfMK4.js.map +0 -1
  533. package/dist/button-BS3KDg00.js.map +0 -1
  534. package/dist/button-R9CCoH7A.js.map +0 -1
  535. package/dist/buttons-DS0ZIwJ_.js +0 -99
  536. package/dist/buttons-DS0ZIwJ_.js.map +0 -1
  537. package/dist/cards-QoJ4syG9.js.map +0 -1
  538. package/dist/checkbox-B7ygNTYp.js +0 -35
  539. package/dist/checkbox-B7ygNTYp.js.map +0 -1
  540. package/dist/choice-inputs-DrJ17tpL.js +0 -752
  541. package/dist/choice-inputs-DrJ17tpL.js.map +0 -1
  542. package/dist/code-block-CD0B7M93.js +0 -183
  543. package/dist/code-block-CD0B7M93.js.map +0 -1
  544. package/dist/combobox-6dvVny2q.js.map +0 -1
  545. package/dist/combobox-CB7039j7.js.map +0 -1
  546. package/dist/comments-You0Bzbr.js.map +0 -1
  547. package/dist/components/layout/page/partials/page-header-commands.d.ts +0 -13
  548. package/dist/containers-D_L4mTVb.js.map +0 -1
  549. package/dist/data-display-3xWQUnMA.js +0 -1335
  550. package/dist/data-display-3xWQUnMA.js.map +0 -1
  551. package/dist/date-picker-DrDFj8Lo.js +0 -1527
  552. package/dist/date-picker-DrDFj8Lo.js.map +0 -1
  553. package/dist/display-DrdvPwF0.js.map +0 -1
  554. package/dist/feedback-C7nR0UtT.js.map +0 -1
  555. package/dist/field-affordance-recipes-CkOCdE2y.js.map +0 -1
  556. package/dist/field-state-recipes-C-MFBX_8.js +0 -11
  557. package/dist/field-state-recipes-C-MFBX_8.js.map +0 -1
  558. package/dist/filters-Da-gNPsE.js.map +0 -1
  559. package/dist/form-sizing-uWP4lzVh.js.map +0 -1
  560. package/dist/forms-numeric-D3CO60IF.js.map +0 -1
  561. package/dist/header-2ycNqGOR.js.map +0 -1
  562. package/dist/icon-badge-DKlaKXoo.js +0 -53
  563. package/dist/icon-badge-DKlaKXoo.js.map +0 -1
  564. package/dist/input-DhQdBnV3.js +0 -255
  565. package/dist/input-DhQdBnV3.js.map +0 -1
  566. package/dist/item-xzh8Df65.js.map +0 -1
  567. package/dist/media-gallery-DQUQ0m3O.js +0 -201
  568. package/dist/media-gallery-DQUQ0m3O.js.map +0 -1
  569. package/dist/mentions-DwnO1hh4.js +0 -564
  570. package/dist/mentions-DwnO1hh4.js.map +0 -1
  571. package/dist/navigation-Cbp5V8gG.js +0 -264
  572. package/dist/navigation-Cbp5V8gG.js.map +0 -1
  573. package/dist/navigation-Cs1npsPm.js +0 -300
  574. package/dist/navigation-Cs1npsPm.js.map +0 -1
  575. package/dist/overlay.recipes-CNO2S9V6.js +0 -34
  576. package/dist/overlay.recipes-CNO2S9V6.js.map +0 -1
  577. package/dist/overlays-DhZO7N-I.js +0 -994
  578. package/dist/overlays-DhZO7N-I.js.map +0 -1
  579. package/dist/page-C6R_8jFt.js +0 -325
  580. package/dist/page-C6R_8jFt.js.map +0 -1
  581. package/dist/page-header-hUTzcRZX.js +0 -112
  582. package/dist/page-header-hUTzcRZX.js.map +0 -1
  583. package/dist/popover-Dcv_9jxr.js.map +0 -1
  584. package/dist/rich-text-editor-CF8QYt5p.js +0 -574
  585. package/dist/rich-text-editor-CF8QYt5p.js.map +0 -1
  586. package/dist/rich-text-editor.recipes-CnrbmTS1.js +0 -81
  587. package/dist/rich-text-editor.recipes-CnrbmTS1.js.map +0 -1
  588. package/dist/rich-text-editor.strings-BpnIQgMl.js +0 -25
  589. package/dist/rich-text-editor.strings-BpnIQgMl.js.map +0 -1
  590. package/dist/rich-text-j-FGAeZW.js +0 -32
  591. package/dist/rich-text-j-FGAeZW.js.map +0 -1
  592. package/dist/sanitize-html-BG9FGe-j.js +0 -64
  593. package/dist/sanitize-html-BG9FGe-j.js.map +0 -1
  594. package/dist/scroll-area-DRdr16Pt.js +0 -47
  595. package/dist/scroll-area-DRdr16Pt.js.map +0 -1
  596. package/dist/settings-DHk0L2MF.js +0 -161
  597. package/dist/settings-DHk0L2MF.js.map +0 -1
  598. package/dist/sheet-DRFNY1_D.js +0 -207
  599. package/dist/sheet-DRFNY1_D.js.map +0 -1
  600. package/dist/sidebar-Cb8WzOvE.js.map +0 -1
  601. package/dist/sidebar-Crc9M9JV.js.map +0 -1
  602. package/dist/smart-card-Bek-TwUp.js +0 -599
  603. package/dist/smart-card-Bek-TwUp.js.map +0 -1
  604. package/dist/surface-recipes-DOdoBXGm.js +0 -28
  605. package/dist/surface-recipes-DOdoBXGm.js.map +0 -1
  606. package/dist/table-D6zKeYQX.js.map +0 -1
  607. package/dist/table-Dn4XSrSB.js +0 -1444
  608. package/dist/table-Dn4XSrSB.js.map +0 -1
  609. package/dist/tabs-Dk8E_knt.js.map +0 -1
  610. package/dist/text-inputs-BFpku0Qd.js.map +0 -1
  611. package/dist/timelines-CxuAFIc2.js.map +0 -1
  612. package/dist/tree-BotPlyiD.js.map +0 -1
  613. package/dist/typography-CAr3dQhX.js +0 -116
  614. package/dist/typography-CAr3dQhX.js.map +0 -1
  615. package/dist/ui-provider-D2_TeLqw.js.map +0 -1
  616. package/dist/upload-B0WHW7ak.js.map +0 -1
  617. package/dist/upload-queue-BHZ_wBfd.js.map +0 -1
  618. package/dist/use-file-drop-target-BX7GnhoQ.js +0 -39
  619. package/dist/use-file-drop-target-BX7GnhoQ.js.map +0 -1
  620. package/dist/utils-Cospvlj1.js.map +0 -1
  621. package/dist/value-inputs-CjfzGMsN.js +0 -854
  622. package/dist/value-inputs-CjfzGMsN.js.map +0 -1
  623. package/dist/workspace-YoFjXi6i.js +0 -394
  624. package/dist/workspace-YoFjXi6i.js.map +0 -1
  625. /package/dist/components/{blocks/data-display/metadata → base/metadata-list}/metadata-list.strings.d.ts +0 -0
@@ -1,81 +0,0 @@
1
- "use client";
2
- import { t as e } from "./utils-Cospvlj1.js";
3
- import { n as t } from "./text.styles-g4He6UIW.js";
4
- import { t as n } from "./button-BS3KDg00.js";
5
- import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
6
- import { Code2 as o } from "lucide-react";
7
- //#region src/components/features/rich-text-editor/partials/rich-text-editor-toolbar.tsx
8
- function s({ buttons: t, extraToolbarItems: s, hideSourceToggle: c = !1, sourceMode: l, toggleSourceMode: u, disabled: d = !1, hasEditor: f = !0, toolbarTrailing: p, strings: m, className: h }) {
9
- let g = (s?.length ?? 0) > 0;
10
- return /* @__PURE__ */ a("div", {
11
- className: e("rich-text-editor-toolbar--component border-border flex flex-wrap items-center gap-space-xs border-b p-surface-xs", h),
12
- children: [
13
- t.map((e) => {
14
- let t = e.icon, r = e.isActive();
15
- return /* @__PURE__ */ i(n, {
16
- type: "button",
17
- tone: r ? "primary" : "secondary",
18
- buttonStyle: r ? "solid" : "ghost",
19
- size: "sm",
20
- iconOnly: !0,
21
- onClick: e.run,
22
- disabled: d || !f || l || e.disabled,
23
- "aria-label": e.label,
24
- title: e.label,
25
- children: /* @__PURE__ */ i(t, { className: "size-icon" })
26
- }, e.id);
27
- }),
28
- !c && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("div", { className: "bg-border mx-space-xs size-icon w-px" }), /* @__PURE__ */ i(n, {
29
- type: "button",
30
- tone: l ? "primary" : "secondary",
31
- buttonStyle: l ? "solid" : "ghost",
32
- size: "sm",
33
- iconOnly: !0,
34
- onClick: u,
35
- disabled: d || !f,
36
- "aria-label": m.toolbar.sourceCode,
37
- title: m.toolbar.sourceCode,
38
- children: /* @__PURE__ */ i(o, { className: "size-icon" })
39
- })] }),
40
- g && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("div", { className: "bg-border mx-space-xs size-icon w-px" }), s?.map((e) => {
41
- let t = e.icon, r = e.isActive?.() ?? !1;
42
- return /* @__PURE__ */ i(n, {
43
- type: "button",
44
- tone: r ? "primary" : "secondary",
45
- buttonStyle: r ? "solid" : "ghost",
46
- size: "sm",
47
- iconOnly: !0,
48
- onClick: e.onClick,
49
- disabled: d || !f || l || e.disabled,
50
- "aria-label": e.label,
51
- title: e.label,
52
- children: /* @__PURE__ */ i(t, { className: "size-icon" })
53
- }, e.id);
54
- })] }),
55
- !!p && /* @__PURE__ */ i("div", {
56
- className: "ml-auto flex items-center gap-space-xs",
57
- children: p
58
- })
59
- ]
60
- });
61
- }
62
- s.displayName = "RichTextEditorToolbar";
63
- //#endregion
64
- //#region src/components/features/rich-text-editor/rich-text-editor.recipes.ts
65
- var c = {
66
- source: e("rich-text-editor--source box-border m-0 block min-h-0 w-full resize-y rounded-none border-0 bg-transparent px-control py-control-y-offset outline-none disabled:cursor-not-allowed disabled:opacity-50", t({
67
- type: "main",
68
- size: "xs",
69
- weight: "regular",
70
- align: "left",
71
- lineHeight: "relaxed",
72
- numeric: !0
73
- })),
74
- frame: "min-w-0 overflow-hidden border-input bg-background rounded-inner border",
75
- disabled: "opacity-70",
76
- content: "h-full [&_.ProseMirror]:h-full [&_.ProseMirror]:min-h-full [&_.ProseMirror]:outline-none"
77
- };
78
- //#endregion
79
- export { s as n, c as t };
80
-
81
- //# sourceMappingURL=rich-text-editor.recipes-CnrbmTS1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-text-editor.recipes-CnrbmTS1.js","names":["_Fragment","cn","resolveTextClassNames","Button","RichTextEditorToolbar","hasExtras","extraToolbarItems","className","buttons","Icon","button","isActive","disabled","hasEditor","sourceMode","hideSourceToggle","Fragment","toggleSourceMode","strings","Code2","item","toolbarTrailing","richTextEditorRecipes"],"sources":["../src/components/features/rich-text-editor/partials/rich-text-editor-toolbar.tsx","../src/components/features/rich-text-editor/rich-text-editor.recipes.ts"],"sourcesContent":["import { Code2 } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '../../../base/buttons/button';\nimport { cn } from '../../../../lib/utils';\n\nimport type { RichTextEditorStrings } from '../rich-text-editor.strings';\nimport type {\n\tRichTextEditorToolbarItem,\n\tToolbarButtonConfig,\n} from '../rich-text-editor.types';\n\nexport interface RichTextEditorToolbarProps {\n\t/** Formatting controls to show, in order. */\n\tbuttons: ToolbarButtonConfig[];\n\t/** Additional controls appended to the toolbar. */\n\textraToolbarItems?: ReadonlyArray<RichTextEditorToolbarItem>;\n\t/** Hides the control that switches to HTML source. */\n\thideSourceToggle?: boolean;\n\t/** Whether the editor is currently showing HTML source. */\n\tsourceMode: boolean;\n\t/** Switches between rich text and HTML source. */\n\ttoggleSourceMode: () => void;\n\t/** Renders the entry as unselectable. */\n\tdisabled?: boolean;\n\t/**\n\t * The TipTap variant disables built-in buttons until the editor instance\n\t * is ready; the fallback variant simply marks them disabled. This flag\n\t * lets callers force the disabled state without re-deriving it per button.\n\t */\n\thasEditor?: boolean;\n\t/** Content pinned to the end of the toolbar. */\n\ttoolbarTrailing?: ReactNode;\n\t/** Overrides this surface's own copy. */\n\tstrings: RichTextEditorStrings;\n\t/** Merged onto the outermost node. */\n\tclassName?: string;\n}\n\nexport function RichTextEditorToolbar({\n\tbuttons,\n\textraToolbarItems,\n\thideSourceToggle = false,\n\tsourceMode,\n\ttoggleSourceMode,\n\tdisabled = false,\n\thasEditor = true,\n\ttoolbarTrailing,\n\tstrings,\n\tclassName,\n}: RichTextEditorToolbarProps) {\n\tconst hasExtras = (extraToolbarItems?.length ?? 0) > 0;\n\n\treturn (\n\t\t<div className={cn('rich-text-editor-toolbar--component border-border flex flex-wrap items-center gap-space-xs border-b p-surface-xs', className)}>\n\t\t\t{buttons.map((button) => {\n\t\t\t\tconst Icon = button.icon;\n\t\t\t\tconst isActive = button.isActive();\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={button.id}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttone={isActive ? 'primary' : 'secondary'}\n\t\t\t\t\t\tbuttonStyle={isActive ? 'solid' : 'ghost'}\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\tonClick={button.run}\n\t\t\t\t\t\tdisabled={disabled || !hasEditor || sourceMode || button.disabled}\n\t\t\t\t\t\taria-label={button.label}\n\t\t\t\t\t\ttitle={button.label}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon className=\"size-icon\" />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{!hideSourceToggle && (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"bg-border mx-space-xs size-icon w-px\" />\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttone={sourceMode ? 'primary' : 'secondary'}\n\t\t\t\t\t\tbuttonStyle={sourceMode ? 'solid' : 'ghost'}\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\tonClick={toggleSourceMode}\n\t\t\t\t\t\tdisabled={disabled || !hasEditor}\n\t\t\t\t\t\taria-label={strings.toolbar.sourceCode}\n\t\t\t\t\t\ttitle={strings.toolbar.sourceCode}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Code2 className=\"size-icon\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{hasExtras && (\n\t\t\t\t<>\n\t\t\t\t\t<div className=\"bg-border mx-space-xs size-icon w-px\" />\n\t\t\t\t\t{extraToolbarItems?.map((item) => {\n\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\tconst isActive = item.isActive?.() ?? false;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ttone={isActive ? 'primary' : 'secondary'}\n\t\t\t\t\t\t\t\tbuttonStyle={isActive ? 'solid' : 'ghost'}\n\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\tonClick={item.onClick}\n\t\t\t\t\t\t\t\tdisabled={disabled || !hasEditor || sourceMode || item.disabled}\n\t\t\t\t\t\t\t\taria-label={item.label}\n\t\t\t\t\t\t\t\ttitle={item.label}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"size-icon\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</>\n\t\t\t)}\n\n\t\t\t{!!toolbarTrailing && (\n\t\t\t\t<div className=\"ml-auto flex items-center gap-space-xs\">{toolbarTrailing}</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nRichTextEditorToolbar.displayName = 'RichTextEditorToolbar';\n","import { resolveTextClassNames } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\n/** Shared field anatomy for rich editors, including specialized document schemas. */\nexport const richTextEditorRecipes = {\n source: cn('rich-text-editor--source box-border m-0 block min-h-0 w-full resize-y rounded-none border-0 bg-transparent px-control py-control-y-offset outline-none disabled:cursor-not-allowed disabled:opacity-50', resolveTextClassNames({type: 'main', size: 'xs', weight: 'regular', align: 'left', lineHeight: 'relaxed', numeric: true})),\n frame: 'min-w-0 overflow-hidden border-input bg-background rounded-inner border',\n disabled: 'opacity-70',\n content: 'h-full [&_.ProseMirror]:h-full [&_.ProseMirror]:min-h-full [&_.ProseMirror]:outline-none',\n} as const;\n"],"mappings":";;;;;;;AAuCA,SAAgBI,EAAsB,EACrC,YACA,sBACA,sBAAmB,IACnB,eACA,qBACA,cAAW,IACX,eAAY,IACZ,oBACA,YACA,gBAC8B;CAC9B,IAAMC,KAAaC,GAAmB,UAAU,KAAK;CAErD,OACC,kBAAC,OAAD;EAAK,WAAWL,EAAG,oHAAoHM,CAAS;EAAhJ,UAAA;GACEC,EAAQ,KAAK,MAAW;IACxB,IAAMC,IAAOC,EAAO,MACdC,IAAWD,EAAO,SAAS;IAEjC,OACC,kBAACP,GAAD;KAEC,MAAK;KACL,MAAMQ,IAAW,YAAY;KAC7B,aAAaA,IAAW,UAAU;KAClC,MAAK;KAAK,UAAA;KACV,SAASD,EAAO;KAChB,UAAUE,KAAY,CAACC,KAAaC,KAAcJ,EAAO;KACzD,cAAYA,EAAO;KACnB,OAAOA,EAAO;KAEd,UAAA,kBAACD,GAAD,EAAM,WAAU,YAAa,CAAA;IACtB,GAXFC,EAAO,EAWL;GAEV,CAAC;GAEA,CAACK,KACD,kBAAAf,GAAA,EAAA,UAAA,CACC,kBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA,GAEvD,kBAACG,GAAD;IACC,MAAK;IACL,MAAMW,IAAa,YAAY;IAC/B,aAAaA,IAAa,UAAU;IACpC,MAAK;IAAK,UAAA;IACV,SAASG;IACT,UAAUL,KAAY,CAACC;IACvB,cAAYK,EAAQ,QAAQ;IAC5B,OAAOA,EAAQ,QAAQ;IAEvB,UAAA,kBAACC,GAAD,EAAO,WAAU,YAAa,CAAA;GACvB,CAAA,CACP,EAAA,CAAA;GAGFd,KACA,kBAAAL,GAAA,EAAA,UAAA,CACC,kBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA,GACtDM,GAAmB,KAAK,MAAS;IACjC,IAAMG,IAAOW,EAAK,MACZT,IAAWS,EAAK,WAAW,KAAK;IACtC,OACC,kBAACjB,GAAD;KAEC,MAAK;KACL,MAAMQ,IAAW,YAAY;KAC7B,aAAaA,IAAW,UAAU;KAClC,MAAK;KAAK,UAAA;KACV,SAASS,EAAK;KACd,UAAUR,KAAY,CAACC,KAAaC,KAAcM,EAAK;KACvD,cAAYA,EAAK;KACjB,OAAOA,EAAK;KAEZ,UAAA,kBAACX,GAAD,EAAM,WAAU,YAAa,CAAA;IACtB,GAXFW,EAAK,EAWH;GAEV,CAAC,CACA,EAAA,CAAA;GAGF,CAAC,CAACC,KACF,kBAAC,OAAD;IAAK,WAAU;IAA0C,UAAAA;GAAqB,CAAA;EAE3E;;AAEP;AAEA,EAAsB,cAAc;;;AC3HpC,IAAaC,IAAwB;CACpC,QAAQrB,EAAG,0MAA0MC,EAAsB;EAAC,MAAM;EAAQ,MAAM;EAAM,QAAQ;EAAW,OAAO;EAAQ,YAAY;EAAW,SAAS;CAAI,CAAC,CAAC;CAC9U,OAAO;CACP,UAAU;CACV,SAAS;AACV"}
@@ -1,25 +0,0 @@
1
- //#region src/components/features/rich-text-editor/rich-text-editor.strings.ts
2
- var e = {
3
- editorLabel: "Rich text editor",
4
- sourceLabel: "HTML source",
5
- toolbar: {
6
- bold: "Bold",
7
- italic: "Italic",
8
- strike: "Strike",
9
- bulletList: "Bullet list",
10
- orderedList: "Ordered list",
11
- blockquote: "Quote",
12
- undo: "Undo",
13
- redo: "Redo",
14
- sourceCode: "Source code"
15
- },
16
- counts: {
17
- characters: "characters",
18
- words: "words",
19
- max: "max"
20
- }
21
- };
22
- //#endregion
23
- export { e as t };
24
-
25
- //# sourceMappingURL=rich-text-editor.strings-BpnIQgMl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-text-editor.strings-BpnIQgMl.js","names":["defaultRichTextEditorStrings"],"sources":["../src/components/features/rich-text-editor/rich-text-editor.strings.ts"],"sourcesContent":["/**\n * Default user-facing strings for `<RichTextEditor>`.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <RichTextEditor strings={{ toolbar: { bold: t('editor.bold') } }} … />\n */\n\nexport interface RichTextEditorStrings {\n\t/** Accessible label for the editable rich-text surface. */\n\teditorLabel: string;\n\t/** Accessible label for the HTML source textarea. */\n\tsourceLabel: string;\n\t/** Toolbar button labels (used for `aria-label` and tooltip `title`). */\n\ttoolbar: {\n\t\tbold: string;\n\t\titalic: string;\n\t\tstrike: string;\n\t\tbulletList: string;\n\t\torderedList: string;\n\t\tblockquote: string;\n\t\tundo: string;\n\t\tredo: string;\n\t\tsourceCode: string;\n\t};\n\t/** Footer count labels — `{n}` is replaced with the count. */\n\tcounts: {\n\t\tcharacters: string;\n\t\twords: string;\n\t\tmax: string;\n\t};\n}\n\nexport const defaultRichTextEditorStrings: RichTextEditorStrings = {\n\teditorLabel: 'Rich text editor',\n\tsourceLabel: 'HTML source',\n\ttoolbar: {\n\t\tbold: 'Bold',\n\t\titalic: 'Italic',\n\t\tstrike: 'Strike',\n\t\tbulletList: 'Bullet list',\n\t\torderedList: 'Ordered list',\n\t\tblockquote: 'Quote',\n\t\tundo: 'Undo',\n\t\tredo: 'Redo',\n\t\tsourceCode: 'Source code',\n\t},\n\tcounts: {\n\t\tcharacters: 'characters',\n\t\twords: 'words',\n\t\tmax: 'max',\n\t},\n};\n"],"mappings":";AAiCA,IAAaA,IAAsD;CAClE,aAAa;CACb,aAAa;CACb,SAAS;EACR,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,YAAY;EACZ,aAAa;EACb,YAAY;EACZ,MAAM;EACN,MAAM;EACN,YAAY;CACb;CACA,QAAQ;EACP,YAAY;EACZ,OAAO;EACP,KAAK;CACN;AACD"}
@@ -1,32 +0,0 @@
1
- "use client";
2
- import { p as e } from "./ui-provider-D2_TeLqw.js";
3
- import { t } from "./utils-Cospvlj1.js";
4
- import { n } from "./text.styles-g4He6UIW.js";
5
- import { t as r } from "./sanitize-html-BG9FGe-j.js";
6
- import { t as i } from "./content-typography-CnwgMJ37.js";
7
- import { forwardRef as a, useMemo as o } from "react";
8
- import { jsx as s } from "react/jsx-runtime";
9
- //#region src/components/typography/rich-text/rich-text.tsx
10
- var c = a(function({ html: a, type: c = "main", size: l, align: u = "left", lineHeight: d = "normal", weight: f = "regular", className: p, numeric: m = !1, tag: h = "p", ...g }, _) {
11
- let { defaultTextSize: v } = e(), y = l ?? v ?? "sm", b = o(() => r(a ?? ""), [a]);
12
- return b ? /* @__PURE__ */ s(h, {
13
- ref: _,
14
- className: t(i, n({
15
- type: c,
16
- size: y,
17
- align: u,
18
- lineHeight: d,
19
- weight: f,
20
- numeric: m,
21
- className: p
22
- })),
23
- "data-typography": "rich-text",
24
- dangerouslySetInnerHTML: { __html: b },
25
- ...g
26
- }) : null;
27
- });
28
- c.displayName = "RichText";
29
- //#endregion
30
- export { c as t };
31
-
32
- //# sourceMappingURL=rich-text-j-FGAeZW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rich-text-j-FGAeZW.js","names":["useTypographyConfig","sanitizeHtml","contentTypographyClassName","RichText","forwardRef","sizeProp","Tag","props","size","defaultTextSize","sanitizedHtml","useMemo","html","cn","resolveTextClassNames"],"sources":["../src/components/typography/rich-text/rich-text.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\n\nimport { sanitizeHtml } from '../../../lib/sanitize-html';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { contentTypographyClassName } from '../content-typography';\n\nimport type { TextProps } from '../text';\nimport { resolveTextClassNames } from '../text.styles';\n\nexport interface RichTextProps\n\textends Omit<\n\t\tTextProps,\n\t\t'children' | 'content' | 'dangerouslySetInnerHTML'\n\t> {\n\t/** HTML sanitized through the package allowlist before rendering. */\n\thtml?: string | null;\n}\n\nexport const RichText = forwardRef<HTMLElement, RichTextProps>(\n\tfunction RichText(\n\t\t{\n\t\t\thtml,\n\t\t\ttype = 'main',\n\t\t\tsize: sizeProp,\n\t\t\talign = 'left',\n\t\t\tlineHeight = 'normal',\n\t\t\tweight = 'regular',\n\t\t\tclassName,\n\t\t\tnumeric = false,\n\t\t\ttag: Tag = 'p',\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { defaultTextSize } = useTypographyConfig();\n\t\tconst size = sizeProp ?? defaultTextSize ?? 'sm';\n\t\tconst sanitizedHtml = useMemo(() => sanitizeHtml(html ?? ''), [html]);\n\n\t\tif (!sanitizedHtml) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<Tag\n\t\t\t\tref={ref as never}\n\t\t\t\tclassName={cn(contentTypographyClassName, resolveTextClassNames({\n\t\t\t\t\ttype,\n\t\t\t\t\tsize,\n\t\t\t\t\talign,\n\t\t\t\t\tlineHeight,\n\t\t\t\t\tweight,\n\t\t\t\t\tnumeric,\n\t\t\t\t\tclassName,\n\t\t\t\t}))}\n\t\t\t\tdata-typography=\"rich-text\"\n\t\t\t\tdangerouslySetInnerHTML={{ __html: sanitizedHtml }}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nRichText.displayName = 'RichText';\n"],"mappings":";;;;;;;;;AAmBA,IAAaG,IAAWC,EACvB,SACC,EACC,SACA,UAAO,QACP,MAAMC,GACN,WAAQ,QACR,gBAAa,UACb,YAAS,WACT,cACA,aAAU,IACV,KAAKC,IAAM,KACX,GAAGC,KAEJ,GACC;CACD,IAAM,EAAE,uBAAoBP,EAAoB,GAC1CQ,IAAOH,KAAYI,KAAmB,MACtCC,IAAgBC,QAAcV,EAAaW,KAAQ,EAAE,GAAG,CAACA,CAAI,CAAC;CAMpE,OAJKF,IAKJ,kBAACJ,GAAD;EACM;EACL,WAAWO,EAAGX,GAA4BY,EAAsB;GAC/D;GACA;GACA;GACA;GACA;GACA;GACA;EACD,CAAC,CAAC;EACF,mBAAgB;EAChB,yBAAyB,EAAE,QAAQJ,EAAc;EACjD,GAAIH;CACJ,CAAA,IAlBM;AAoBT,CACD;AAEA,EAAS,cAAc"}
@@ -1,64 +0,0 @@
1
- import { fromHtml as e } from "hast-util-from-html";
2
- import { sanitize as t } from "hast-util-sanitize";
3
- import { toHtml as n } from "hast-util-to-html";
4
- //#region src/lib/sanitize-html.ts
5
- var r = {
6
- allowComments: !1,
7
- allowDoctypes: !1,
8
- tagNames: [.../* @__PURE__ */ "a.b.blockquote.br.code.del.div.em.h1.h2.h3.h4.h5.h6.i.li.mark.ol.p.pre.s.span.strong.sub.sup.u.ul".split(".")],
9
- attributes: {
10
- a: [
11
- "href",
12
- "title",
13
- [
14
- "target",
15
- "_blank",
16
- "_self",
17
- "_parent",
18
- "_top"
19
- ],
20
- "rel",
21
- "dataRefId",
22
- "dataRefKind",
23
- "dataRefTone"
24
- ],
25
- span: [
26
- "dataRefId",
27
- "dataRefKind",
28
- "dataRefTone"
29
- ]
30
- },
31
- protocols: { href: [
32
- "http",
33
- "https",
34
- "mailto",
35
- "tel"
36
- ] },
37
- strip: [
38
- "embed",
39
- "iframe",
40
- "math",
41
- "noscript",
42
- "object",
43
- "script",
44
- "style",
45
- "svg",
46
- "template"
47
- ]
48
- };
49
- function i(e) {
50
- if (e.type === "element") {
51
- let t = e.properties.href;
52
- typeof t == "string" && t.trimStart().startsWith("//") && delete e.properties.href;
53
- }
54
- if (e.type === "root" || e.type === "element") for (let t of e.children) i(t);
55
- }
56
- function a(a) {
57
- if (!a) return "";
58
- let o = e(a, { fragment: !0 });
59
- return i(o), n(t(o, r));
60
- }
61
- //#endregion
62
- export { a as t };
63
-
64
- //# sourceMappingURL=sanitize-html-BG9FGe-j.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitize-html-BG9FGe-j.js","names":["SANITIZE_SCHEMA","removeProtocolRelativeLinks","node","href","child","sanitizeHtml","input","unsafeTree","fromHtml","toHtml","sanitize"],"sources":["../src/lib/sanitize-html.ts"],"sourcesContent":["import { fromHtml } from 'hast-util-from-html';\nimport { sanitize, type Schema } from 'hast-util-sanitize';\nimport { toHtml } from 'hast-util-to-html';\nimport type { Root, RootContent } from 'hast';\n\nconst ALLOWED_TAGS = [\n\t'a',\n\t'b',\n\t'blockquote',\n\t'br',\n\t'code',\n\t'del',\n\t'div',\n\t'em',\n\t'h1',\n\t'h2',\n\t'h3',\n\t'h4',\n\t'h5',\n\t'h6',\n\t'i',\n\t'li',\n\t'mark',\n\t'ol',\n\t'p',\n\t'pre',\n\t's',\n\t'span',\n\t'strong',\n\t'sub',\n\t'sup',\n\t'u',\n\t'ul',\n] as const;\n\nconst SANITIZE_SCHEMA = {\n\tallowComments: false,\n\tallowDoctypes: false,\n\ttagNames: [...ALLOWED_TAGS],\n\tattributes: {\n\t\ta: [\n\t\t\t'href',\n\t\t\t'title',\n\t\t\t['target', '_blank', '_self', '_parent', '_top'],\n\t\t\t'rel',\n\t\t\t'dataRefId',\n\t\t\t'dataRefKind',\n\t\t\t'dataRefTone',\n\t\t],\n\t\tspan: ['dataRefId', 'dataRefKind', 'dataRefTone'],\n\t},\n\tprotocols: {\n\t\thref: ['http', 'https', 'mailto', 'tel'],\n\t},\n\tstrip: [\n\t\t'embed',\n\t\t'iframe',\n\t\t'math',\n\t\t'noscript',\n\t\t'object',\n\t\t'script',\n\t\t'style',\n\t\t'svg',\n\t\t'template',\n\t],\n} satisfies Schema;\n\nfunction removeProtocolRelativeLinks(node: Root | RootContent): void {\n\tif (node.type === 'element') {\n\t\tconst href = node.properties.href;\n\t\tif (typeof href === 'string' && href.trimStart().startsWith('//')) {\n\t\t\tdelete node.properties.href;\n\t\t}\n\t}\n\n\tif (node.type === 'root' || node.type === 'element') {\n\t\tfor (const child of node.children) {\n\t\t\tremoveProtocolRelativeLinks(child);\n\t\t}\n\t}\n}\n\n/**\n * Sanitize package-rendered rich text with an intentionally small HTML\n * vocabulary. Styling, event handlers, embedded media, and protocol-relative\n * URLs are excluded. Mention identity attributes remain available so the\n * Mentions feature can replace serialized references with React components.\n */\nexport function sanitizeHtml(input: string): string {\n\tif (!input) return '';\n\tconst unsafeTree = fromHtml(input, { fragment: true });\n\tremoveProtocolRelativeLinks(unsafeTree);\n\treturn toHtml(sanitize(unsafeTree, SANITIZE_SCHEMA));\n}\n\nexport default sanitizeHtml;\n"],"mappings":";;;;AAmCA,IAAMA,IAAkB;CACvB,eAAe;CACf,eAAe;CACf,UAAU,CAAC,GAAG,6HAAA,CAAY;CAC1B,YAAY;EACX,GAAG;GACF;GACA;GACA;IAAC;IAAU;IAAU;IAAS;IAAW;GAAM;GAC/C;GACA;GACA;GACA;EACD;EACA,MAAM;GAAC;GAAa;GAAe;EAAa;CACjD;CACA,WAAW,EACV,MAAM;EAAC;EAAQ;EAAS;EAAU;CAAK,EACxC;CACA,OAAO;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AACD;AAEA,SAASC,EAA4B,GAAgC;CACpE,IAAIC,EAAK,SAAS,WAAW;EAC5B,IAAMC,IAAOD,EAAK,WAAW;EAC7B,AAAI,OAAOC,KAAS,YAAYA,EAAK,UAAU,CAAC,CAAC,WAAW,IAAI,KAC/D,OAAOD,EAAK,WAAW;CAEzB;CAEA,IAAIA,EAAK,SAAS,UAAUA,EAAK,SAAS,WACzC,KAAK,IAAME,KAASF,EAAK,UACxB,EAA4BE,CAAK;AAGpC;AAQA,SAAgBC,EAAa,GAAuB;CACnD,IAAI,CAACC,GAAO,OAAO;CACnB,IAAMC,IAAaC,EAASF,GAAO,EAAE,UAAU,GAAK,CAAC;CAErD,OADAL,EAA4BM,CAAU,GAC/BE,EAAOC,EAASH,GAAYP,CAAe,CAAC;AACpD"}
@@ -1,47 +0,0 @@
1
- "use client";
2
- import { t as e } from "./utils-Cospvlj1.js";
3
- import "react";
4
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
5
- import { ScrollArea as r } from "@base-ui/react/scroll-area";
6
- //#region src/components/base/display/scroll-area.tsx
7
- function i({ orientation: i = "vertical", className: o, viewportClassName: s, scrollbarClassName: c, viewportRef: l, children: u, ...d }) {
8
- return /* @__PURE__ */ n(r.Root, {
9
- "data-slot": "scroll-area",
10
- className: e("scroll-area--component group/scroll-area relative overflow-hidden", o),
11
- ...d,
12
- children: [
13
- /* @__PURE__ */ t(r.Viewport, {
14
- ref: l,
15
- "data-slot": "scroll-area-viewport",
16
- className: e("size-full rounded-[inherit] outline-none transition-[color,box-shadow]", "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset", s),
17
- children: u
18
- }),
19
- i !== "horizontal" && /* @__PURE__ */ t(a, { className: c }),
20
- i !== "vertical" && /* @__PURE__ */ t(a, {
21
- orientation: "horizontal",
22
- className: c
23
- }),
24
- /* @__PURE__ */ t(r.Corner, {})
25
- ]
26
- });
27
- }
28
- function a({ className: n, orientation: i = "vertical", ...a }) {
29
- return /* @__PURE__ */ t(r.Scrollbar, {
30
- "data-slot": "scroll-area-scrollbar",
31
- "data-orientation": i,
32
- orientation: i,
33
- className: e({
34
- "h-2.5 flex-col border-t border-t-transparent": i === "horizontal",
35
- "h-full w-2 border-l border-l-transparent": i === "vertical"
36
- }, "flex touch-none select-none rounded-full p-px opacity-0 transition-opacity", "data-hovering:opacity-100 data-scrolling:opacity-100 group-focus-within/scroll-area:opacity-100", n),
37
- ...a,
38
- children: /* @__PURE__ */ t(r.Thumb, {
39
- "data-slot": "scroll-area-thumb",
40
- className: "relative flex-1 rounded-full bg-border"
41
- })
42
- });
43
- }
44
- //#endregion
45
- export { a as n, i as t };
46
-
47
- //# sourceMappingURL=scroll-area-DRdr16Pt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-area-DRdr16Pt.js","names":["ScrollArea","ScrollAreaPrimitive","cn","ScrollArea$1","props","ScrollArea","className","viewportRef","viewportClassName","orientation","ScrollBar","scrollbarClassName"],"sources":["../src/components/base/display/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { cn } from '../../../lib/utils';\n\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props & {\n\t/** Axes with custom scrollbar chrome. Defaults to vertical. */\n\torientation?: 'vertical' | 'horizontal' | 'both';\n\tviewportRef?: React.Ref<HTMLDivElement>;\n\tviewportClassName?: string;\n\tscrollbarClassName?: string;\n};\n\nfunction ScrollArea({\n\torientation = 'vertical',\n\tclassName,\n\tviewportClassName,\n\tscrollbarClassName,\n\tviewportRef,\n\tchildren,\n\t...props\n}: ScrollAreaProps) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root\n\t\t\tdata-slot=\"scroll-area\"\n\t\t\tclassName={cn('scroll-area--component group/scroll-area relative overflow-hidden', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tref={viewportRef}\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'size-full rounded-[inherit] outline-none transition-[color,box-shadow]',\n\t\t\t\t\t// The root clips overflow, so the shared ring is drawn inside the viewport edge.\n\t\t\t\t\t'focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset',\n\t\t\t\t\tviewportClassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t{orientation !== 'horizontal' && <ScrollBar className={scrollbarClassName} />}\n\t\t\t{orientation !== 'vertical' && <ScrollBar orientation=\"horizontal\" className={scrollbarClassName} />}\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({\n\tclassName,\n\torientation = 'vertical',\n\t...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Scrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\tdata-orientation={orientation}\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t{\n\t\t\t\t\t'h-2.5 flex-col border-t border-t-transparent': orientation === 'horizontal',\n\t\t\t\t\t'h-full w-2 border-l border-l-transparent': orientation === 'vertical',\n\t\t\t\t},\n\t\t\t\t// `rounded-full`, not a scale value: the track is 8-10px on its short\n\t\t\t\t// axis, so any radius past half of that already clamps to a pill.\n\t\t\t\t// Saying `rounded-full` states the intent and stops the value drifting\n\t\t\t\t// with the radius scale.\n\t\t\t\t'flex touch-none select-none rounded-full p-px opacity-0 transition-opacity',\n\t\t\t\t'data-hovering:opacity-100 data-scrolling:opacity-100 group-focus-within/scroll-area:opacity-100',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.Thumb\n\t\t\t\tdata-slot=\"scroll-area-thumb\"\n\t\t\t\tclassName=\"relative flex-1 rounded-full bg-border\"\n\t\t\t/>\n\t\t</ScrollAreaPrimitive.Scrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":";;;;;;AAaA,SAASA,EAAW,EACnB,iBAAc,YACd,cACA,sBACA,uBACA,gBACA,aACA,GAAGI,KACgB;CACnB,OACC,kBAACH,EAAoB,MAArB;EACC,aAAU;EACV,WAAWC,EAAG,qEAAqEI,CAAS;EAC5F,GAAIF;EAHL,UAAA;GAKC,kBAACH,EAAoB,UAArB;IACC,KAAKM;IACL,aAAU;IACV,WAAWL,EACV,0EAEA,yEACAM,CACD;IAEC;GAC4B,CAAA;GAC7BC,MAAgB,gBAAgB,kBAACC,GAAD,EAAW,WAAWC,EAAqB,CAAA;GAC3EF,MAAgB,cAAc,kBAACC,GAAD;IAAW,aAAY;IAAa,WAAWC;GAAqB,CAAA;GACnG,kBAACV,EAAoB,QAArB,CAA6B,CAAA;EACJ;;AAE5B;AAEA,SAASS,EAAU,EAClB,cACA,iBAAc,YACd,GAAGN,KACoC;CACvC,OACC,kBAACH,EAAoB,WAArB;EACC,aAAU;EACV,oBAAkBQ;EACL;EACb,WAAWP,EACV;GACC,gDAAgDO,MAAgB;GAChE,4CAA4CA,MAAgB;EAC7D,GAKA,8EACA,mGACAH,CACD;EACA,GAAIF;EAEJ,UAAA,kBAACH,EAAoB,OAArB;GACC,aAAU;GACV,WAAU;EACV,CAAA;CAC6B,CAAA;AAEjC"}
@@ -1,161 +0,0 @@
1
- "use client";
2
- import { useStrings as e } from "./lib/strings.js";
3
- import { t } from "./utils-Cospvlj1.js";
4
- import { a as n, o as r, s as i } from "./typography-CAr3dQhX.js";
5
- import { t as a } from "./structure-hzCW-XsV.js";
6
- import { t as o } from "./smart-card-Bek-TwUp.js";
7
- import { t as s } from "./badge-0tATj-tW.js";
8
- import { n as c } from "./layout.types-Cn7aUzJp.js";
9
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
10
- //#region src/components/layout/settings/settings.tsx
11
- var d = { navigationAriaLabel: "Settings navigation" };
12
- function f(e) {
13
- if (!e) return "";
14
- try {
15
- let t = typeof window < "u" ? window.location.origin : "http://localhost", n = new URL(e, t).pathname.replace(/\/+$/, "");
16
- return n.length > 0 ? n : "/";
17
- } catch {
18
- let t = (e.split("?")[0] ?? e).replace(/\/+$/, "");
19
- return t.length > 0 ? t : "/";
20
- }
21
- }
22
- function p(e, t, n) {
23
- if (t) return e.id === t;
24
- if (!n || !e.href) return !1;
25
- let r = f(n), i = f(e.href);
26
- return r === i || r.startsWith(`${i}/`);
27
- }
28
- function m({ title: f, description: m, groups: h, currentId: g, currentPath: _, children: v, aside: y, actions: b, footer: x, className: S, navClassName: C, contentClassName: w, renderLink: T, strings: E }) {
29
- let D = e(d, E), O = c({ renderLink: T });
30
- return /* @__PURE__ */ u("section", {
31
- "data-component": "aside-nav-shell",
32
- "data-slot": "aside-nav-shell",
33
- className: t("aside-nav-shell--component grid min-w-0 gap-space-xl lg:grid-cols-[17rem_minmax(0,1fr)]", S),
34
- children: [/* @__PURE__ */ l("aside", {
35
- "data-slot": "aside-nav-shell-aside",
36
- className: "aside-nav-shell--aside min-w-0",
37
- children: /* @__PURE__ */ u(o, {
38
- surface: "card",
39
- className: t("aside-nav-shell--nav-card sticky top-[calc(var(--shell-header-height)_+_1rem*var(--space-scale))]", C),
40
- contentClassName: "grid gap-space-xl",
41
- children: [!!y && /* @__PURE__ */ l("div", {
42
- className: "aside-nav-shell--aside-header",
43
- children: y
44
- }), /* @__PURE__ */ l(a, {
45
- render: /* @__PURE__ */ l("nav", { "aria-label": D.navigationAriaLabel }),
46
- gap: "xl",
47
- children: h.map((e) => /* @__PURE__ */ u(a, {
48
- gap: "sm",
49
- children: [!!e.label && /* @__PURE__ */ l(n, {
50
- className: "px-row-x",
51
- children: e.label
52
- }), /* @__PURE__ */ l(a, {
53
- gap: "2xs",
54
- children: e.items.map((e) => {
55
- let n = e.icon, r = p(e, g, _), o = /* @__PURE__ */ u(a, {
56
- direction: "horizontal",
57
- align: "start",
58
- gap: "md",
59
- wrap: !1,
60
- render: /* @__PURE__ */ l("span", {}),
61
- className: "min-w-0 w-full",
62
- children: [
63
- !!n && /* @__PURE__ */ l(n, { className: t("size-icon shrink-0 mt-space-2xs", r ? "text-primary-accent" : "text-muted-foreground") }),
64
- /* @__PURE__ */ u(a, {
65
- render: /* @__PURE__ */ l("span", {}),
66
- gap: "dense",
67
- className: "min-w-0 flex-1",
68
- children: [/* @__PURE__ */ l(i, {
69
- tag: "span",
70
- weight: r ? "semibold" : "medium",
71
- className: "truncate",
72
- children: e.label
73
- }), !!e.description && /* @__PURE__ */ l(i, {
74
- tag: "span",
75
- size: "xs",
76
- type: "secondary",
77
- className: "truncate",
78
- children: e.description
79
- })]
80
- }),
81
- !!e.badge && /* @__PURE__ */ l(s, {
82
- tone: "secondary",
83
- className: "shrink-0",
84
- children: e.badge
85
- })
86
- ]
87
- });
88
- return /* @__PURE__ */ l("div", {
89
- onClick: () => {
90
- e.disabled || e.onSelect?.(e.id);
91
- },
92
- children: O({
93
- href: e.href,
94
- children: o,
95
- active: r,
96
- disabled: e.disabled,
97
- external: e.external,
98
- className: t("aside-nav-shell--item flex min-w-0 rounded-inner px-row-x py-row-y transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", r ? "bg-accent text-accent-foreground" : "text-foreground hover:bg-accent hover:text-accent-foreground", e.disabled && "pointer-events-none opacity-50"),
99
- "aria-label": typeof e.label == "string" ? e.label : void 0
100
- })
101
- }, e.id);
102
- })
103
- })]
104
- }, e.id))
105
- })]
106
- })
107
- }), /* @__PURE__ */ u(a, {
108
- gap: "xl",
109
- "data-slot": "aside-nav-shell-main",
110
- className: t("aside-nav-shell--main", w),
111
- children: [
112
- (f || m || b) && /* @__PURE__ */ u(a, {
113
- render: /* @__PURE__ */ l("header", {}),
114
- direction: {
115
- base: "vertical",
116
- sm: "horizontal"
117
- },
118
- gap: "lg",
119
- align: { sm: "start" },
120
- justify: { sm: "between" },
121
- className: "aside-nav-shell--header",
122
- children: [/* @__PURE__ */ u(a, {
123
- gap: "normal",
124
- className: "min-w-0 flex-1",
125
- children: [!!f && /* @__PURE__ */ l(r, {
126
- tag: "h2",
127
- className: "border-0 pb-0",
128
- children: f
129
- }), !!m && /* @__PURE__ */ l(i, {
130
- type: "secondary",
131
- className: "max-w-3xl",
132
- children: m
133
- })]
134
- }), !!b && /* @__PURE__ */ l(a, {
135
- direction: "horizontal",
136
- wrap: !0,
137
- align: "center",
138
- gap: "md",
139
- className: "shrink-0",
140
- children: b
141
- })]
142
- }),
143
- /* @__PURE__ */ l("div", {
144
- "data-slot": "aside-nav-shell-content",
145
- className: "aside-nav-shell--content min-w-0",
146
- children: v
147
- }),
148
- !!x && /* @__PURE__ */ l("footer", {
149
- className: "aside-nav-shell--footer",
150
- children: x
151
- })
152
- ]
153
- })]
154
- });
155
- }
156
- var h = m;
157
- m.displayName = "AsideNavShell";
158
- //#endregion
159
- export { h as n, d as r, m as t };
160
-
161
- //# sourceMappingURL=settings-DHk0L2MF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings-DHk0L2MF.js","names":["DisplayLabel","Heading","Text","Stack","Card","Badge","resolveLayoutLinkRenderer","defaultAsideNavShellStrings","normalizePath","rawUrl","baseOrigin","trimmed","isActiveItem","currentId","item","currentPath","activePath","itemPath","AsideNavShell","stringsProp","strings","useStrings","linkRenderer","cn","className","navClassName","aside","groups","group","Icon","active","content","contentClassName","title","description","actions","footer","SettingsShell"],"sources":["../src/components/layout/settings/settings.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from 'react';\n\nimport { Badge } from '../../base/badge';\nimport { Card } from '../../base/cards';\nimport { Stack } from '../../base/structure';\nimport { DisplayLabel, Heading, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tresolveLayoutLinkRenderer,\n\ttype LayoutNavigationAdapter,\n} from '../layout.types';\n\nexport interface AsideNavShellStrings {\n\tnavigationAriaLabel: string;\n}\n\nexport const defaultAsideNavShellStrings: AsideNavShellStrings = {\n\tnavigationAriaLabel: 'Settings navigation',\n};\n\nexport interface AsideNavItem {\n\tid: string;\n\t/** Display label. */\n\tlabel: ReactNode;\n\t/** Destination for the entry, when it navigates. */\n\thref?: string;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Leading glyph. */\n\ticon?: ComponentType<{ className?: string }>;\n\t/** Chip rendered beside the label. */\n\tbadge?: ReactNode;\n\t/** Disables the control. */\n\tdisabled?: boolean;\n\texternal?: boolean;\n\tonSelect?: (id: string) => void;\n}\n\nexport interface AsideNavGroup {\n\tid: string;\n\t/** Display label. */\n\tlabel?: ReactNode;\n\t/** Entries to render, in order. */\n\titems: AsideNavItem[];\n}\n\nexport interface AsideNavShellProps extends LayoutNavigationAdapter {\n\t/** Surface title. */\n\ttitle?: ReactNode;\n\t/** Supporting copy under the title. */\n\tdescription?: ReactNode;\n\t/** Sections of the settings navigation. */\n\tgroups: AsideNavGroup[];\n\t/** Id of the active entry. */\n\tcurrentId?: string;\n\t/** Path of the active route. */\n\tcurrentPath?: string;\n\tchildren?: ReactNode;\n\t/** Content beside the main settings panel. */\n\taside?: ReactNode;\n\t/** Controls offered on the surface. */\n\tactions?: ReactNode;\n\t/** Content below the body. */\n\tfooter?: ReactNode;\n\tclassName?: string;\n\t/** Merged onto the navigation region. */\n\tnavClassName?: string;\n\t/** Merged onto the content region. */\n\tcontentClassName?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<AsideNavShellStrings>;\n}\n\nexport type SettingsShellProps = AsideNavShellProps;\n\nfunction normalizePath(rawUrl?: string): string {\n\tif (!rawUrl) return '';\n\ttry {\n\t\tconst baseOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';\n\t\tconst parsed = new URL(rawUrl, baseOrigin);\n\t\tconst trimmed = parsed.pathname.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t} catch {\n\t\tconst clean = rawUrl.split('?')[0] ?? rawUrl;\n\t\tconst trimmed = clean.replace(/\\/+$/, '');\n\t\treturn trimmed.length > 0 ? trimmed : '/';\n\t}\n}\n\nfunction isActiveItem(item: AsideNavItem, currentId?: string, currentPath?: string): boolean {\n\tif (currentId) return item.id === currentId;\n\tif (!currentPath || !item.href) return false;\n\tconst activePath = normalizePath(currentPath);\n\tconst itemPath = normalizePath(item.href);\n\treturn activePath === itemPath || activePath.startsWith(`${itemPath}/`);\n}\n\nexport function AsideNavShell({\n\ttitle,\n\tdescription,\n\tgroups,\n\tcurrentId,\n\tcurrentPath,\n\tchildren,\n\taside,\n\tactions,\n\tfooter,\n\tclassName,\n\tnavClassName,\n\tcontentClassName,\n\trenderLink,\n\tstrings: stringsProp,\n}: AsideNavShellProps) {\n\tconst strings = useStrings(defaultAsideNavShellStrings, stringsProp);\n\tconst linkRenderer = resolveLayoutLinkRenderer({ renderLink });\n\n\treturn (\n\t\t<section\n\t\t\tdata-component=\"aside-nav-shell\"\n\t\t\tdata-slot=\"aside-nav-shell\"\n\t\t\tclassName={cn('aside-nav-shell--component grid min-w-0 gap-space-xl lg:grid-cols-[17rem_minmax(0,1fr)]', className)}\n\t\t>\n\t\t\t<aside data-slot=\"aside-nav-shell-aside\" className=\"aside-nav-shell--aside min-w-0\">\n\t\t\t\t<Card\n\t\t\t\t\tsurface=\"card\"\n\t\t\t\t\tclassName={cn('aside-nav-shell--nav-card sticky top-[calc(var(--shell-header-height)_+_1rem*var(--space-scale))]', navClassName)}\n\t\t\t\t\tcontentClassName=\"grid gap-space-xl\"\n\t\t\t\t>\n\t\t\t\t\t{!!aside && <div className=\"aside-nav-shell--aside-header\">{aside}</div>}\n\t\t\t\t\t<Stack render={<nav aria-label={strings.navigationAriaLabel} />} gap=\"xl\">\n\t\t\t\t\t\t{groups.map((group) => (\n\t\t\t\t\t\t\t<Stack key={group.id} gap=\"sm\">\n\t\t\t\t\t\t\t\t{!!group.label && (\n\t\t\t\t\t\t\t\t\t<DisplayLabel className=\"px-row-x\">\n\t\t\t\t\t\t\t\t\t\t{group.label}\n\t\t\t\t\t\t\t\t\t</DisplayLabel>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Stack gap=\"2xs\">\n\t\t\t\t\t\t\t\t\t{group.items.map((item) => {\n\t\t\t\t\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\t\t\t\t\tconst active = isActiveItem(item, currentId, currentPath);\n\t\t\t\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t\t\t\t<Stack direction=\"horizontal\" align=\"start\" gap=\"md\" wrap={false} render={<span />} className=\"min-w-0 w-full\">\n\t\t\t\t\t\t\t\t\t\t\t\t{!!Icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'size-icon shrink-0 mt-space-2xs',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive ? 'text-primary-accent' : 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t<Stack render={<span />} gap=\"dense\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight={active ? 'semibold' : 'medium'} className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{!!item.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"truncate\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t\t\t{!!item.badge && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Badge tone=\"secondary\" className=\"shrink-0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.badge}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<div key={item.id} onClick={() => { if (!item.disabled) item.onSelect?.(item.id); }}>\n\t\t\t\t\t\t\t\t\t\t\t\t{linkRenderer({\n\t\t\t\t\t\t\t\t\t\t\t\t\thref: item.href,\n\t\t\t\t\t\t\t\t\t\t\t\t\tchildren: content,\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled: item.disabled,\n\t\t\t\t\t\t\t\t\t\t\t\t\texternal: item.external,\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'aside-nav-shell--item flex min-w-0 rounded-inner px-row-x py-row-y transition-colors',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'bg-accent text-accent-foreground'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'text-foreground hover:bg-accent hover:text-accent-foreground',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.disabled && 'pointer-events-none opacity-50',\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t'aria-label': typeof item.label === 'string' ? item.label : undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Stack>\n\t\t\t\t</Card>\n\t\t\t</aside>\n\n\t\t\t\t<Stack gap=\"xl\" data-slot=\"aside-nav-shell-main\" className={cn('aside-nav-shell--main', contentClassName)}>\n\t\t\t\t{(title || description || actions) && (\n\t\t\t\t\t<Stack\n\t\t\t\t\t\trender={<header />}\n\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\tgap=\"lg\"\n\t\t\t\t\t\talign={{ sm: 'start' }}\n\t\t\t\t\t\tjustify={{ sm: 'between' }}\n\t\t\t\t\t\tclassName=\"aside-nav-shell--header\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* `flex-1` so the text yields width to the actions instead of\n\t\t\t\t\t\t claiming its full content width. The header wraps on `sm`,\n\t\t\t\t\t\t and the description's `max-w-3xl` is wider than the content\n\t\t\t\t\t\t column, so without this the actions wrapped onto their own\n\t\t\t\t\t\t line below the description rather than sitting beside the\n\t\t\t\t\t\t title. */}\n\t\t\t\t\t\t<Stack gap=\"normal\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t{!!title && <Heading tag=\"h2\" className=\"border-0 pb-0\">{title}</Heading>}\n\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t<Text type=\"secondary\" className=\"max-w-3xl\">\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t{!!actions && <Stack direction=\"horizontal\" wrap align=\"center\" gap=\"md\" className=\"shrink-0\">{actions}</Stack>}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t\t\t<div data-slot=\"aside-nav-shell-content\" className=\"aside-nav-shell--content min-w-0\">\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t\t{!!footer && <footer className=\"aside-nav-shell--footer\">{footer}</footer>}\n\t\t\t\t</Stack>\n\t\t</section>\n\t);\n}\n\nexport const SettingsShell = AsideNavShell;\n\nAsideNavShell.displayName = 'AsideNavShell';\n"],"mappings":";;;;;;;;;;AAkBA,IAAaO,IAAoD,EAChE,qBAAqB,sBACtB;AAyDA,SAASC,EAAc,GAAyB;CAC/C,IAAI,CAACC,GAAQ,OAAO;CACpB,IAAI;EACH,IAAMC,IAAa,OAAO,SAAW,MAAc,OAAO,SAAS,SAAS,oBAEtEC,IAAU,IADG,IAAIF,GAAQC,CACf,CAAA,CAAO,SAAS,QAAQ,QAAQ,EAAE;EAClD,OAAOC,EAAQ,SAAS,IAAIA,IAAU;CACvC,QAAQ;EAEP,IAAMA,KADQF,EAAO,MAAM,GAAG,CAAC,CAAC,MAAMA,EAAA,CAChB,QAAQ,QAAQ,EAAE;EACxC,OAAOE,EAAQ,SAAS,IAAIA,IAAU;CACvC;AACD;AAEA,SAASC,EAAa,GAAoB,GAAoB,GAA+B;CAC5F,IAAIC,GAAW,OAAOC,EAAK,OAAOD;CAClC,IAAI,CAACE,KAAe,CAACD,EAAK,MAAM,OAAO;CACvC,IAAME,IAAaR,EAAcO,CAAW,GACtCE,IAAWT,EAAcM,EAAK,IAAI;CACxC,OAAOE,MAAeC,KAAYD,EAAW,WAAW,GAAGC,EAAS,EAAE;AACvE;AAEA,SAAgBC,EAAc,EAC7B,UACA,gBACA,WACA,cACA,gBACA,aACA,UACA,YACA,WACA,cACA,iBACA,qBACA,eACA,SAASC,KACa;CACtB,IAAMC,IAAUC,EAAWd,GAA6BY,CAAW,GAC7DG,IAAehB,EAA0B,EAAE,cAAW,CAAC;CAE7D,OACC,kBAAC,WAAD;EACC,kBAAe;EACf,aAAU;EACV,WAAWiB,EAAG,2FAA2FC,CAAS;EAHnH,UAAA,CAKC,kBAAC,SAAD;GAAO,aAAU;GAAwB,WAAU;GAClD,UAAA,kBAACpB,GAAD;IACC,SAAQ;IACR,WAAWmB,EAAG,qGAAqGE,CAAY;IAC/H,kBAAiB;IAHlB,UAAA,CAKE,CAAC,CAACC,KAAS,kBAAC,OAAD;KAAK,WAAU;KAAiC,UAAAA;IAAW,CAAA,GACvE,kBAACvB,GAAD;KAAO,QAAQ,kBAAC,OAAD,EAAK,cAAYiB,EAAQ,oBAAsB,CAAA;KAAG,KAAI;KACnE,UAAAO,EAAO,KAAK,MACZ,kBAACxB,GAAD;MAAsB,KAAI;MAA1B,UAAA,CACE,CAAC,CAACyB,EAAM,SACR,kBAAC5B,GAAD;OAAc,WAAU;OACtB,UAAA4B,EAAM;MACM,CAAA,GAEf,kBAACzB,GAAD;OAAO,KAAI;OACT,UAAAyB,EAAM,MAAM,KAAK,MAAS;QAC1B,IAAMC,IAAOf,EAAK,MACZgB,IAASlB,EAAaE,GAAMD,GAAWE,CAAW,GAClDgB,IACL,kBAAC5B,GAAD;SAAO,WAAU;SAAa,OAAM;SAAQ,KAAI;SAAK,MAAM;SAAO,QAAQ,kBAAC,QAAD,CAAO,CAAA;SAAG,WAAU;SAA9F,UAAA;UACE,CAAC,CAAC0B,KACF,kBAACA,GAAD,EACC,WAAWN,EACV,mCACAO,IAAS,wBAAwB,uBAClC,EACA,CAAA;UAEF,kBAAC3B,GAAD;WAAO,QAAQ,kBAAC,QAAD,CAAO,CAAA;WAAG,KAAI;WAAQ,WAAU;WAA/C,UAAA,CACC,kBAACD,GAAD;YAAM,KAAI;YAAO,QAAQ4B,IAAS,aAAa;YAAU,WAAU;YACjE,UAAAhB,EAAK;WACD,CAAA,GACL,CAAC,CAACA,EAAK,eACP,kBAACZ,GAAD;YAAM,KAAI;YAAO,MAAK;YAAK,MAAK;YAAY,WAAU;YACpD,UAAAY,EAAK;WACD,CAAA,CAED;;UACN,CAAC,CAACA,EAAK,SACP,kBAACT,GAAD;WAAO,MAAK;WAAY,WAAU;WAChC,UAAAS,EAAK;UACA,CAAA;SAEF;;QAGR,OACC,kBAAC,OAAD;SAAmB,eAAe;UAAE,AAAKA,EAAK,YAAUA,EAAK,WAAWA,EAAK,EAAE;SAAG;SAChF,UAAAQ,EAAa;UACb,MAAMR,EAAK;UACX,UAAUiB;UACV;UACA,UAAUjB,EAAK;UACf,UAAUA,EAAK;UACf,WAAWS,EACV,wFACA,2EACAO,IACG,qCACA,gEACHhB,EAAK,YAAY,gCAClB;UACA,cAAc,OAAOA,EAAK,SAAU,WAAWA,EAAK,QAAQ,KAAA;SAC7D,CAAC;QACG,GAjBKA,EAAK,EAiBV;OAEP,CAAC;MACK,CAAA,CACD;KA5DK,GAAAc,EAAM,EA4DX,CACP;IACK,CAAA,CACF;;EACA,CAAA,GAEN,kBAACzB,GAAD;GAAO,KAAI;GAAK,aAAU;GAAuB,WAAWoB,EAAG,yBAAyBS,CAAgB;GAAxG,UAAA;KACEC,KAASC,KAAeC,MACzB,kBAAChC,GAAD;KACC,QAAQ,kBAAC,UAAD,CAAS,CAAA;KACjB,WAAW;MAAE,MAAM;MAAY,IAAI;KAAa;KAChD,KAAI;KACJ,OAAO,EAAE,IAAI,QAAQ;KACrB,SAAS,EAAE,IAAI,UAAU;KACzB,WAAU;KANX,UAAA,CAcC,kBAACA,GAAD;MAAO,KAAI;MAAS,WAAU;MAA9B,UAAA,CACE,CAAC,CAAC8B,KAAS,kBAAChC,GAAD;OAAS,KAAI;OAAK,WAAU;OAAiB,UAAAgC;MAAe,CAAA,GACvE,CAAC,CAACC,KACF,kBAAChC,GAAD;OAAM,MAAK;OAAY,WAAU;OAC/B,UAAAgC;MACI,CAAA,CAED;KACN,CAAA,GAAA,CAAC,CAACC,KAAW,kBAAChC,GAAD;MAAO,WAAU;MAAa,MAAA;MAAK,OAAM;MAAS,KAAI;MAAK,WAAU;MAAY,UAAAgC;KAAe,CAAA,CACxG;;IAEP,kBAAC,OAAD;KAAK,aAAU;KAA0B,WAAU;KACjD;IACG,CAAA;IACJ,CAAC,CAACC,KAAU,kBAAC,UAAD;KAAQ,WAAU;KAA2B,UAAAA;IAAe,CAAA;GACnE;EACA,CAAA,CAAA;;AAEX;AAEA,IAAaC,IAAgBnB;AAE7B,EAAc,cAAc"}