themelia-react-ui 0.0.0-stage → 1.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 (1367) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/LICENSE +21 -0
  3. package/README.md +282 -2
  4. package/THIRD_PARTY_NOTICES.md +65 -0
  5. package/dist/accordion-B-5Focs8.js +205 -0
  6. package/dist/accordion-B-5Focs8.js.map +1 -0
  7. package/dist/action-menu-Cx3SdfbN.js +265 -0
  8. package/dist/action-menu-Cx3SdfbN.js.map +1 -0
  9. package/dist/action-presentation.js +11 -0
  10. package/dist/action-presentation.js.map +1 -0
  11. package/dist/affordance-geometry.generated-D8Jcfb0G.js +32 -0
  12. package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +1 -0
  13. package/dist/ai-artifact-B5tPpXnS.js +1121 -0
  14. package/dist/ai-artifact-B5tPpXnS.js.map +1 -0
  15. package/dist/anchored-positioning-DPnKTvNs.js +6 -0
  16. package/dist/anchored-positioning-DPnKTvNs.js.map +1 -0
  17. package/dist/app-shell-at8Kt4l_.js +235 -0
  18. package/dist/app-shell-at8Kt4l_.js.map +1 -0
  19. package/dist/attachment-BO2R47wn.js +244 -0
  20. package/dist/attachment-BO2R47wn.js.map +1 -0
  21. package/dist/auth-OFwWSAap.js +704 -0
  22. package/dist/auth-OFwWSAap.js.map +1 -0
  23. package/dist/avatar-Bpzty83c.js +178 -0
  24. package/dist/avatar-Bpzty83c.js.map +1 -0
  25. package/dist/badge-BZXZT9wd.js +92 -0
  26. package/dist/badge-BZXZT9wd.js.map +1 -0
  27. package/dist/base/accordion.js +3 -0
  28. package/dist/base/action-menu.js +3 -0
  29. package/dist/base/attachment.js +3 -0
  30. package/dist/base/avatar.js +3 -0
  31. package/dist/base/badge.js +3 -0
  32. package/dist/base/buttons.js +3 -0
  33. package/dist/base/cards.js +4 -0
  34. package/dist/base/carousel.js +251 -0
  35. package/dist/base/carousel.js.map +1 -0
  36. package/dist/base/cascader.js +361 -0
  37. package/dist/base/cascader.js.map +1 -0
  38. package/dist/base/chart.js +3 -0
  39. package/dist/base/choice-inputs.js +4 -0
  40. package/dist/base/code-block.js +3 -0
  41. package/dist/base/combobox.js +3 -0
  42. package/dist/base/command.js +3 -0
  43. package/dist/base/copyable.js +3 -0
  44. package/dist/base/date-pickers.js +4 -0
  45. package/dist/base/display.js +8 -0
  46. package/dist/base/feedback.js +5 -0
  47. package/dist/base/forms-numeric.js +3 -0
  48. package/dist/base/forms.js +4 -0
  49. package/dist/base/inline-edit.js +236 -0
  50. package/dist/base/inline-edit.js.map +1 -0
  51. package/dist/base/item.js +3 -0
  52. package/dist/base/media-gallery.js +3 -0
  53. package/dist/base/navigation.js +8 -0
  54. package/dist/base/popover-menu.js +3 -0
  55. package/dist/base/popover.js +3 -0
  56. package/dist/base/qr-code.js +63 -0
  57. package/dist/base/qr-code.js.map +1 -0
  58. package/dist/base/repeaters.js +620 -0
  59. package/dist/base/repeaters.js.map +1 -0
  60. package/dist/base/sheet.js +3 -0
  61. package/dist/base/sidebar.js +3 -0
  62. package/dist/base/signature-pad.js +364 -0
  63. package/dist/base/signature-pad.js.map +1 -0
  64. package/dist/base/skeleton.js +3 -0
  65. package/dist/base/spinner.js +3 -0
  66. package/dist/base/structure.js +3 -0
  67. package/dist/base/table.js +3 -0
  68. package/dist/base/text-inputs.js +4 -0
  69. package/dist/base/toaster.js +102 -0
  70. package/dist/base/toaster.js.map +1 -0
  71. package/dist/base/tree.js +3 -0
  72. package/dist/base/upload-queue.js +3 -0
  73. package/dist/base/upload.js +5 -0
  74. package/dist/base/value-inputs.js +3 -0
  75. package/dist/blocks/admin.js +478 -0
  76. package/dist/blocks/admin.js.map +1 -0
  77. package/dist/blocks/ai.js +1021 -0
  78. package/dist/blocks/ai.js.map +1 -0
  79. package/dist/blocks/analytics/usage-card.js +3 -0
  80. package/dist/blocks/analytics.js +1500 -0
  81. package/dist/blocks/analytics.js.map +1 -0
  82. package/dist/blocks/collaboration.js +3 -0
  83. package/dist/blocks/commerce/receipt.js +3 -0
  84. package/dist/blocks/commerce.js +3393 -0
  85. package/dist/blocks/commerce.js.map +1 -0
  86. package/dist/blocks/data-display.js +3 -0
  87. package/dist/blocks/onboarding.js +128 -0
  88. package/dist/blocks/onboarding.js.map +1 -0
  89. package/dist/blocks/planning.js +311 -0
  90. package/dist/blocks/planning.js.map +1 -0
  91. package/dist/blocks/timelines.js +3 -0
  92. package/dist/breadcrumbs-DdQ_I5ra.js +127 -0
  93. package/dist/breadcrumbs-DdQ_I5ra.js.map +1 -0
  94. package/dist/button-BS6l5JUw.js +47 -0
  95. package/dist/button-BS6l5JUw.js.map +1 -0
  96. package/dist/buttons-Co6GavvM.js +674 -0
  97. package/dist/buttons-Co6GavvM.js.map +1 -0
  98. package/dist/cards-Cum56XOF.js +66 -0
  99. package/dist/cards-Cum56XOF.js.map +1 -0
  100. package/dist/chart-DVfcwQu6.js +149 -0
  101. package/dist/chart-DVfcwQu6.js.map +1 -0
  102. package/dist/checkbox-BavDRjF7.js +34 -0
  103. package/dist/checkbox-BavDRjF7.js.map +1 -0
  104. package/dist/choice-inputs-CC7XqPQO.js +619 -0
  105. package/dist/choice-inputs-CC7XqPQO.js.map +1 -0
  106. package/dist/code-block-xHKbAJDj.js +183 -0
  107. package/dist/code-block-xHKbAJDj.js.map +1 -0
  108. package/dist/collapsible-DsnktFNv.js +81 -0
  109. package/dist/collapsible-DsnktFNv.js.map +1 -0
  110. package/dist/collection-content-C4fthJV_.js +53 -0
  111. package/dist/collection-content-C4fthJV_.js.map +1 -0
  112. package/dist/combobox-DEbdr-3u.js +273 -0
  113. package/dist/combobox-DEbdr-3u.js.map +1 -0
  114. package/dist/combobox-xv3yJbzl.js +850 -0
  115. package/dist/combobox-xv3yJbzl.js.map +1 -0
  116. package/dist/command-C0xe7u9B.js +421 -0
  117. package/dist/command-C0xe7u9B.js.map +1 -0
  118. package/dist/comments-DviPLnwy.js +1132 -0
  119. package/dist/comments-DviPLnwy.js.map +1 -0
  120. package/dist/component-vocabulary.js +26 -0
  121. package/dist/component-vocabulary.js.map +1 -0
  122. package/dist/components/base/accordion/accordion-variants.d.ts +36 -0
  123. package/dist/components/base/accordion/accordion.d.ts +20 -0
  124. package/dist/components/base/accordion/accordion.strings.d.ts +15 -0
  125. package/dist/components/base/accordion/accordion.types.d.ts +74 -0
  126. package/dist/components/base/accordion/index.d.ts +4 -0
  127. package/dist/components/base/accordion/smart-accordion.d.ts +7 -0
  128. package/dist/components/base/action-menu/action-menu.d.ts +147 -0
  129. package/dist/components/base/action-menu/action-menu.strings.d.ts +4 -0
  130. package/dist/components/base/action-menu/index.d.ts +11 -0
  131. package/dist/components/base/attachment/attachment.d.ts +17 -0
  132. package/dist/components/base/attachment/attachment.types.d.ts +49 -0
  133. package/dist/components/base/attachment/index.d.ts +2 -0
  134. package/dist/components/base/avatar/avatar.d.ts +24 -0
  135. package/dist/components/base/avatar/index.d.ts +14 -0
  136. package/dist/components/base/avatar/stacked-avatars.d.ts +39 -0
  137. package/dist/components/base/badge/badge.d.ts +22 -0
  138. package/dist/components/base/badge/badge.recipes.d.ts +20 -0
  139. package/dist/components/base/badge/index.d.ts +2 -0
  140. package/dist/components/base/buttons/base-button.d.ts +24 -0
  141. package/dist/components/base/buttons/button-group.d.ts +28 -0
  142. package/dist/components/base/buttons/button-group.recipes.d.ts +6 -0
  143. package/dist/components/base/buttons/button.d.ts +47 -0
  144. package/dist/components/base/buttons/button.recipes.d.ts +23 -0
  145. package/dist/components/base/buttons/button.variants.d.ts +8 -0
  146. package/dist/components/base/buttons/index.d.ts +7 -0
  147. package/dist/components/base/buttons/loader-button.d.ts +40 -0
  148. package/dist/components/base/buttons/text-button.d.ts +19 -0
  149. package/dist/components/base/buttons/tooltip-button.d.ts +7 -0
  150. package/dist/components/base/cards/card-actions.d.ts +41 -0
  151. package/dist/components/base/cards/card.recipes.d.ts +28 -0
  152. package/dist/components/base/cards/index.d.ts +5 -0
  153. package/dist/components/base/cards/partials/card-primitives.d.ts +21 -0
  154. package/dist/components/base/cards/partials/has-renderable-content.d.ts +8 -0
  155. package/dist/components/base/cards/partials/smart-card-actions-menu.d.ts +8 -0
  156. package/dist/components/base/cards/partials/smart-card-alert.d.ts +20 -0
  157. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +33 -0
  158. package/dist/components/base/cards/partials/smart-card-skeleton.d.ts +16 -0
  159. package/dist/components/base/cards/smart-card.d.ts +9 -0
  160. package/dist/components/base/cards/smart-card.strings.d.ts +18 -0
  161. package/dist/components/base/cards/smart-card.tokens.d.ts +44 -0
  162. package/dist/components/base/cards/smart-card.types.d.ts +146 -0
  163. package/dist/components/base/carousel/carousel.d.ts +105 -0
  164. package/dist/components/base/carousel/carousel.strings.d.ts +6 -0
  165. package/dist/components/base/carousel/index.d.ts +2 -0
  166. package/dist/components/base/cascader/cascader.d.ts +2 -0
  167. package/dist/components/base/cascader/cascader.types.d.ts +57 -0
  168. package/dist/components/base/cascader/index.d.ts +2 -0
  169. package/dist/components/base/chart/chart.d.ts +99 -0
  170. package/dist/components/base/chart/index.d.ts +9 -0
  171. package/dist/components/base/choice-inputs/card-checkbox-group.d.ts +27 -0
  172. package/dist/components/base/choice-inputs/card-radio-group.d.ts +19 -0
  173. package/dist/components/base/choice-inputs/checkbox.d.ts +17 -0
  174. package/dist/components/base/choice-inputs/choice-types.d.ts +57 -0
  175. package/dist/components/base/choice-inputs/index.d.ts +28 -0
  176. package/dist/components/base/choice-inputs/list-radio-group.d.ts +13 -0
  177. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +27 -0
  178. package/dist/components/base/choice-inputs/select-popup.d.ts +26 -0
  179. package/dist/components/base/choice-inputs/select.d.ts +94 -0
  180. package/dist/components/base/choice-inputs/switch-card.d.ts +36 -0
  181. package/dist/components/base/choice-inputs/switch.d.ts +38 -0
  182. package/dist/components/base/choice-inputs/toggle-field.d.ts +41 -0
  183. package/dist/components/base/code-block/code-block.d.ts +3 -0
  184. package/dist/components/base/code-block/code-block.types.d.ts +46 -0
  185. package/dist/components/base/code-block/index.d.ts +2 -0
  186. package/dist/components/base/code-block/use-code-copy.d.ts +6 -0
  187. package/dist/components/base/combobox/index.d.ts +27 -0
  188. package/dist/components/base/command/command.d.ts +73 -0
  189. package/dist/components/base/command/index.d.ts +1 -0
  190. package/dist/components/base/copyable/copyable.d.ts +36 -0
  191. package/dist/components/base/copyable/index.d.ts +1 -0
  192. package/dist/components/base/date-pickers/date-picker-footer.d.ts +14 -0
  193. package/dist/components/base/date-pickers/date-picker-header.d.ts +10 -0
  194. package/dist/components/base/date-pickers/date-picker-helpers.d.ts +87 -0
  195. package/dist/components/base/date-pickers/date-picker-internals.d.ts +10 -0
  196. package/dist/components/base/date-pickers/date-picker-multiple.d.ts +20 -0
  197. package/dist/components/base/date-pickers/date-picker-range.d.ts +15 -0
  198. package/dist/components/base/date-pickers/date-picker-single.d.ts +15 -0
  199. package/dist/components/base/date-pickers/date-picker.d.ts +3 -0
  200. package/dist/components/base/date-pickers/date-picker.recipes.d.ts +18 -0
  201. package/dist/components/base/date-pickers/date-pickers.strings.d.ts +14 -0
  202. package/dist/components/base/date-pickers/datepicker.types.d.ts +285 -0
  203. package/dist/components/base/date-pickers/index.d.ts +7 -0
  204. package/dist/components/base/date-pickers/month-year-picker.d.ts +4 -0
  205. package/dist/components/base/date-pickers/time-picker.d.ts +70 -0
  206. package/dist/components/base/display/alert-dialog.d.ts +25 -0
  207. package/dist/components/base/display/boolean-indicator.d.ts +25 -0
  208. package/dist/components/base/display/collapsible.d.ts +21 -0
  209. package/dist/components/base/display/content-block.d.ts +73 -0
  210. package/dist/components/base/display/content-block.strings.d.ts +5 -0
  211. package/dist/components/base/display/date-block.d.ts +70 -0
  212. package/dist/components/base/display/dialog.d.ts +35 -0
  213. package/dist/components/base/display/icon-badge/icon-badge.d.ts +45 -0
  214. package/dist/components/base/display/icon-badge/index.d.ts +1 -0
  215. package/dist/components/base/display/icon-size.d.ts +5 -0
  216. package/dist/components/base/display/index.d.ts +31 -0
  217. package/dist/components/base/display/placeholder-pattern.d.ts +7 -0
  218. package/dist/components/base/display/scroll-area.d.ts +12 -0
  219. package/dist/components/base/display/separator.d.ts +10 -0
  220. package/dist/components/base/display/surface-title.d.ts +10 -0
  221. package/dist/components/base/display/tooltip.d.ts +28 -0
  222. package/dist/components/base/display/visually-hidden.d.ts +14 -0
  223. package/dist/components/base/feedback/alert.d.ts +49 -0
  224. package/dist/components/base/feedback/empty.d.ts +48 -0
  225. package/dist/components/base/feedback/index.d.ts +27 -0
  226. package/dist/components/base/feedback/progress.d.ts +81 -0
  227. package/dist/components/base/feedback/progress.strings.d.ts +5 -0
  228. package/dist/components/base/feedback/state-display.d.ts +39 -0
  229. package/dist/components/base/forms/controlled-form-field.d.ts +32 -0
  230. package/dist/components/base/forms/controlled-form-field.strings.d.ts +7 -0
  231. package/dist/components/base/forms/form-field.d.ts +38 -0
  232. package/dist/components/base/forms/form-sizing.d.ts +86 -0
  233. package/dist/components/base/forms/index.d.ts +4 -0
  234. package/dist/components/base/forms/operation-password-form.d.ts +16 -0
  235. package/dist/components/base/forms/workflow.d.ts +68 -0
  236. package/dist/components/base/forms-numeric/coordinates-input.d.ts +47 -0
  237. package/dist/components/base/forms-numeric/currency-input.d.ts +44 -0
  238. package/dist/components/base/forms-numeric/decimal-input.d.ts +53 -0
  239. package/dist/components/base/forms-numeric/dimensions-input.d.ts +79 -0
  240. package/dist/components/base/forms-numeric/index.d.ts +21 -0
  241. package/dist/components/base/forms-numeric/money-input.d.ts +67 -0
  242. package/dist/components/base/forms-numeric/money-input.strings.d.ts +6 -0
  243. package/dist/components/base/forms-numeric/percentage-input.d.ts +8 -0
  244. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +12 -0
  245. package/dist/components/base/forms-numeric/weight-input.d.ts +54 -0
  246. package/dist/components/base/inline-edit/index.d.ts +2 -0
  247. package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
  248. package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
  249. package/dist/components/base/item/index.d.ts +2 -0
  250. package/dist/components/base/item/item.d.ts +12 -0
  251. package/dist/components/base/item/item.types.d.ts +100 -0
  252. package/dist/components/base/media-gallery/index.d.ts +2 -0
  253. package/dist/components/base/media-gallery/media-gallery.d.ts +45 -0
  254. package/dist/components/base/navigation/breadcrumbs.d.ts +37 -0
  255. package/dist/components/base/navigation/dropdown-menu.d.ts +45 -0
  256. package/dist/components/base/navigation/index.d.ts +21 -0
  257. package/dist/components/base/navigation/language-switcher.d.ts +12 -0
  258. package/dist/components/base/navigation/navigation-tabs.d.ts +40 -0
  259. package/dist/components/base/navigation/overflow-tab-bar.d.ts +43 -0
  260. package/dist/components/base/navigation/page-header/index.d.ts +1 -0
  261. package/dist/components/base/navigation/page-header/page-header.d.ts +88 -0
  262. package/dist/components/base/navigation/pagination.d.ts +61 -0
  263. package/dist/components/base/navigation/tab-scroll-viewport.d.ts +12 -0
  264. package/dist/components/base/navigation/tabs.d.ts +23 -0
  265. package/dist/components/base/popover/collection-content.d.ts +22 -0
  266. package/dist/components/base/popover/index.d.ts +1 -0
  267. package/dist/components/base/popover/popover.d.ts +54 -0
  268. package/dist/components/base/popover/popover.recipes.d.ts +29 -0
  269. package/dist/components/base/popover-menu/index.d.ts +3 -0
  270. package/dist/components/base/popover-menu/popover-menu.d.ts +82 -0
  271. package/dist/components/base/popover-menu/popover-menu.types.d.ts +30 -0
  272. package/dist/components/base/qr-code/index.d.ts +8 -0
  273. package/dist/components/base/qr-code/qr-code.d.ts +13 -0
  274. package/dist/components/base/repeaters/index.d.ts +21 -0
  275. package/dist/components/base/repeaters/key-value-editor.d.ts +27 -0
  276. package/dist/components/base/repeaters/localized-object-field.d.ts +35 -0
  277. package/dist/components/base/repeaters/localized-string-field.d.ts +25 -0
  278. package/dist/components/base/repeaters/localized-string-repeater.d.ts +44 -0
  279. package/dist/components/base/repeaters/object-repeater.d.ts +66 -0
  280. package/dist/components/base/repeaters/repeater.d.ts +87 -0
  281. package/dist/components/base/repeaters/repeaters.strings.d.ts +16 -0
  282. package/dist/components/base/repeaters/string-repeater.d.ts +65 -0
  283. package/dist/components/base/repeaters/string-repeater.utils.d.ts +2 -0
  284. package/dist/components/base/sheet/index.d.ts +1 -0
  285. package/dist/components/base/sheet/sheet.d.ts +35 -0
  286. package/dist/components/base/sidebar/index.d.ts +6 -0
  287. package/dist/components/base/sidebar/sidebar.d.ts +135 -0
  288. package/dist/components/base/signature-pad/index.d.ts +4 -0
  289. package/dist/components/base/signature-pad/signature-pad.d.ts +4 -0
  290. package/dist/components/base/signature-pad/signature-pad.types.d.ts +66 -0
  291. package/dist/components/base/signature-pad/signature-pad.utils.d.ts +8 -0
  292. package/dist/components/base/skeleton/index.d.ts +14 -0
  293. package/dist/components/base/skeleton/skeleton.d.ts +54 -0
  294. package/dist/components/base/spinner/index.d.ts +1 -0
  295. package/dist/components/base/spinner/spinner.d.ts +32 -0
  296. package/dist/components/base/structure/adaptive-grid.d.ts +3 -0
  297. package/dist/components/base/structure/grid-cell.d.ts +3 -0
  298. package/dist/components/base/structure/grid.d.ts +3 -0
  299. package/dist/components/base/structure/index.d.ts +5 -0
  300. package/dist/components/base/structure/stack.d.ts +3 -0
  301. package/dist/components/base/structure/structure.context.d.ts +6 -0
  302. package/dist/components/base/structure/structure.recipes.d.ts +33 -0
  303. package/dist/components/base/structure/structure.responsive.d.ts +5 -0
  304. package/dist/components/base/structure/structure.types.d.ts +51 -0
  305. package/dist/components/base/table/index.d.ts +18 -0
  306. package/dist/components/base/text-inputs/hooks/index.d.ts +1 -0
  307. package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +48 -0
  308. package/dist/components/base/text-inputs/index.d.ts +21 -0
  309. package/dist/components/base/text-inputs/input-group.d.ts +46 -0
  310. package/dist/components/base/text-inputs/input.d.ts +45 -0
  311. package/dist/components/base/text-inputs/password-input.d.ts +28 -0
  312. package/dist/components/base/text-inputs/slug-field.d.ts +21 -0
  313. package/dist/components/base/text-inputs/textarea.d.ts +37 -0
  314. package/dist/components/base/toaster/index.d.ts +1 -0
  315. package/dist/components/base/toaster/toaster.d.ts +6 -0
  316. package/dist/components/base/tree/hierarchy.d.ts +11 -0
  317. package/dist/components/base/tree/index.d.ts +2 -0
  318. package/dist/components/base/tree/tree.d.ts +3 -0
  319. package/dist/components/base/tree/tree.types.d.ts +47 -0
  320. package/dist/components/base/upload/avatar-upload.d.ts +39 -0
  321. package/dist/components/base/upload/dropzone.d.ts +40 -0
  322. package/dist/components/base/upload/file-picker-input.d.ts +15 -0
  323. package/dist/components/base/upload/file-upload.d.ts +9 -0
  324. package/dist/components/base/upload/file-upload.strings.d.ts +18 -0
  325. package/dist/components/base/upload/file-upload.types.d.ts +68 -0
  326. package/dist/components/base/upload/file-upload.validation.d.ts +21 -0
  327. package/dist/components/base/upload/image-upload.d.ts +57 -0
  328. package/dist/components/base/upload/index.d.ts +26 -0
  329. package/dist/components/base/upload/use-file-drop-target.d.ts +22 -0
  330. package/dist/components/base/upload-queue/index.d.ts +3 -0
  331. package/dist/components/base/upload-queue/upload-progress-list.d.ts +55 -0
  332. package/dist/components/base/upload-queue/upload-tray.d.ts +46 -0
  333. package/dist/components/base/value-inputs/color-input.d.ts +26 -0
  334. package/dist/components/base/value-inputs/date-time-input.d.ts +19 -0
  335. package/dist/components/base/value-inputs/index.d.ts +25 -0
  336. package/dist/components/base/value-inputs/phone-input.d.ts +48 -0
  337. package/dist/components/base/value-inputs/slider.d.ts +59 -0
  338. package/dist/components/base/value-inputs/tags-input.d.ts +67 -0
  339. package/dist/components/blocks/admin/action-surfaces/index.d.ts +127 -0
  340. package/dist/components/blocks/admin/admin.strings.d.ts +11 -0
  341. package/dist/components/blocks/admin/api-key-list/api-key-list.d.ts +2 -0
  342. package/dist/components/blocks/admin/api-key-list/api-key-list.strings.d.ts +16 -0
  343. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +58 -0
  344. package/dist/components/blocks/admin/api-key-list/index.d.ts +3 -0
  345. package/dist/components/blocks/admin/index.d.ts +4 -0
  346. package/dist/components/blocks/admin/role-permission/index.d.ts +2 -0
  347. package/dist/components/blocks/admin/role-permission/role-permission.d.ts +5 -0
  348. package/dist/components/blocks/admin/role-permission/types.d.ts +26 -0
  349. package/dist/components/blocks/ai/ai-agent/ai-agent.d.ts +5 -0
  350. package/dist/components/blocks/ai/ai-agent/index.d.ts +2 -0
  351. package/dist/components/blocks/ai/ai-agent/types.d.ts +30 -0
  352. package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +5 -0
  353. package/dist/components/blocks/ai/ai-artifact/index.d.ts +2 -0
  354. package/dist/components/blocks/ai/ai-artifact/types.d.ts +50 -0
  355. package/dist/components/blocks/ai/ai-attachment/ai-attachment.d.ts +5 -0
  356. package/dist/components/blocks/ai/ai-attachment/index.d.ts +2 -0
  357. package/dist/components/blocks/ai/ai-attachment/types.d.ts +35 -0
  358. package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +5 -0
  359. package/dist/components/blocks/ai/ai-chain-of-thought/index.d.ts +2 -0
  360. package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +36 -0
  361. package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +5 -0
  362. package/dist/components/blocks/ai/ai-citation/index.d.ts +2 -0
  363. package/dist/components/blocks/ai/ai-citation/types.d.ts +38 -0
  364. package/dist/components/blocks/ai/ai-classification/ai-classification.d.ts +2 -0
  365. package/dist/components/blocks/ai/ai-classification/index.d.ts +2 -0
  366. package/dist/components/blocks/ai/ai-classification/types.d.ts +27 -0
  367. package/dist/components/blocks/ai/ai-code-block/ai-code-block.d.ts +6 -0
  368. package/dist/components/blocks/ai/ai-code-block/index.d.ts +2 -0
  369. package/dist/components/blocks/ai/ai-code-block/types.d.ts +38 -0
  370. package/dist/components/blocks/ai/ai-confidence/ai-confidence.d.ts +5 -0
  371. package/dist/components/blocks/ai/ai-confidence/index.d.ts +2 -0
  372. package/dist/components/blocks/ai/ai-confidence/types.d.ts +25 -0
  373. package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +5 -0
  374. package/dist/components/blocks/ai/ai-confirmation/index.d.ts +2 -0
  375. package/dist/components/blocks/ai/ai-confirmation/types.d.ts +40 -0
  376. package/dist/components/blocks/ai/ai-feedback/ai-feedback.d.ts +5 -0
  377. package/dist/components/blocks/ai/ai-feedback/index.d.ts +2 -0
  378. package/dist/components/blocks/ai/ai-feedback/types.d.ts +24 -0
  379. package/dist/components/blocks/ai/ai-file-tree/ai-file-tree.d.ts +5 -0
  380. package/dist/components/blocks/ai/ai-file-tree/index.d.ts +2 -0
  381. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +59 -0
  382. package/dist/components/blocks/ai/ai-inline-citation/ai-inline-citation.d.ts +5 -0
  383. package/dist/components/blocks/ai/ai-inline-citation/index.d.ts +2 -0
  384. package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +22 -0
  385. package/dist/components/blocks/ai/ai-message-bubble/ai-message-bubble.d.ts +6 -0
  386. package/dist/components/blocks/ai/ai-message-bubble/index.d.ts +2 -0
  387. package/dist/components/blocks/ai/ai-message-bubble/types.d.ts +35 -0
  388. package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +5 -0
  389. package/dist/components/blocks/ai/ai-package-info/index.d.ts +2 -0
  390. package/dist/components/blocks/ai/ai-package-info/types.d.ts +39 -0
  391. package/dist/components/blocks/ai/ai-prompt-suggestions/ai-prompt-suggestions.d.ts +5 -0
  392. package/dist/components/blocks/ai/ai-prompt-suggestions/index.d.ts +2 -0
  393. package/dist/components/blocks/ai/ai-prompt-suggestions/types.d.ts +26 -0
  394. package/dist/components/blocks/ai/ai-reasoning/ai-reasoning.d.ts +5 -0
  395. package/dist/components/blocks/ai/ai-reasoning/index.d.ts +2 -0
  396. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +32 -0
  397. package/dist/components/blocks/ai/ai-shimmer/ai-shimmer.d.ts +5 -0
  398. package/dist/components/blocks/ai/ai-shimmer/index.d.ts +2 -0
  399. package/dist/components/blocks/ai/ai-shimmer/types.d.ts +11 -0
  400. package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +5 -0
  401. package/dist/components/blocks/ai/ai-sources/index.d.ts +2 -0
  402. package/dist/components/blocks/ai/ai-sources/types.d.ts +44 -0
  403. package/dist/components/blocks/ai/ai-summary/ai-summary.d.ts +2 -0
  404. package/dist/components/blocks/ai/ai-summary/index.d.ts +2 -0
  405. package/dist/components/blocks/ai/ai-summary/types.d.ts +32 -0
  406. package/dist/components/blocks/ai/ai-task/ai-task.d.ts +5 -0
  407. package/dist/components/blocks/ai/ai-task/index.d.ts +2 -0
  408. package/dist/components/blocks/ai/ai-task/types.d.ts +38 -0
  409. package/dist/components/blocks/ai/ai-token-usage/ai-token-usage.d.ts +5 -0
  410. package/dist/components/blocks/ai/ai-token-usage/index.d.ts +2 -0
  411. package/dist/components/blocks/ai/ai-token-usage/types.d.ts +22 -0
  412. package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +5 -0
  413. package/dist/components/blocks/ai/ai-tool-call/index.d.ts +2 -0
  414. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +38 -0
  415. package/dist/components/blocks/ai/ai.strings.d.ts +36 -0
  416. package/dist/components/blocks/ai/index.d.ts +24 -0
  417. package/dist/components/blocks/ai/use-copy-feedback.d.ts +6 -0
  418. package/dist/components/blocks/analytics/activity-heatmap/activity-heatmap.d.ts +5 -0
  419. package/dist/components/blocks/analytics/activity-heatmap/index.d.ts +2 -0
  420. package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +20 -0
  421. package/dist/components/blocks/analytics/analytics.strings.d.ts +35 -0
  422. package/dist/components/blocks/analytics/atoms/metric-skeleton.d.ts +13 -0
  423. package/dist/components/blocks/analytics/atoms/metric-sparkline.d.ts +15 -0
  424. package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +15 -0
  425. package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +42 -0
  426. package/dist/components/blocks/analytics/chart-card/index.d.ts +1 -0
  427. package/dist/components/blocks/analytics/format-metric-value.d.ts +8 -0
  428. package/dist/components/blocks/analytics/index.d.ts +35 -0
  429. package/dist/components/blocks/analytics/metric/index.d.ts +1 -0
  430. package/dist/components/blocks/analytics/metric/metric.d.ts +28 -0
  431. package/dist/components/blocks/analytics/metric-bar/index.d.ts +1 -0
  432. package/dist/components/blocks/analytics/metric-bar/metric-bar.d.ts +22 -0
  433. package/dist/components/blocks/analytics/metric-comparison/index.d.ts +1 -0
  434. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +26 -0
  435. package/dist/components/blocks/analytics/metric-gradient/index.d.ts +1 -0
  436. package/dist/components/blocks/analytics/metric-gradient/metric-gradient.d.ts +19 -0
  437. package/dist/components/blocks/analytics/metric-grid/index.d.ts +1 -0
  438. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +33 -0
  439. package/dist/components/blocks/analytics/metric-micro-grid/index.d.ts +1 -0
  440. package/dist/components/blocks/analytics/metric-micro-grid/metric-micro-grid.d.ts +23 -0
  441. package/dist/components/blocks/analytics/time-ruler/index.d.ts +2 -0
  442. package/dist/components/blocks/analytics/time-ruler/time-ruler.d.ts +5 -0
  443. package/dist/components/blocks/analytics/time-ruler/types.d.ts +32 -0
  444. package/dist/components/blocks/analytics/types.d.ts +83 -0
  445. package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
  446. package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
  447. package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
  448. package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
  449. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
  450. package/dist/components/blocks/collaboration/index.d.ts +1 -0
  451. package/dist/components/blocks/collaboration/message/index.d.ts +2 -0
  452. package/dist/components/blocks/collaboration/message/message.d.ts +8 -0
  453. package/dist/components/blocks/collaboration/message/message.types.d.ts +30 -0
  454. package/dist/components/blocks/commerce/address-card/address-card.d.ts +5 -0
  455. package/dist/components/blocks/commerce/address-card/index.d.ts +2 -0
  456. package/dist/components/blocks/commerce/address-card/types.d.ts +43 -0
  457. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +12 -0
  458. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +36 -0
  459. package/dist/components/blocks/commerce/booking-calendar-event-card/index.d.ts +2 -0
  460. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +5 -0
  461. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -0
  462. package/dist/components/blocks/commerce/cart-summary/types.d.ts +53 -0
  463. package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +5 -0
  464. package/dist/components/blocks/commerce/coupon-input/index.d.ts +2 -0
  465. package/dist/components/blocks/commerce/coupon-input/types.d.ts +35 -0
  466. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +5 -0
  467. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -0
  468. package/dist/components/blocks/commerce/discount-stack/types.d.ts +27 -0
  469. package/dist/components/blocks/commerce/format-signed-amount.d.ts +22 -0
  470. package/dist/components/blocks/commerce/giftcard-card/giftcard-card.d.ts +62 -0
  471. package/dist/components/blocks/commerce/giftcard-card/index.d.ts +2 -0
  472. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +10 -0
  473. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +9 -0
  474. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +7 -0
  475. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +11 -0
  476. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +10 -0
  477. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +10 -0
  478. package/dist/components/blocks/commerce/giftcard-card/types.d.ts +83 -0
  479. package/dist/components/blocks/commerce/index.d.ts +34 -0
  480. package/dist/components/blocks/commerce/inventory-level/index.d.ts +3 -0
  481. package/dist/components/blocks/commerce/inventory-level/inventory-level.d.ts +5 -0
  482. package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +10 -0
  483. package/dist/components/blocks/commerce/inventory-level/types.d.ts +20 -0
  484. package/dist/components/blocks/commerce/inventory-section/index.d.ts +2 -0
  485. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +5 -0
  486. package/dist/components/blocks/commerce/inventory-section/types.d.ts +105 -0
  487. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -0
  488. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +5 -0
  489. package/dist/components/blocks/commerce/invoice-header/types.d.ts +51 -0
  490. package/dist/components/blocks/commerce/invoice-line-items/index.d.ts +2 -0
  491. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +5 -0
  492. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +64 -0
  493. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -0
  494. package/dist/components/blocks/commerce/invoice-mini/invoice-mini.d.ts +5 -0
  495. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +28 -0
  496. package/dist/components/blocks/commerce/loyalty-points/index.d.ts +2 -0
  497. package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +5 -0
  498. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +32 -0
  499. package/dist/components/blocks/commerce/order-status/index.d.ts +2 -0
  500. package/dist/components/blocks/commerce/order-status/order-status.d.ts +5 -0
  501. package/dist/components/blocks/commerce/order-status/types.d.ts +35 -0
  502. package/dist/components/blocks/commerce/order-timeline/index.d.ts +2 -0
  503. package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +5 -0
  504. package/dist/components/blocks/commerce/order-timeline/types.d.ts +22 -0
  505. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -0
  506. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +5 -0
  507. package/dist/components/blocks/commerce/payment-method/types.d.ts +33 -0
  508. package/dist/components/blocks/commerce/payment-timeline/index.d.ts +2 -0
  509. package/dist/components/blocks/commerce/payment-timeline/payment-timeline.d.ts +5 -0
  510. package/dist/components/blocks/commerce/payment-timeline/types.d.ts +15 -0
  511. package/dist/components/blocks/commerce/receipt/index.d.ts +3 -0
  512. package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +2 -0
  513. package/dist/components/blocks/commerce/receipt/receipt.d.ts +3 -0
  514. package/dist/components/blocks/commerce/receipt/types.d.ts +42 -0
  515. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -0
  516. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +5 -0
  517. package/dist/components/blocks/commerce/refund-status/types.d.ts +37 -0
  518. package/dist/components/blocks/commerce/seo-listing/index.d.ts +3 -0
  519. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +5 -0
  520. package/dist/components/blocks/commerce/seo-listing/seo-listing-score.d.ts +5 -0
  521. package/dist/components/blocks/commerce/seo-listing/types.d.ts +92 -0
  522. package/dist/components/blocks/commerce/shipment-tracking/index.d.ts +2 -0
  523. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +5 -0
  524. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +44 -0
  525. package/dist/components/blocks/commerce/subscription-summary/index.d.ts +2 -0
  526. package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +5 -0
  527. package/dist/components/blocks/commerce/subscription-summary/types.d.ts +39 -0
  528. package/dist/components/blocks/commerce/tax-breakdown/index.d.ts +2 -0
  529. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +5 -0
  530. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +34 -0
  531. package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -0
  532. package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +29 -0
  533. package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +5 -0
  534. package/dist/components/blocks/commerce/vendor-profile/index.d.ts +3 -0
  535. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +86 -0
  536. package/dist/components/blocks/commerce/vendor-profile/vendor-profile.d.ts +2 -0
  537. package/dist/components/blocks/commerce/voucher-entry/index.d.ts +2 -0
  538. package/dist/components/blocks/commerce/voucher-entry/types.d.ts +33 -0
  539. package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +5 -0
  540. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +6 -0
  541. package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +19 -0
  542. package/dist/components/blocks/data-display/dense-info-card/index.d.ts +7 -0
  543. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +5 -0
  544. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +5 -0
  545. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +5 -0
  546. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +5 -0
  547. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +5 -0
  548. package/dist/components/blocks/data-display/dense-info-card/types.d.ts +183 -0
  549. package/dist/components/blocks/data-display/empty-state/empty-state.d.ts +2 -0
  550. package/dist/components/blocks/data-display/empty-state/empty-state.strings.d.ts +19 -0
  551. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +86 -0
  552. package/dist/components/blocks/data-display/empty-state/index.d.ts +5 -0
  553. package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +9 -0
  554. package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +9 -0
  555. package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +25 -0
  556. package/dist/components/blocks/data-display/empty-state/partials/illustrations/search-glass.d.ts +9 -0
  557. package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +11 -0
  558. package/dist/components/blocks/data-display/empty-state/partials/illustrations/types.d.ts +4 -0
  559. package/dist/components/blocks/data-display/empty-state/partials/illustrations/users-circle.d.ts +9 -0
  560. package/dist/components/blocks/data-display/index.d.ts +6 -0
  561. package/dist/components/blocks/data-display/inline-stat/index.d.ts +1 -0
  562. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +35 -0
  563. package/dist/components/blocks/data-display/metadata/index.d.ts +4 -0
  564. package/dist/components/blocks/data-display/metadata/metadata-list.d.ts +78 -0
  565. package/dist/components/blocks/data-display/metadata/metadata-list.strings.d.ts +18 -0
  566. package/dist/components/blocks/data-display/metadata/metadata-value.d.ts +142 -0
  567. package/dist/components/blocks/data-display/relationship-card-frame.d.ts +40 -0
  568. package/dist/components/blocks/onboarding/checklist/checklist.d.ts +2 -0
  569. package/dist/components/blocks/onboarding/checklist/checklist.strings.d.ts +15 -0
  570. package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +64 -0
  571. package/dist/components/blocks/onboarding/checklist/index.d.ts +4 -0
  572. package/dist/components/blocks/onboarding/checklist/partials/step-status-indicator.d.ts +12 -0
  573. package/dist/components/blocks/onboarding/index.d.ts +7 -0
  574. package/dist/components/blocks/planning/index.d.ts +3 -0
  575. package/dist/components/blocks/planning/task-card.d.ts +3 -0
  576. package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
  577. package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
  578. package/dist/components/blocks/timelines/changelog/changelog-timeline.d.ts +5 -0
  579. package/dist/components/blocks/timelines/changelog/index.d.ts +2 -0
  580. package/dist/components/blocks/timelines/changelog/types.d.ts +33 -0
  581. package/dist/components/blocks/timelines/index.d.ts +5 -0
  582. package/dist/components/blocks/timelines/milestones/index.d.ts +2 -0
  583. package/dist/components/blocks/timelines/milestones/milestones-timeline.d.ts +5 -0
  584. package/dist/components/blocks/timelines/milestones/types.d.ts +32 -0
  585. package/dist/components/blocks/timelines/shared/index.d.ts +1 -0
  586. package/dist/components/blocks/timelines/shared/timeline.d.ts +40 -0
  587. package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -0
  588. package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +9 -0
  589. package/dist/components/blocks/timelines/steps-card/types.d.ts +38 -0
  590. package/dist/components/features/activities/activities-feed.d.ts +5 -0
  591. package/dist/components/features/activities/activities.config.d.ts +6 -0
  592. package/dist/components/features/activities/activities.strings.d.ts +38 -0
  593. package/dist/components/features/activities/activities.types.d.ts +431 -0
  594. package/dist/components/features/activities/activity-event-adapter.d.ts +38 -0
  595. package/dist/components/features/activities/activity-log.d.ts +6 -0
  596. package/dist/components/features/activities/hooks/index.d.ts +2 -0
  597. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +44 -0
  598. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +22 -0
  599. package/dist/components/features/activities/index.d.ts +8 -0
  600. package/dist/components/features/activities/partials/activity-actions-menu.d.ts +11 -0
  601. package/dist/components/features/activities/partials/activity-changes.d.ts +8 -0
  602. package/dist/components/features/activities/partials/activity-date-label.d.ts +9 -0
  603. package/dist/components/features/activities/partials/activity-empty-state.d.ts +9 -0
  604. package/dist/components/features/activities/partials/activity-headline.d.ts +20 -0
  605. package/dist/components/features/activities/partials/activity-marker.d.ts +25 -0
  606. package/dist/components/features/activities/partials/activity-resource-tag.d.ts +11 -0
  607. package/dist/components/features/activities/partials/activity-row.d.ts +68 -0
  608. package/dist/components/features/activities/partials/index.d.ts +8 -0
  609. package/dist/components/features/activities/partials/tone-tokens.d.ts +25 -0
  610. package/dist/components/features/ai-chat/ai-chat.d.ts +81 -0
  611. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +56 -0
  612. package/dist/components/features/ai-chat/ai-chat.types.d.ts +170 -0
  613. package/dist/components/features/ai-chat/hooks/index.d.ts +1 -0
  614. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +15 -0
  615. package/dist/components/features/ai-chat/index.d.ts +5 -0
  616. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +15 -0
  617. package/dist/components/features/ai-chat/partials/ai-chat-conversation.d.ts +28 -0
  618. package/dist/components/features/ai-chat/partials/ai-chat-empty-state.d.ts +22 -0
  619. package/dist/components/features/ai-chat/partials/ai-chat-message.d.ts +21 -0
  620. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +59 -0
  621. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +19 -0
  622. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +18 -0
  623. package/dist/components/features/ai-chat/partials/index.d.ts +7 -0
  624. package/dist/components/features/async-preview/async-preview.d.ts +84 -0
  625. package/dist/components/features/async-preview/async-preview.strings.d.ts +14 -0
  626. package/dist/components/features/async-preview/async-preview.types.d.ts +133 -0
  627. package/dist/components/features/async-preview/hooks/index.d.ts +1 -0
  628. package/dist/components/features/async-preview/hooks/use-async-preview.d.ts +8 -0
  629. package/dist/components/features/async-preview/index.d.ts +6 -0
  630. package/dist/components/features/async-preview/partials/index.d.ts +1 -0
  631. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +45 -0
  632. package/dist/components/features/combobox/async-resource-combobox.d.ts +94 -0
  633. package/dist/components/features/combobox/combobox.d.ts +20 -0
  634. package/dist/components/features/combobox/combobox.strings.d.ts +14 -0
  635. package/dist/components/features/combobox/components/combobox-dropdown.d.ts +57 -0
  636. package/dist/components/features/combobox/components/error-message.d.ts +15 -0
  637. package/dist/components/features/combobox/components/highlighted-text.d.ts +14 -0
  638. package/dist/components/features/combobox/components/index.d.ts +13 -0
  639. package/dist/components/features/combobox/components/loading-more.d.ts +15 -0
  640. package/dist/components/features/combobox/components/status-content.d.ts +21 -0
  641. package/dist/components/features/combobox/constants.d.ts +19 -0
  642. package/dist/components/features/combobox/hooks/index.d.ts +2 -0
  643. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +30 -0
  644. package/dist/components/features/combobox/hooks/use-debounced-search.d.ts +10 -0
  645. package/dist/components/features/combobox/hooks/use-grouped-items.d.ts +9 -0
  646. package/dist/components/features/combobox/hooks/use-load-more.d.ts +12 -0
  647. package/dist/components/features/combobox/index.d.ts +13 -0
  648. package/dist/components/features/combobox/types.d.ts +184 -0
  649. package/dist/components/features/comments/comments-provider.d.ts +15 -0
  650. package/dist/components/features/comments/comments.d.ts +2 -0
  651. package/dist/components/features/comments/comments.strings.d.ts +91 -0
  652. package/dist/components/features/comments/comments.types.d.ts +369 -0
  653. package/dist/components/features/comments/hooks/index.d.ts +4 -0
  654. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +28 -0
  655. package/dist/components/features/comments/hooks/use-comments.d.ts +34 -0
  656. package/dist/components/features/comments/index.d.ts +8 -0
  657. package/dist/components/features/comments/partials/comment-attachment-chip.d.ts +23 -0
  658. package/dist/components/features/comments/partials/comment-composer.d.ts +12 -0
  659. package/dist/components/features/comments/partials/comment-content.d.ts +13 -0
  660. package/dist/components/features/comments/partials/comment-empty.d.ts +12 -0
  661. package/dist/components/features/comments/partials/comment-item.d.ts +3 -0
  662. package/dist/components/features/comments/partials/comment-timeline.d.ts +3 -0
  663. package/dist/components/features/comments/partials/index.d.ts +9 -0
  664. package/dist/components/features/data-view/data-view-filtering.d.ts +3 -0
  665. package/dist/components/features/data-view/data-view.d.ts +7 -0
  666. package/dist/components/features/data-view/data-view.strings.d.ts +9 -0
  667. package/dist/components/features/data-view/data-view.types.d.ts +191 -0
  668. package/dist/components/features/data-view/hooks/index.d.ts +1 -0
  669. package/dist/components/features/data-view/hooks/use-data-view.d.ts +2 -0
  670. package/dist/components/features/data-view/index.d.ts +4 -0
  671. package/dist/components/features/email-composer/document.d.ts +8 -0
  672. package/dist/components/features/email-composer/email-composer.d.ts +2 -0
  673. package/dist/components/features/email-composer/email-html.d.ts +5 -0
  674. package/dist/components/features/email-composer/engine.d.ts +18 -0
  675. package/dist/components/features/email-composer/http.d.ts +6 -0
  676. package/dist/components/features/email-composer/index.d.ts +6 -0
  677. package/dist/components/features/email-composer/partials/body-editor.d.ts +11 -0
  678. package/dist/components/features/email-composer/partials/data-status.d.ts +8 -0
  679. package/dist/components/features/email-composer/partials/html-preview.d.ts +6 -0
  680. package/dist/components/features/email-composer/partials/recipients.d.ts +14 -0
  681. package/dist/components/features/email-composer/partials/variables.d.ts +11 -0
  682. package/dist/components/features/email-composer/strings.d.ts +79 -0
  683. package/dist/components/features/email-composer/types.d.ts +195 -0
  684. package/dist/components/features/email-composer/use-composer.d.ts +119 -0
  685. package/dist/components/features/event-calendar/colors.d.ts +29 -0
  686. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +5 -0
  687. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +5 -0
  688. package/dist/components/features/event-calendar/event-calendar-event-card.d.ts +16 -0
  689. package/dist/components/features/event-calendar/event-calendar-header.d.ts +8 -0
  690. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +5 -0
  691. package/dist/components/features/event-calendar/event-calendar.d.ts +5 -0
  692. package/dist/components/features/event-calendar/event-calendar.types.d.ts +350 -0
  693. package/dist/components/features/event-calendar/index.d.ts +11 -0
  694. package/dist/components/features/event-calendar/use-event-calendar-data.d.ts +15 -0
  695. package/dist/components/features/event-calendar/use-event-calendar.d.ts +24 -0
  696. package/dist/components/features/filters/facets/async-select-facet.d.ts +28 -0
  697. package/dist/components/features/filters/facets/date-facet.d.ts +18 -0
  698. package/dist/components/features/filters/facets/range-facet.d.ts +30 -0
  699. package/dist/components/features/filters/facets/search-facet.d.ts +27 -0
  700. package/dist/components/features/filters/facets/select-facet.d.ts +19 -0
  701. package/dist/components/features/filters/facets/tags-facet.d.ts +27 -0
  702. package/dist/components/features/filters/filter-context.d.ts +61 -0
  703. package/dist/components/features/filters/filter-layout.d.ts +16 -0
  704. package/dist/components/features/filters/filter-query.d.ts +21 -0
  705. package/dist/components/features/filters/filters.strings.d.ts +103 -0
  706. package/dist/components/features/filters/filters.types.d.ts +222 -0
  707. package/dist/components/features/filters/hooks/index.d.ts +3 -0
  708. package/dist/components/features/filters/hooks/use-async-options.d.ts +16 -0
  709. package/dist/components/features/filters/hooks/use-filter-groups.d.ts +16 -0
  710. package/dist/components/features/filters/index.d.ts +42 -0
  711. package/dist/components/features/filters/operator-options.d.ts +9 -0
  712. package/dist/components/features/filters/partials/active-filter-item.d.ts +37 -0
  713. package/dist/components/features/filters/partials/async-filter-content.d.ts +21 -0
  714. package/dist/components/features/filters/partials/date-filter-content.d.ts +14 -0
  715. package/dist/components/features/filters/partials/filter-error-boundary.d.ts +9 -0
  716. package/dist/components/features/filters/partials/filter-list-content.d.ts +24 -0
  717. package/dist/components/features/filters/partials/filter-list-item.d.ts +19 -0
  718. package/dist/components/features/filters/partials/filter-operator-select.d.ts +22 -0
  719. package/dist/components/features/filters/partials/filter-pill.d.ts +26 -0
  720. package/dist/components/features/filters/partials/filter-popover-content.d.ts +36 -0
  721. package/dist/components/features/filters/partials/filter-tabs.d.ts +14 -0
  722. package/dist/components/features/filters/partials/filter-value-display.d.ts +21 -0
  723. package/dist/components/features/filters/partials/filters-button.d.ts +32 -0
  724. package/dist/components/features/filters/partials/index.d.ts +14 -0
  725. package/dist/components/features/filters/partials/regular-filter-content.d.ts +28 -0
  726. package/dist/components/features/filters/partials/search-filters-list.d.ts +25 -0
  727. package/dist/components/features/filters/partials/tags-filter-content.d.ts +28 -0
  728. package/dist/components/features/filters/utils/filter-utils.d.ts +37 -0
  729. package/dist/components/features/filters/validators.d.ts +63 -0
  730. package/dist/components/features/global-search/global-search-dialog.d.ts +13 -0
  731. package/dist/components/features/global-search/global-search.d.ts +52 -0
  732. package/dist/components/features/global-search/global-search.strings.d.ts +36 -0
  733. package/dist/components/features/global-search/global-search.types.d.ts +105 -0
  734. package/dist/components/features/global-search/hooks/index.d.ts +2 -0
  735. package/dist/components/features/global-search/hooks/use-global-search.d.ts +33 -0
  736. package/dist/components/features/global-search/index.d.ts +9 -0
  737. package/dist/components/features/global-search/partials/global-search-empty-state.d.ts +7 -0
  738. package/dist/components/features/global-search/partials/global-search-footer.d.ts +13 -0
  739. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +12 -0
  740. package/dist/components/features/global-search/partials/global-search-input.d.ts +17 -0
  741. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +16 -0
  742. package/dist/components/features/global-search/partials/global-search-tabs.d.ts +13 -0
  743. package/dist/components/features/global-search/partials/index.d.ts +12 -0
  744. package/dist/components/features/global-search/partials/tone-palettes.d.ts +8 -0
  745. package/dist/components/features/kanban/hooks/index.d.ts +1 -0
  746. package/dist/components/features/kanban/hooks/use-kanban.d.ts +32 -0
  747. package/dist/components/features/kanban/index.d.ts +5 -0
  748. package/dist/components/features/kanban/kanban-context.d.ts +25 -0
  749. package/dist/components/features/kanban/kanban-keyboard.d.ts +10 -0
  750. package/dist/components/features/kanban/kanban.d.ts +38 -0
  751. package/dist/components/features/kanban/kanban.strings.d.ts +24 -0
  752. package/dist/components/features/kanban/kanban.types.d.ts +168 -0
  753. package/dist/components/features/map/index.d.ts +13 -0
  754. package/dist/components/features/map/map.d.ts +166 -0
  755. package/dist/components/features/map/place-autocomplete.d.ts +97 -0
  756. package/dist/components/features/map/public-leaflet.types.d.ts +71 -0
  757. package/dist/components/features/map/use-map-color-scheme.d.ts +2 -0
  758. package/dist/components/features/media-library/hooks/index.d.ts +1 -0
  759. package/dist/components/features/media-library/hooks/use-media-library.d.ts +5 -0
  760. package/dist/components/features/media-library/index.d.ts +6 -0
  761. package/dist/components/features/media-library/media-library.d.ts +3 -0
  762. package/dist/components/features/media-library/media-library.strings.d.ts +124 -0
  763. package/dist/components/features/media-library/media-library.types.d.ts +568 -0
  764. package/dist/components/features/media-library/media-resource-gallery.d.ts +2 -0
  765. package/dist/components/features/media-library/partials/index.d.ts +1 -0
  766. package/dist/components/features/media-library/partials/media-library-partials.d.ts +10 -0
  767. package/dist/components/features/mentions/hooks/index.d.ts +2 -0
  768. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +41 -0
  769. package/dist/components/features/mentions/hooks/use-mentions.d.ts +35 -0
  770. package/dist/components/features/mentions/index.d.ts +5 -0
  771. package/dist/components/features/mentions/mentions.strings.d.ts +26 -0
  772. package/dist/components/features/mentions/mentions.types.d.ts +100 -0
  773. package/dist/components/features/mentions/partials/index.d.ts +4 -0
  774. package/dist/components/features/mentions/partials/mention-chip.d.ts +29 -0
  775. package/dist/components/features/mentions/partials/mention-content.d.ts +22 -0
  776. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +36 -0
  777. package/dist/components/features/mentions/partials/mention-picker.d.ts +31 -0
  778. package/dist/components/features/mentions/utils/build-mention-html.d.ts +24 -0
  779. package/dist/components/features/mentions/utils/index.d.ts +3 -0
  780. package/dist/components/features/mentions/utils/parse-mentions-from-html.d.ts +13 -0
  781. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +16 -0
  782. package/dist/components/features/overlays/alert-dialog.d.ts +4 -0
  783. package/dist/components/features/overlays/dialog.d.ts +4 -0
  784. package/dist/components/features/overlays/drawer.d.ts +4 -0
  785. package/dist/components/features/overlays/hooks/index.d.ts +2 -0
  786. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +24 -0
  787. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +36 -0
  788. package/dist/components/features/overlays/index.d.ts +6 -0
  789. package/dist/components/features/overlays/overlays.strings.d.ts +19 -0
  790. package/dist/components/features/overlays/overlays.types.d.ts +169 -0
  791. package/dist/components/features/products/components/index.d.ts +17 -0
  792. package/dist/components/features/products/components/product-contract-overview.d.ts +5 -0
  793. package/dist/components/features/products/components/product-details-card.d.ts +5 -0
  794. package/dist/components/features/products/components/product-operations-card.d.ts +5 -0
  795. package/dist/components/features/products/components/product-option-action-menu.d.ts +5 -0
  796. package/dist/components/features/products/components/product-options-matrix.d.ts +5 -0
  797. package/dist/components/features/products/components/product-options-summary.d.ts +5 -0
  798. package/dist/components/features/products/components/product-overview.d.ts +5 -0
  799. package/dist/components/features/products/components/product-policies-card.d.ts +5 -0
  800. package/dist/components/features/products/components/product-quote-preview-card.d.ts +5 -0
  801. package/dist/components/features/products/components/product-readiness-card.d.ts +5 -0
  802. package/dist/components/features/products/components/product-structure-card.d.ts +5 -0
  803. package/dist/components/features/products/components/product-variant-action-menu.d.ts +5 -0
  804. package/dist/components/features/products/components/product-variant-details.d.ts +5 -0
  805. package/dist/components/features/products/components/product-variant-editor.d.ts +5 -0
  806. package/dist/components/features/products/components/product-variants-bulk-table.d.ts +5 -0
  807. package/dist/components/features/products/components/product-variants-manager.d.ts +5 -0
  808. package/dist/components/features/products/components/product-variants-table.d.ts +5 -0
  809. package/dist/components/features/products/index.d.ts +3 -0
  810. package/dist/components/features/products/partials/index.d.ts +7 -0
  811. package/dist/components/features/products/partials/product-actions.d.ts +10 -0
  812. package/dist/components/features/products/partials/product-empty-state.d.ts +10 -0
  813. package/dist/components/features/products/partials/product-metric-tile.d.ts +4 -0
  814. package/dist/components/features/products/partials/product-rows.d.ts +35 -0
  815. package/dist/components/features/products/partials/product-tone.d.ts +8 -0
  816. package/dist/components/features/products/partials/product-values.d.ts +1 -0
  817. package/dist/components/features/products/partials/product-variant-table-parts.d.ts +28 -0
  818. package/dist/components/features/products/products.strings.d.ts +308 -0
  819. package/dist/components/features/products/products.types.d.ts +906 -0
  820. package/dist/components/features/questionnaire/index.d.ts +3 -0
  821. package/dist/components/features/questionnaire/questionnaire-control.d.ts +3 -0
  822. package/dist/components/features/questionnaire/questionnaire.d.ts +2 -0
  823. package/dist/components/features/questionnaire/questionnaire.types.d.ts +98 -0
  824. package/dist/components/features/questionnaire/questionnaire.utils.d.ts +5 -0
  825. package/dist/components/features/resource/index.d.ts +3 -0
  826. package/dist/components/features/resource/resource.d.ts +8 -0
  827. package/dist/components/features/resource/resource.strings.d.ts +12 -0
  828. package/dist/components/features/resource/resource.types.d.ts +161 -0
  829. package/dist/components/features/resource-assignment/hooks/index.d.ts +2 -0
  830. package/dist/components/features/resource-assignment/hooks/use-shared-resource-card.d.ts +32 -0
  831. package/dist/components/features/resource-assignment/index.d.ts +6 -0
  832. package/dist/components/features/resource-assignment/partials/default-shared-resource-partials.d.ts +31 -0
  833. package/dist/components/features/resource-assignment/partials/index.d.ts +1 -0
  834. package/dist/components/features/resource-assignment/resource-assignment.d.ts +12 -0
  835. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +17 -0
  836. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +193 -0
  837. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +6 -0
  838. package/dist/components/features/rich-text-editor/index.d.ts +5 -0
  839. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +28 -0
  840. package/dist/components/features/rich-text-editor/partials/counts-footer.d.ts +32 -0
  841. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +7 -0
  842. package/dist/components/features/rich-text-editor/partials/index.d.ts +7 -0
  843. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +8 -0
  844. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +3 -0
  845. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +33 -0
  846. package/dist/components/features/rich-text-editor/rich-text-editor.d.ts +3 -0
  847. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +6 -0
  848. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +32 -0
  849. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +111 -0
  850. package/dist/components/features/schema-form/hooks/index.d.ts +1 -0
  851. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +23 -0
  852. package/dist/components/features/schema-form/index.d.ts +5 -0
  853. package/dist/components/features/schema-form/partials/index.d.ts +3 -0
  854. package/dist/components/features/schema-form/partials/schema-form-actions.d.ts +23 -0
  855. package/dist/components/features/schema-form/partials/schema-form-empty.d.ts +12 -0
  856. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +12 -0
  857. package/dist/components/features/schema-form/schema-form.d.ts +5 -0
  858. package/dist/components/features/schema-form/schema-form.strings.d.ts +11 -0
  859. package/dist/components/features/schema-form/schema-form.types.d.ts +271 -0
  860. package/dist/components/features/schema-form/schema-form.utils.d.ts +18 -0
  861. package/dist/components/features/suggestions/hooks/index.d.ts +1 -0
  862. package/dist/components/features/suggestions/hooks/use-suggestions.d.ts +9 -0
  863. package/dist/components/features/suggestions/index.d.ts +4 -0
  864. package/dist/components/features/suggestions/suggestions.d.ts +5 -0
  865. package/dist/components/features/suggestions/suggestions.strings.d.ts +16 -0
  866. package/dist/components/features/suggestions/suggestions.types.d.ts +79 -0
  867. package/dist/components/features/sync/index.d.ts +3 -0
  868. package/dist/components/features/sync/sync-range-dialog-form.d.ts +5 -0
  869. package/dist/components/features/sync/sync.strings.d.ts +18 -0
  870. package/dist/components/features/sync/sync.types.d.ts +44 -0
  871. package/dist/components/features/table/column-visibility-toggle.d.ts +5 -0
  872. package/dist/components/features/table/data-table.d.ts +6 -0
  873. package/dist/components/features/table/filter-bar.d.ts +5 -0
  874. package/dist/components/features/table/hooks.d.ts +47 -0
  875. package/dist/components/features/table/index.d.ts +16 -0
  876. package/dist/components/features/table/pagination.d.ts +5 -0
  877. package/dist/components/features/table/partials/cell-renderers.d.ts +141 -0
  878. package/dist/components/features/table/partials/cell-value.d.ts +121 -0
  879. package/dist/components/features/table/partials/fullscreen-toggle.d.ts +16 -0
  880. package/dist/components/features/table/partials/resource-cell.d.ts +63 -0
  881. package/dist/components/features/table/partials/table-link.d.ts +3 -0
  882. package/dist/components/features/table/table-actions.d.ts +5 -0
  883. package/dist/components/features/table/table-body.d.ts +5 -0
  884. package/dist/components/features/table/table-header.d.ts +6 -0
  885. package/dist/components/features/table/table-helpers.d.ts +39 -0
  886. package/dist/components/features/table/table-toolbar.d.ts +5 -0
  887. package/dist/components/features/table/table.strings.d.ts +3 -0
  888. package/dist/components/features/table/table.types.d.ts +489 -0
  889. package/dist/components/features/theme-tweaker/admin-ui-theme-provider.d.ts +6 -0
  890. package/dist/components/features/theme-tweaker/index.d.ts +10 -0
  891. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +49 -0
  892. package/dist/components/features/theme-tweaker/theme-scope.d.ts +7 -0
  893. package/dist/components/features/theme-tweaker/theme-tweaker.d.ts +2 -0
  894. package/dist/components/features/theme-tweaker/theme-tweaker.fields.d.ts +7 -0
  895. package/dist/components/features/theme-tweaker/theme-tweaker.recipes.d.ts +25 -0
  896. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +75 -0
  897. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +161 -0
  898. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +23 -0
  899. package/dist/components/features/theme-tweaker/use-applied-theme.d.ts +11 -0
  900. package/dist/components/layout/app-shell/app-layout.d.ts +12 -0
  901. package/dist/components/layout/app-shell/app-shell.types.d.ts +151 -0
  902. package/dist/components/layout/app-shell/index.d.ts +6 -0
  903. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +2 -0
  904. package/dist/components/layout/app-shell/stacked-layout.d.ts +2 -0
  905. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +2 -0
  906. package/dist/components/layout/auth/auth-card.d.ts +2 -0
  907. package/dist/components/layout/auth/auth-footer-links.d.ts +2 -0
  908. package/dist/components/layout/auth/auth-form.d.ts +11 -0
  909. package/dist/components/layout/auth/auth-hooks.d.ts +4 -0
  910. package/dist/components/layout/auth/auth-method-switch.d.ts +4 -0
  911. package/dist/components/layout/auth/auth-shell.d.ts +2 -0
  912. package/dist/components/layout/auth/auth-social-providers.d.ts +3 -0
  913. package/dist/components/layout/auth/auth-split-panel.d.ts +2 -0
  914. package/dist/components/layout/auth/auth.strings.d.ts +21 -0
  915. package/dist/components/layout/auth/auth.types.d.ts +282 -0
  916. package/dist/components/layout/auth/index.d.ts +10 -0
  917. package/dist/components/layout/containers/container.recipes.d.ts +5 -0
  918. package/dist/components/layout/containers/containers.types.d.ts +17 -0
  919. package/dist/components/layout/containers/content-container.d.ts +3 -0
  920. package/dist/components/layout/containers/index.d.ts +5 -0
  921. package/dist/components/layout/containers/page-viewport.d.ts +3 -0
  922. package/dist/components/layout/containers/section.d.ts +3 -0
  923. package/dist/components/layout/containers/two-column-layout.d.ts +27 -0
  924. package/dist/components/layout/header/header.d.ts +2 -0
  925. package/dist/components/layout/header/header.types.d.ts +198 -0
  926. package/dist/components/layout/header/index.d.ts +9 -0
  927. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +4 -0
  928. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +2 -0
  929. package/dist/components/layout/header/partials/header-notifications.d.ts +2 -0
  930. package/dist/components/layout/header/partials/header-search.d.ts +2 -0
  931. package/dist/components/layout/header/partials/header-tool-button.d.ts +4 -0
  932. package/dist/components/layout/header/partials/header-tool-popover.d.ts +2 -0
  933. package/dist/components/layout/header/partials/header-user-menu.d.ts +2 -0
  934. package/dist/components/layout/hooks/index.d.ts +3 -0
  935. package/dist/components/layout/hooks/use-active-path.d.ts +1 -0
  936. package/dist/components/layout/hooks/use-command-shortcut.d.ts +7 -0
  937. package/dist/components/layout/hooks/use-layout-link.d.ts +2 -0
  938. package/dist/components/layout/index.d.ts +24 -0
  939. package/dist/components/layout/layout.types.d.ts +91 -0
  940. package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +5 -0
  941. package/dist/components/layout/navigation/breadcrumb-progress/index.d.ts +2 -0
  942. package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +24 -0
  943. package/dist/components/layout/navigation/category-nav/category-nav.d.ts +5 -0
  944. package/dist/components/layout/navigation/category-nav/index.d.ts +2 -0
  945. package/dist/components/layout/navigation/category-nav/types.d.ts +22 -0
  946. package/dist/components/layout/navigation/index.d.ts +17 -0
  947. package/dist/components/layout/navigation/section-nav/index.d.ts +1 -0
  948. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +29 -0
  949. package/dist/components/layout/navigation/side-nav.d.ts +58 -0
  950. package/dist/components/layout/page/index.d.ts +4 -0
  951. package/dist/components/layout/page/page.d.ts +3 -0
  952. package/dist/components/layout/page/page.types.d.ts +138 -0
  953. package/dist/components/layout/page/partials/page-actions.d.ts +2 -0
  954. package/dist/components/layout/page/partials/page-header.d.ts +2 -0
  955. package/dist/components/layout/settings/index.d.ts +1 -0
  956. package/dist/components/layout/settings/settings.d.ts +65 -0
  957. package/dist/components/layout/sidebar/app-sidebar.d.ts +7 -0
  958. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +4 -0
  959. package/dist/components/layout/sidebar/components/sidebar-logo.d.ts +10 -0
  960. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +2 -0
  961. package/dist/components/layout/sidebar/components/sidebar-navigation-user.d.ts +23 -0
  962. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +4 -0
  963. package/dist/components/layout/sidebar/components/sidebar-workspace-dropdown.d.ts +2 -0
  964. package/dist/components/layout/sidebar/index.d.ts +11 -0
  965. package/dist/components/layout/sidebar/sidebar.context.d.ts +17 -0
  966. package/dist/components/layout/sidebar/sidebar.d.ts +9 -0
  967. package/dist/components/layout/sidebar/sidebar.types.d.ts +218 -0
  968. package/dist/components/layout/sidebar/sidebar.utils.d.ts +29 -0
  969. package/dist/components/layout/workspace/index.d.ts +3 -0
  970. package/dist/components/layout/workspace/workspace.d.ts +6 -0
  971. package/dist/components/layout/workspace/workspace.strings.d.ts +18 -0
  972. package/dist/components/layout/workspace/workspace.types.d.ts +141 -0
  973. package/dist/components/primitives/date.d.ts +63 -0
  974. package/dist/components/primitives/dimensions.d.ts +30 -0
  975. package/dist/components/primitives/duration.d.ts +23 -0
  976. package/dist/components/primitives/file-size.d.ts +23 -0
  977. package/dist/components/primitives/index.d.ts +11 -0
  978. package/dist/components/primitives/initials-format.d.ts +21 -0
  979. package/dist/components/primitives/initials.d.ts +16 -0
  980. package/dist/components/primitives/link.d.ts +28 -0
  981. package/dist/components/primitives/money.d.ts +79 -0
  982. package/dist/components/primitives/name.d.ts +16 -0
  983. package/dist/components/primitives/number.d.ts +23 -0
  984. package/dist/components/primitives/value.d.ts +23 -0
  985. package/dist/components/typography/content-typography.d.ts +4 -0
  986. package/dist/components/typography/display-label.d.ts +5 -0
  987. package/dist/components/typography/heading.d.ts +16 -0
  988. package/dist/components/typography/index.d.ts +10 -0
  989. package/dist/components/typography/label.d.ts +8 -0
  990. package/dist/components/typography/rich-text/index.d.ts +2 -0
  991. package/dist/components/typography/rich-text/rich-text.d.ts +6 -0
  992. package/dist/components/typography/text-link.d.ts +7 -0
  993. package/dist/components/typography/text.d.ts +17 -0
  994. package/dist/components/typography/text.styles.d.ts +50 -0
  995. package/dist/components/ui/accordion.d.ts +6 -0
  996. package/dist/components/ui/alert-dialog.d.ts +21 -0
  997. package/dist/components/ui/avatar.d.ts +11 -0
  998. package/dist/components/ui/badge.d.ts +5 -0
  999. package/dist/components/ui/breadcrumb.d.ts +11 -0
  1000. package/dist/components/ui/button-group.d.ts +12 -0
  1001. package/dist/components/ui/button.d.ts +12 -0
  1002. package/dist/components/ui/calendar.d.ts +10 -0
  1003. package/dist/components/ui/card.d.ts +11 -0
  1004. package/dist/components/ui/checkbox.d.ts +6 -0
  1005. package/dist/components/ui/collapsible.d.ts +9 -0
  1006. package/dist/components/ui/combobox.d.ts +40 -0
  1007. package/dist/components/ui/command.d.ts +50 -0
  1008. package/dist/components/ui/dialog.d.ts +26 -0
  1009. package/dist/components/ui/disclosure-panel.d.ts +14 -0
  1010. package/dist/components/ui/empty.d.ts +11 -0
  1011. package/dist/components/ui/input-group.d.ts +18 -0
  1012. package/dist/components/ui/input.d.ts +3 -0
  1013. package/dist/components/ui/item.d.ts +22 -0
  1014. package/dist/components/ui/overlay.recipes.d.ts +2 -0
  1015. package/dist/components/ui/pagination.d.ts +17 -0
  1016. package/dist/components/ui/popover.d.ts +22 -0
  1017. package/dist/components/ui/select.d.ts +18 -0
  1018. package/dist/components/ui/separator.d.ts +3 -0
  1019. package/dist/components/ui/sheet.d.ts +25 -0
  1020. package/dist/components/ui/sidebar.d.ts +64 -0
  1021. package/dist/components/ui/skeleton.d.ts +2 -0
  1022. package/dist/components/ui/slot.d.ts +6 -0
  1023. package/dist/components/ui/sonner.d.ts +3 -0
  1024. package/dist/components/ui/switch.d.ts +5 -0
  1025. package/dist/components/ui/table.d.ts +13 -0
  1026. package/dist/components/ui/tabs.d.ts +10 -0
  1027. package/dist/components/ui/textarea.d.ts +3 -0
  1028. package/dist/components/ui/toggle-group.d.ts +12 -0
  1029. package/dist/components/ui/toggle.d.ts +8 -0
  1030. package/dist/components/ui/tooltip.d.ts +13 -0
  1031. package/dist/containers-6s-ucRQQ.js +125 -0
  1032. package/dist/containers-6s-ucRQQ.js.map +1 -0
  1033. package/dist/content-typography-CnwgMJ37.js +6 -0
  1034. package/dist/content-typography-CnwgMJ37.js.map +1 -0
  1035. package/dist/copyable-B7SBXJMr.js +65 -0
  1036. package/dist/copyable-B7SBXJMr.js.map +1 -0
  1037. package/dist/data-display-cWIRdeaf.js +1129 -0
  1038. package/dist/data-display-cWIRdeaf.js.map +1 -0
  1039. package/dist/date-BFNMnrS5.js +140 -0
  1040. package/dist/date-BFNMnrS5.js.map +1 -0
  1041. package/dist/date-picker-CA6ogMQB.js +1521 -0
  1042. package/dist/date-picker-CA6ogMQB.js.map +1 -0
  1043. package/dist/date-pickers-BPIKLdsD.js +224 -0
  1044. package/dist/date-pickers-BPIKLdsD.js.map +1 -0
  1045. package/dist/disclosure-panel-B0HFNZ9x.js +35 -0
  1046. package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -0
  1047. package/dist/display-CFM5myut.js +343 -0
  1048. package/dist/display-CFM5myut.js.map +1 -0
  1049. package/dist/dropdown-menu-BlnyHr-9.js +186 -0
  1050. package/dist/dropdown-menu-BlnyHr-9.js.map +1 -0
  1051. package/dist/editable-text-recipe-Bkm6wKHp.js +10 -0
  1052. package/dist/editable-text-recipe-Bkm6wKHp.js.map +1 -0
  1053. package/dist/favicon.svg +1 -0
  1054. package/dist/features/activities.js +1360 -0
  1055. package/dist/features/activities.js.map +1 -0
  1056. package/dist/features/ai-chat.js +567 -0
  1057. package/dist/features/ai-chat.js.map +1 -0
  1058. package/dist/features/async-preview.js +478 -0
  1059. package/dist/features/async-preview.js.map +1 -0
  1060. package/dist/features/combobox.js +3 -0
  1061. package/dist/features/comments.js +3 -0
  1062. package/dist/features/data-view.js +519 -0
  1063. package/dist/features/data-view.js.map +1 -0
  1064. package/dist/features/email-composer/engine.js +2 -0
  1065. package/dist/features/email-composer.js +1099 -0
  1066. package/dist/features/email-composer.js.map +1 -0
  1067. package/dist/features/event-calendar.js +711 -0
  1068. package/dist/features/event-calendar.js.map +1 -0
  1069. package/dist/features/filters.js +3 -0
  1070. package/dist/features/global-search.js +593 -0
  1071. package/dist/features/global-search.js.map +1 -0
  1072. package/dist/features/kanban.js +425 -0
  1073. package/dist/features/kanban.js.map +1 -0
  1074. package/dist/features/map/images/layers-2x.png +0 -0
  1075. package/dist/features/map/images/layers.png +0 -0
  1076. package/dist/features/map/images/marker-icon-2x.png +0 -0
  1077. package/dist/features/map/images/marker-icon.png +0 -0
  1078. package/dist/features/map/images/marker-shadow.png +0 -0
  1079. package/dist/features/map/images/spritesheet-2x.png +0 -0
  1080. package/dist/features/map/images/spritesheet.png +0 -0
  1081. package/dist/features/map/images/spritesheet.svg +156 -0
  1082. package/dist/features/map/style.css +809 -0
  1083. package/dist/features/map.js +1052 -0
  1084. package/dist/features/map.js.map +1 -0
  1085. package/dist/features/media-library.js +2007 -0
  1086. package/dist/features/media-library.js.map +1 -0
  1087. package/dist/features/mentions.js +3 -0
  1088. package/dist/features/overlays.js +3 -0
  1089. package/dist/features/products.js +3077 -0
  1090. package/dist/features/products.js.map +1 -0
  1091. package/dist/features/questionnaire.js +366 -0
  1092. package/dist/features/questionnaire.js.map +1 -0
  1093. package/dist/features/resource-assignment.js +317 -0
  1094. package/dist/features/resource-assignment.js.map +1 -0
  1095. package/dist/features/resource.js +254 -0
  1096. package/dist/features/resource.js.map +1 -0
  1097. package/dist/features/rich-text-editor.js +23 -0
  1098. package/dist/features/rich-text-editor.js.map +1 -0
  1099. package/dist/features/schema-form.js +744 -0
  1100. package/dist/features/schema-form.js.map +1 -0
  1101. package/dist/features/suggestions.js +149 -0
  1102. package/dist/features/suggestions.js.map +1 -0
  1103. package/dist/features/sync.js +136 -0
  1104. package/dist/features/sync.js.map +1 -0
  1105. package/dist/features/table.js +3 -0
  1106. package/dist/features/theme-tweaker.js +2083 -0
  1107. package/dist/features/theme-tweaker.js.map +1 -0
  1108. package/dist/feedback-DWUkgEjR.js +233 -0
  1109. package/dist/feedback-DWUkgEjR.js.map +1 -0
  1110. package/dist/field-affordance-recipes-IjzPrCTw.js +17 -0
  1111. package/dist/field-affordance-recipes-IjzPrCTw.js.map +1 -0
  1112. package/dist/field-state-recipes-CBTRt9Bt.js +11 -0
  1113. package/dist/field-state-recipes-CBTRt9Bt.js.map +1 -0
  1114. package/dist/filters-BhsUtsxW.js +2203 -0
  1115. package/dist/filters-BhsUtsxW.js.map +1 -0
  1116. package/dist/form-field-Bn7ZH1rA.js +48 -0
  1117. package/dist/form-field-Bn7ZH1rA.js.map +1 -0
  1118. package/dist/form-sizing-BWs70_a2.js +100 -0
  1119. package/dist/form-sizing-BWs70_a2.js.map +1 -0
  1120. package/dist/format-iamDSqs2.js +110 -0
  1121. package/dist/format-iamDSqs2.js.map +1 -0
  1122. package/dist/forms-B7pzS25o.js +194 -0
  1123. package/dist/forms-B7pzS25o.js.map +1 -0
  1124. package/dist/forms-numeric-BUBxELBv.js +867 -0
  1125. package/dist/forms-numeric-BUBxELBv.js.map +1 -0
  1126. package/dist/header-C59QZyxV.js +452 -0
  1127. package/dist/header-C59QZyxV.js.map +1 -0
  1128. package/dist/hooks/use-debounce.d.ts +1 -0
  1129. package/dist/hooks/use-debounced-callback.d.ts +40 -0
  1130. package/dist/hooks/use-files.d.ts +48 -0
  1131. package/dist/hooks/use-mobile.d.ts +2 -0
  1132. package/dist/hooks/useFormErrors.d.ts +7 -0
  1133. package/dist/hooks-CM1Vp9Pe.js +88 -0
  1134. package/dist/hooks-CM1Vp9Pe.js.map +1 -0
  1135. package/dist/http-CLTVJc5I.js +331 -0
  1136. package/dist/http-CLTVJc5I.js.map +1 -0
  1137. package/dist/icon-badge-Dv0RYQwj.js +53 -0
  1138. package/dist/icon-badge-Dv0RYQwj.js.map +1 -0
  1139. package/dist/icon-size-B6PVwjbC.js +18 -0
  1140. package/dist/icon-size-B6PVwjbC.js.map +1 -0
  1141. package/dist/index.d.ts +14 -0
  1142. package/dist/index.js +7 -0
  1143. package/dist/initials-format-CDoQEOd_.js +35 -0
  1144. package/dist/initials-format-CDoQEOd_.js.map +1 -0
  1145. package/dist/input-WwYQZJzG.js +202 -0
  1146. package/dist/input-WwYQZJzG.js.map +1 -0
  1147. package/dist/input-ci9fIgFH.js +20 -0
  1148. package/dist/input-ci9fIgFH.js.map +1 -0
  1149. package/dist/item-pJ0GsOiJ.js +257 -0
  1150. package/dist/item-pJ0GsOiJ.js.map +1 -0
  1151. package/dist/layout/app-shell.js +3 -0
  1152. package/dist/layout/auth.js +3 -0
  1153. package/dist/layout/containers.js +3 -0
  1154. package/dist/layout/header.js +3 -0
  1155. package/dist/layout/hooks.js +3 -0
  1156. package/dist/layout/navigation.js +3 -0
  1157. package/dist/layout/page.js +3 -0
  1158. package/dist/layout/settings.js +3 -0
  1159. package/dist/layout/sidebar.js +4 -0
  1160. package/dist/layout/workspace.js +3 -0
  1161. package/dist/layout.js +13 -0
  1162. package/dist/layout.types-Cn7aUzJp.js +20 -0
  1163. package/dist/layout.types-Cn7aUzJp.js.map +1 -0
  1164. package/dist/lib/action-presentation.d.ts +15 -0
  1165. package/dist/lib/affordance-geometry.generated.d.ts +27 -0
  1166. package/dist/lib/anchored-positioning.d.ts +5 -0
  1167. package/dist/lib/command-filter.d.ts +1 -0
  1168. package/dist/lib/component-vocabulary.d.ts +12 -0
  1169. package/dist/lib/editable-text-recipe.d.ts +6 -0
  1170. package/dist/lib/email-composer.d.ts +6 -0
  1171. package/dist/lib/field-affordance-recipes.d.ts +20 -0
  1172. package/dist/lib/field-state-recipes.d.ts +10 -0
  1173. package/dist/lib/format.d.ts +53 -0
  1174. package/dist/lib/motion-recipes.d.ts +8 -0
  1175. package/dist/lib/navigation-row-recipes.d.ts +26 -0
  1176. package/dist/lib/overlay-anatomy-recipes.d.ts +8 -0
  1177. package/dist/lib/row-recipes.d.ts +3 -0
  1178. package/dist/lib/sanitize-html.d.ts +8 -0
  1179. package/dist/lib/strings.d.ts +16 -0
  1180. package/dist/lib/strings.js +32 -0
  1181. package/dist/lib/strings.js.map +1 -0
  1182. package/dist/lib/surface-recipes.d.ts +27 -0
  1183. package/dist/lib/theme-scope.d.ts +31 -0
  1184. package/dist/lib/token-merge.generated.d.ts +2 -0
  1185. package/dist/lib/track-recipes.d.ts +4 -0
  1186. package/dist/lib/ui-provider/defaults.d.ts +12 -0
  1187. package/dist/lib/ui-provider/hooks.d.ts +13 -0
  1188. package/dist/lib/ui-provider/index.d.ts +28 -0
  1189. package/dist/lib/ui-provider/provider.d.ts +15 -0
  1190. package/dist/lib/ui-provider/scale.d.ts +5 -0
  1191. package/dist/lib/ui-provider/store.d.ts +11 -0
  1192. package/dist/lib/ui-provider/types.d.ts +157 -0
  1193. package/dist/lib/utils.d.ts +2 -0
  1194. package/dist/lib/utils.js +2 -0
  1195. package/dist/map-demo-tile.svg +1 -0
  1196. package/dist/media-gallery-DhDRgnVZ.js +200 -0
  1197. package/dist/media-gallery-DhDRgnVZ.js.map +1 -0
  1198. package/dist/mentions-B8Ko-fhS.js +563 -0
  1199. package/dist/mentions-B8Ko-fhS.js.map +1 -0
  1200. package/dist/message-COsdEvXT.js +108 -0
  1201. package/dist/message-COsdEvXT.js.map +1 -0
  1202. package/dist/motion-recipes-B6jKXEcN.js +27 -0
  1203. package/dist/motion-recipes-B6jKXEcN.js.map +1 -0
  1204. package/dist/navigation-BUIn2Qxx.js +265 -0
  1205. package/dist/navigation-BUIn2Qxx.js.map +1 -0
  1206. package/dist/navigation-DBEu4POU.js +267 -0
  1207. package/dist/navigation-DBEu4POU.js.map +1 -0
  1208. package/dist/navigation-row-recipes-GVh11KiT.js +29 -0
  1209. package/dist/navigation-row-recipes-GVh11KiT.js.map +1 -0
  1210. package/dist/number-BNT_BIzJ.js +269 -0
  1211. package/dist/number-BNT_BIzJ.js.map +1 -0
  1212. package/dist/overlay.recipes-BxW5FIfK.js +6 -0
  1213. package/dist/overlay.recipes-BxW5FIfK.js.map +1 -0
  1214. package/dist/overlays-B11wZka6.js +982 -0
  1215. package/dist/overlays-B11wZka6.js.map +1 -0
  1216. package/dist/page-BV6ioQg3.js +202 -0
  1217. package/dist/page-BV6ioQg3.js.map +1 -0
  1218. package/dist/page-header-DQRa0jug.js +112 -0
  1219. package/dist/page-header-DQRa0jug.js.map +1 -0
  1220. package/dist/pagination-C29vvt3I.js +149 -0
  1221. package/dist/pagination-C29vvt3I.js.map +1 -0
  1222. package/dist/popover-CoLDEg19.js +194 -0
  1223. package/dist/popover-CoLDEg19.js.map +1 -0
  1224. package/dist/popover-menu-GLIQTJTx.js +99 -0
  1225. package/dist/popover-menu-GLIQTJTx.js.map +1 -0
  1226. package/dist/popover.recipes-zgBhMlUu.js +34 -0
  1227. package/dist/popover.recipes-zgBhMlUu.js.map +1 -0
  1228. package/dist/primitives-DKPOGVpj.js +330 -0
  1229. package/dist/primitives-DKPOGVpj.js.map +1 -0
  1230. package/dist/primitives.js +7 -0
  1231. package/dist/progress-BOe8l_FZ.js +168 -0
  1232. package/dist/progress-BOe8l_FZ.js.map +1 -0
  1233. package/dist/receipt-BM8xsGFy.js +113 -0
  1234. package/dist/receipt-BM8xsGFy.js.map +1 -0
  1235. package/dist/rich-text-B7sBAdDG.js +32 -0
  1236. package/dist/rich-text-B7sBAdDG.js.map +1 -0
  1237. package/dist/rich-text-editor-CoVrTiSv.js +575 -0
  1238. package/dist/rich-text-editor-CoVrTiSv.js.map +1 -0
  1239. package/dist/rich-text-editor.recipes-DxvOE0Lp.js +72 -0
  1240. package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +1 -0
  1241. package/dist/rich-text-editor.strings-BpnIQgMl.js +25 -0
  1242. package/dist/rich-text-editor.strings-BpnIQgMl.js.map +1 -0
  1243. package/dist/row-recipes-DL8n7t_b.js +10 -0
  1244. package/dist/row-recipes-DL8n7t_b.js.map +1 -0
  1245. package/dist/sanitize-html-BG9FGe-j.js +64 -0
  1246. package/dist/sanitize-html-BG9FGe-j.js.map +1 -0
  1247. package/dist/scroll-area-BheMQ270.js +47 -0
  1248. package/dist/scroll-area-BheMQ270.js.map +1 -0
  1249. package/dist/select-B2mb-qN2.js +108 -0
  1250. package/dist/select-B2mb-qN2.js.map +1 -0
  1251. package/dist/separator-DO0EbCEm.js +17 -0
  1252. package/dist/separator-DO0EbCEm.js.map +1 -0
  1253. package/dist/separator-Gk_WXH-l.js +21 -0
  1254. package/dist/separator-Gk_WXH-l.js.map +1 -0
  1255. package/dist/services/actions/action-adapters.d.ts +77 -0
  1256. package/dist/services/actions/action-overlay-outlet.d.ts +3 -0
  1257. package/dist/services/actions/action-provider.d.ts +7 -0
  1258. package/dist/services/actions/action-scope.d.ts +3 -0
  1259. package/dist/services/actions/action-store.d.ts +55 -0
  1260. package/dist/services/actions/actions.strings.d.ts +2 -0
  1261. package/dist/services/actions/actions.types.d.ts +322 -0
  1262. package/dist/services/actions/hooks.d.ts +8 -0
  1263. package/dist/services/actions/index.d.ts +8 -0
  1264. package/dist/services/actions.js +811 -0
  1265. package/dist/services/actions.js.map +1 -0
  1266. package/dist/settings-BnCyyPOJ.js +160 -0
  1267. package/dist/settings-BnCyyPOJ.js.map +1 -0
  1268. package/dist/sheet-B-q914Ad.js +205 -0
  1269. package/dist/sheet-B-q914Ad.js.map +1 -0
  1270. package/dist/sidebar-C_2p3Tfj.js +501 -0
  1271. package/dist/sidebar-C_2p3Tfj.js.map +1 -0
  1272. package/dist/sidebar-DPR7fmqN.js +598 -0
  1273. package/dist/sidebar-DPR7fmqN.js.map +1 -0
  1274. package/dist/skeleton-CmT1ppqb.js +264 -0
  1275. package/dist/skeleton-CmT1ppqb.js.map +1 -0
  1276. package/dist/slot-CLF9kLrS.js +16 -0
  1277. package/dist/slot-CLF9kLrS.js.map +1 -0
  1278. package/dist/smart-card-CYLn46e6.js +578 -0
  1279. package/dist/smart-card-CYLn46e6.js.map +1 -0
  1280. package/dist/spinner-BY9HbUEh.js +78 -0
  1281. package/dist/spinner-BY9HbUEh.js.map +1 -0
  1282. package/dist/structure-MvKVq-oL.js +95 -0
  1283. package/dist/structure-MvKVq-oL.js.map +1 -0
  1284. package/dist/structure.recipes-Bqhf9oIh.js +548 -0
  1285. package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
  1286. package/dist/style.css +3 -0
  1287. package/dist/surface-recipes-CQfRr-VL.js +27 -0
  1288. package/dist/surface-recipes-CQfRr-VL.js.map +1 -0
  1289. package/dist/table-BS39xnlq.js +1424 -0
  1290. package/dist/table-BS39xnlq.js.map +1 -0
  1291. package/dist/table-DnlAJ-xR.js +146 -0
  1292. package/dist/table-DnlAJ-xR.js.map +1 -0
  1293. package/dist/tabs-B5cNMWiP.js +187 -0
  1294. package/dist/tabs-B5cNMWiP.js.map +1 -0
  1295. package/dist/text-inputs-Dh9XGyiS.js +331 -0
  1296. package/dist/text-inputs-Dh9XGyiS.js.map +1 -0
  1297. package/dist/text.styles-BwB7vAF2.js +64 -0
  1298. package/dist/text.styles-BwB7vAF2.js.map +1 -0
  1299. package/dist/theme-scope-kStaAer0.js +39 -0
  1300. package/dist/theme-scope-kStaAer0.js.map +1 -0
  1301. package/dist/theme.css +872 -0
  1302. package/dist/timelines-B9ICkQcV.js +446 -0
  1303. package/dist/timelines-B9ICkQcV.js.map +1 -0
  1304. package/dist/track-recipes-LLPNVwFg.js +10 -0
  1305. package/dist/track-recipes-LLPNVwFg.js.map +1 -0
  1306. package/dist/tree-BdWSaoFT.js +185 -0
  1307. package/dist/tree-BdWSaoFT.js.map +1 -0
  1308. package/dist/types/index.d.ts +11 -0
  1309. package/dist/types/locale.types.d.ts +7 -0
  1310. package/dist/types/pagination.types.d.ts +24 -0
  1311. package/dist/typography/rich-text.js +3 -0
  1312. package/dist/typography-Cv8MT-82.js +96 -0
  1313. package/dist/typography-Cv8MT-82.js.map +1 -0
  1314. package/dist/typography.js +3 -0
  1315. package/dist/ui-provider-CftIB6TY.js +128 -0
  1316. package/dist/ui-provider-CftIB6TY.js.map +1 -0
  1317. package/dist/ui-provider.js +4 -0
  1318. package/dist/upload-D8Za5x_c.js +849 -0
  1319. package/dist/upload-D8Za5x_c.js.map +1 -0
  1320. package/dist/upload-queue-hIIYBLS7.js +410 -0
  1321. package/dist/upload-queue-hIIYBLS7.js.map +1 -0
  1322. package/dist/usage-card-DnmnJ58D.js +458 -0
  1323. package/dist/usage-card-DnmnJ58D.js.map +1 -0
  1324. package/dist/use-debounce-DZ_1ZBPa.js +18 -0
  1325. package/dist/use-debounce-DZ_1ZBPa.js.map +1 -0
  1326. package/dist/use-debounced-callback-Cx1h-hdv.js +30 -0
  1327. package/dist/use-debounced-callback-Cx1h-hdv.js.map +1 -0
  1328. package/dist/use-file-drop-target-BX7GnhoQ.js +39 -0
  1329. package/dist/use-file-drop-target-BX7GnhoQ.js.map +1 -0
  1330. package/dist/use-mobile-vaLKwgyf.js +15 -0
  1331. package/dist/use-mobile-vaLKwgyf.js.map +1 -0
  1332. package/dist/utils-C2EKeIw3.js +72 -0
  1333. package/dist/utils-C2EKeIw3.js.map +1 -0
  1334. package/dist/value-inputs-DX2dbxjj.js +824 -0
  1335. package/dist/value-inputs-DX2dbxjj.js.map +1 -0
  1336. package/dist/workspace-C1PZmk8L.js +402 -0
  1337. package/dist/workspace-C1PZmk8L.js.map +1 -0
  1338. package/docs/consumer-skill/SKILL.md +135 -0
  1339. package/docs/consumer-skill/examples/app-layout.tsx +31 -0
  1340. package/docs/consumer-skill/examples/composition.tsx +37 -0
  1341. package/docs/consumer-skill/examples/content-workflow.tsx +13 -0
  1342. package/docs/consumer-skill/examples/destructive-confirm.tsx +42 -0
  1343. package/docs/consumer-skill/examples/detail.tsx +27 -0
  1344. package/docs/consumer-skill/examples/edit.tsx +61 -0
  1345. package/docs/consumer-skill/examples/email-composer.tsx +25 -0
  1346. package/docs/consumer-skill/examples/hierarchy-capture.tsx +25 -0
  1347. package/docs/consumer-skill/examples/index-table.tsx +36 -0
  1348. package/docs/consumer-skill/examples/manifest.json +108 -0
  1349. package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
  1350. package/docs/consumer-skill/examples/receipt.tsx +19 -0
  1351. package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
  1352. package/docs/consumer-skill/references/composition.md +273 -0
  1353. package/docs/consumer-skill/references/design-contract.md +146 -0
  1354. package/docs/consumer-skill/references/discovery.md +50 -0
  1355. package/docs/consumer-skill/references/installation.md +83 -0
  1356. package/docs/consumer-skill/references/integration.md +69 -0
  1357. package/docs/consumer-skill/references/public-api.json +17750 -0
  1358. package/docs/consumer-skill/references/review.md +74 -0
  1359. package/docs/consumer-skill/references/theming.md +56 -0
  1360. package/docs/consumer-skill/references/tokens.json +422 -0
  1361. package/docs/consumer-skill/references/workflows.md +135 -0
  1362. package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
  1363. package/docs/consumer-skill/scripts/composition-policy.mjs +155 -0
  1364. package/docs/consumer-skill/scripts/discovery.mjs +84 -0
  1365. package/docs/consumer-skill/scripts/find-components.mjs +11 -0
  1366. package/docs/consumer-skill/scripts/surface-policy.mjs +22 -0
  1367. package/package.json +642 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","names":["React","Map","_Fragment","ButtonGroup","Text","DropdownMenuSeparator","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuRadioGroup","DropdownMenuCheckboxItem","DropdownMenuLabel","DropdownMenuContent","DropdownMenu","DropdownMenuRadioItem","CommandItem","CommandEmpty","CommandList","CommandGroup","Command","PopoverTrigger","Popover","PopoverContent","InputGroup","InputGroupInput","InputGroupAddon","useDebounce","React$1","Fragment$1","defaultPlaceAutocompleteStrings","formatAddress","parts","properties","buildSearchUrl","url","query","lang","limit","bbox","lat","lon","zoom","locationBiasScale","searchPhoton","response","options","usePlaceSearch","results","setResults","isLoading","setIsLoading","error","setError","hasSearched","setHasSearched","retryAttempt","setRetryAttempt","onSearchErrorRef","onSearchError","debouncedQuery","debounceMs","bboxKey","current","abortController","fetchResults","features","searchPlaces","signal","addressOsmIds","id","feature","err","failure","attempt","formatPlaceAutocompleteString","template","params","key","match","PlaceAutocomplete","controlledValue","controlledOnValueChange","stringsProp","inputOnFocus","props","strings","useStrings","internalValue","setInternalValue","defaultValue","searchQuery","setSearchQuery","isListDismissed","setIsListDismissed","activeIndex","setActiveIndex","listId","anchorRef","popoverActionsRef","optionNodes","isControlled","displayValue","onResultsChangeRef","onResultsChange","hasNoResults","hasCommandList","showCommandList","selectPlace","address","onPlaceSelect","cn","className","event","flushSync","next","open","details","SearchIcon","index","newValue","Loader2Icon","Button","retry","formattedAddress","node","MapPinIcon","useMapColorScheme","read","useCallback","container","subscribe","observer","notify","useSyncExternalStore","ReactLeafletHooksContext","createContext","defaultMapStrings","MapStringsContext","useMapStrings","useContext","ReactLeafletRuntimeContext","ReactLeafletRuntime","lazy","mod","createRuntimeComponent","runtime","Component","select","LeafletMapContainer","LeafletTileLayer","LeafletMarker","LeafletPopup","LeafletTooltip","LeafletCircle","LeafletCircleMarker","LeafletPolyline","LeafletPolygon","LeafletRectangle","LeafletLayerGroup","LeafletFeatureGroup","createLazyComponent","factory","Suspense","LeafletMarkerClusterGroup","ReactLeafletHooksProvider","useLeafletMap","hooks","useLeafletMapEvents","handlers","assignRef","ref","value","Map$1","focusCleanup","useRef","handleMapRef","map","focusWithoutScroll","isMounted","setIsMounted","useState","useEffect","MapLayersContext","useMapLayersContext","MapTileLayer","nameProp","name","context","resolvedTheme","resolvedUrl","darkUrl","resolvedAttribution","darkAttribution","attribution","MapLayerGroup","disabled","MapFeatureGroup","MapLayers","tileLayers","setTileLayers","selectedTileLayer","setSelectedTileLayer","defaultTileLayer","layerGroups","setLayerGroups","activeLayerGroups","setActiveLayerGroups","defaultLayerGroups","registerTileLayer","prevTileLayers","layer","tileLayer","registerLayerGroup","prevLayerGroups","group","layerGroup","validDefaultValue","MapLayersControl","layersContext","handleLayerGroupToggle","checked","groupName","showTileLayersDropdown","showLayerGroupsDropdown","triggerProps","position","LayersIcon","tileLayersLabel","layerGroupsLabel","MapMarker","useLeaflet","markerRef","resolvedAriaLabel","ariaLabel","resolvedTitle","syncMarkerElement","element","marker","handleMarkerRef","L","renderToString","icon","bgPos","popupAnchor","tooltipAnchor","MapMarkerClusterGroup","iconNode","cluster","MapCircle","MapCircleMarker","MapPolyline","MapPolygon","MapRectangle","MapPopup","MapTooltip","ARROW_POSITION_CLASSES","DEFAULT_OFFSET","sideOffset","side","children","MapZoomControl","zoomLevel","setZoomLevel","MapControlContainer","PlusIcon","MinusIcon","MapFullscreenControl","isFullscreen","setIsFullscreen","fullscreenControl","handleEnter","handleExit","jsx","MinimizeIcon","MaximizeIcon","MapLocatePulseIcon","MapLocateControl","isLocating","setIsLocating","useDelayedLoadingState","location","setLocation","hasLocation","startLocating","onLocationFound","onLocationError","watch","stopLocating","trackingHandler","trackingTitle","trackingAriaLabel","locationMarker","LoaderCircleIcon","NavigationIcon","MapSearchControl","MapDrawContext","useMapDrawContext","MapDrawControl","featureGroupRef","editControlRef","deleteControlRef","activeMode","setActiveMode","layersCount","setLayersCount","updateLayersCount","handleDrawCreated","onLayersChange","handleDrawEditedOrDeleted","LeafletDraw","MapDrawShapeButton","drawContext","controlRef","isActive","drawMode","drawLabel","control","createDrawTool","handleClick","MapDrawMarker","MapDrawPolyline","mapDrawHandleIcon","useMapDrawHandleIcon","WaypointsIcon","MapDrawCircle","CircleIcon","MapDrawRectangle","SquareIcon","MapDrawPolygon","PentagonIcon","MapDrawActionButton","drawAction","hasFeatures","actionLabel","featureGroup","MapDrawEdit","PenLineIcon","MapDrawDelete","Trash2Icon","MapDrawUndo","isInEditMode","isInDeleteMode","undoLabel","handleUndo","Undo2Icon","containerRef","setL","setLeafletDraw","loadLeaflet","leaflet","leafletFullscreen","leafletDraw","L_object","showLoading","setShowLoading","timeoutRef","delay"],"sources":["../../src/components/features/map/place-autocomplete.tsx","../../src/components/features/map/use-map-color-scheme.ts","../../src/components/features/map/map.tsx"],"sourcesContent":["import { Button } from \"../../base/buttons\"\nimport { Text } from \"../../typography\"\nimport { useDebounce } from \"../../../hooks/use-debounce\"\nimport { DEFAULT_DEBOUNCE_MS } from \"../../../hooks/use-debounced-callback\"\nimport { useStrings, type StringsProp } from \"../../../lib/strings\"\nimport { cn } from \"../../../lib/utils\"\nimport {\n\t\tCommand,\n\t\tCommandEmpty,\n\t\tCommandGroup,\n\t\tCommandItem,\n\t\tCommandList,\n} from \"../../base/command\"\nimport {\n\t\tPopover,\n\t\tPopoverContent,\n\t\tPopoverTrigger,\n} from \"../../base/popover\"\nimport { InputGroup, InputGroupAddon, InputGroupInput } from '../../base/text-inputs';\nimport { Loader2Icon, MapPinIcon, SearchIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { flushSync } from \"react-dom\"\n\ntype BBox = [number, number, number, number]\ntype Point = {\n\t\ttype: \"Point\"\n\t\tcoordinates: [number, number]\n}\ntype Feature<TGeometry, TProperties> = {\n\t\ttype: \"Feature\"\n\t\tgeometry: TGeometry\n\t\tproperties: TProperties\n\t\tbbox?: BBox\n}\ntype FeatureCollection<TGeometry, TProperties> = {\n\t\ttype: \"FeatureCollection\"\n\t\tfeatures: Array<Feature<TGeometry, TProperties>>\n\t\tbbox?: BBox\n}\n\ninterface PlaceFeatureProperties {\n\t\tosm_id: number\n\t\tosm_type: \"N\" | \"W\" | \"R\"\n\t\tosm_key: string\n\t\tosm_value: string\n\t\ttype: string\n\t\t/** Form field name, forwarded for native submits. */\n\t\tname?: string\n\t\thousenumber?: string\n\t\tstreet?: string\n\t\tlocality?: string\n\t\tdistrict?: string\n\t\tpostcode?: string\n\t\tcity?: string\n\t\tcounty?: string\n\t\tstate?: string\n\t\tcountry?: string\n\t\tcountrycode?: string\n\t\textent?: [number, number, number, number]\n\t\textra?: Record<string, string>\n}\ntype PlaceFeature = Feature<Point, PlaceFeatureProperties>\ntype PlaceFeatureCollection = FeatureCollection<Point, PlaceFeatureProperties>\n\ninterface PlaceAutocompleteStrings {\n\t\tsearchPlaceholder: string\n\t\t/** Announced while a place lookup is in flight. */\n\t\tloading: string\n\t\terror: string\n\t\t/** Action shown after a failed lookup. */\n\t\tretry?: string\n\t\tnoResults: string\n\t\tunknownPlace: string\n}\n\nconst defaultPlaceAutocompleteStrings: PlaceAutocompleteStrings = {\n\t\tsearchPlaceholder: \"Search\",\n\t\tloading: \"Searching places\",\n\t\terror: \"Error: {{message}}\",\n\t\tretry: \"Retry\",\n\t\tnoResults: \"Can't find {{query}}.\",\n\t\tunknownPlace: \"Unknown\",\n}\n\n/**\n * Query parameters for Photon geocoding API\n * @see https://github.com/komoot/photon#photon-api\n */\ninterface PlaceSearchOptions {\n\t\t/** Search text (address, place name, or POI) */\n\t\tquery: string\n\t\t/** Preferred language for results (e.g., \"en\", \"de\", \"fr\") */\n\t\tlang?: string\n\t\t/** Maximum number of results to return */\n\t\tlimit?: number\n\t\t/**\n\t\t * Bounding box used to restrict results.\n\t\t * Format: [minLongitude, minLatitude, maxLongitude, maxLatitude]\n\t\t */\n\t\tbbox?: BBox\n\t\t/** Latitude used to bias results toward a specific location */\n\t\tlat?: number\n\t\t/** Longitude used to bias results toward a specific location */\n\t\tlon?: number\n\t\t/**\n\t\t * Zoom level used for location biasing.\n\t\t * Higher values increase locality.\n\t\t */\n\t\tzoom?: number\n\t\t/**\n\t\t * Strength of the location bias.\n\t\t */\n\t\tlocationBiasScale?: number\n}\n\n/** Consumer-owned geocoding integration. Keep callback identity stable until its provider changes. */\ntype PlaceSearchCallback = (options: PlaceSearchOptions, signal: AbortSignal) => Promise<PlaceFeature[]>\n\ninterface PlaceAutocompleteProps\n\t\textends Omit<PlaceSearchOptions, \"query\">,\n\t\t\t\tOmit<React.ComponentProps<\"input\">, \"value\" | \"onChange\"> {\n\t\tdebounceMs?: number\n\t\t/** Current value. Controlled. */\n\t\tvalue?: string\n\t\t/** Initial value for uncontrolled use. */\n\t\tdefaultValue?: string\n\t\t/** Fired with the next text value. */\n\t\tonValueChange?: (value: string) => void\n\t\tonPlaceSelect?: (feature: PlaceFeature) => void\n\t\tonResultsChange?: (results: PlaceFeature[]) => void\n\t\t/** Overrides Photon. Memoize when its implementation captures consumer state. */\n\t\tsearchPlaces?: PlaceSearchCallback\n\t\t/** Reports a current lookup failure; cancelled or superseded failures are ignored. */\n\t\tonSearchError?: (error: Error) => void\n\t\t/** Overrides this surface's own copy. */\n\t\tstrings?: StringsProp<PlaceAutocompleteStrings>\n}\n\nfunction formatAddress(properties: PlaceFeatureProperties) {\n\t\tconst parts = []\n\n\t\tif (properties.name) {\n\t\t\t\tparts.push(properties.name)\n\t\t}\n\n\t\tif (properties.housenumber && properties.street) {\n\t\t\t\tparts.push(`${properties.housenumber} ${properties.street}`)\n\t\t} else if (properties.street) {\n\t\t\t\tparts.push(properties.street)\n\t\t}\n\n\t\tif (properties.city) {\n\t\t\t\tparts.push(properties.city)\n\t\t} else if (properties.locality) {\n\t\t\t\tparts.push(properties.locality)\n\t\t}\n\n\t\tif (properties.state && properties.state !== properties.city) {\n\t\t\t\tparts.push(properties.state)\n\t\t}\n\n\t\tif (properties.country) {\n\t\t\t\tparts.push(properties.country)\n\t\t}\n\n\t\treturn [...new Set(parts)].join(\", \")\n}\n\nfunction buildSearchUrl({\n\t\tquery,\n\t\tbbox,\n\t\tlang,\n\t\tlat,\n\t\tlimit,\n\t\tlocationBiasScale,\n\t\tlon,\n\t\tzoom,\n}: PlaceSearchOptions) {\n\t\tconst url = new URL(\"https://photon.komoot.io/api\")\n\t\turl.searchParams.set(\"q\", query)\n\n\t\tif (lang) {\n\t\t\t\turl.searchParams.set(\"lang\", lang)\n\t\t}\n\n\t\tif (limit) {\n\t\t\t\turl.searchParams.set(\"limit\", String(limit))\n\t\t}\n\n\t\tif (bbox) {\n\t\t\t\turl.searchParams.set(\"bbox\", bbox.join(\",\"))\n\t\t}\n\n\t\tif (lat !== undefined && lon !== undefined) {\n\t\t\t\turl.searchParams.set(\"lat\", String(lat))\n\t\t\t\turl.searchParams.set(\"lon\", String(lon))\n\t\t}\n\n\t\tif (zoom !== undefined) {\n\t\t\t\turl.searchParams.set(\"zoom\", String(zoom))\n\t\t}\n\n\t\tif (locationBiasScale !== undefined) {\n\t\t\t\turl.searchParams.set(\"location_bias_scale\", String(locationBiasScale))\n\t\t}\n\n\t\treturn String(url)\n}\n\nconst searchPhoton: PlaceSearchCallback = async (options, signal) => {\n\t\tconst response = await fetch(buildSearchUrl(options), { signal })\n\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(`Photon API error: ${response.status} ${response.statusText}`)\n\t\t}\n\t\tconst data: PlaceFeatureCollection = await response.json()\n\t\treturn data.features\n}\n\nfunction usePlaceSearch({\n\t\tdebounceMs,\n\t\tquery,\n\t\tlang,\n\t\tlimit,\n\t\tbbox,\n\t\tlat,\n\t\tlon,\n\t\tzoom,\n\t\tlocationBiasScale,\n\t\tsearchPlaces = searchPhoton,\n\t\tonSearchError,\n}: {\n\t\tdebounceMs: number\n\t\tsearchPlaces?: PlaceSearchCallback\n\t\tonSearchError?: (error: Error) => void\n} & PlaceSearchOptions) {\n\t\tconst [results, setResults] = React.useState<PlaceFeature[]>([])\n\t\tconst [isLoading, setIsLoading] = React.useState(false)\n\t\tconst [error, setError] = React.useState<Error | null>(null)\n\t\tconst [hasSearched, setHasSearched] = React.useState(false)\n\t\tconst [retryAttempt, setRetryAttempt] = React.useState(0)\n\t\tconst onSearchErrorRef = React.useRef(onSearchError)\n\t\tReact.useEffect(() => { onSearchErrorRef.current = onSearchError }, [onSearchError])\n\n\t\tconst debouncedQuery = useDebounce(query, debounceMs)\n\t\t// Tuple values define the context; a consumer's inline bbox must not restart it.\n\t\tconst bboxKey = bbox?.join(',')\n\n\t\tReact.useEffect(() => {\n\t\t\t\tsetResults(current => current.length ? [] : current)\n\t\t\t\tsetError(null)\n\t\t\t\tif (!query.trim() || query !== debouncedQuery) {\n\t\t\t\t\t\tsetIsLoading(false)\n\t\t\t\t\t\tsetHasSearched(false)\n\t\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst abortController = new AbortController()\n\t\t\t\tconst { signal } = abortController\n\t\t\t\tsetIsLoading(true)\n\t\t\t\tsetHasSearched(true)\n\n\t\t\t\tasync function fetchResults() {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst features = await searchPlaces({\n\t\t\t\t\t\t\t\t\t\tquery: debouncedQuery, lang, limit,\n\t\t\t\t\t\t\t\t\t\tbbox: bboxKey ? bboxKey.split(',').map(Number) as BBox : undefined,\n\t\t\t\t\t\t\t\t\t\tlat, lon, zoom, locationBiasScale,\n\t\t\t\t\t\t\t\t}, signal)\n\t\t\t\t\t\t\t\tif (signal.aborted) return\n\t\t\t\t\t\t\t\tconst addressOsmIds = new Set<number>()\n\t\t\t\t\t\t\t\tsetResults(features.filter(feature => {\n\t\t\t\t\t\t\t\t\t\tconst id = feature.properties.osm_id\n\t\t\t\t\t\t\t\t\t\tif (addressOsmIds.has(id)) return false\n\t\t\t\t\t\t\t\t\t\taddressOsmIds.add(id)\n\t\t\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (signal.aborted || (err instanceof Error && err.name === 'AbortError')) return\n\t\t\t\t\t\t\t\tconst failure = err instanceof Error ? err : new Error(String(err))\n\t\t\t\t\t\t\t\tsetError(failure)\n\t\t\t\t\t\t\t\tonSearchErrorRef.current?.(failure)\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\tif (!signal.aborted) setIsLoading(false)\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvoid fetchResults()\n\t\t\t\treturn () => abortController.abort()\n\t\t}, [query, debouncedQuery, lang, limit, bboxKey, lat, lon, zoom, locationBiasScale, searchPlaces, retryAttempt])\n\n\t\treturn { results, isLoading, error, hasSearched, retry: () => setRetryAttempt(attempt => attempt + 1) }\n}\n\nfunction formatPlaceAutocompleteString(\n\t\ttemplate: string,\n\t\tparams: Record<string, string>\n) {\n\t\treturn template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, key) => {\n\t\t\t\treturn params[key] ?? match\n\t\t})\n}\n\nfunction PlaceAutocomplete({\n\t\tdebounceMs = DEFAULT_DEBOUNCE_MS,\n\t\tlang,\n\t\tlimit = 5,\n\t\tbbox,\n\t\tlat,\n\t\tlon,\n\t\tzoom,\n\t\tlocationBiasScale,\n\t\tclassName,\n\t\tvalue: controlledValue,\n\t\tdefaultValue = \"\",\n\t\tonValueChange: controlledOnValueChange,\n\t\tonPlaceSelect,\n\t\tonResultsChange,\n\t\tsearchPlaces,\n\t\tonSearchError,\n\t\tstrings: stringsProp,\n\t\tonFocus: inputOnFocus,\n\t\t...props\n}: PlaceAutocompleteProps) {\n\t\tconst strings = useStrings(defaultPlaceAutocompleteStrings, stringsProp)\n\t\tconst [internalValue, setInternalValue] = React.useState(defaultValue)\n\t\tconst [searchQuery, setSearchQuery] = React.useState(\"\")\n\t\tconst [isListDismissed, setIsListDismissed] = React.useState(false)\n\t\tconst [activeIndex, setActiveIndex] = React.useState(-1)\n\t\tconst listId = React.useId()\n\t\tconst anchorRef = React.useRef<HTMLDivElement>(null)\n\t\tconst popoverActionsRef: React.ComponentProps<typeof Popover>['actionsRef'] = React.useRef(null)\n\t\tconst optionNodes = React.useRef(new Map<number, HTMLElement>())\n\n\t\tconst isControlled = controlledValue !== undefined\n\t\tconst displayValue = isControlled ? controlledValue : internalValue\n\n\t\tconst { results, isLoading, error, hasSearched, retry } = usePlaceSearch({\n\t\t\t\tquery: searchQuery,\n\t\t\t\tsearchPlaces,\n\t\t\t\tonSearchError,\n\t\t\t\tdebounceMs,\n\t\t\t\tlang,\n\t\t\t\tlimit,\n\t\t\t\tbbox,\n\t\t\t\tlat,\n\t\t\t\tlon,\n\t\t\t\tzoom,\n\t\t\t\tlocationBiasScale,\n\t\t})\n\n\t\tconst onResultsChangeRef = React.useRef(onResultsChange)\n\t\tReact.useEffect(() => { onResultsChangeRef.current = onResultsChange }, [onResultsChange])\n\t\tReact.useEffect(() => {\n\t\t\t\tonResultsChangeRef.current?.(results)\n\t\t}, [results])\n\n\t\tconst hasNoResults =\n\t\t\t\thasSearched && !isLoading && !error && results.length === 0\n\t\tconst hasCommandList = Boolean(error || hasNoResults || results.length > 0)\n\t\tconst showCommandList = hasCommandList && !isListDismissed\n\t\tconst selectPlace = (feature: PlaceFeature) => {\n\t\t\t\tconst address = formatAddress(feature.properties)\n\t\t\t\tif (!isControlled) setInternalValue(address)\n\t\t\t\tsetSearchQuery(\"\")\n\t\t\t\tsetIsListDismissed(true)\n\t\t\t\tsetActiveIndex(-1)\n\t\t\t\tcontrolledOnValueChange?.(address)\n\t\t\t\tonPlaceSelect?.(feature)\n\t\t}\n\t\tconst optionId = (index: number) => optionNodes.current.get(index)?.id\n\n\t\treturn (\n\t\t\t\t<Command\n inset=\"flush\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'place-autocomplete--component',\n\t\t\t\t\t\t\t\t// The input group owns the closed-state surface. Keep the\n\t\t\t\t\t\t\t\t// command root flush while inheriting canonical list and row\n\t\t\t\t\t\t\t\t// presentation from base/command.\n\t\t\t\t\t\t\t\t\"h-fit overflow-visible\",\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tvalue={activeIndex >= 0 ? String(results[activeIndex]?.properties.osm_id ?? '') : ''}\n\t\t\t\t\t\tonKeyDownCapture={(event) => {\n\t\t\t\t\t\t\tif (!(event.target instanceof HTMLInputElement)) return\n\t\t\t\t\t\t\tif (event.key === 'Tab' && showCommandList && (!error || event.shiftKey)) {\n\t\t\t\t\t\t\t\t// Remove closing popup guards before native Tab follows the page order.\n\t\t\t\t\t\t\t\t// A forward Tab on an error still reaches the popup's Retry action.\n\t\t\t\t\t\t\t\tflushSync(() => {\n\t\t\t\t\t\t\t\t\tsetIsListDismissed(true)\n\t\t\t\t\t\t\t\t\tsetActiveIndex(-1)\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tpopoverActionsRef.current?.unmount()\n\t\t\t\t\t\t\t} else if (event.key === 'Escape') {\n\t\t\t\t\t\t\t\tsetIsListDismissed(true)\n\t\t\t\t\t\t\t\tsetActiveIndex(-1)\n\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t} else if (results.length && ['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n\t\t\t\t\t\t\t\tsetIsListDismissed(false)\n\t\t\t\t\t\t\t\tconst next = event.key === 'Home' ? 0 : event.key === 'End' ? results.length - 1 : activeIndex < 0 ? (event.key === 'ArrowDown' ? 0 : results.length - 1) : (activeIndex + (event.key === 'ArrowDown' ? 1 : -1) + results.length) % results.length\n\t\t\t\t\t\t\t\tsetActiveIndex(next)\n\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t} else if (event.key === 'Enter' && showCommandList && results[activeIndex]) {\n\t\t\t\t\t\t\t\tselectPlace(results[activeIndex])\n\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tshouldFilter={false}\n\t\t\t\t\t\tloop>\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\t\tactionsRef={popoverActionsRef}\n\t\t\t\t\t\t\t\topen={showCommandList}\n\t\t\t\t\t\t\t\tonOpenChange={(open, details) => {\n\t\t\t\t\t\t\t\t\t\t// The visible input is part of this composite, outside the portal.\n\t\t\t\t\t\t\t\t\t\tif (!open && details.reason === 'focus-out' && document.activeElement === anchorRef.current?.querySelector('input')) {\n\t\t\t\t\t\t\t\t\t\t\t\tdetails.cancel()\n\t\t\t\t\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (!open) setIsListDismissed(true)\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div ref={anchorRef} className=\"place-autocomplete--anchor relative\">\n\t\t\t\t\t\t\t\t\t\t<PopoverTrigger\n\t\t\t\t\t\t\t\t\t\t\t\trender={<span />}\n\t\t\t\t\t\t\t\t\t\t\t\tnativeButton={false}\n\t\t\t\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"pointer-events-none absolute inset-0\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<InputGroup className=\"border-input! bg-popover! ring-0!\">\n\t\t\t\t\t\t\t\t\t\t\t\t<InputGroupAddon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SearchIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t</InputGroupAddon>\n\t\t\t\t\t\t\t\t\t\t\t\t<InputGroupInput\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={showCommandList}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-controls={showCommandList ? listId : undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-activedescendant={showCommandList && results[activeIndex] ? optionId(activeIndex) : undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={strings.searchPlaceholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={displayValue}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newValue = event.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isControlled) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetInternalValue(newValue)\n\t\t\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\t\t\tsetIsListDismissed(false)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSearchQuery(newValue)\n\t\t\t\t\t\t\t\t\t\tsetActiveIndex(-1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrolledOnValueChange?.(newValue)\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\tonFocus={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (hasCommandList) setIsListDismissed(false)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinputOnFocus?.(event)\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\t{...props}\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{!!isLoading && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<InputGroupAddon align=\"inline-end\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Loader2Icon className=\"animate-spin\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"sr-only\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.loading}\n\t\t\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\t</InputGroupAddon>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</InputGroup>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<PopoverContent\n\t\t\t\t\t\t\t\t\t\taria-label={strings.searchPlaceholder}\n\t\t\t\t\t\t\t\t\t\talign=\"start\"\n\t\t\t\t\t\t\t\t\t\tsideOffset={4}\n\t\t\t\t\t\t\t\t\t\tinitialFocus={false}\n\t\t\t\t\t\t\t\t\t\tfinalFocus={false}\n\t\t\t\t\t\t\t\t\t\tinset=\"flush\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"place-autocomplete--results w-[var(--anchor-width)] max-w-[var(--available-width)] gap-0 overflow-hidden\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<CommandList id={listId} label={strings.searchPlaceholder} className=\"max-h-72\">\n\t\t\t\t\t\t\t\t\t\t\t\t{!!error && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CommandEmpty>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" align=\"center\" className=\"block\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatPlaceAutocompleteString(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrings.error,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ message: error.message }\n\t\t\t\t\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\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button buttonStyle=\"ghost\" size=\"sm\" onClick={() => { anchorRef.current?.querySelector('input')?.focus(); setIsListDismissed(false); retry() }}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.retry ?? defaultPlaceAutocompleteStrings.retry}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</CommandEmpty>\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{!!hasNoResults && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CommandEmpty>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" align=\"center\" className=\"block\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatPlaceAutocompleteString(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrings.noResults,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ query: displayValue }\n\t\t\t\t\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\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</CommandEmpty>\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{results.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CommandGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{results.map((feature, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst formattedAddress = formatAddress(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfeature.properties\n\t\t\t\t\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\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={feature.properties.osm_id}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfeature.properties.osm_id\n\t\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\t\tref={(node) => { if (node) optionNodes.current.set(index, node); else optionNodes.current.delete(index) }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => selectPlace(feature)}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<MapPinIcon />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex flex-col items-start text-start\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{feature.properties.name ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfeature.properties\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.street ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrings.unknownPlace}\n\t\t\t\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formattedAddress}\n\t\t\t\t\t\t\t\t\t\t\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\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\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\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</CommandGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</CommandList>\n\t\t\t\t\t\t\t\t</PopoverContent>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t</Command>\n\t\t)\n}\n\nexport {\n\t\tPlaceAutocomplete,\n\t\tdefaultPlaceAutocompleteStrings,\n\t\ttype PlaceAutocompleteProps,\n\t\ttype PlaceAutocompleteStrings,\n\t\ttype PlaceFeature,\n\t\ttype PlaceSearchOptions,\n\t\ttype PlaceSearchCallback,\n}\n","import { useCallback, useSyncExternalStore } from 'react';\n\n/** Observe inherited CSS theme classes without adding a second theme store. */\nexport function useMapColorScheme(container: HTMLElement | null): 'light' | 'dark' {\n const read = useCallback(() => {\n for(let node=container;node;node=node.parentElement) {\n if(node.classList.contains('dark')) return 'dark';\n if(node.classList.contains('light')) return 'light';\n }\n return 'light';\n },[container]);\n const subscribe = useCallback((notify: () => void) => {\n const observer=new MutationObserver(notify);\n for(let node=container;node;node=node.parentElement) observer.observe(node,{attributes:true,attributeFilter:['class']});\n return () => observer.disconnect();\n },[container]);\n return useSyncExternalStore(subscribe,read,()=>'light');\n}\n","\"use client\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { useStrings, type StringsProp } from \"../../../lib/strings\"\nimport { Button, ButtonGroup } from \"../../base/buttons\"\nimport {\n\t\tDropdownMenu,\n\t\tDropdownMenuCheckboxItem,\n\t\tDropdownMenuContent,\n\t\tDropdownMenuGroup,\n\t\tDropdownMenuLabel,\n\t\tDropdownMenuRadioGroup,\n\t\tDropdownMenuRadioItem,\n\t\tDropdownMenuSeparator,\n\t\tDropdownMenuTrigger,\n} from \"../../base/navigation/dropdown-menu\"\nimport {\n\t\tPlaceAutocomplete,\n\t\ttype PlaceAutocompleteProps,\n} from \"./place-autocomplete\"\nimport type {\n\t\tCircle,\n\t\tCircleMarker,\n\t\tDivIconOptions,\n\t\tDraw,\n\t\tDrawEvents,\n\t\tDrawMap,\n\t\tDrawOptions,\n\t\tEditToolbar,\n\t\tErrorEvent,\n\t\tFeatureGroup,\n\t\tLatLngExpression,\n\t\tLayerGroup,\n\t\tMap as LeafletMap,\n\t\tLocateOptions,\n\t\tLocationEvent,\n\t\tMarker,\n\t\tMarkerCluster,\n\t\tPointExpression,\n\t\tPolygon,\n\t\tPolyline,\n\t\tPopup,\n\t\tRectangle,\n\t\tTileLayer,\n\t\tTooltip,\n} from \"leaflet\"\nimport type * as LeafletDrawNamespace from \"leaflet-draw\"\nimport type * as LeafletNamespace from \"leaflet\"\nimport type {} from \"leaflet.markercluster\"\nimport {\n\t\tCircleIcon,\n\t\tLayersIcon,\n\t\tLoaderCircleIcon,\n\t\tMapPinIcon,\n\t\tMaximizeIcon,\n\t\tMinimizeIcon,\n\t\tMinusIcon,\n\t\tNavigationIcon,\n\t\tPenLineIcon,\n\t\tPentagonIcon,\n\t\tPlusIcon,\n\t\tSquareIcon,\n\t\tTrash2Icon,\n\t\tUndo2Icon,\n\t\tWaypointsIcon,\n} from \"lucide-react\"\nimport React, {\n\t\tSuspense,\n\t\tcreateContext,\n\t\tlazy,\n\t\tuseCallback,\n\t\tuseContext,\n\t\tuseEffect,\n\t\tuseRef,\n\t\tuseState,\n\t\ttype ComponentType,\n\t\ttype ReactNode,\n\t\ttype Ref,\n} from \"react\"\nimport { useMapColorScheme } from './use-map-color-scheme';\nimport { renderToString } from \"react-dom/server\"\nimport type {\n\t\tCircleMarkerProps,\n\t\tCircleProps,\n\t\tLayerGroupProps,\n\t\tMapContainerProps,\n\t\tMarkerProps,\n\t\tPolygonProps,\n\t\tPolylineProps,\n\t\tPopupProps,\n\t\tRectangleProps,\n\t\tTileLayerProps,\n\t\tTooltipProps,\n\t\tMarkerClusterGroupProps,\n} from \"./public-leaflet.types\"\n\ntype LeafletModule = typeof LeafletNamespace\ntype LeafletDrawModule = typeof LeafletDrawNamespace\ntype ReactLeafletModule = typeof import(\"react-leaflet\")\ntype ReactLeafletHooks = Pick<ReactLeafletModule, \"useMap\" | \"useMapEvents\">\n\nconst ReactLeafletHooksContext = createContext<ReactLeafletHooks | null>(null)\n\nexport interface MapStrings {\n\t\t/** Id of the tile layer shown first. */\n\t\tdefaultTileLayer: string\n\t\tmapType: string\n\t\tlayers: string\n\t\tselectLayers: string\n\t\tmarker: string\n\t\tzoomControls: string\n\t\tzoomIn: string\n\t\tzoomOut: string\n\t\tenterFullscreen: string\n\t\texitFullscreen: string\n\t\tlocating: string\n\t\tstopTracking: string\n\t\ttrackLocation: string\n\t\tstopLocationTracking: string\n\t\tstartLocationTracking: string\n\t\tcurrentLocation: string\n\t\tdrawMarker: string\n\t\tdrawPolyline: string\n\t\tdrawCircle: string\n\t\tdrawRectangle: string\n\t\tdrawPolygon: string\n\t\teditShapes: string\n\t\tremoveShapes: string\n\t\tundoEdit: string\n\t\tundoRemove: string\n\t\teditInstructions: string\n\t\tremoveInstructions: string\n}\n\nexport const defaultMapStrings: MapStrings = {\n\t\tdefaultTileLayer: \"Default\",\n\t\tmapType: \"Map type\",\n\t\tlayers: \"Layers\",\n\t\tselectLayers: \"Select layers\",\n\t\tmarker: \"Map marker\",\n\t\tzoomControls: \"Zoom controls\",\n\t\tzoomIn: \"Zoom in\",\n\t\tzoomOut: \"Zoom out\",\n\t\tenterFullscreen: \"Enter fullscreen\",\n\t\texitFullscreen: \"Exit fullscreen\",\n\t\tlocating: \"Locating…\",\n\t\tstopTracking: \"Stop tracking\",\n\t\ttrackLocation: \"Track location\",\n\t\tstopLocationTracking: \"Stop location tracking\",\n\t\tstartLocationTracking: \"Start location tracking\",\n\t\tcurrentLocation: \"Current location\",\n\t\tdrawMarker: \"Draw marker\",\n\t\tdrawPolyline: \"Draw polyline\",\n\t\tdrawCircle: \"Draw circle\",\n\t\tdrawRectangle: \"Draw rectangle\",\n\t\tdrawPolygon: \"Draw polygon\",\n\t\teditShapes: \"Edit shapes\",\n\t\tremoveShapes: \"Remove shapes\",\n\t\tundoEdit: \"Undo edit\",\n\t\tundoRemove: \"Undo remove\",\n\t\teditInstructions: \"Drag handles or markers to edit.\",\n\t\tremoveInstructions: \"Click on a shape to remove.\",\n}\n\nconst MapStringsContext = createContext<MapStrings>(defaultMapStrings)\n\nfunction useMapStrings() {\n\t\treturn useContext(MapStringsContext)\n}\n\n// Load the shared runtime before mounting MapContainer. Suspending below an\n// already initialized MapContainer disconnects its passive cleanup and removes\n// the Leaflet instance, leaving its visible markers attached to a stale map.\nconst ReactLeafletRuntimeContext = createContext<ReactLeafletModule | null>(null)\nconst ReactLeafletRuntime = lazy(async () => {\n\tconst mod = await import(\"react-leaflet\")\n\treturn { default: ({ children }: { children?: ReactNode }) => (\n\t\t<ReactLeafletRuntimeContext.Provider value={mod}>{children}</ReactLeafletRuntimeContext.Provider>\n\t) }\n})\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- mirrors React ComponentType's generic constraint.\nfunction createRuntimeComponent<T extends ComponentType<any>>(select: (runtime: ReactLeafletModule) => T) {\n\treturn (props: React.ComponentProps<T>) => {\n\t\tconst runtime = useContext(ReactLeafletRuntimeContext)\n\t\tif (!runtime) throw new Error(\"Map primitives must be rendered within Map.\")\n\t\tconst Component = select(runtime)\n\t\treturn <Component {...props} />\n\t}\n}\n\nconst LeafletMapContainer = createRuntimeComponent(mod => mod.MapContainer)\nconst LeafletTileLayer = createRuntimeComponent(mod => mod.TileLayer)\nconst LeafletMarker = createRuntimeComponent(mod => mod.Marker)\nconst LeafletPopup = createRuntimeComponent(mod => mod.Popup)\nconst LeafletTooltip = createRuntimeComponent(mod => mod.Tooltip)\nconst LeafletCircle = createRuntimeComponent(mod => mod.Circle)\nconst LeafletCircleMarker = createRuntimeComponent(mod => mod.CircleMarker)\nconst LeafletPolyline = createRuntimeComponent(mod => mod.Polyline)\nconst LeafletPolygon = createRuntimeComponent(mod => mod.Polygon)\nconst LeafletRectangle = createRuntimeComponent(mod => mod.Rectangle)\nconst LeafletLayerGroup = createRuntimeComponent(mod => mod.LayerGroup)\nconst LeafletFeatureGroup = createRuntimeComponent(mod => mod.FeatureGroup)\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- mirrors React lazy's ComponentType constraint.\nfunction createLazyComponent<T extends ComponentType<any>>(factory: () => Promise<{ default: T }>) {\n\tconst Component = lazy(factory)\n\treturn (props: React.ComponentProps<T>) => <Suspense><Component {...props} /></Suspense>\n}\nconst LeafletMarkerClusterGroup = createLazyComponent(async () =>\n\timport(\"react-leaflet-markercluster\").then(mod => ({ default: mod.default }))\n)\n\nfunction ReactLeafletHooksProvider({ children }: { children?: ReactNode }) {\n\tconst mod = useContext(ReactLeafletRuntimeContext)\n\tif (!mod) throw new Error(\"Map controls must be rendered within Map.\")\n\treturn <ReactLeafletHooksContext.Provider value={mod}>{children}</ReactLeafletHooksContext.Provider>\n}\n\nfunction useLeafletMap() {\n\t\tconst hooks = useContext(ReactLeafletHooksContext)\n\t\tif (!hooks) {\n\t\t\t\tthrow new Error(\"Map controls must be rendered within Map.\")\n\t\t}\n\n\t\treturn hooks.useMap()\n}\n\nfunction useLeafletMapEvents(\n\t\thandlers: Parameters<ReactLeafletModule[\"useMapEvents\"]>[0]\n) {\n\t\tconst hooks = useContext(ReactLeafletHooksContext)\n\t\tif (!hooks) {\n\t\t\t\tthrow new Error(\"Map controls must be rendered within Map.\")\n\t\t}\n\n\t\treturn hooks.useMapEvents(handlers)\n}\n\nfunction assignRef<T>(ref: Ref<T> | undefined, value: T | null) {\n\t\tif (!ref) return\n\n\t\tif (typeof ref === \"function\") {\n\t\t\t\tref(value)\n\t\t\t\treturn\n\t\t}\n\n\t\t;(ref as React.MutableRefObject<T | null>).current = value\n}\n\nfunction Map({\n\t\tzoom = 15,\n\t\tmaxZoom = 18,\n\t\tclassName,\n\t\tchildren,\n\t\tstrings: stringsProp,\n\t\tref,\n\t\t...props\n}: Omit<MapContainerProps, \"zoomControl\"> & {\n\t\tcenter: LatLngExpression\n\t\tref?: Ref<LeafletMap>\n\t\t/** Overrides the map's own copy. */\n\t\tstrings?: StringsProp<MapStrings>\n}) {\n\t\tconst strings = useStrings(defaultMapStrings, stringsProp)\n\t\tconst focusCleanup = useRef<(() => void) | null>(null)\n\t\tconst handleMapRef = useCallback((map: LeafletMap | null) => {\n\t\t\tfocusCleanup.current?.()\n\t\t\tfocusCleanup.current = null\n\t\t\tif (map?.options.keyboard) {\n\t\t\t\tconst container = map.getContainer()\n\t\t\t\t// Leaflet's keyboard mousedown handler uses plain focus and only\n\t\t\t\t// restores window scroll. Focus first without moving nested scrollers\n\t\t\t\t// so pointerup still lands on the marker pressed by pointerdown.\n\t\t\t\tconst focusWithoutScroll = () => {\n\t\t\t\t\tif (document.activeElement !== container) container.focus({ preventScroll: true })\n\t\t\t\t}\n\t\t\t\tcontainer.addEventListener(\"mousedown\", focusWithoutScroll, true)\n\t\t\t\tfocusCleanup.current = () => container.removeEventListener(\"mousedown\", focusWithoutScroll, true)\n\t\t\t}\n\t\t\tassignRef(ref, map)\n\t\t}, [ref])\n\t\t// Keep the optional runtime outside the server tree.\n\t\tconst [isMounted, setIsMounted] = useState(false)\n\t\tuseEffect(() => { setIsMounted(true) }, [])\n\t\tif (!isMounted) return null\n\t\treturn (\n\t\t\t\t<Suspense>\n\t\t\t\t<ReactLeafletRuntime>\n\t\t\t\t<LeafletMapContainer\n\t\t\t\t\t\tref={handleMapRef}\n\t\t\t\t\t\tzoom={zoom}\n\t\t\t\t\t\tmaxZoom={maxZoom}\n\t\t\t\t\t\tattributionControl={false}\n\t\t\t\t\t\tzoomControl={false}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t// The themed background lives in `map.css`: Leaflet's own\n\t\t\t\t\t\t\t\t// `.leaflet-container { background: #ddd }` is unlayered, so it beats a\n\t\t\t\t\t\t\t\t// `bg-muted` utility on this element regardless of import order.\n\t\t\t\t\t\t\t\t'map--component',\n\t\t\t\t\t\t\t\t\"z-50 size-full min-h-0 flex-1 rounded-radius-md\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}>\n\t\t\t\t\t\t<MapStringsContext.Provider value={strings}>\n\t\t\t\t\t\t\t\t<ReactLeafletHooksProvider>{children}</ReactLeafletHooksProvider>\n\t\t\t\t\t\t</MapStringsContext.Provider>\n\t\t\t\t</LeafletMapContainer>\n\t\t\t\t</ReactLeafletRuntime>\n\t\t\t\t</Suspense>\n\t\t)\n}\n\ninterface MapTileLayerOption {\n\t\t/** Form field name, forwarded for native submits. */\n\t\tname: string\n\t\t/** Tile URL template. */\n\t\turl: string\n\t\t/** Attribution shown for the tile layer. */\n\t\tattribution?: string\n}\n\ninterface MapLayerGroupOption\n\t\textends Pick<React.ComponentProps<typeof DropdownMenuCheckboxItem>, \"disabled\"> {\n\t\t/** Form field name, forwarded for native submits. */\n\t\tname: string\n}\n\ninterface MapLayersContextType {\n\t\tregisterTileLayer: (layer: MapTileLayerOption) => void\n\t\ttileLayers: MapTileLayerOption[]\n\t\tselectedTileLayer: string\n\t\tsetSelectedTileLayer: (name: string) => void\n\t\tregisterLayerGroup: (layer: MapLayerGroupOption) => void\n\t\tlayerGroups: MapLayerGroupOption[]\n\t\tactiveLayerGroups: string[]\n\t\tsetActiveLayerGroups: (names: string[]) => void\n}\n\nconst MapLayersContext = createContext<MapLayersContextType | null>(null)\n\nfunction useMapLayersContext() {\n\t\treturn useContext(MapLayersContext)\n}\n\nfunction MapTileLayer({\n\t\tname: nameProp,\n\t\turl,\n\t\tattribution,\n\t\tdarkUrl,\n\t\tdarkAttribution,\n\t\t...props\n}: Partial<TileLayerProps> & {\n\t\t/** Display name for the layer in the layer control. */\n\t\tname?: string\n\t\t/** Tile URL used when the dark theme is active. */\n\t\tdarkUrl?: string\n\t\t/** Attribution shown for the dark tile layer. */\n\t\tdarkAttribution?: string\n\t\tref?: Ref<TileLayer>\n}) {\n\t\tconst strings = useMapStrings()\n\t\tconst name = nameProp ?? strings.defaultTileLayer\n\t\tconst map = useLeafletMap()\n\t\tif (map.attributionControl) {\n\t\t\t\tmap.attributionControl.setPrefix(\"\")\n\t\t}\n\n\t\tconst context = useContext(MapLayersContext)\n\t\tconst DEFAULT_URL =\n\t\t\t\t\"https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png\"\n\t\tconst DEFAULT_DARK_URL =\n\t\t\t\t\"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png\"\n\n\t\tconst resolvedTheme = useMapColorScheme(map.getContainer())\n\t\tconst resolvedUrl =\n\t\t\t\tresolvedTheme === \"dark\"\n\t\t\t\t\t\t? (darkUrl ?? url ?? DEFAULT_DARK_URL)\n\t\t\t\t\t\t: (url ?? DEFAULT_URL)\n\t\tconst resolvedAttribution =\n\t\t\t\tresolvedTheme === \"dark\" && darkAttribution\n\t\t\t\t\t\t? darkAttribution\n\t\t\t\t\t\t: (attribution ??\n\t\t\t\t\t\t\t'&copy; <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a>, &copy; <a href=\"https://carto.com/attributions\">CARTO</a>')\n\n\t\tuseEffect(() => {\n\t\t\t\tif (context) {\n\t\t\t\t\t\tcontext.registerTileLayer({\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\turl: resolvedUrl,\n\t\t\t\t\t\t\t\tattribution: resolvedAttribution,\n\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t}, [context, name, resolvedAttribution, resolvedUrl])\n\n\t\tif (context && context.selectedTileLayer !== name) {\n\t\t\t\treturn null\n\t\t}\n\n\t\treturn (\n\t\t\t\t<LeafletTileLayer\n\t\t\t\t\t\turl={resolvedUrl}\n\t\t\t\t\t\tattribution={resolvedAttribution}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapLayerGroup({\n\t\tname,\n\t\tdisabled,\n\t\t...props\n}: LayerGroupProps & MapLayerGroupOption & { ref?: Ref<LayerGroup> }) {\n\t\tconst context = useMapLayersContext()\n\n\t\tuseEffect(() => {\n\t\t\t\tif (context) {\n\t\t\t\t\t\tcontext.registerLayerGroup({\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tdisabled,\n\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t}, [context, name, disabled])\n\n\t\tif (context && !context.activeLayerGroups.includes(name)) {\n\t\t\t\treturn null\n\t\t}\n\n\t\treturn <LeafletLayerGroup {...props} />\n}\n\nfunction MapFeatureGroup({\n\t\tname,\n\t\tdisabled,\n\t\t...props\n}: LayerGroupProps & MapLayerGroupOption & { ref?: Ref<FeatureGroup> }) {\n\t\tconst context = useMapLayersContext()\n\n\t\tuseEffect(() => {\n\t\t\t\tif (context) {\n\t\t\t\t\t\tcontext.registerLayerGroup({\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tdisabled,\n\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t}, [context, name, disabled])\n\n\t\tif (context && !context.activeLayerGroups.includes(name)) {\n\t\t\t\treturn null\n\t\t}\n\n\t\treturn <LeafletFeatureGroup {...props} />\n}\n\nfunction MapLayers({\n\t\tdefaultTileLayer,\n\t\tdefaultLayerGroups = [],\n\t\t...props\n}: Omit<React.ComponentProps<typeof MapLayersContext.Provider>, \"value\"> & {\n\t\t/** Name of the tile layer shown first. */\n\t\tdefaultTileLayer?: string\n\t\t/** Names of the overlay groups shown first. */\n\t\tdefaultLayerGroups?: string[]\n}) {\n\t\tconst [tileLayers, setTileLayers] = useState<MapTileLayerOption[]>([])\n\t\tconst [selectedTileLayer, setSelectedTileLayer] = useState<string>(\n\t\t\t\tdefaultTileLayer || \"\"\n\t\t)\n\t\tconst [layerGroups, setLayerGroups] = useState<MapLayerGroupOption[]>([])\n\t\tconst [activeLayerGroups, setActiveLayerGroups] =\n\t\t\t\tuseState<string[]>(defaultLayerGroups)\n\n\t\tfunction registerTileLayer(tileLayer: MapTileLayerOption) {\n\t\t\t\tsetTileLayers((prevTileLayers) => {\n\t\t\t\t\t\tif (prevTileLayers.some((layer) => layer.name === tileLayer.name)) {\n\t\t\t\t\t\t\t\treturn prevTileLayers\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [...prevTileLayers, tileLayer]\n\t\t\t\t})\n\t\t}\n\n\t\tfunction registerLayerGroup(layerGroup: MapLayerGroupOption) {\n\t\t\t\tsetLayerGroups((prevLayerGroups) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tprevLayerGroups.some((group) => group.name === layerGroup.name)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn prevLayerGroups\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [...prevLayerGroups, layerGroup]\n\t\t\t\t})\n\t\t}\n\n\t\tuseEffect(() => {\n\t\t\t\t// Error: Invalid defaultValue\n\t\t\t\tif (\n\t\t\t\t\t\tdefaultTileLayer &&\n\t\t\t\t\t\ttileLayers.length > 0 &&\n\t\t\t\t\t\t!tileLayers.some((tileLayer) => tileLayer.name === defaultTileLayer)\n\t\t\t\t) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Invalid defaultTileLayer \"${defaultTileLayer}\" provided to MapLayers. It must match a MapTileLayer's name prop.`\n\t\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t// Set initial selected tile layer\n\t\t\t\tif (tileLayers.length > 0 && !selectedTileLayer) {\n\t\t\t\t\t\tconst validDefaultValue =\n\t\t\t\t\t\t\t\tdefaultTileLayer &&\n\t\t\t\t\t\t\t\ttileLayers.some((layer) => layer.name === defaultTileLayer)\n\t\t\t\t\t\t\t\t\t\t? defaultTileLayer\n\t\t\t\t\t\t\t\t\t\t: tileLayers[0].name\n\t\t\t\t\t\tsetSelectedTileLayer(validDefaultValue)\n\t\t\t\t}\n\n\t\t\t\t// Error: Invalid defaultActiveLayerGroups\n\t\t\t\tif (\n\t\t\t\t\t\tdefaultLayerGroups.length > 0 &&\n\t\t\t\t\t\tlayerGroups.length > 0 &&\n\t\t\t\t\t\tdefaultLayerGroups.some(\n\t\t\t\t\t\t\t\t(name) => !layerGroups.some((group) => group.name === name)\n\t\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Invalid defaultLayerGroups value provided to MapLayers. All names must match a MapLayerGroup's name prop.`\n\t\t\t\t\t\t)\n\t\t\t\t}\n\t\t}, [\n\t\t\t\ttileLayers,\n\t\t\t\tdefaultTileLayer,\n\t\t\t\tselectedTileLayer,\n\t\t\t\tlayerGroups,\n\t\t\t\tdefaultLayerGroups,\n\t\t])\n\n\t\treturn (\n\t\t\t\t<MapLayersContext.Provider\n\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tregisterTileLayer,\n\t\t\t\t\t\t\t\ttileLayers,\n\t\t\t\t\t\t\t\tselectedTileLayer,\n\t\t\t\t\t\t\t\tsetSelectedTileLayer,\n\t\t\t\t\t\t\t\tregisterLayerGroup,\n\t\t\t\t\t\t\t\tlayerGroups,\n\t\t\t\t\t\t\t\tactiveLayerGroups,\n\t\t\t\t\t\t\t\tsetActiveLayerGroups,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapLayersControl({\n\t\ttileLayersLabel,\n\t\tlayerGroupsLabel,\n\t\tposition = \"top-1 right-1\",\n\t\tclassName,\n\t\t...props\n}: React.ComponentProps<\"button\"> & {\n\t\t/** Heading for the tile-layer group in the layer control. */\n\t\ttileLayersLabel?: string\n\t\t/** Heading for the overlay group in the layer control. */\n\t\tlayerGroupsLabel?: string\n\t\t/** Corner the control is anchored to. */\n\t\tposition?: string\n}) {\n\t\tconst strings = useMapStrings()\n\t\tconst layersContext = useMapLayersContext()\n\t\tif (!layersContext) {\n\t\t\t\tthrow new Error(\"MapLayersControl must be used within MapLayers\")\n\t\t}\n\n\t\tconst {\n\t\t\t\ttileLayers,\n\t\t\t\tselectedTileLayer,\n\t\t\t\tsetSelectedTileLayer,\n\t\t\t\tlayerGroups,\n\t\t\t\tactiveLayerGroups,\n\t\t\t\tsetActiveLayerGroups,\n\t\t} = layersContext\n\n\t\tif (tileLayers.length === 0 && layerGroups.length === 0) {\n\t\t\t\treturn null\n\t\t}\n\n\t\tfunction handleLayerGroupToggle(name: string, checked: boolean) {\n\t\t\t\tsetActiveLayerGroups(\n\t\t\t\t\t\tchecked\n\t\t\t\t\t\t\t\t? [...activeLayerGroups, name]\n\t\t\t\t\t\t\t\t: activeLayerGroups.filter((groupName) => groupName !== name)\n\t\t\t\t)\n\t\t}\n\n\t\tconst showTileLayersDropdown = tileLayers.length > 1\n\t\tconst showLayerGroupsDropdown = layerGroups.length > 0\n\n\t\tif (!showTileLayersDropdown && !showLayerGroupsDropdown) {\n\t\t\t\treturn null\n\t\t}\n\n\t\treturn (\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t<DropdownMenuTrigger\n\t\t\t\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\t\t\t\t\taria-label={strings.selectLayers}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={strings.selectLayers}\n\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\"border-border absolute z-1000 border\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerProps.className\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{...props}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<LayersIcon />\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<DropdownMenuContent align=\"end\" className=\"z-1000\">\n\t\t\t\t\t\t\t\t{!!showTileLayersDropdown && <>\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuRadioGroup\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={selectedTileLayer}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={setSelectedTileLayer}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuLabel>{tileLayersLabel ?? strings.mapType}</DropdownMenuLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tileLayers.map((tileLayer) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={tileLayer.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={tileLayer.name}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tileLayer.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\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</DropdownMenuRadioGroup>\n\t\t\t\t\t\t\t\t\t\t</>}\n\t\t\t\t\t\t\t\t{!!showTileLayersDropdown && !!showLayerGroupsDropdown && <DropdownMenuSeparator />}\n\t\t\t\t\t\t\t\t{!!showLayerGroupsDropdown && (\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{layerGroupsLabel ?? strings.layers}\n\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{layerGroups.map((layerGroup) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={layerGroup.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={activeLayerGroups.includes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlayerGroup.name\n\t\t\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\t\t\tdisabled={layerGroup.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={(checked) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleLayerGroupToggle(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlayerGroup.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked\n\t\t\t\t\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\t\t\t}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{layerGroup.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t)\n}\n\nfunction MapMarker({\n\t\ticon = <MapPinIcon className=\"size-icon-lg fill-background text-foreground\" />,\n\t\ticonAnchor = [12, 12],\n\t\tbgPos,\n\t\tpopupAnchor,\n\t\ttooltipAnchor,\n\t\tariaLabel,\n\t\tref,\n\t\t...props\n}: Omit<MarkerProps, \"icon\"> &\n\t\tPick<\n\t\t\t\tDivIconOptions,\n\t\t\t\t\"iconAnchor\" | \"bgPos\" | \"popupAnchor\" | \"tooltipAnchor\"\n\t\t> & {\n\t\t\t\ticon?: ReactNode\n\t\t\t\tariaLabel?: string\n\t\t\t\tref?: Ref<Marker>\n\t\t}) {\n\t\tconst { L } = useLeaflet()\n\t\tconst strings = useMapStrings()\n\t\tconst markerRef = useRef<Marker | null>(null)\n\t\tconst resolvedAriaLabel =\n\t\t\t\tariaLabel ??\n\t\t\t\t(typeof props.title === \"string\" && props.title.trim()\n\t\t\t\t\t\t? props.title\n\t\t\t\t\t\t: undefined) ??\n\t\t\t\tstrings.marker\n\t\tconst resolvedTitle =\n\t\t\t\ttypeof props.title === \"string\" && props.title.trim()\n\t\t\t\t\t\t? props.title\n\t\t\t\t\t\t: resolvedAriaLabel\n\t\tconst syncMarkerElement = useCallback(\n\t\t\t\t(marker: Marker | null) => {\n\t\t\t\t\t\tconst element = marker?.getElement()\n\t\t\t\t\t\tif (!element) return\n\n\t\t\t\t\t\telement.setAttribute(\"aria-label\", resolvedAriaLabel)\n\t\t\t\t\t\tif (!element.getAttribute(\"title\")) {\n\t\t\t\t\t\t\t\telement.setAttribute(\"title\", resolvedAriaLabel)\n\t\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[resolvedAriaLabel]\n\t\t)\n\t\tconst handleMarkerRef = useCallback(\n\t\t\t\t(marker: Marker | null) => {\n\t\t\t\t\t\tmarkerRef.current = marker\n\t\t\t\t\t\tassignRef(ref, marker)\n\t\t\t\t\t\tsyncMarkerElement(marker)\n\t\t\t\t},\n\t\t\t\t[ref, syncMarkerElement]\n\t\t)\n\n\t\tuseEffect(() => {\n\t\t\t\tsyncMarkerElement(markerRef.current)\n\t\t}, [syncMarkerElement])\n\n\t\tif (!L) return null\n\n\t\treturn (\n\t\t\t\t<LeafletMarker\n\t\t\t\t\t\tref={handleMarkerRef}\n\t\t\t\t\t\ticon={L.divIcon({\n\t\t\t\t\t\t\t\t// Empty className stops leaflet's default `.leaflet-div-icon`\n\t\t\t\t\t\t\t\t// (white background + grey border rectangle) from being applied\n\t\t\t\t\t\t\t\t// around our SVG marker.\n\t\t\t\t\t\t\t\tclassName: \"\",\n\t\t\t\t\t\t\t\thtml: renderToString(icon),\n\t\t\t\t\t\t\t\ticonAnchor,\n\t\t\t\t\t\t\t\t...(bgPos ? { bgPos } : {}),\n\t\t\t\t\t\t\t\t...(popupAnchor ? { popupAnchor } : {}),\n\t\t\t\t\t\t\t\t...(tooltipAnchor ? { tooltipAnchor } : {}),\n\t\t\t\t\t\t})}\n\t\t\t\t\t\triseOnHover\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\ttitle={resolvedTitle}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapMarkerClusterGroup({\n\t\tpolygonOptions = {\n\t\t\t\tclassName: \"fill-foreground stroke-foreground stroke-2\",\n\t\t},\n\t\tspiderLegPolylineOptions = {\n\t\t\t\tclassName: \"fill-foreground stroke-foreground stroke-2\",\n\t\t},\n\t\ticon,\n\t\t...props\n}: Omit<MarkerClusterGroupProps, \"iconCreateFunction\"> & {\n\t\tchildren: ReactNode\n\t\t/** Marker glyph. */\n\t\ticon?: (markerCount: number) => ReactNode\n}) {\n\t\tconst { L } = useLeaflet()\n\t\tif (!L) return null\n\n\t\tconst iconCreateFunction = icon\n\t\t\t\t? (cluster: MarkerCluster) => {\n\t\t\t\t\t\t\tconst markerCount = cluster.getChildCount()\n\t\t\t\t\t\t\tconst iconNode = icon(markerCount)\n\t\t\t\t\t\t\treturn L.divIcon({\n\t\t\t\t\t\t\t\t\thtml: renderToString(iconNode),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t: undefined\n\n\t\treturn (\n\t\t\t\t<LeafletMarkerClusterGroup\n\t\t\t\t\t\tpolygonOptions={polygonOptions}\n\t\t\t\t\t\tspiderLegPolylineOptions={spiderLegPolylineOptions}\n\t\t\t\t\t\ticonCreateFunction={iconCreateFunction}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapCircle({\n\t\tclassName,\n\t\t...props\n}: CircleProps & { ref?: Ref<Circle> }) {\n\t\treturn (\n\t\t\t\t<LeafletCircle\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"fill-foreground stroke-foreground stroke-2\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapCircleMarker({\n\t\tclassName,\n\t\t...props\n}: CircleMarkerProps & { ref?: Ref<CircleMarker> }) {\n\t\treturn (\n\t\t\t\t<LeafletCircleMarker\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"fill-foreground stroke-foreground stroke-2\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapPolyline({\n\t\tclassName,\n\t\t...props\n}: PolylineProps & { ref?: Ref<Polyline> }) {\n\t\treturn (\n\t\t\t\t<LeafletPolyline\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"fill-foreground stroke-foreground stroke-2\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapPolygon({\n\t\tclassName,\n\t\t...props\n}: PolygonProps & { ref?: Ref<Polygon> }) {\n\t\treturn (\n\t\t\t\t<LeafletPolygon\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"fill-foreground stroke-foreground stroke-2\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapRectangle({\n\t\tclassName,\n\t\t...props\n}: RectangleProps & { ref?: Ref<Rectangle> }) {\n\t\treturn (\n\t\t\t\t<LeafletRectangle\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"fill-foreground stroke-foreground stroke-2\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapPopup({\n\t\tclassName,\n\t\t...props\n}: Omit<PopupProps, \"content\"> & { ref?: Ref<Popup> }) {\n\t\treturn (\n\t\t\t\t<LeafletPopup\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"map-popup--component border-border bg-popover text-popover-foreground animate-in fade-out-0 fade-in-0 zoom-out-95 zoom-in-95 slide-in-from-bottom-2 z-50 w-72 rounded-radius-md border p-surface font-sans shadow-md outline-hidden\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction MapTooltip({\n\t\tclassName,\n\t\tchildren,\n\t\tside = \"top\",\n\t\tsideOffset = 15,\n\t\t...props\n}: Omit<TooltipProps, \"offset\"> & {\n\t\t/** Which side of the trigger the surface opens on. */\n\t\tside?: \"top\" | \"right\" | \"bottom\" | \"left\"\n\t\t/** Distance from the trigger, in pixels. */\n\t\tsideOffset?: number\n\t\tref?: Ref<Tooltip>\n}) {\n\t\tconst ARROW_POSITION_CLASSES = {\n\t\t\t\ttop: \"bottom-0.5 left-1/2 -translate-x-1/2 translate-y-1/2\",\n\t\t\t\tbottom: \"top-0.5 left-1/2 -translate-x-1/2 -translate-y-1/2\",\n\t\t\t\tleft: \"right-0.5 top-1/2 translate-x-1/2 -translate-y-1/2\",\n\t\t\t\tright: \"left-0.5 top-1/2 -translate-x-1/2 -translate-y-1/2\",\n\t\t}\n\t\tconst DEFAULT_OFFSET = {\n\t\t\t\ttop: [0, -sideOffset] satisfies PointExpression,\n\t\t\t\tbottom: [0, sideOffset] satisfies PointExpression,\n\t\t\t\tleft: [-sideOffset, 0] satisfies PointExpression,\n\t\t\t\tright: [sideOffset, 0] satisfies PointExpression,\n\t\t}\n\n\t\treturn (\n\t\t\t\t<LeafletTooltip\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"animate-in fade-in-0 zoom-in-95 fade-out-0 zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 w-fit text-xs text-balance transition-opacity\",\n\t\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdata-side={side}\n\t\t\t\t\t\tdirection={side}\n\t\t\t\t\t\toffset={DEFAULT_OFFSET[side]}\n\t\t\t\t\t\topacity={1}\n\t\t\t\t\t\t{...props}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\"bg-foreground fill-foreground absolute z-50 size-2.5 rotate-45 rounded-[2px]\",\n\t\t\t\t\t\t\t\t\t\tARROW_POSITION_CLASSES[side]\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t</LeafletTooltip>\n\t\t)\n}\n\nfunction MapZoomControl({\n\t\tposition = \"top-1 left-1\",\n\t\tclassName,\n\t\t...props\n}: React.ComponentProps<\"div\"> & { position?: string }) {\n\t\tconst map = useLeafletMap()\n\t\tconst strings = useMapStrings()\n\t\tconst [zoomLevel, setZoomLevel] = useState(map.getZoom())\n\n\t\tuseLeafletMapEvents({\n\t\t\t\tzoomend: () => {\n\t\t\t\t\t\tsetZoomLevel(map.getZoom())\n\t\t\t\t},\n\t\t})\n\n\t\treturn (\n\t\t\t\t<MapControlContainer className={cn(position, className)}>\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\taria-label={strings.zoomControls}\n\t\t\t\t\t\t\t\t{...props}>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\t\t\taria-label={strings.zoomIn}\n\t\t\t\t\t\t\t\t\t\ttitle={strings.zoomIn}\n\t\t\t\t\t\t\t\t\t\tclassName=\"border-border border\"\n\t\t\t\t\t\t\t\t\t\tdisabled={zoomLevel >= map.getMaxZoom()}\n\t\t\t\t\t\t\t\t\t\tonClick={() => map.zoomIn()}>\n\t\t\t\t\t\t\t\t\t\t<PlusIcon />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\t\t\taria-label={strings.zoomOut}\n\t\t\t\t\t\t\t\t\t\ttitle={strings.zoomOut}\n\t\t\t\t\t\t\t\t\t\tclassName=\"border-border border\"\n\t\t\t\t\t\t\t\t\t\tdisabled={zoomLevel <= map.getMinZoom()}\n\t\t\t\t\t\t\t\t\t\tonClick={() => map.zoomOut()}>\n\t\t\t\t\t\t\t\t\t\t<MinusIcon />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t</MapControlContainer>\n\t\t)\n}\n\nfunction MapFullscreenControl({\n\t\tposition = \"top-1 right-1\",\n\t\tclassName,\n\t\t...props\n}: React.ComponentProps<\"button\"> & { position?: string }) {\n\t\tconst map = useLeafletMap()\n\t\tconst strings = useMapStrings()\n\t\tconst [isFullscreen, setIsFullscreen] = useState(false)\n\n\t\tconst { L } = useLeaflet()\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!L) return\n\n\t\t\t\tconst fullscreenControl = new L.Control.FullScreen()\n\t\t\t\tfullscreenControl.addTo(map)\n\n\t\t\t\tconst container = fullscreenControl.getContainer()\n\t\t\t\tif (container) {\n\t\t\t\t\t\tcontainer.style.display = \"none\"\n\t\t\t\t}\n\n\t\t\t\tconst handleEnter = () => setIsFullscreen(true)\n\t\t\t\tconst handleExit = () => setIsFullscreen(false)\n\n\t\t\t\tmap.on(\"enterFullscreen\", handleEnter)\n\t\t\t\tmap.on(\"exitFullscreen\", handleExit)\n\n\t\t\t\treturn () => {\n\t\t\t\t\t\tfullscreenControl.remove()\n\t\t\t\t\t\tmap.off(\"enterFullscreen\", handleEnter)\n\t\t\t\t\t\tmap.off(\"exitFullscreen\", handleExit)\n\t\t\t\t}\n\t\t}, [L, map])\n\n\t\treturn (\n\t\t\t\t<MapControlContainer className={cn(position, className)}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\tonClick={() => map.toggleFullscreen()}\n\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\tisFullscreen ? strings.exitFullscreen : strings.enterFullscreen\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttitle={isFullscreen ? strings.exitFullscreen : strings.enterFullscreen}\n\t\t\t\t\t\t\t\tclassName=\"border-border border\"\n\t\t\t\t\t\t\t\t{...props}>\n\t\t\t\t\t\t\t\t{isFullscreen ? <MinimizeIcon /> : <MaximizeIcon />}\n\t\t\t\t\t\t</Button>\n\t\t\t\t</MapControlContainer>\n\t\t)\n}\n\nfunction MapLocatePulseIcon() {\n\t\treturn (\n\t\t\t\t<div className=\"absolute -top-1 -right-1 flex size-icon-sm rounded-full\">\n\t\t\t\t\t\t<div className=\"bg-primary absolute inline-flex size-full animate-ping rounded-full opacity-75\" />\n\t\t\t\t\t\t<div className=\"bg-primary relative inline-flex size-icon-sm rounded-full\" />\n\t\t\t\t</div>\n\t\t)\n}\n\nfunction MapLocateControl({\n\t\twatch = false,\n\t\tonLocationFound,\n\t\tonLocationError,\n\t\tposition = \"right-1 bottom-1\",\n\t\tclassName,\n\t\t...props\n}: React.ComponentProps<\"button\"> &\n\t\tPick<LocateOptions, \"watch\"> & {\n\t\t\t\tonLocationFound?: (location: LocationEvent) => void\n\t\t\t\tonLocationError?: (error: ErrorEvent) => void\n\t\t} & { position?: string }) {\n\t\tconst map = useLeafletMap()\n\t\tconst strings = useMapStrings()\n\t\tconst [isLocating, setIsLocating] = useDelayedLoadingState(200)\n\t\tconst [location, setLocation] = useState<LatLngExpression | null>(null)\n\t\tconst hasLocation = location !== null\n\n\t\tconst startLocating = useCallback(() => {\n\t\t\t\tsetIsLocating(true)\n\t\t\t\tmap.locate({ setView: true, maxZoom: map.getMaxZoom(), watch })\n\t\t\t\tmap.on(\"locationfound\", (location: LocationEvent) => {\n\t\t\t\t\t\tsetLocation(location.latlng)\n\t\t\t\t\t\tsetIsLocating(false)\n\t\t\t\t\t\tonLocationFound?.(location)\n\t\t\t\t})\n\t\t\t\tmap.on(\"locationerror\", (error: ErrorEvent) => {\n\t\t\t\t\t\tsetLocation(null)\n\t\t\t\t\t\tsetIsLocating(false)\n\t\t\t\t\t\tonLocationError?.(error)\n\t\t\t\t})\n\t\t}, [map, onLocationError, onLocationFound, setIsLocating, watch])\n\n\t\tconst stopLocating = useCallback(() => {\n\t\t\t\tmap.stopLocate()\n\t\t\t\tmap.off(\"locationfound\")\n\t\t\t\tmap.off(\"locationerror\")\n\t\t\t\tsetLocation(null)\n\t\t\t\tsetIsLocating(false)\n\t\t}, [map, setIsLocating])\n\t\tconst trackingHandler = hasLocation ? stopLocating : startLocating\n\t\tconst trackingTitle = isLocating\n\t\t\t\t? strings.locating\n\t\t\t\t: hasLocation\n\t\t\t\t\t? strings.stopTracking\n\t\t\t\t\t: strings.trackLocation\n\t\tconst trackingAriaLabel = isLocating\n\t\t\t\t? strings.locating\n\t\t\t\t: hasLocation\n\t\t\t\t\t? strings.stopLocationTracking\n\t\t\t\t\t: strings.startLocationTracking\n\t\tconst locationMarker =\n\t\t\t\thasLocation && location ? (\n\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\tposition={location}\n\t\t\t\t\t\t\t\ticon={<MapLocatePulseIcon />}\n\t\t\t\t\t\t\t\tariaLabel={strings.currentLocation}\n\t\t\t\t\t\t/>\n\t\t\t\t) : null\n\n\t\tuseEffect(() => () => stopLocating(), [stopLocating])\n\n\t\treturn (\n\t\t\t\t<MapControlContainer className={cn(position, className)}>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\t\t\ttone={hasLocation ? \"primary\" : \"secondary\"}\n\t\t\t\t\t\t\t\tonClick={trackingHandler}\n\t\t\t\t\t\t\t\tdisabled={isLocating}\n\t\t\t\t\t\t\t\ttitle={trackingTitle}\n\t\t\t\t\t\t\t\taria-label={trackingAriaLabel}\n\t\t\t\t\t\t\t\tclassName=\"border-border border\"\n\t\t\t\t\t\t\t\t{...props}>\n\t\t\t\t\t\t\t\t{isLocating ? (\n\t\t\t\t\t\t\t\t\t\t<LoaderCircleIcon className=\"animate-spin\" />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<NavigationIcon />\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{locationMarker}\n\t\t\t\t</MapControlContainer>\n\t\t)\n}\n\nfunction MapSearchControl({\n\t\tposition = \"top-1 left-1\",\n\t\tclassName,\n\t\t...props\n}: PlaceAutocompleteProps & { position?: string }) {\n\t\treturn (\n\t\t\t\t<MapControlContainer className={cn(\"z-1001 w-60\", position, className)}>\n\t\t\t\t\t\t<PlaceAutocomplete {...props} />\n\t\t\t\t</MapControlContainer>\n\t\t)\n}\n\ntype MapDrawShape = \"marker\" | \"polyline\" | \"circle\" | \"rectangle\" | \"polygon\"\ntype MapDrawAction = \"edit\" | \"delete\"\ntype MapDrawMode = MapDrawShape | MapDrawAction | null\ninterface MapDrawContextType {\n\t\treadonly featureGroup: L.FeatureGroup | null\n\t\tactiveMode: MapDrawMode\n\t\tsetActiveMode: (mode: MapDrawMode) => void\n\t\treadonly editControlRef: React.RefObject<EditToolbar.Edit | null>\n\t\treadonly deleteControlRef: React.RefObject<EditToolbar.Delete | null>\n\t\treadonly layersCount: number\n}\n\nconst MapDrawContext = createContext<MapDrawContextType | null>(null)\n\nfunction useMapDrawContext() {\n\t\treturn useContext(MapDrawContext)\n}\n\nfunction MapDrawControl({\n\t\tonLayersChange,\n\t\tposition = \"bottom-1 left-1\",\n\t\tclassName,\n\t\t...props\n}: React.ComponentProps<\"div\"> & {\n\t\tonLayersChange?: (layers: L.FeatureGroup) => void\n\t\t/** Corner the control is anchored to. */\n\t\tposition?: string\n}) {\n\t\tconst { L, LeafletDraw } = useLeaflet()\n\t\tconst map = useLeafletMap()\n\t\tconst featureGroupRef = useRef<L.FeatureGroup | null>(null)\n\t\tconst editControlRef = useRef<EditToolbar.Edit | null>(null)\n\t\tconst deleteControlRef = useRef<EditToolbar.Delete | null>(null)\n\t\tconst [activeMode, setActiveMode] = useState<MapDrawMode>(null)\n\t\tconst [layersCount, setLayersCount] = useState(0)\n\n\t\tconst updateLayersCount = useCallback(() => {\n\t\t\t\tif (featureGroupRef.current) {\n\t\t\t\t\t\tsetLayersCount(featureGroupRef.current.getLayers().length)\n\t\t\t\t}\n\t\t}, [])\n\n\t\tconst handleDrawCreated = useCallback((event: DrawEvents.Created) => {\n\t\t\t\tif (!featureGroupRef.current) return\n\t\t\t\tconst { layer } = event\n\t\t\t\tfeatureGroupRef.current.addLayer(layer)\n\t\t\t\tonLayersChange?.(featureGroupRef.current)\n\t\t\t\tupdateLayersCount()\n\t\t\t\tsetActiveMode(null)\n\t\t}, [onLayersChange, updateLayersCount])\n\n\t\tconst handleDrawEditedOrDeleted = useCallback(() => {\n\t\t\t\tif (!featureGroupRef.current) return\n\t\t\t\tonLayersChange?.(featureGroupRef.current)\n\t\t\t\tupdateLayersCount()\n\t\t\t\tsetActiveMode(null)\n\t\t}, [onLayersChange, updateLayersCount])\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!L || !LeafletDraw || !map) return\n\n\t\t\t\tmap.on(\n\t\t\t\t\t\tL.Draw.Event.CREATED,\n\t\t\t\t\t\thandleDrawCreated as L.LeafletEventHandlerFn\n\t\t\t\t)\n\t\t\t\tmap.on(L.Draw.Event.EDITED, handleDrawEditedOrDeleted)\n\t\t\t\tmap.on(L.Draw.Event.DELETED, handleDrawEditedOrDeleted)\n\n\t\t\t\treturn () => {\n\t\t\t\t\t\tmap.off(\n\t\t\t\t\t\t\t\tL.Draw.Event.CREATED,\n\t\t\t\t\t\t\t\thandleDrawCreated as L.LeafletEventHandlerFn\n\t\t\t\t\t\t)\n\t\t\t\t\t\tmap.off(L.Draw.Event.EDITED, handleDrawEditedOrDeleted)\n\t\t\t\t\t\tmap.off(L.Draw.Event.DELETED, handleDrawEditedOrDeleted)\n\t\t\t\t}\n\t\t}, [L, LeafletDraw, map, handleDrawCreated, handleDrawEditedOrDeleted])\n\n\t\treturn (\n\t\t\t\t<MapDrawContext.Provider\n\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tfeatureGroup: featureGroupRef.current,\n\t\t\t\t\t\t\t\tactiveMode,\n\t\t\t\t\t\t\t\tsetActiveMode,\n\t\t\t\t\t\t\t\teditControlRef,\n\t\t\t\t\t\t\t\tdeleteControlRef,\n\t\t\t\t\t\t\t\tlayersCount,\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t<LeafletFeatureGroup ref={featureGroupRef} />\n\t\t\t\t\t\t<MapControlContainer className={cn(position, className)}>\n\t\t\t\t\t\t\t\t<ButtonGroup orientation=\"vertical\" {...props} />\n\t\t\t\t\t\t</MapControlContainer>\n\t\t\t\t</MapDrawContext.Provider>\n\t\t)\n}\n\nfunction MapDrawShapeButton<T extends Draw.Feature>({\n\t\tdrawMode,\n\t\tcreateDrawTool,\n\t\tclassName,\n\t\tchildren,\n\t\t...props\n}: React.ComponentProps<\"button\"> & {\n\t\tdrawMode: MapDrawShape\n\t\tcreateDrawTool: (L: LeafletModule, map: DrawMap) => T\n}) {\n\t\tconst drawContext = useMapDrawContext()\n\t\tif (!drawContext) {\n\t\t\t\tthrow new Error(\"MapDrawShapeButton must be used within MapDrawControl\")\n\t\t}\n\t\tconst { L } = useLeaflet()\n\t\tconst strings = useMapStrings()\n\t\tconst map = useLeafletMap()\n\t\tconst controlRef = useRef<T | null>(null)\n\t\tconst { activeMode, setActiveMode } = drawContext\n\t\tconst isActive = activeMode === drawMode\n\t\tconst drawLabels: Record<MapDrawShape, string> = {\n\t\t\t\tmarker: strings.drawMarker,\n\t\t\t\tpolyline: strings.drawPolyline,\n\t\t\t\tcircle: strings.drawCircle,\n\t\t\t\trectangle: strings.drawRectangle,\n\t\t\t\tpolygon: strings.drawPolygon,\n\t\t}\n\t\tconst drawLabel = drawLabels[drawMode]\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!L || !isActive) {\n\t\t\t\t\t\tcontrolRef.current?.disable()\n\t\t\t\t\t\tcontrolRef.current = null\n\t\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst control = createDrawTool(L, map as DrawMap)\n\t\t\t\tcontrol.enable()\n\t\t\t\tcontrolRef.current = control\n\t\t\t\treturn () => {\n\t\t\t\t\t\tcontrol.disable()\n\t\t\t\t\t\tcontrolRef.current = null\n\t\t\t\t}\n\t\t}, [L, map, isActive, createDrawTool])\n\n\t\tfunction handleClick() {\n\t\t\t\tsetActiveMode(isActive ? null : drawMode)\n\t\t}\n\n\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\taria-label={drawLabel}\n\t\t\t\t\t\ttitle={drawLabel}\n\t\t\t\t\t\tclassName={cn(\"border-border border\", className)}\n\t\t\t\t\t\ttone={isActive ? \"primary\" : \"secondary\"}\n\t\t\t\t\t\tdisabled={activeMode === \"edit\" || activeMode === \"delete\"}\n\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t</Button>\n\t\t)\n}\n\nfunction MapDrawMarker({ ...props }: DrawOptions.MarkerOptions) {\n\t\treturn (\n\t\t\t\t<MapDrawShapeButton\n\t\t\t\t\t\tdrawMode=\"marker\"\n\t\t\t\t\t\tcreateDrawTool={(L, map) =>\n\t\t\t\t\t\t\t\tnew L.Draw.Marker(map, {\n\t\t\t\t\t\t\t\t\t\ticon: L.divIcon({\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: \"\", // For fixing the moving bug when going in and out the edit mode\n\t\t\t\t\t\t\t\t\t\t\t\ticonAnchor: [12, 12],\n\t\t\t\t\t\t\t\t\t\t\t\thtml: renderToString(<MapPinIcon className=\"size-icon-lg\" />),\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<MapPinIcon />\n\t\t\t\t</MapDrawShapeButton>\n\t\t)\n}\n\nfunction MapDrawPolyline({\n\t\tshowLength = false,\n\t\tdrawError = {\n\t\t\t\tcolor: \"var(--color-destructive)\",\n\t\t},\n\t\tshapeOptions = {\n\t\t\t\tcolor: \"var(--color-primary)\",\n\t\t\t\topacity: 1,\n\t\t\t\tweight: 2,\n\t\t},\n\t\t...props\n}: DrawOptions.PolylineOptions) {\n\t\tconst mapDrawHandleIcon = useMapDrawHandleIcon()\n\n\t\treturn (\n\t\t\t\t<MapDrawShapeButton\n\t\t\t\t\t\tdrawMode=\"polyline\"\n\t\t\t\t\t\tcreateDrawTool={(L, map) =>\n\t\t\t\t\t\t\t\tnew L.Draw.Polyline(map, {\n\t\t\t\t\t\t\t\t\t\t...(mapDrawHandleIcon\n\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon: mapDrawHandleIcon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouchIcon: mapDrawHandleIcon,\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\tshowLength,\n\t\t\t\t\t\t\t\t\t\tdrawError,\n\t\t\t\t\t\t\t\t\t\tshapeOptions,\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<WaypointsIcon />\n\t\t\t\t</MapDrawShapeButton>\n\t\t)\n}\n\nfunction MapDrawCircle({\n\t\tshowRadius = false,\n\t\tshapeOptions = {\n\t\t\t\tcolor: \"var(--color-primary)\",\n\t\t\t\topacity: 1,\n\t\t\t\tweight: 2,\n\t\t},\n\t\t...props\n}: DrawOptions.CircleOptions) {\n\t\treturn (\n\t\t\t\t<MapDrawShapeButton\n\t\t\t\t\t\tdrawMode=\"circle\"\n\t\t\t\t\t\tcreateDrawTool={(L, map) =>\n\t\t\t\t\t\t\t\tnew L.Draw.Circle(map, {\n\t\t\t\t\t\t\t\t\t\tshowRadius,\n\t\t\t\t\t\t\t\t\t\tshapeOptions,\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<CircleIcon />\n\t\t\t\t</MapDrawShapeButton>\n\t\t)\n}\n\nfunction MapDrawRectangle({\n\t\tshowArea = false,\n\t\tshapeOptions = {\n\t\t\t\tcolor: \"var(--color-primary)\",\n\t\t\t\topacity: 1,\n\t\t\t\tweight: 2,\n\t\t},\n\t\t...props\n}: DrawOptions.RectangleOptions) {\n\t\treturn (\n\t\t\t\t<MapDrawShapeButton\n\t\t\t\t\t\tdrawMode=\"rectangle\"\n\t\t\t\t\t\tcreateDrawTool={(L, map) =>\n\t\t\t\t\t\t\t\tnew L.Draw.Rectangle(map, {\n\t\t\t\t\t\t\t\t\t\tshowArea,\n\t\t\t\t\t\t\t\t\t\tshapeOptions,\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<SquareIcon />\n\t\t\t\t</MapDrawShapeButton>\n\t\t)\n}\n\nfunction MapDrawPolygon({\n\t\tdrawError = {\n\t\t\t\tcolor: \"var(--color-destructive)\",\n\t\t},\n\t\tshapeOptions = {\n\t\t\t\tcolor: \"var(--color-primary)\",\n\t\t\t\topacity: 1,\n\t\t\t\tweight: 2,\n\t\t},\n\t\t...props\n}: DrawOptions.PolygonOptions) {\n\t\tconst mapDrawHandleIcon = useMapDrawHandleIcon()\n\n\t\treturn (\n\t\t\t\t<MapDrawShapeButton\n\t\t\t\t\t\tdrawMode=\"polygon\"\n\t\t\t\t\t\tcreateDrawTool={(L, map) =>\n\t\t\t\t\t\t\t\tnew L.Draw.Polygon(map, {\n\t\t\t\t\t\t\t\t\t\t...(mapDrawHandleIcon\n\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon: mapDrawHandleIcon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttouchIcon: mapDrawHandleIcon,\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\tdrawError,\n\t\t\t\t\t\t\t\t\t\tshapeOptions,\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<PentagonIcon />\n\t\t\t\t</MapDrawShapeButton>\n\t\t)\n}\n\nfunction MapDrawActionButton<T extends EditToolbar.Edit | EditToolbar.Delete>({\n\t\tdrawAction,\n\t\tcreateDrawTool,\n\t\tcontrolRef,\n\t\tclassName,\n\t\tchildren,\n\t\t...props\n}: React.ComponentProps<\"button\"> & {\n\t\tdrawAction: MapDrawAction\n\t\tcreateDrawTool: (\n\t\t\t\tL: LeafletModule,\n\t\t\t\tmap: DrawMap,\n\t\t\t\tfeatureGroup: L.FeatureGroup\n\t\t) => T\n\t\tcontrolRef: React.RefObject<T | null>\n}) {\n\t\tconst drawContext = useMapDrawContext()\n\t\tif (!drawContext)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"MapDrawActionButton must be used within MapDrawControl\"\n\t\t\t\t)\n\n\t\tconst { L } = useLeaflet()\n\t\tconst strings = useMapStrings()\n\t\tconst map = useLeafletMap()\n\t\tconst { featureGroup, activeMode, setActiveMode, layersCount } = drawContext\n\t\tconst isActive = activeMode === drawAction\n\t\tconst hasFeatures = layersCount > 0\n\t\tconst actionLabel = drawAction === \"edit\" ? strings.editShapes : strings.removeShapes\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!L || !featureGroup || !isActive) {\n\t\t\t\t\t\tcontrolRef.current?.disable?.()\n\t\t\t\t\t\tcontrolRef.current = null\n\t\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst control = createDrawTool(L, map as DrawMap, featureGroup)\n\t\t\t\tcontrol.enable?.()\n\t\t\t\tcontrolRef.current = control\n\t\t\t\treturn () => {\n\t\t\t\t\t\tcontrol.disable?.()\n\t\t\t\t\t\tcontrolRef.current = null\n\t\t\t\t}\n\t\t}, [L, map, isActive, featureGroup, createDrawTool, controlRef])\n\n\t\tfunction handleClick() {\n\t\t\t\tcontrolRef.current?.save()\n\t\t\t\tsetActiveMode(isActive ? null : drawAction)\n\t\t}\n\n\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\taria-label={actionLabel}\n\t\t\t\t\t\ttitle={actionLabel}\n\t\t\t\t\t\ttone={isActive ? \"primary\" : \"secondary\"}\n\t\t\t\t\t\tdisabled={!hasFeatures}\n\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\tclassName={cn(\"border-border border\", className)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t</Button>\n\t\t)\n}\n\nfunction MapDrawEdit({\n\t\tselectedPathOptions = {\n\t\t\t\tcolor: \"var(--color-primary)\",\n\t\t\t\tfillColor: \"var(--color-primary)\",\n\t\t\t\tweight: 2,\n\t\t},\n\t\t...props\n}: Omit<EditToolbar.EditHandlerOptions, \"featureGroup\">) {\n\t\tconst { L } = useLeaflet()\n\t\tconst strings = useMapStrings()\n\t\tconst mapDrawHandleIcon = useMapDrawHandleIcon()\n\t\tconst drawContext = useMapDrawContext()\n\t\tif (!drawContext) {\n\t\t\t\tthrow new Error(\"MapDrawEdit must be used within MapDrawControl\")\n\t\t}\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!L || !mapDrawHandleIcon) return\n\n\t\t\t\tL.Edit.PolyVerticesEdit.mergeOptions({\n\t\t\t\t\t\ticon: mapDrawHandleIcon,\n\t\t\t\t\t\ttouchIcon: mapDrawHandleIcon,\n\t\t\t\t\t\tdrawError: {\n\t\t\t\t\t\t\t\tcolor: \"var(--color-destructive)\",\n\t\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tL.Edit.SimpleShape.mergeOptions({\n\t\t\t\t\t\tmoveIcon: mapDrawHandleIcon,\n\t\t\t\t\t\tresizeIcon: mapDrawHandleIcon,\n\t\t\t\t\t\ttouchMoveIcon: mapDrawHandleIcon,\n\t\t\t\t\t\ttouchResizeIcon: mapDrawHandleIcon,\n\t\t\t\t})\n\t\t\t\tL.drawLocal.edit.handlers.edit.tooltip = {\n\t\t\t\t\t\ttext: strings.editInstructions,\n\t\t\t\t\t\tsubtext: \"\",\n\t\t\t\t}\n\t\t\t\tL.drawLocal.edit.handlers.remove.tooltip = {\n\t\t\t\t\t\ttext: strings.removeInstructions,\n\t\t\t\t}\n\t\t}, [L, mapDrawHandleIcon, strings.editInstructions, strings.removeInstructions])\n\n\t\treturn (\n\t\t\t\t<MapDrawActionButton\n\t\t\t\t\t\tdrawAction=\"edit\"\n\t\t\t\t\t\tcontrolRef={drawContext.editControlRef}\n\t\t\t\t\t\tcreateDrawTool={(L, map, featureGroup) =>\n\t\t\t\t\t\t\t\tnew L.EditToolbar.Edit(map, {\n\t\t\t\t\t\t\t\t\t\tfeatureGroup,\n\t\t\t\t\t\t\t\t\t\tselectedPathOptions,\n\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<PenLineIcon />\n\t\t\t\t</MapDrawActionButton>\n\t\t)\n}\n\nfunction MapDrawDelete() {\n\t\tconst drawContext = useMapDrawContext()\n\t\tif (!drawContext) {\n\t\t\t\tthrow new Error(\"MapDrawDelete must be used within MapDrawControl\")\n\t\t}\n\n\t\treturn (\n\t\t\t\t<MapDrawActionButton\n\t\t\t\t\t\tdrawAction=\"delete\"\n\t\t\t\t\t\tcontrolRef={drawContext.deleteControlRef}\n\t\t\t\t\t\tcreateDrawTool={(L, map, featureGroup) =>\n\t\t\t\t\t\t\t\tnew L.EditToolbar.Delete(map, { featureGroup })\n\t\t\t\t\t\t}>\n\t\t\t\t\t\t<Trash2Icon />\n\t\t\t\t</MapDrawActionButton>\n\t\t)\n}\n\nfunction MapDrawUndo({ className, ...props }: React.ComponentProps<\"button\">) {\n\t\tconst drawContext = useMapDrawContext()\n\t\tif (!drawContext)\n\t\t\t\tthrow new Error(\"MapDrawUndo must be used within MapDrawControl\")\n\t\tconst strings = useMapStrings()\n\n\t\tconst {\n\t\t\t\tactiveMode,\n\t\t\t\tsetActiveMode,\n\t\t\t\teditControlRef,\n\t\t\t\tdeleteControlRef,\n\t\t\t\tlayersCount,\n\t\t} = drawContext\n\t\tconst isInEditMode = activeMode === \"edit\"\n\t\tconst isInDeleteMode = activeMode === \"delete\"\n\t\tconst isActive = (isInEditMode || isInDeleteMode) && layersCount > 0\n\t\tconst undoLabel = isInDeleteMode ? strings.undoRemove : strings.undoEdit\n\n\t\tfunction handleUndo() {\n\t\t\t\tif (isInEditMode) {\n\t\t\t\t\t\teditControlRef.current?.revertLayers()\n\t\t\t\t} else if (isInDeleteMode) {\n\t\t\t\t\t\tdeleteControlRef.current?.revertLayers()\n\t\t\t\t}\n\t\t\t\tsetActiveMode(null)\n\t\t}\n\n\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tsize=\"sm\" iconOnly\n\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\taria-label={undoLabel}\n\t\t\t\t\t\ttitle={undoLabel}\n\t\t\t\t\t\tonClick={handleUndo}\n\t\t\t\t\t\tdisabled={!isActive}\n\t\t\t\t\t\tclassName={cn(\"border-border border\", className)}\n\t\t\t\t\t\t{...props}>\n\t\t\t\t\t\t<Undo2Icon />\n\t\t\t\t</Button>\n\t\t)\n}\n\nfunction MapControlContainer({\n\t\tclassName,\n\t\t...props\n}: React.ComponentPropsWithoutRef<\"div\">) {\n\t\tconst { L } = useLeaflet()\n\t\tconst containerRef = useRef<HTMLDivElement>(null)\n\n\t\tuseEffect(() => {\n\t\t\t\tif (!L) return\n\t\t\t\tconst element = containerRef.current\n\t\t\t\tif (!element) return\n\t\t\t\tL.DomEvent.disableClickPropagation(element)\n\t\t\t\tL.DomEvent.disableScrollPropagation(element)\n\t\t}, [L])\n\n\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\t\tref={containerRef}\n\t\t\t\t\t\tclassName={cn(\"absolute z-1000 size-fit cursor-default\", className)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t)\n}\n\nfunction useMapDrawHandleIcon() {\n\t\tconst { L } = useLeaflet()\n\t\tif (!L) return null\n\n\t\treturn L.divIcon({\n\t\t\t\ticonAnchor: [8, 8],\n\t\t\t\thtml: renderToString(\n\t\t\t\t\t\t<CircleIcon className=\"fill-primary-accent stroke-primary-accent size-icon transition-transform hover:scale-110\" />\n\t\t\t\t),\n\t\t})\n}\n\nfunction useLeaflet() {\n\t\tconst [L, setL] = useState<LeafletModule | null>(null)\n\t\tconst [LeafletDraw, setLeafletDraw] = useState<LeafletDrawModule | null>(\n\t\t\t\tnull\n\t\t)\n\n\t\tuseEffect(() => {\n\t\t\t\tasync function loadLeaflet() {\n\t\t\t\t\t\tconst leaflet = await import(\"leaflet\")\n\t\t\t\t\t\tconst leafletFullscreen = await import(\"leaflet.fullscreen\")\n\t\t\t\t\t\tconst leafletDraw = await import(\"leaflet-draw\")\n\n\t\t\t\t\t\tconst L_object = leaflet.default\n\t\t\t\t\t\tif (L_object.Control && !L_object.Control.FullScreen) {\n\t\t\t\t\t\t\t\tL_object.Control.FullScreen =\n\t\t\t\t\t\t\t\t\t\tleafletFullscreen.default || leafletFullscreen\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsetLeafletDraw(leafletDraw)\n\t\t\t\t\t\tsetL(L_object)\n\t\t\t\t}\n\n\t\t\t\tif (L && LeafletDraw) return\n\t\t\t\tif (typeof window === \"undefined\") return\n\n\t\t\t\tvoid loadLeaflet()\n\t\t}, [L, LeafletDraw])\n\n\t\treturn { L, LeafletDraw }\n}\n\n/**\n * Delays the *appearance* of a loading indicator so a fast lookup never\n * flashes a spinner. Not a debounce: it neither collapses a burst of calls\n * nor defers the work itself, so `useDebouncedCallback` does not apply.\n */\nfunction useDelayedLoadingState(delay = 200) {\n\t\tconst [isLoading, setIsLoading] = useState(false)\n\t\tconst [showLoading, setShowLoading] = useState(false)\n\t\tconst timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n\t\tuseEffect(() => {\n\t\t\t\tif (isLoading) {\n\t\t\t\t\t\ttimeoutRef.current = setTimeout(() => {\n\t\t\t\t\t\t\t\tsetShowLoading(true)\n\t\t\t\t\t\t}, delay)\n\t\t\t\t} else {\n\t\t\t\t\t\tif (timeoutRef.current) {\n\t\t\t\t\t\t\t\tclearTimeout(timeoutRef.current)\n\t\t\t\t\t\t\t\ttimeoutRef.current = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetShowLoading(false)\n\t\t\t\t}\n\n\t\t\t\treturn () => {\n\t\t\t\t\t\tif (timeoutRef.current) {\n\t\t\t\t\t\t\t\tclearTimeout(timeoutRef.current)\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t}, [isLoading, delay])\n\n\t\treturn [showLoading, setIsLoading] as const\n}\n\nexport {\n\t\tMap,\n\t\tMapCircle,\n\t\tMapCircleMarker,\n\t\tMapControlContainer,\n\t\tMapDrawCircle,\n\t\tMapDrawControl,\n\t\tMapDrawDelete,\n\t\tMapDrawEdit,\n\t\tMapDrawMarker,\n\t\tMapDrawPolygon,\n\t\tMapDrawPolyline,\n\t\tMapDrawRectangle,\n\t\tMapDrawUndo,\n\t\tMapFeatureGroup,\n\t\tMapFullscreenControl,\n\t\tMapLayerGroup,\n\t\tMapLayers,\n\t\tMapLayersControl,\n\t\tMapLocateControl,\n\t\tMapMarker,\n\t\tMapMarkerClusterGroup,\n\t\tMapPolygon,\n\t\tMapPolyline,\n\t\tMapPopup,\n\t\tMapRectangle,\n\t\tMapSearchControl,\n\t\tMapTileLayer,\n\t\tMapTooltip,\n\t\tMapZoomControl,\n\t\tuseLeaflet,\n}\n"],"mappings":"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"}