@lssm/lib.ui-kit-web 1.7.4 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +80 -0
  2. package/dist/node_modules/sonner/dist/index.js +1 -2
  3. package/dist/node_modules/sonner/dist/index.js.map +1 -1
  4. package/dist/tsconfig.tsbuildinfo +1 -1
  5. package/dist/ui/accordion.d.ts +5 -5
  6. package/dist/ui/accordion.d.ts.map +1 -1
  7. package/dist/ui/accordion.js +3 -4
  8. package/dist/ui/accordion.js.map +1 -1
  9. package/dist/ui/alert-dialog.d.ts +12 -12
  10. package/dist/ui/alert-dialog.d.ts.map +1 -1
  11. package/dist/ui/alert-dialog.js +8 -9
  12. package/dist/ui/alert-dialog.js.map +1 -1
  13. package/dist/ui/alert.d.ts +6 -6
  14. package/dist/ui/alert.d.ts.map +1 -1
  15. package/dist/ui/alert.js +3 -3
  16. package/dist/ui/alert.js.map +1 -1
  17. package/dist/ui/aspect-ratio.d.ts +2 -2
  18. package/dist/ui/aspect-ratio.js +0 -1
  19. package/dist/ui/aspect-ratio.js.map +1 -1
  20. package/dist/ui/avatar.d.ts +4 -4
  21. package/dist/ui/avatar.d.ts.map +1 -1
  22. package/dist/ui/avatar.js +3 -4
  23. package/dist/ui/avatar.js.map +1 -1
  24. package/dist/ui/badge.d.ts +5 -5
  25. package/dist/ui/badge.d.ts.map +1 -1
  26. package/dist/ui/badge.js +1 -1
  27. package/dist/ui/badge.js.map +1 -1
  28. package/dist/ui/breadcrumb.d.ts +8 -8
  29. package/dist/ui/breadcrumb.js +6 -6
  30. package/dist/ui/breadcrumb.js.map +1 -1
  31. package/dist/ui/button.d.ts +6 -6
  32. package/dist/ui/button.js +1 -1
  33. package/dist/ui/button.js.map +1 -1
  34. package/dist/ui/calendar.d.ts +3 -3
  35. package/dist/ui/calendar.js +5 -6
  36. package/dist/ui/calendar.js.map +1 -1
  37. package/dist/ui/card.d.ts +8 -8
  38. package/dist/ui/card.js +7 -7
  39. package/dist/ui/card.js.map +1 -1
  40. package/dist/ui/carousel.d.ts +6 -6
  41. package/dist/ui/carousel.js +5 -6
  42. package/dist/ui/carousel.js.map +1 -1
  43. package/dist/ui/checkbox.d.ts +2 -2
  44. package/dist/ui/checkbox.js +1 -2
  45. package/dist/ui/checkbox.js.map +1 -1
  46. package/dist/ui/collapsible.d.ts +4 -4
  47. package/dist/ui/collapsible.d.ts.map +1 -1
  48. package/dist/ui/collapsible.js +0 -1
  49. package/dist/ui/collapsible.js.map +1 -1
  50. package/dist/ui/command.d.ts +10 -10
  51. package/dist/ui/command.js +8 -9
  52. package/dist/ui/command.js.map +1 -1
  53. package/dist/ui/confirm-dialog.d.ts +2 -2
  54. package/dist/ui/context-menu.d.ts +2 -2
  55. package/dist/ui/context-menu.js +9 -10
  56. package/dist/ui/context-menu.js.map +1 -1
  57. package/dist/ui/cta.d.ts +1 -1
  58. package/dist/ui/cta.js +1 -1
  59. package/dist/ui/cta.js.map +1 -1
  60. package/dist/ui/date-picker.d.ts +2 -2
  61. package/dist/ui/date-picker.js +0 -1
  62. package/dist/ui/date-picker.js.map +1 -1
  63. package/dist/ui/date-range-picker.d.ts +2 -2
  64. package/dist/ui/date-range-picker.js +0 -1
  65. package/dist/ui/date-range-picker.js.map +1 -1
  66. package/dist/ui/datetime-picker.d.ts +2 -2
  67. package/dist/ui/datetime-picker.d.ts.map +1 -1
  68. package/dist/ui/datetime-picker.js +0 -1
  69. package/dist/ui/datetime-picker.js.map +1 -1
  70. package/dist/ui/dialog.d.ts +11 -11
  71. package/dist/ui/dialog.d.ts.map +1 -1
  72. package/dist/ui/dialog.js +6 -7
  73. package/dist/ui/dialog.js.map +1 -1
  74. package/dist/ui/drawer.d.ts +11 -11
  75. package/dist/ui/drawer.js +6 -7
  76. package/dist/ui/drawer.js.map +1 -1
  77. package/dist/ui/dropdown-menu.d.ts +16 -16
  78. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  79. package/dist/ui/dropdown-menu.js +9 -10
  80. package/dist/ui/dropdown-menu.js.map +1 -1
  81. package/dist/ui/empty-state.d.ts +4 -4
  82. package/dist/ui/empty-state.d.ts.map +1 -1
  83. package/dist/ui/empty.d.ts +9 -9
  84. package/dist/ui/empty.d.ts.map +1 -1
  85. package/dist/ui/empty.js +6 -6
  86. package/dist/ui/empty.js.map +1 -1
  87. package/dist/ui/field.d.ts +14 -14
  88. package/dist/ui/field.d.ts.map +1 -1
  89. package/dist/ui/field.js +10 -11
  90. package/dist/ui/field.js.map +1 -1
  91. package/dist/ui/form.d.ts +7 -7
  92. package/dist/ui/form.d.ts.map +1 -1
  93. package/dist/ui/form.js +4 -5
  94. package/dist/ui/form.js.map +1 -1
  95. package/dist/ui/hover-card.d.ts +4 -4
  96. package/dist/ui/hover-card.d.ts.map +1 -1
  97. package/dist/ui/hover-card.js +1 -2
  98. package/dist/ui/hover-card.js.map +1 -1
  99. package/dist/ui/input-group.d.ts +10 -10
  100. package/dist/ui/input-group.d.ts.map +1 -1
  101. package/dist/ui/input-group.js +6 -7
  102. package/dist/ui/input-group.js.map +1 -1
  103. package/dist/ui/input-otp.d.ts +2 -2
  104. package/dist/ui/input-otp.js +3 -4
  105. package/dist/ui/input-otp.js.map +1 -1
  106. package/dist/ui/input.d.ts +2 -2
  107. package/dist/ui/input.d.ts.map +1 -1
  108. package/dist/ui/input.js +1 -1
  109. package/dist/ui/input.js.map +1 -1
  110. package/dist/ui/label.d.ts +2 -2
  111. package/dist/ui/label.d.ts.map +1 -1
  112. package/dist/ui/label.js +1 -2
  113. package/dist/ui/label.js.map +1 -1
  114. package/dist/ui/link.d.ts +3 -3
  115. package/dist/ui/link.js +1 -1
  116. package/dist/ui/link.js.map +1 -1
  117. package/dist/ui/live-region.d.ts +2 -2
  118. package/dist/ui/live-region.d.ts.map +1 -1
  119. package/dist/ui/live-region.js +0 -1
  120. package/dist/ui/live-region.js.map +1 -1
  121. package/dist/ui/loading-button.d.ts +2 -2
  122. package/dist/ui/loading-button.js +1 -1
  123. package/dist/ui/loading-button.js.map +1 -1
  124. package/dist/ui/map/MapBase.d.ts +2 -2
  125. package/dist/ui/map/MapBase.d.ts.map +1 -1
  126. package/dist/ui/map/MapBase.js +0 -1
  127. package/dist/ui/map/MapBase.js.map +1 -1
  128. package/dist/ui/map/MapGeoJsonOverlay.d.ts +2 -2
  129. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -1
  130. package/dist/ui/map/MapGeoJsonOverlay.js +0 -1
  131. package/dist/ui/map/MapGeoJsonOverlay.js.map +1 -1
  132. package/dist/ui/map/MapHeatmapH3.d.ts +2 -2
  133. package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -1
  134. package/dist/ui/map/MapHeatmapH3.js +0 -1
  135. package/dist/ui/map/MapHeatmapH3.js.map +1 -1
  136. package/dist/ui/map/MapMarkers.d.ts +2 -2
  137. package/dist/ui/map/MapMarkers.d.ts.map +1 -1
  138. package/dist/ui/map/MapMarkers.js +0 -1
  139. package/dist/ui/map/MapMarkers.js.map +1 -1
  140. package/dist/ui/marketing/FeatureGrid.d.ts +2 -2
  141. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -1
  142. package/dist/ui/marketing/Hero.d.ts +2 -2
  143. package/dist/ui/marketing/Hero.d.ts.map +1 -1
  144. package/dist/ui/marketing/PricingTable.d.ts +2 -2
  145. package/dist/ui/marketing/PricingTable.d.ts.map +1 -1
  146. package/dist/ui/menubar.d.ts +17 -17
  147. package/dist/ui/menubar.js +11 -12
  148. package/dist/ui/menubar.js.map +1 -1
  149. package/dist/ui/molecules/Autocomplete/index.d.ts +2 -2
  150. package/dist/ui/molecules/Autocomplete/index.js +0 -1
  151. package/dist/ui/molecules/Autocomplete/index.js.map +1 -1
  152. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +1 -1
  153. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -1
  154. package/dist/ui/molecules/SkeletonList.d.ts +2 -2
  155. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -1
  156. package/dist/ui/nav-layout.d.ts +7 -7
  157. package/dist/ui/nav-layout.d.ts.map +1 -1
  158. package/dist/ui/nav-layout.js +1 -1
  159. package/dist/ui/nav-layout.js.map +1 -1
  160. package/dist/ui/navigation-menu.d.ts +11 -11
  161. package/dist/ui/navigation-menu.d.ts.map +1 -1
  162. package/dist/ui/navigation-menu.js +8 -8
  163. package/dist/ui/navigation-menu.js.map +1 -1
  164. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +2 -2
  165. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +0 -1
  166. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -1
  167. package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -2
  168. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -1
  169. package/dist/ui/page-header.d.ts +2 -2
  170. package/dist/ui/page-header.d.ts.map +1 -1
  171. package/dist/ui/pagination.d.ts +6 -6
  172. package/dist/ui/pagination.js +7 -7
  173. package/dist/ui/pagination.js.map +1 -1
  174. package/dist/ui/popover.d.ts +5 -5
  175. package/dist/ui/popover.d.ts.map +1 -1
  176. package/dist/ui/popover.js +1 -2
  177. package/dist/ui/popover.js.map +1 -1
  178. package/dist/ui/progress.d.ts +2 -2
  179. package/dist/ui/progress.d.ts.map +1 -1
  180. package/dist/ui/progress.js +1 -2
  181. package/dist/ui/progress.js.map +1 -1
  182. package/dist/ui/radio-group.d.ts +3 -3
  183. package/dist/ui/radio-group.d.ts.map +1 -1
  184. package/dist/ui/radio-group.js +2 -3
  185. package/dist/ui/radio-group.js.map +1 -1
  186. package/dist/ui/resizable.d.ts +7 -7
  187. package/dist/ui/resizable.d.ts.map +1 -1
  188. package/dist/ui/resizable.js +2 -3
  189. package/dist/ui/resizable.js.map +1 -1
  190. package/dist/ui/route-announcer.d.ts +2 -2
  191. package/dist/ui/route-announcer.d.ts.map +1 -1
  192. package/dist/ui/route-announcer.js +0 -1
  193. package/dist/ui/route-announcer.js.map +1 -1
  194. package/dist/ui/scroll-area.d.ts +3 -3
  195. package/dist/ui/scroll-area.d.ts.map +1 -1
  196. package/dist/ui/scroll-area.js +2 -3
  197. package/dist/ui/scroll-area.js.map +1 -1
  198. package/dist/ui/section.d.ts +2 -2
  199. package/dist/ui/section.d.ts.map +1 -1
  200. package/dist/ui/section.js +1 -1
  201. package/dist/ui/section.js.map +1 -1
  202. package/dist/ui/select.d.ts +11 -11
  203. package/dist/ui/select.d.ts.map +1 -1
  204. package/dist/ui/select.js +7 -8
  205. package/dist/ui/select.js.map +1 -1
  206. package/dist/ui/separator.d.ts +2 -2
  207. package/dist/ui/separator.d.ts.map +1 -1
  208. package/dist/ui/separator.js +1 -2
  209. package/dist/ui/separator.js.map +1 -1
  210. package/dist/ui/sheet.d.ts +9 -9
  211. package/dist/ui/sheet.js +6 -7
  212. package/dist/ui/sheet.js.map +1 -1
  213. package/dist/ui/sidebar.d.ts +28 -28
  214. package/dist/ui/sidebar.d.ts.map +1 -1
  215. package/dist/ui/sidebar.js +23 -24
  216. package/dist/ui/sidebar.js.map +1 -1
  217. package/dist/ui/skeleton.d.ts +2 -2
  218. package/dist/ui/skeleton.js +1 -1
  219. package/dist/ui/skeleton.js.map +1 -1
  220. package/dist/ui/skip-link.d.ts +2 -2
  221. package/dist/ui/skip-link.js +1 -1
  222. package/dist/ui/skip-link.js.map +1 -1
  223. package/dist/ui/slider.d.ts +2 -2
  224. package/dist/ui/slider.js +1 -2
  225. package/dist/ui/slider.js.map +1 -1
  226. package/dist/ui/sonner.d.ts +2 -2
  227. package/dist/ui/sonner.d.ts.map +1 -1
  228. package/dist/ui/sonner.js +0 -1
  229. package/dist/ui/sonner.js.map +1 -1
  230. package/dist/ui/stack.d.ts +19 -19
  231. package/dist/ui/stack.d.ts.map +1 -1
  232. package/dist/ui/stack.js +3 -3
  233. package/dist/ui/stack.js.map +1 -1
  234. package/dist/ui/stat-card-group.d.ts +2 -2
  235. package/dist/ui/stat-card-group.d.ts.map +1 -1
  236. package/dist/ui/stepper.d.ts +4 -4
  237. package/dist/ui/stepper.d.ts.map +1 -1
  238. package/dist/ui/switch.d.ts +2 -2
  239. package/dist/ui/switch.d.ts.map +1 -1
  240. package/dist/ui/switch.js +1 -2
  241. package/dist/ui/switch.js.map +1 -1
  242. package/dist/ui/table.d.ts +9 -9
  243. package/dist/ui/table.d.ts.map +1 -1
  244. package/dist/ui/table.js +8 -9
  245. package/dist/ui/table.js.map +1 -1
  246. package/dist/ui/tabs.d.ts +5 -5
  247. package/dist/ui/tabs.d.ts.map +1 -1
  248. package/dist/ui/tabs.js +4 -5
  249. package/dist/ui/tabs.js.map +1 -1
  250. package/dist/ui/text.d.ts +2 -2
  251. package/dist/ui/text.d.ts.map +1 -1
  252. package/dist/ui/text.js +1 -1
  253. package/dist/ui/text.js.map +1 -1
  254. package/dist/ui/textarea.d.ts +2 -2
  255. package/dist/ui/textarea.d.ts.map +1 -1
  256. package/dist/ui/textarea.js +1 -1
  257. package/dist/ui/textarea.js.map +1 -1
  258. package/dist/ui/time-picker.d.ts +2 -2
  259. package/dist/ui/time-picker.d.ts.map +1 -1
  260. package/dist/ui/time-picker.js +0 -1
  261. package/dist/ui/time-picker.js.map +1 -1
  262. package/dist/ui/toast.d.ts +2 -2
  263. package/dist/ui/toast.d.ts.map +1 -1
  264. package/dist/ui/toast.js +6 -7
  265. package/dist/ui/toast.js.map +1 -1
  266. package/dist/ui/toaster.d.ts +2 -2
  267. package/dist/ui/toaster.d.ts.map +1 -1
  268. package/dist/ui/toaster.js +1 -2
  269. package/dist/ui/toaster.js.map +1 -1
  270. package/dist/ui/toggle-group.d.ts +3 -3
  271. package/dist/ui/toggle-group.d.ts.map +1 -1
  272. package/dist/ui/toggle-group.js +2 -3
  273. package/dist/ui/toggle-group.js.map +1 -1
  274. package/dist/ui/toggle.d.ts +4 -4
  275. package/dist/ui/toggle.d.ts.map +1 -1
  276. package/dist/ui/toggle.js +1 -2
  277. package/dist/ui/toggle.js.map +1 -1
  278. package/dist/ui/tooltip.d.ts +5 -5
  279. package/dist/ui/tooltip.d.ts.map +1 -1
  280. package/dist/ui/tooltip.js +2 -3
  281. package/dist/ui/tooltip.js.map +1 -1
  282. package/dist/ui/typography.d.ts +12 -12
  283. package/dist/ui/typography.d.ts.map +1 -1
  284. package/dist/ui/typography.js +11 -11
  285. package/dist/ui/typography.js.map +1 -1
  286. package/dist/ui/use-toast.d.ts.map +1 -1
  287. package/dist/ui/use-toast.js +0 -1
  288. package/dist/ui/use-toast.js.map +1 -1
  289. package/dist/ui/usecases/UseCaseCard.d.ts +2 -2
  290. package/dist/ui/usecases/UserStoryCard.d.ts +2 -2
  291. package/dist/ui/visually-hidden.js +1 -1
  292. package/dist/ui/visually-hidden.js.map +1 -1
  293. package/package.json +9 -10
  294. package/dist/ui/sidebar-right.d.ts +0 -165
  295. package/dist/ui/sidebar-right.d.ts.map +0 -1
  296. package/dist/ui/sidebar-right.js +0 -380
  297. package/dist/ui/sidebar-right.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime160 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime79 from "react/jsx-runtime";
3
3
  import * as LabelPrimitive from "@radix-ui/react-label";
4
4
 
5
5
  //#region ui/label.d.ts
6
6
  declare function Label({
7
7
  className,
8
8
  ...props
9
- }: React$1.ComponentProps<typeof LabelPrimitive.Root>): react_jsx_runtime160.JSX.Element;
9
+ }: React$1.ComponentProps<typeof LabelPrimitive.Root>): react_jsx_runtime79.JSX.Element;
10
10
  //#endregion
11
11
  export { Label };
12
12
  //# sourceMappingURL=label.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,KAAA;;;GAGN,OAAA,CAAM,sBAAsB,cAAA,CAAe,QAAK,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"label.d.ts","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,KAAA;;;GAGN,OAAA,CAAM,sBAAsB,cAAA,CAAe,QAAK,mBAAA,CAAA,GAAA,CAAA"}
package/dist/ui/label.js CHANGED
@@ -1,13 +1,12 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import { cn } from "./utils.js";
5
4
  import "react";
6
5
  import { jsx } from "react/jsx-runtime";
7
6
  import * as LabelPrimitive from "@radix-ui/react-label";
8
7
 
9
8
  //#region ui/label.tsx
10
- function Label({ className,...props }) {
9
+ function Label({ className, ...props }) {
11
10
  return /* @__PURE__ */ jsx(LabelPrimitive.Root, {
12
11
  "data-slot": "label",
13
12
  className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from './utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;;;;AAOA,SAAS,MAAM,EACb,UACA,GAAG,SACgD;AACnD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,uNACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"label.js","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from './utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;;;AAOA,SAAS,MAAM,EACb,WACA,GAAG,SACgD;AACnD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,uNACA,UACD;EACD,GAAI;GACJ"}
package/dist/ui/link.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import * as react5 from "react";
1
+ import * as react1 from "react";
2
2
 
3
3
  //#region ui/link.d.ts
4
- declare const Link: react5.ForwardRefExoticComponent<Omit<react5.HTMLProps<HTMLAnchorElement> & {
4
+ declare const Link: react1.ForwardRefExoticComponent<Omit<react1.HTMLProps<HTMLAnchorElement> & {
5
5
  href: string;
6
- }, "ref"> & react5.RefAttributes<HTMLAnchorElement>>;
6
+ }, "ref"> & react1.RefAttributes<HTMLAnchorElement>>;
7
7
  //#endregion
8
8
  export { Link };
9
9
  //# sourceMappingURL=link.d.ts.map
package/dist/ui/link.js CHANGED
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  import NextLink from "next/link";
5
5
 
6
6
  //#region ui/link.tsx
7
- const Link = forwardRef(({ className,...props }, ref) => {
7
+ const Link = forwardRef(({ className, ...props }, ref) => {
8
8
  return /* @__PURE__ */ jsx(NextLink, {
9
9
  ref,
10
10
  className: cn("className=\"text-primary underline\"", className),
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","names":[],"sources":["../../ui/link.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { cn } from './utils';\nimport NextLink from 'next/link';\n\nconst Link = forwardRef<\n HTMLAnchorElement,\n React.HTMLProps<HTMLAnchorElement> & { href: string }\n>(({ className, ...props }, ref) => {\n return (\n <NextLink\n ref={ref}\n className={cn('className=\"text-primary underline\"', className)}\n {...props}\n />\n );\n});\nLink.displayName = 'Link';\n\nexport { Link };\n"],"mappings":";;;;;;AAIA,MAAM,OAAO,YAGV,EAAE,UAAW,GAAG,SAAS,QAAQ;AAClC,QACE,oBAAC;EACM;EACL,WAAW,GAAG,wCAAsC,UAAU;EAC9D,GAAI;GACJ;EAEJ;AACF,KAAK,cAAc"}
1
+ {"version":3,"file":"link.js","names":[],"sources":["../../ui/link.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { cn } from './utils';\nimport NextLink from 'next/link';\n\nconst Link = forwardRef<\n HTMLAnchorElement,\n React.HTMLProps<HTMLAnchorElement> & { href: string }\n>(({ className, ...props }, ref) => {\n return (\n <NextLink\n ref={ref}\n className={cn('className=\"text-primary underline\"', className)}\n {...props}\n />\n );\n});\nLink.displayName = 'Link';\n\nexport { Link };\n"],"mappings":";;;;;;AAIA,MAAM,OAAO,YAGV,EAAE,WAAW,GAAG,SAAS,QAAQ;AAClC,QACE,oBAAC;EACM;EACL,WAAW,GAAG,wCAAsC,UAAU;EAC9D,GAAI;GACJ;EAEJ;AACF,KAAK,cAAc"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime166 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime96 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/live-region.d.ts
5
5
  type LiveRegionPoliteness = 'polite' | 'assertive';
@@ -11,7 +11,7 @@ declare function SRLiveRegionProvider({
11
11
  children
12
12
  }: {
13
13
  children: React$1.ReactNode;
14
- }): react_jsx_runtime166.JSX.Element;
14
+ }): react_jsx_runtime96.JSX.Element;
15
15
  //#endregion
16
16
  export { LiveRegionPoliteness, SRLiveRegionProvider, useSRLiveRegion };
17
17
  //# sourceMappingURL=live-region.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live-region.d.ts","names":[],"sources":["../../ui/live-region.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,oBAAA;UAQF,wBAAA;wCAC8B;AATxC;AAQU,iBAOM,eAAA,CAAA,CAPkB,EAOH,wBAN6B;AAM5C,iBAOA,oBAAA,CAPe;EAAA;CAAA,EAAA;EAOf,QAAA,EAGJ,OAAA,CAAM,SAHkB;CAClC,CAAA,EAGD,oBAAA,CAAA,GAAA,CAAA,OAHC"}
1
+ {"version":3,"file":"live-region.d.ts","names":[],"sources":["../../ui/live-region.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,oBAAA;UAQF,wBAAA;wCAC8B;AATxC;AAQU,iBAOM,eAAA,CAAA,CAPkB,EAOH,wBAN6B;AAM5C,iBAOA,oBAAA,CAPe;EAAA;CAAA,EAAA;EAOf,QAAA,EAGJ,OAAA,CAAM,SAHkB;CAClC,CAAA,EAGD,mBAAA,CAAA,GAAA,CAAA,OAHC"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import * as React$1 from "react";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"live-region.js","names":["React"],"sources":["../../ui/live-region.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nexport type LiveRegionPoliteness = 'polite' | 'assertive';\n\ninterface LiveRegionMessage {\n id: number;\n text: string;\n politeness: LiveRegionPoliteness;\n}\n\ninterface SRLiveRegionContextValue {\n announce: (text: string, politeness?: LiveRegionPoliteness) => void;\n}\n\nconst SRLiveRegionContext =\n React.createContext<SRLiveRegionContextValue | null>(null);\n\nexport function useSRLiveRegion() {\n const ctx = React.useContext(SRLiveRegionContext);\n if (!ctx)\n throw new Error('useSRLiveRegion must be used within SRLiveRegionProvider');\n return ctx;\n}\n\nexport function SRLiveRegionProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [messages, setMessages] = React.useState<LiveRegionMessage[]>([]);\n const idRef = React.useRef(0);\n\n const announce = React.useCallback(\n (text: string, politeness: LiveRegionPoliteness = 'polite') => {\n const id = ++idRef.current;\n setMessages((prev) => [...prev, { id, text, politeness }]);\n // Remove message after render tick to avoid accumulation\n setTimeout(\n () => setMessages((prev) => prev.filter((m) => m.id !== id)),\n 1000\n );\n },\n []\n );\n\n return (\n <SRLiveRegionContext.Provider value={{ announce }}>\n {children}\n <div aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {messages\n .filter((m) => m.politeness === 'polite')\n .map((m) => (\n <div key={m.id}>{m.text}</div>\n ))}\n </div>\n <div aria-live=\"assertive\" aria-atomic=\"true\" className=\"sr-only\">\n {messages\n .filter((m) => m.politeness === 'assertive')\n .map((m) => (\n <div key={m.id}>{m.text}</div>\n ))}\n </div>\n </SRLiveRegionContext.Provider>\n );\n}\n"],"mappings":";;;;;;;AAgBA,MAAM,sBACJA,QAAM,cAA+C,KAAK;AAE5D,SAAgB,kBAAkB;CAChC,MAAM,MAAMA,QAAM,WAAW,oBAAoB;AACjD,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,2DAA2D;AAC7E,QAAO;;AAGT,SAAgB,qBAAqB,EACnC,YAGC;CACD,MAAM,CAAC,UAAU,eAAeA,QAAM,SAA8B,EAAE,CAAC;CACvE,MAAM,QAAQA,QAAM,OAAO,EAAE;CAE7B,MAAM,WAAWA,QAAM,aACpB,MAAc,aAAmC,aAAa;EAC7D,MAAM,KAAK,EAAE,MAAM;AACnB,eAAa,SAAS,CAAC,GAAG,MAAM;GAAE;GAAI;GAAM;GAAY,CAAC,CAAC;AAE1D,mBACQ,aAAa,SAAS,KAAK,QAAQ,MAAM,EAAE,OAAO,GAAG,CAAC,EAC5D,IACD;IAEH,EAAE,CACH;AAED,QACE,qBAAC,oBAAoB;EAAS,OAAO,EAAE,UAAU;;GAC9C;GACD,oBAAC;IAAI,aAAU;IAAS,eAAY;IAAO,WAAU;cAClD,SACE,QAAQ,MAAM,EAAE,eAAe,SAAS,CACxC,KAAK,MACJ,oBAAC,mBAAgB,EAAE,QAAT,EAAE,GAAkB,CAC9B;KACA;GACN,oBAAC;IAAI,aAAU;IAAY,eAAY;IAAO,WAAU;cACrD,SACE,QAAQ,MAAM,EAAE,eAAe,YAAY,CAC3C,KAAK,MACJ,oBAAC,mBAAgB,EAAE,QAAT,EAAE,GAAkB,CAC9B;KACA;;GACuB"}
1
+ {"version":3,"file":"live-region.js","names":["React"],"sources":["../../ui/live-region.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nexport type LiveRegionPoliteness = 'polite' | 'assertive';\n\ninterface LiveRegionMessage {\n id: number;\n text: string;\n politeness: LiveRegionPoliteness;\n}\n\ninterface SRLiveRegionContextValue {\n announce: (text: string, politeness?: LiveRegionPoliteness) => void;\n}\n\nconst SRLiveRegionContext =\n React.createContext<SRLiveRegionContextValue | null>(null);\n\nexport function useSRLiveRegion() {\n const ctx = React.useContext(SRLiveRegionContext);\n if (!ctx)\n throw new Error('useSRLiveRegion must be used within SRLiveRegionProvider');\n return ctx;\n}\n\nexport function SRLiveRegionProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [messages, setMessages] = React.useState<LiveRegionMessage[]>([]);\n const idRef = React.useRef(0);\n\n const announce = React.useCallback(\n (text: string, politeness: LiveRegionPoliteness = 'polite') => {\n const id = ++idRef.current;\n setMessages((prev) => [...prev, { id, text, politeness }]);\n // Remove message after render tick to avoid accumulation\n setTimeout(\n () => setMessages((prev) => prev.filter((m) => m.id !== id)),\n 1000\n );\n },\n []\n );\n\n return (\n <SRLiveRegionContext.Provider value={{ announce }}>\n {children}\n <div aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {messages\n .filter((m) => m.politeness === 'polite')\n .map((m) => (\n <div key={m.id}>{m.text}</div>\n ))}\n </div>\n <div aria-live=\"assertive\" aria-atomic=\"true\" className=\"sr-only\">\n {messages\n .filter((m) => m.politeness === 'assertive')\n .map((m) => (\n <div key={m.id}>{m.text}</div>\n ))}\n </div>\n </SRLiveRegionContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAgBA,MAAM,sBACJA,QAAM,cAA+C,KAAK;AAE5D,SAAgB,kBAAkB;CAChC,MAAM,MAAMA,QAAM,WAAW,oBAAoB;AACjD,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,2DAA2D;AAC7E,QAAO;;AAGT,SAAgB,qBAAqB,EACnC,YAGC;CACD,MAAM,CAAC,UAAU,eAAeA,QAAM,SAA8B,EAAE,CAAC;CACvE,MAAM,QAAQA,QAAM,OAAO,EAAE;CAE7B,MAAM,WAAWA,QAAM,aACpB,MAAc,aAAmC,aAAa;EAC7D,MAAM,KAAK,EAAE,MAAM;AACnB,eAAa,SAAS,CAAC,GAAG,MAAM;GAAE;GAAI;GAAM;GAAY,CAAC,CAAC;AAE1D,mBACQ,aAAa,SAAS,KAAK,QAAQ,MAAM,EAAE,OAAO,GAAG,CAAC,EAC5D,IACD;IAEH,EAAE,CACH;AAED,QACE,qBAAC,oBAAoB;EAAS,OAAO,EAAE,UAAU;;GAC9C;GACD,oBAAC;IAAI,aAAU;IAAS,eAAY;IAAO,WAAU;cAClD,SACE,QAAQ,MAAM,EAAE,eAAe,SAAS,CACxC,KAAK,MACJ,oBAAC,mBAAgB,EAAE,QAAT,EAAE,GAAkB,CAC9B;KACA;GACN,oBAAC;IAAI,aAAU;IAAY,eAAY;IAAO,WAAU;cACrD,SACE,QAAQ,MAAM,EAAE,eAAe,YAAY,CAC3C,KAAK,MACJ,oBAAC,mBAAgB,EAAE,QAAT,EAAE,GAAkB,CAC9B;KACA;;GACuB"}
@@ -1,6 +1,6 @@
1
1
  import { ButtonProps } from "./button.js";
2
2
  import React from "react";
3
- import * as react_jsx_runtime56 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime91 from "react/jsx-runtime";
4
4
 
5
5
  //#region ui/loading-button.d.ts
6
6
  interface LoadingButtonProps extends ButtonProps {
@@ -14,7 +14,7 @@ declare function LoadingButton({
14
14
  children,
15
15
  disabled,
16
16
  ...props
17
- }: LoadingButtonProps): react_jsx_runtime56.JSX.Element;
17
+ }: LoadingButtonProps): react_jsx_runtime91.JSX.Element;
18
18
  //#endregion
19
19
  export { LoadingButton };
20
20
  //# sourceMappingURL=loading-button.d.ts.map
@@ -5,7 +5,7 @@ import React from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
 
7
7
  //#region ui/loading-button.tsx
8
- function LoadingButton({ isLoading = false, loadingText, children, disabled,...props }) {
8
+ function LoadingButton({ isLoading = false, loadingText, children, disabled, ...props }) {
9
9
  return /* @__PURE__ */ jsx(Button, {
10
10
  disabled: disabled || isLoading,
11
11
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"loading-button.js","names":[],"sources":["../../ui/loading-button.tsx"],"sourcesContent":["import React from 'react';\n// import { ActivityIndicator } from 'react-native';\nimport type { ButtonProps } from './button';\nimport { Button } from './button';\nimport { Text } from './text';\nimport { HStack } from './stack';\n\ninterface LoadingButtonProps extends ButtonProps {\n isLoading?: boolean;\n loadingText?: string;\n children: React.ReactNode;\n}\n\nexport function LoadingButton({\n isLoading = false,\n loadingText,\n children,\n disabled,\n ...props\n}: LoadingButtonProps) {\n return (\n <Button disabled={disabled || isLoading} {...props}>\n {isLoading ? (\n <HStack className=\"items-center gap-x-2\">\n {/*<ActivityIndicator*/}\n {/* size=\"small\"*/}\n {/* color={props.variant === 'outline' ? '#6b7280' : '#ffffff'}*/}\n {/*/>*/}\n <Text>{loadingText || 'Loading...'}</Text>\n </HStack>\n ) : (\n children\n )}\n </Button>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,cAAc,EAC5B,YAAY,OACZ,aACA,UACA,SACA,GAAG,SACkB;AACrB,QACE,oBAAC;EAAO,UAAU,YAAY;EAAW,GAAI;YAC1C,YACC,oBAAC;GAAO,WAAU;aAKhB,oBAAC,kBAAM,eAAe,eAAoB;IACnC,GAET;GAEK"}
1
+ {"version":3,"file":"loading-button.js","names":[],"sources":["../../ui/loading-button.tsx"],"sourcesContent":["import React from 'react';\n// import { ActivityIndicator } from 'react-native';\nimport type { ButtonProps } from './button';\nimport { Button } from './button';\nimport { Text } from './text';\nimport { HStack } from './stack';\n\ninterface LoadingButtonProps extends ButtonProps {\n isLoading?: boolean;\n loadingText?: string;\n children: React.ReactNode;\n}\n\nexport function LoadingButton({\n isLoading = false,\n loadingText,\n children,\n disabled,\n ...props\n}: LoadingButtonProps) {\n return (\n <Button disabled={disabled || isLoading} {...props}>\n {isLoading ? (\n <HStack className=\"items-center gap-x-2\">\n {/*<ActivityIndicator*/}\n {/* size=\"small\"*/}\n {/* color={props.variant === 'outline' ? '#6b7280' : '#ffffff'}*/}\n {/*/>*/}\n <Text>{loadingText || 'Loading...'}</Text>\n </HStack>\n ) : (\n children\n )}\n </Button>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,cAAc,EAC5B,YAAY,OACZ,aACA,UACA,UACA,GAAG,SACkB;AACrB,QACE,oBAAC;EAAO,UAAU,YAAY;EAAW,GAAI;YAC1C,YACC,oBAAC;GAAO,WAAU;aAKhB,oBAAC,kBAAM,eAAe,eAAoB;IACnC,GAET;GAEK"}
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactNode } from "react";
2
- import * as react_jsx_runtime42 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime251 from "react/jsx-runtime";
3
3
  import { MapRef } from "react-map-gl/maplibre";
4
4
 
5
5
  //#region ui/map/MapBase.d.ts
@@ -23,7 +23,7 @@ interface MapBaseProps {
23
23
  onMapRef?: (ref: MapRef | null) => void;
24
24
  children?: ReactNode;
25
25
  }
26
- declare function MapBase(props: MapBaseProps): react_jsx_runtime42.JSX.Element;
26
+ declare function MapBase(props: MapBaseProps): react_jsx_runtime251.JSX.Element;
27
27
  //#endregion
28
28
  export { BBox, MapBase, MapBase as default, MapBaseProps };
29
29
  //# sourceMappingURL=MapBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapBase.d.ts","names":[],"sources":["../../../ui/map/MapBase.tsx"],"sourcesContent":[],"mappings":";;;;;UAaiB,IAAA;;;EAAA,MAAA,EAAI,MAAA;EAOJ,MAAA,EAAA,MAAA;;AAMI,UANJ,YAAA,CAMI;EACF,gBAAA,CAAA,EAAA;IACN,SAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAGN,IAAA,EAAO,MAAA;;;UARb;;;qBAGW;mBACF;aACN;;iBAGG,OAAA,QAAe,eAAY,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"MapBase.d.ts","names":[],"sources":["../../../ui/map/MapBase.tsx"],"sourcesContent":[],"mappings":";;;;;UAaiB,IAAA;;;EAAA,MAAA,EAAI,MAAA;EAOJ,MAAA,EAAA,MAAA;;AAMI,UANJ,YAAA,CAMI;EACF,gBAAA,CAAA,EAAA;IACN,SAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAGN,IAAA,EAAO,MAAA;;;UARb;;;qBAGW;mBACF;aACN;;iBAGG,OAAA,QAAe,eAAY,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import * as React$1 from "react";
5
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
5
  import Map, { NavigationControl, ScaleControl } from "react-map-gl/maplibre";
@@ -1 +1 @@
1
- {"version":3,"file":"MapBase.js","names":["React"],"sources":["../../../ui/map/MapBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport Map, {\n type MapRef,\n NavigationControl,\n ScaleControl,\n} from 'react-map-gl/maplibre';\n\nconst DEFAULT_STYLE =\n 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json';\n\nexport interface BBox {\n minLng: number;\n minLat: number;\n maxLng: number;\n maxLat: number;\n}\n\nexport interface MapBaseProps {\n initialViewState?: { longitude: number; latitude: number; zoom: number };\n styleUrl?: string;\n style?: CSSProperties;\n showControls?: boolean;\n showCssLink?: boolean;\n onMoveEnd?: (bbox: BBox) => void;\n onMapRef?: (ref: MapRef | null) => void;\n children?: ReactNode;\n}\n\nexport function MapBase(props: MapBaseProps) {\n const {\n initialViewState = { longitude: 2.3522, latitude: 48.8566, zoom: 5 },\n styleUrl = DEFAULT_STYLE,\n style,\n showControls = true,\n showCssLink = true,\n onMoveEnd,\n onMapRef,\n children,\n } = props;\n\n const mapRef = React.useRef<MapRef | null>(null);\n\n React.useEffect(() => {\n onMapRef?.(mapRef.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapRef.current]);\n\n // const handleMoveEnd = React.useCallback(() => {\n // if (!onMoveEnd) return;\n // const b = mapRef.current?.getBounds();\n // if (!b) return;\n // // maplibre-gl bounds → [[minLng,minLat],[maxLng,maxLat]]\n // const arr = (b as any).toArray?.() as [number, number][] | undefined;\n // if (!arr || arr.length < 2) return;\n // const [sw, ne] = arr;\n // onMoveEnd({ minLng: sw[0], minLat: sw[1], maxLng: ne[0], maxLat: ne[1] });\n // }, [onMoveEnd]);\n\n return (\n <div\n style={{\n position: 'relative',\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n >\n {showCssLink && (\n <link\n href=\"https://unpkg.com/maplibre-gl@4.7.0/dist/maplibre-gl.css\"\n rel=\"stylesheet\"\n />\n )}\n <Map\n ref={mapRef}\n mapLib={import('maplibre-gl') as unknown as any}\n initialViewState={initialViewState}\n style={{ width: '100%', height: '100%' }}\n mapStyle={styleUrl}\n // onMoveEnd={handleMoveEnd}\n maplibreLogo={false}\n >\n {showControls && (\n <>\n <ScaleControl position=\"bottom-left\" />\n <NavigationControl position=\"bottom-left\" />\n </>\n )}\n {children}\n </Map>\n </div>\n );\n}\n\nexport default MapBase;\n"],"mappings":";;;;;;;;AAUA,MAAM,gBACJ;AAoBF,SAAgB,QAAQ,OAAqB;CAC3C,MAAM,EACJ,mBAAmB;EAAE,WAAW;EAAQ,UAAU;EAAS,MAAM;EAAG,EACpE,WAAW,eACX,OACA,eAAe,MACf,cAAc,MACd,WACA,UACA,aACE;CAEJ,MAAM,SAASA,QAAM,OAAsB,KAAK;AAEhD,SAAM,gBAAgB;AACpB,aAAW,OAAO,QAAQ;IAEzB,CAAC,OAAO,QAAQ,CAAC;AAapB,QACE,qBAAC;EACC,OAAO;GACL,UAAU;GACV,OAAO;GACP,QAAQ;GACR,GAAI,SAAS,EAAE;GAChB;aAEA,eACC,oBAAC;GACC,MAAK;GACL,KAAI;IACJ,EAEJ,qBAAC;GACC,KAAK;GACL,QAAQ,OAAO;GACG;GAClB,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,UAAU;GAEV,cAAc;cAEb,gBACC,4CACE,oBAAC,gBAAa,UAAS,gBAAgB,EACvC,oBAAC,qBAAkB,UAAS,gBAAgB,IAC3C,EAEJ;IACG;GACF;;AAIV,sBAAe"}
1
+ {"version":3,"file":"MapBase.js","names":["React"],"sources":["../../../ui/map/MapBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport Map, {\n type MapRef,\n NavigationControl,\n ScaleControl,\n} from 'react-map-gl/maplibre';\n\nconst DEFAULT_STYLE =\n 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json';\n\nexport interface BBox {\n minLng: number;\n minLat: number;\n maxLng: number;\n maxLat: number;\n}\n\nexport interface MapBaseProps {\n initialViewState?: { longitude: number; latitude: number; zoom: number };\n styleUrl?: string;\n style?: CSSProperties;\n showControls?: boolean;\n showCssLink?: boolean;\n onMoveEnd?: (bbox: BBox) => void;\n onMapRef?: (ref: MapRef | null) => void;\n children?: ReactNode;\n}\n\nexport function MapBase(props: MapBaseProps) {\n const {\n initialViewState = { longitude: 2.3522, latitude: 48.8566, zoom: 5 },\n styleUrl = DEFAULT_STYLE,\n style,\n showControls = true,\n showCssLink = true,\n onMoveEnd,\n onMapRef,\n children,\n } = props;\n\n const mapRef = React.useRef<MapRef | null>(null);\n\n React.useEffect(() => {\n onMapRef?.(mapRef.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapRef.current]);\n\n // const handleMoveEnd = React.useCallback(() => {\n // if (!onMoveEnd) return;\n // const b = mapRef.current?.getBounds();\n // if (!b) return;\n // // maplibre-gl bounds → [[minLng,minLat],[maxLng,maxLat]]\n // const arr = (b as any).toArray?.() as [number, number][] | undefined;\n // if (!arr || arr.length < 2) return;\n // const [sw, ne] = arr;\n // onMoveEnd({ minLng: sw[0], minLat: sw[1], maxLng: ne[0], maxLat: ne[1] });\n // }, [onMoveEnd]);\n\n return (\n <div\n style={{\n position: 'relative',\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n >\n {showCssLink && (\n <link\n href=\"https://unpkg.com/maplibre-gl@4.7.0/dist/maplibre-gl.css\"\n rel=\"stylesheet\"\n />\n )}\n <Map\n ref={mapRef}\n mapLib={import('maplibre-gl') as unknown as any}\n initialViewState={initialViewState}\n style={{ width: '100%', height: '100%' }}\n mapStyle={styleUrl}\n // onMoveEnd={handleMoveEnd}\n maplibreLogo={false}\n >\n {showControls && (\n <>\n <ScaleControl position=\"bottom-left\" />\n <NavigationControl position=\"bottom-left\" />\n </>\n )}\n {children}\n </Map>\n </div>\n );\n}\n\nexport default MapBase;\n"],"mappings":";;;;;;;AAUA,MAAM,gBACJ;AAoBF,SAAgB,QAAQ,OAAqB;CAC3C,MAAM,EACJ,mBAAmB;EAAE,WAAW;EAAQ,UAAU;EAAS,MAAM;EAAG,EACpE,WAAW,eACX,OACA,eAAe,MACf,cAAc,MACd,WACA,UACA,aACE;CAEJ,MAAM,SAASA,QAAM,OAAsB,KAAK;AAEhD,SAAM,gBAAgB;AACpB,aAAW,OAAO,QAAQ;IAEzB,CAAC,OAAO,QAAQ,CAAC;AAapB,QACE,qBAAC;EACC,OAAO;GACL,UAAU;GACV,OAAO;GACP,QAAQ;GACR,GAAI,SAAS,EAAE;GAChB;aAEA,eACC,oBAAC;GACC,MAAK;GACL,KAAI;IACJ,EAEJ,qBAAC;GACC,KAAK;GACL,QAAQ,OAAO;GACG;GAClB,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,UAAU;GAEV,cAAc;cAEb,gBACC,4CACE,oBAAC,gBAAa,UAAS,gBAAgB,EACvC,oBAAC,qBAAkB,UAAS,gBAAgB,IAC3C,EAEJ;IACG;GACF;;AAIV,sBAAe"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime43 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime185 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/map/MapGeoJsonOverlay.d.ts
4
4
  interface GeoJsonOverlayProps {
@@ -10,7 +10,7 @@ interface GeoJsonOverlayProps {
10
10
  lineWidth?: number;
11
11
  lineOpacity?: number;
12
12
  }
13
- declare function MapGeoJsonOverlay(props: GeoJsonOverlayProps): react_jsx_runtime43.JSX.Element;
13
+ declare function MapGeoJsonOverlay(props: GeoJsonOverlayProps): react_jsx_runtime185.JSX.Element;
14
14
  //#endregion
15
15
  export { GeoJsonOverlayProps, MapGeoJsonOverlay, MapGeoJsonOverlay as default };
16
16
  //# sourceMappingURL=MapGeoJsonOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapGeoJsonOverlay.d.ts","names":[],"sources":["../../../ui/map/MapGeoJsonOverlay.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;;QAET,OAAA,CAAQ;EAFC,SAAA,CAAA,EAAA,MAAA;EAUD,WAAA,CAAA,EAAA,MAAiB;;;;;iBAAjB,iBAAA,QAAyB,sBAAmB,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"MapGeoJsonOverlay.d.ts","names":[],"sources":["../../../ui/map/MapGeoJsonOverlay.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;;QAET,OAAA,CAAQ;EAFC,SAAA,CAAA,EAAA,MAAA;EAUD,WAAA,CAAA,EAAA,MAAiB;;;;;iBAAjB,iBAAA,QAAyB,sBAAmB,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import "react";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
5
  import { Layer, Source } from "react-map-gl/maplibre";
@@ -1 +1 @@
1
- {"version":3,"file":"MapGeoJsonOverlay.js","names":["fillLayer: any","outlineLayer: any"],"sources":["../../../ui/map/MapGeoJsonOverlay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Layer, Source } from 'react-map-gl/maplibre';\n\nexport interface GeoJsonOverlayProps {\n id?: string;\n data: GeoJSON.FeatureCollection;\n fillColor?: string;\n fillOpacity?: number;\n lineColor?: string;\n lineWidth?: number;\n lineOpacity?: number;\n}\n\nexport function MapGeoJsonOverlay(props: GeoJsonOverlayProps) {\n const {\n id = 'geojson-overlay',\n data,\n fillColor = '#2563eb',\n fillOpacity = 0.25,\n lineColor = '#1e40af',\n lineWidth = 1.5,\n lineOpacity = 0.8,\n } = props;\n\n const fillLayer: any = {\n id: `${id}-fill`,\n type: 'fill',\n paint: {\n 'fill-color': fillColor,\n 'fill-opacity': fillOpacity,\n },\n };\n\n const outlineLayer: any = {\n id: `${id}-outline`,\n type: 'line',\n paint: {\n 'line-color': lineColor,\n 'line-width': lineWidth,\n 'line-opacity': lineOpacity,\n },\n };\n\n return (\n <Source id={id} type=\"geojson\" data={data as any}>\n <Layer {...fillLayer} />\n <Layer {...outlineLayer} />\n </Source>\n );\n}\n\nexport default MapGeoJsonOverlay;\n"],"mappings":";;;;;;;;AAeA,SAAgB,kBAAkB,OAA4B;CAC5D,MAAM,EACJ,KAAK,mBACL,MACA,YAAY,WACZ,cAAc,KACd,YAAY,WACZ,YAAY,KACZ,cAAc,OACZ;CAEJ,MAAMA,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,gBAAgB;GACjB;EACF;CAED,MAAMC,eAAoB;EACxB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,cAAc;GACd,gBAAgB;GACjB;EACF;AAED,QACE,qBAAC;EAAW;EAAI,MAAK;EAAgB;aACnC,oBAAC,SAAM,GAAI,YAAa,EACxB,oBAAC,SAAM,GAAI,eAAgB;GACpB;;AAIb,gCAAe"}
1
+ {"version":3,"file":"MapGeoJsonOverlay.js","names":["fillLayer: any","outlineLayer: any"],"sources":["../../../ui/map/MapGeoJsonOverlay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Layer, Source } from 'react-map-gl/maplibre';\n\nexport interface GeoJsonOverlayProps {\n id?: string;\n data: GeoJSON.FeatureCollection;\n fillColor?: string;\n fillOpacity?: number;\n lineColor?: string;\n lineWidth?: number;\n lineOpacity?: number;\n}\n\nexport function MapGeoJsonOverlay(props: GeoJsonOverlayProps) {\n const {\n id = 'geojson-overlay',\n data,\n fillColor = '#2563eb',\n fillOpacity = 0.25,\n lineColor = '#1e40af',\n lineWidth = 1.5,\n lineOpacity = 0.8,\n } = props;\n\n const fillLayer: any = {\n id: `${id}-fill`,\n type: 'fill',\n paint: {\n 'fill-color': fillColor,\n 'fill-opacity': fillOpacity,\n },\n };\n\n const outlineLayer: any = {\n id: `${id}-outline`,\n type: 'line',\n paint: {\n 'line-color': lineColor,\n 'line-width': lineWidth,\n 'line-opacity': lineOpacity,\n },\n };\n\n return (\n <Source id={id} type=\"geojson\" data={data as any}>\n <Layer {...fillLayer} />\n <Layer {...outlineLayer} />\n </Source>\n );\n}\n\nexport default MapGeoJsonOverlay;\n"],"mappings":";;;;;;;AAeA,SAAgB,kBAAkB,OAA4B;CAC5D,MAAM,EACJ,KAAK,mBACL,MACA,YAAY,WACZ,cAAc,KACd,YAAY,WACZ,YAAY,KACZ,cAAc,OACZ;CAEJ,MAAMA,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,gBAAgB;GACjB;EACF;CAED,MAAMC,eAAoB;EACxB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,cAAc;GACd,gBAAgB;GACjB;EACF;AAED,QACE,qBAAC;EAAW;EAAI,MAAK;EAAgB;aACnC,oBAAC,SAAM,GAAI,YAAa,EACxB,oBAAC,SAAM,GAAI,eAAgB;GACpB;;AAIb,gCAAe"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime44 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime247 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/map/MapHeatmapH3.d.ts
4
4
  interface H3FeatureProperties {
@@ -12,7 +12,7 @@ interface H3HeatmapProps {
12
12
  colorStops?: [number, string][];
13
13
  maxCount?: number;
14
14
  }
15
- declare function MapHeatmapH3(props: H3HeatmapProps): react_jsx_runtime44.JSX.Element;
15
+ declare function MapHeatmapH3(props: H3HeatmapProps): react_jsx_runtime247.JSX.Element;
16
16
  //#endregion
17
17
  export { H3FeatureProperties, H3HeatmapProps, MapHeatmapH3, MapHeatmapH3 as default };
18
18
  //# sourceMappingURL=MapHeatmapH3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapHeatmapH3.d.ts","names":[],"sources":["../../../ui/map/MapHeatmapH3.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;;;EAAA,KAAA,EAAA,MAAA;AAMjB;AAGI,UAHa,cAAA,CAGL;EAAU,EAAA,CAAA,EAAQ,MAAA;EAC1B,IAAA,EAFI,OAAA,CAAQ,iBAEZ,CADA,OAAA,CAAQ,OACR,GADkB,OAAA,CAAQ,YAC1B,EAAA,mBAAA,CAAA;EAFI,UAAQ,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA;EAAiB,QAAA,CAAA,EAAA,MAAA;AAwBjC;iBAAgB,YAAA,QAAoB,iBAAc,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"MapHeatmapH3.d.ts","names":[],"sources":["../../../ui/map/MapHeatmapH3.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;;;EAAA,KAAA,EAAA,MAAA;AAMjB;AAGI,UAHa,cAAA,CAGL;EAAU,EAAA,CAAA,EAAQ,MAAA;EAC1B,IAAA,EAFI,OAAA,CAAQ,iBAEZ,CADA,OAAA,CAAQ,OACR,GADkB,OAAA,CAAQ,YAC1B,EAAA,mBAAA,CAAA;EAFI,UAAQ,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA;EAAiB,QAAA,CAAA,EAAA,MAAA;AAwBjC;iBAAgB,YAAA,QAAoB,iBAAc,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import "react";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
5
  import { Layer, Source } from "react-map-gl/maplibre";
@@ -1 +1 @@
1
- {"version":3,"file":"MapHeatmapH3.js","names":["fillLayer: any","lineLayer: any"],"sources":["../../../ui/map/MapHeatmapH3.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Layer, Source } from 'react-map-gl/maplibre';\n\nexport interface H3FeatureProperties {\n id: string;\n h3Index?: string;\n count: number;\n}\n\nexport interface H3HeatmapProps {\n id?: string;\n data: GeoJSON.FeatureCollection<\n GeoJSON.Polygon | GeoJSON.MultiPolygon,\n H3FeatureProperties\n >;\n colorStops?: [number, string][]; // [count, color]\n maxCount?: number; // for normalization\n}\n\nfunction buildChoroplethPaint(\n stops: [number, string][],\n maxCount: number | undefined\n) {\n const scaleStops = (stops || []).map(([c, col]) => [c, col]);\n return {\n 'fill-color': [\n 'interpolate',\n ['linear'],\n ['get', 'count'],\n ...scaleStops.flat(),\n ],\n 'fill-opacity': 0.6,\n } as const;\n}\n\nexport function MapHeatmapH3(props: H3HeatmapProps) {\n const {\n id = 'h3-heatmap',\n data,\n colorStops = [\n [0, '#22c55e'],\n [5, '#eab308'],\n [10, '#ef4444'],\n ],\n maxCount,\n } = props;\n\n const fillLayer: any = {\n id: `${id}-fill`,\n type: 'fill',\n paint: buildChoroplethPaint(colorStops, maxCount),\n };\n\n const lineLayer: any = {\n id: `${id}-outline`,\n type: 'line',\n paint: {\n 'line-color': '#ffffff',\n 'line-width': 0.25,\n 'line-opacity': 0.25,\n },\n };\n\n return (\n <Source id={id} type=\"geojson\" data={data as any}>\n <Layer {...fillLayer} />\n <Layer {...lineLayer} />\n </Source>\n );\n}\n\nexport default MapHeatmapH3;\n"],"mappings":";;;;;;;;AAqBA,SAAS,qBACP,OACA,UACA;CACA,MAAM,cAAc,SAAS,EAAE,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;AAC5D,QAAO;EACL,cAAc;GACZ;GACA,CAAC,SAAS;GACV,CAAC,OAAO,QAAQ;GAChB,GAAG,WAAW,MAAM;GACrB;EACD,gBAAgB;EACjB;;AAGH,SAAgB,aAAa,OAAuB;CAClD,MAAM,EACJ,KAAK,cACL,MACA,aAAa;EACX,CAAC,GAAG,UAAU;EACd,CAAC,GAAG,UAAU;EACd,CAAC,IAAI,UAAU;EAChB,EACD,aACE;CAEJ,MAAMA,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO,qBAAqB,YAAY,SAAS;EAClD;CAED,MAAMC,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,cAAc;GACd,gBAAgB;GACjB;EACF;AAED,QACE,qBAAC;EAAW;EAAI,MAAK;EAAgB;aACnC,oBAAC,SAAM,GAAI,YAAa,EACxB,oBAAC,SAAM,GAAI,YAAa;GACjB;;AAIb,2BAAe"}
1
+ {"version":3,"file":"MapHeatmapH3.js","names":["fillLayer: any","lineLayer: any"],"sources":["../../../ui/map/MapHeatmapH3.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Layer, Source } from 'react-map-gl/maplibre';\n\nexport interface H3FeatureProperties {\n id: string;\n h3Index?: string;\n count: number;\n}\n\nexport interface H3HeatmapProps {\n id?: string;\n data: GeoJSON.FeatureCollection<\n GeoJSON.Polygon | GeoJSON.MultiPolygon,\n H3FeatureProperties\n >;\n colorStops?: [number, string][]; // [count, color]\n maxCount?: number; // for normalization\n}\n\nfunction buildChoroplethPaint(\n stops: [number, string][],\n maxCount: number | undefined\n) {\n const scaleStops = (stops || []).map(([c, col]) => [c, col]);\n return {\n 'fill-color': [\n 'interpolate',\n ['linear'],\n ['get', 'count'],\n ...scaleStops.flat(),\n ],\n 'fill-opacity': 0.6,\n } as const;\n}\n\nexport function MapHeatmapH3(props: H3HeatmapProps) {\n const {\n id = 'h3-heatmap',\n data,\n colorStops = [\n [0, '#22c55e'],\n [5, '#eab308'],\n [10, '#ef4444'],\n ],\n maxCount,\n } = props;\n\n const fillLayer: any = {\n id: `${id}-fill`,\n type: 'fill',\n paint: buildChoroplethPaint(colorStops, maxCount),\n };\n\n const lineLayer: any = {\n id: `${id}-outline`,\n type: 'line',\n paint: {\n 'line-color': '#ffffff',\n 'line-width': 0.25,\n 'line-opacity': 0.25,\n },\n };\n\n return (\n <Source id={id} type=\"geojson\" data={data as any}>\n <Layer {...fillLayer} />\n <Layer {...lineLayer} />\n </Source>\n );\n}\n\nexport default MapHeatmapH3;\n"],"mappings":";;;;;;;AAqBA,SAAS,qBACP,OACA,UACA;CACA,MAAM,cAAc,SAAS,EAAE,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;AAC5D,QAAO;EACL,cAAc;GACZ;GACA,CAAC,SAAS;GACV,CAAC,OAAO,QAAQ;GAChB,GAAG,WAAW,MAAM;GACrB;EACD,gBAAgB;EACjB;;AAGH,SAAgB,aAAa,OAAuB;CAClD,MAAM,EACJ,KAAK,cACL,MACA,aAAa;EACX,CAAC,GAAG,UAAU;EACd,CAAC,GAAG,UAAU;EACd,CAAC,IAAI,UAAU;EAChB,EACD,aACE;CAEJ,MAAMA,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO,qBAAqB,YAAY,SAAS;EAClD;CAED,MAAMC,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,cAAc;GACd,gBAAgB;GACjB;EACF;AAED,QACE,qBAAC;EAAW;EAAI,MAAK;EAAgB;aACnC,oBAAC,SAAM,GAAI,YAAa,EACxB,oBAAC,SAAM,GAAI,YAAa;GACjB;;AAIb,2BAAe"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime39 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime246 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/map/MapMarkers.d.ts
4
4
  interface MapPoint {
@@ -14,7 +14,7 @@ declare function MapMarkers({
14
14
  points
15
15
  }: {
16
16
  points: MapPoint[];
17
- }): react_jsx_runtime39.JSX.Element;
17
+ }): react_jsx_runtime246.JSX.Element;
18
18
  //#endregion
19
19
  export { MapMarkers, MapMarkers as default, MapPoint };
20
20
  //# sourceMappingURL=MapMarkers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapMarkers.d.ts","names":[],"sources":["../../../ui/map/MapMarkers.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,QAAA;;;EAAA,GAAA,EAAA,MAAQ;EAUT,KAAA,CAAA,EAAA,MAAU;EAAG,IAAA,CAAA,EAAA,MAAA;EAAoB,SAAA,CAAA,EAAA,MAAA;EAAY,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;iBAA7C,UAAA;;;UAAiC;IAAY,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"MapMarkers.d.ts","names":[],"sources":["../../../ui/map/MapMarkers.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,QAAA;;;EAAA,GAAA,EAAA,MAAQ;EAUT,KAAA,CAAA,EAAA,MAAU;EAAG,IAAA,CAAA,EAAA,MAAA;EAAoB,SAAA,CAAA,EAAA,MAAA;EAAY,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;iBAA7C,UAAA;;;UAAiC;IAAY,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import "react";
5
4
  import { Fragment, jsx } from "react/jsx-runtime";
6
5
  import { Marker } from "react-map-gl/maplibre";
@@ -1 +1 @@
1
- {"version":3,"file":"MapMarkers.js","names":[],"sources":["../../../ui/map/MapMarkers.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Marker } from 'react-map-gl/maplibre';\n\nexport interface MapPoint {\n id: string;\n lng: number;\n lat: number;\n color?: string;\n size?: number;\n ariaLabel?: string;\n onClick?: () => void;\n}\n\nexport function MapMarkers({ points }: { points: MapPoint[] }) {\n return (\n <>\n {points.map((p) => (\n <Marker key={p.id} longitude={p.lng} latitude={p.lat} anchor=\"bottom\">\n <div\n role={p.onClick ? 'button' : undefined}\n tabIndex={p.onClick ? 0 : -1}\n aria-label={p.ariaLabel || 'marker'}\n onClick={p.onClick}\n style={{\n width: p.size ?? 14,\n height: p.size ?? 14,\n background: p.color ?? '#2563eb',\n border: '2px solid white',\n borderRadius: 9999,\n boxShadow: '0 1px 3px rgba(0,0,0,0.35)',\n cursor: p.onClick ? 'pointer' : 'default',\n }}\n />\n </Marker>\n ))}\n </>\n );\n}\n\nexport default MapMarkers;\n"],"mappings":";;;;;;;;AAeA,SAAgB,WAAW,EAAE,UAAkC;AAC7D,QACE,0CACG,OAAO,KAAK,MACX,oBAAC;EAAkB,WAAW,EAAE;EAAK,UAAU,EAAE;EAAK,QAAO;YAC3D,oBAAC;GACC,MAAM,EAAE,UAAU,WAAW;GAC7B,UAAU,EAAE,UAAU,IAAI;GAC1B,cAAY,EAAE,aAAa;GAC3B,SAAS,EAAE;GACX,OAAO;IACL,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,SAAS;IACvB,QAAQ;IACR,cAAc;IACd,WAAW;IACX,QAAQ,EAAE,UAAU,YAAY;IACjC;IACD;IAfS,EAAE,GAgBN,CACT,GACD;;AAIP,yBAAe"}
1
+ {"version":3,"file":"MapMarkers.js","names":[],"sources":["../../../ui/map/MapMarkers.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Marker } from 'react-map-gl/maplibre';\n\nexport interface MapPoint {\n id: string;\n lng: number;\n lat: number;\n color?: string;\n size?: number;\n ariaLabel?: string;\n onClick?: () => void;\n}\n\nexport function MapMarkers({ points }: { points: MapPoint[] }) {\n return (\n <>\n {points.map((p) => (\n <Marker key={p.id} longitude={p.lng} latitude={p.lat} anchor=\"bottom\">\n <div\n role={p.onClick ? 'button' : undefined}\n tabIndex={p.onClick ? 0 : -1}\n aria-label={p.ariaLabel || 'marker'}\n onClick={p.onClick}\n style={{\n width: p.size ?? 14,\n height: p.size ?? 14,\n background: p.color ?? '#2563eb',\n border: '2px solid white',\n borderRadius: 9999,\n boxShadow: '0 1px 3px rgba(0,0,0,0.35)',\n cursor: p.onClick ? 'pointer' : 'default',\n }}\n />\n </Marker>\n ))}\n </>\n );\n}\n\nexport default MapMarkers;\n"],"mappings":";;;;;;;AAeA,SAAgB,WAAW,EAAE,UAAkC;AAC7D,QACE,0CACG,OAAO,KAAK,MACX,oBAAC;EAAkB,WAAW,EAAE;EAAK,UAAU,EAAE;EAAK,QAAO;YAC3D,oBAAC;GACC,MAAM,EAAE,UAAU,WAAW;GAC7B,UAAU,EAAE,UAAU,IAAI;GAC1B,cAAY,EAAE,aAAa;GAC3B,SAAS,EAAE;GACX,OAAO;IACL,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,SAAS;IACvB,QAAQ;IACR,cAAc;IACd,WAAW;IACX,QAAQ,EAAE,UAAU,YAAY;IACjC;IACD;IAfS,EAAE,GAgBN,CACT,GACD;;AAIP,yBAAe"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime37 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime252 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/marketing/FeatureGrid.d.ts
5
5
  interface FeatureItem {
@@ -15,7 +15,7 @@ declare function FeatureGrid({
15
15
  items: FeatureItem[];
16
16
  columns?: 2 | 3 | 4;
17
17
  className?: string;
18
- }): react_jsx_runtime37.JSX.Element;
18
+ }): react_jsx_runtime252.JSX.Element;
19
19
  //#endregion
20
20
  export { FeatureGrid, FeatureItem };
21
21
  //# sourceMappingURL=FeatureGrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureGrid.d.ts","names":[],"sources":["../../../ui/marketing/FeatureGrid.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB,WAAA;SACR,OAAA,CAAM;gBACC,OAAA,CAAM;EAFL,IAAA,CAAA,EAGR,OAAA,CAAM,SAHa;;AAEZ,iBAIA,WAAA,CAJM;EAAA,KAAA;EAAA,OAAA;EAAA;CAAA,EAAA;EACb,KAAM,EAQN,WARM,EAAA;EAAS,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,CAAA;EAGR,SAAA,CAAA,EAAA,MAAW;CACzB,CAAA,EAOD,mBAAA,CAAA,GAAA,CAAA,OAPC"}
1
+ {"version":3,"file":"FeatureGrid.d.ts","names":[],"sources":["../../../ui/marketing/FeatureGrid.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB,WAAA;SACR,OAAA,CAAM;gBACC,OAAA,CAAM;EAFL,IAAA,CAAA,EAGR,OAAA,CAAM,SAHa;;AAEZ,iBAIA,WAAA,CAJM;EAAA,KAAA;EAAA,OAAA;EAAA;CAAA,EAAA;EACb,KAAM,EAQN,WARM,EAAA;EAAS,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,CAAA;EAGR,SAAA,CAAA,EAAA,MAAW;CACzB,CAAA,EAOD,oBAAA,CAAA,GAAA,CAAA,OAPC"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime41 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime248 from "react/jsx-runtime";
3
3
 
4
4
  //#region ui/marketing/Hero.d.ts
5
5
  declare function Hero({
@@ -22,7 +22,7 @@ declare function Hero({
22
22
  onClick?: () => void;
23
23
  };
24
24
  className?: string;
25
- }): react_jsx_runtime41.JSX.Element;
25
+ }): react_jsx_runtime248.JSX.Element;
26
26
  //#endregion
27
27
  export { Hero };
28
28
  //# sourceMappingURL=Hero.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hero.d.ts","names":[],"sources":["../../../ui/marketing/Hero.tsx"],"sourcesContent":[],"mappings":";;;;iBAIgB,IAAA;;;;;;;SAOP,OAAA,CAAM;aACF,OAAA,CAAM;EARH,UAAI,CAAA,EAAA;IAClB,KAAA,EAAA,MAAA;IACA,IAAA,CAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA;IAEO,KAAM,EAAA,MAAA;IACF,IAAM,CAAA,EAAA,MAAA;IAIlB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;IAAA,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"Hero.d.ts","names":[],"sources":["../../../ui/marketing/Hero.tsx"],"sourcesContent":[],"mappings":";;;;iBAIgB,IAAA;;;;;;;SAOP,OAAA,CAAM;aACF,OAAA,CAAM;EARH,UAAI,CAAA,EAAA;IAClB,KAAA,EAAA,MAAA;IACA,IAAA,CAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA;IAEO,KAAM,EAAA,MAAA;IACF,IAAM,CAAA,EAAA,MAAA;IAIlB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;IAAA,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime38 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime253 from "react/jsx-runtime";
2
2
 
3
3
  //#region ui/marketing/PricingTable.d.ts
4
4
  interface PricingTier {
@@ -19,7 +19,7 @@ declare function PricingTable({
19
19
  }: {
20
20
  tiers: PricingTier[];
21
21
  className?: string;
22
- }): react_jsx_runtime38.JSX.Element;
22
+ }): react_jsx_runtime253.JSX.Element;
23
23
  //#endregion
24
24
  export { PricingTable, PricingTier };
25
25
  //# sourceMappingURL=PricingTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PricingTable.d.ts","names":[],"sources":["../../../ui/marketing/PricingTable.tsx"],"sourcesContent":[],"mappings":";;;UAIiB,WAAA;;;EAAA,OAAA,CAAA,EAAA,MAAW;EASZ,QAAA,EAAA,MAAY,EAAA;EAC1B,GAAA,CAAA,EAAA;IACA,KAAA,EAAA,MAAA;IAEO,IAAA,CAAA,EAAA,MAAA;IAER,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;;iBANe,YAAA;;;;SAIP;;IAER,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"PricingTable.d.ts","names":[],"sources":["../../../ui/marketing/PricingTable.tsx"],"sourcesContent":[],"mappings":";;;UAIiB,WAAA;;;EAAA,OAAA,CAAA,EAAA,MAAW;EASZ,QAAA,EAAA,MAAY,EAAA;EAC1B,GAAA,CAAA,EAAA;IACA,KAAA,EAAA,MAAA;IAEO,IAAA,CAAA,EAAA,MAAA;IAER,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;;iBANe,YAAA;;;;SAIP;;IAER,oBAAA,CAAA,GAAA,CAAA"}
@@ -1,35 +1,35 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime170 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime105 from "react/jsx-runtime";
3
3
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
4
4
 
5
5
  //#region ui/menubar.d.ts
6
6
  declare function Menubar({
7
7
  className,
8
8
  ...props
9
- }: React$1.ComponentProps<typeof MenubarPrimitive.Root>): react_jsx_runtime170.JSX.Element;
9
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Root>): react_jsx_runtime105.JSX.Element;
10
10
  declare function MenubarMenu({
11
11
  ...props
12
- }: React$1.ComponentProps<typeof MenubarPrimitive.Menu>): react_jsx_runtime170.JSX.Element;
12
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Menu>): react_jsx_runtime105.JSX.Element;
13
13
  declare function MenubarGroup({
14
14
  ...props
15
- }: React$1.ComponentProps<typeof MenubarPrimitive.Group>): react_jsx_runtime170.JSX.Element;
15
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Group>): react_jsx_runtime105.JSX.Element;
16
16
  declare function MenubarPortal({
17
17
  ...props
18
- }: React$1.ComponentProps<typeof MenubarPrimitive.Portal>): react_jsx_runtime170.JSX.Element;
18
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Portal>): react_jsx_runtime105.JSX.Element;
19
19
  declare function MenubarRadioGroup({
20
20
  ...props
21
- }: React$1.ComponentProps<typeof MenubarPrimitive.RadioGroup>): react_jsx_runtime170.JSX.Element;
21
+ }: React$1.ComponentProps<typeof MenubarPrimitive.RadioGroup>): react_jsx_runtime105.JSX.Element;
22
22
  declare function MenubarTrigger({
23
23
  className,
24
24
  ...props
25
- }: React$1.ComponentProps<typeof MenubarPrimitive.Trigger>): react_jsx_runtime170.JSX.Element;
25
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Trigger>): react_jsx_runtime105.JSX.Element;
26
26
  declare function MenubarContent({
27
27
  className,
28
28
  align,
29
29
  alignOffset,
30
30
  sideOffset,
31
31
  ...props
32
- }: React$1.ComponentProps<typeof MenubarPrimitive.Content>): react_jsx_runtime170.JSX.Element;
32
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Content>): react_jsx_runtime105.JSX.Element;
33
33
  declare function MenubarItem({
34
34
  className,
35
35
  inset,
@@ -38,36 +38,36 @@ declare function MenubarItem({
38
38
  }: React$1.ComponentProps<typeof MenubarPrimitive.Item> & {
39
39
  inset?: boolean;
40
40
  variant?: 'default' | 'destructive';
41
- }): react_jsx_runtime170.JSX.Element;
41
+ }): react_jsx_runtime105.JSX.Element;
42
42
  declare function MenubarCheckboxItem({
43
43
  className,
44
44
  children,
45
45
  checked,
46
46
  ...props
47
- }: React$1.ComponentProps<typeof MenubarPrimitive.CheckboxItem>): react_jsx_runtime170.JSX.Element;
47
+ }: React$1.ComponentProps<typeof MenubarPrimitive.CheckboxItem>): react_jsx_runtime105.JSX.Element;
48
48
  declare function MenubarRadioItem({
49
49
  className,
50
50
  children,
51
51
  ...props
52
- }: React$1.ComponentProps<typeof MenubarPrimitive.RadioItem>): react_jsx_runtime170.JSX.Element;
52
+ }: React$1.ComponentProps<typeof MenubarPrimitive.RadioItem>): react_jsx_runtime105.JSX.Element;
53
53
  declare function MenubarLabel({
54
54
  className,
55
55
  inset,
56
56
  ...props
57
57
  }: React$1.ComponentProps<typeof MenubarPrimitive.Label> & {
58
58
  inset?: boolean;
59
- }): react_jsx_runtime170.JSX.Element;
59
+ }): react_jsx_runtime105.JSX.Element;
60
60
  declare function MenubarSeparator({
61
61
  className,
62
62
  ...props
63
- }: React$1.ComponentProps<typeof MenubarPrimitive.Separator>): react_jsx_runtime170.JSX.Element;
63
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Separator>): react_jsx_runtime105.JSX.Element;
64
64
  declare function MenubarShortcut({
65
65
  className,
66
66
  ...props
67
- }: React$1.ComponentProps<'span'>): react_jsx_runtime170.JSX.Element;
67
+ }: React$1.ComponentProps<'span'>): react_jsx_runtime105.JSX.Element;
68
68
  declare function MenubarSub({
69
69
  ...props
70
- }: React$1.ComponentProps<typeof MenubarPrimitive.Sub>): react_jsx_runtime170.JSX.Element;
70
+ }: React$1.ComponentProps<typeof MenubarPrimitive.Sub>): react_jsx_runtime105.JSX.Element;
71
71
  declare function MenubarSubTrigger({
72
72
  className,
73
73
  inset,
@@ -75,11 +75,11 @@ declare function MenubarSubTrigger({
75
75
  ...props
76
76
  }: React$1.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
77
77
  inset?: boolean;
78
- }): react_jsx_runtime170.JSX.Element;
78
+ }): react_jsx_runtime105.JSX.Element;
79
79
  declare function MenubarSubContent({
80
80
  className,
81
81
  ...props
82
- }: React$1.ComponentProps<typeof MenubarPrimitive.SubContent>): react_jsx_runtime170.JSX.Element;
82
+ }: React$1.ComponentProps<typeof MenubarPrimitive.SubContent>): react_jsx_runtime105.JSX.Element;
83
83
  //#endregion
84
84
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
85
85
  //# sourceMappingURL=menubar.d.ts.map
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
-
4
3
  import { cn } from "./utils.js";
5
4
  import "react";
6
5
  import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
@@ -8,7 +7,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
7
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
9
8
 
10
9
  //#region ui/menubar.tsx
11
- function Menubar({ className,...props }) {
10
+ function Menubar({ className, ...props }) {
12
11
  return /* @__PURE__ */ jsx(MenubarPrimitive.Root, {
13
12
  "data-slot": "menubar",
14
13
  className: cn("bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-2xs", className),
@@ -39,14 +38,14 @@ function MenubarRadioGroup({ ...props }) {
39
38
  ...props
40
39
  });
41
40
  }
42
- function MenubarTrigger({ className,...props }) {
41
+ function MenubarTrigger({ className, ...props }) {
43
42
  return /* @__PURE__ */ jsx(MenubarPrimitive.Trigger, {
44
43
  "data-slot": "menubar-trigger",
45
44
  className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-xs px-2 py-1 text-sm font-medium outline-hidden select-none", className),
46
45
  ...props
47
46
  });
48
47
  }
49
- function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8,...props }) {
48
+ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
50
49
  return /* @__PURE__ */ jsx(MenubarPortal, { children: /* @__PURE__ */ jsx(MenubarPrimitive.Content, {
51
50
  "data-slot": "menubar-content",
52
51
  align,
@@ -56,7 +55,7 @@ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffs
56
55
  ...props
57
56
  }) });
58
57
  }
59
- function MenubarItem({ className, inset, variant = "default",...props }) {
58
+ function MenubarItem({ className, inset, variant = "default", ...props }) {
60
59
  return /* @__PURE__ */ jsx(MenubarPrimitive.Item, {
61
60
  "data-slot": "menubar-item",
62
61
  "data-inset": inset,
@@ -65,7 +64,7 @@ function MenubarItem({ className, inset, variant = "default",...props }) {
65
64
  ...props
66
65
  });
67
66
  }
68
- function MenubarCheckboxItem({ className, children, checked,...props }) {
67
+ function MenubarCheckboxItem({ className, children, checked, ...props }) {
69
68
  return /* @__PURE__ */ jsxs(MenubarPrimitive.CheckboxItem, {
70
69
  "data-slot": "menubar-checkbox-item",
71
70
  className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
@@ -77,7 +76,7 @@ function MenubarCheckboxItem({ className, children, checked,...props }) {
77
76
  }), children]
78
77
  });
79
78
  }
80
- function MenubarRadioItem({ className, children,...props }) {
79
+ function MenubarRadioItem({ className, children, ...props }) {
81
80
  return /* @__PURE__ */ jsxs(MenubarPrimitive.RadioItem, {
82
81
  "data-slot": "menubar-radio-item",
83
82
  className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
@@ -88,7 +87,7 @@ function MenubarRadioItem({ className, children,...props }) {
88
87
  }), children]
89
88
  });
90
89
  }
91
- function MenubarLabel({ className, inset,...props }) {
90
+ function MenubarLabel({ className, inset, ...props }) {
92
91
  return /* @__PURE__ */ jsx(MenubarPrimitive.Label, {
93
92
  "data-slot": "menubar-label",
94
93
  "data-inset": inset,
@@ -96,14 +95,14 @@ function MenubarLabel({ className, inset,...props }) {
96
95
  ...props
97
96
  });
98
97
  }
99
- function MenubarSeparator({ className,...props }) {
98
+ function MenubarSeparator({ className, ...props }) {
100
99
  return /* @__PURE__ */ jsx(MenubarPrimitive.Separator, {
101
100
  "data-slot": "menubar-separator",
102
101
  className: cn("bg-border -mx-1 my-1 h-px", className),
103
102
  ...props
104
103
  });
105
104
  }
106
- function MenubarShortcut({ className,...props }) {
105
+ function MenubarShortcut({ className, ...props }) {
107
106
  return /* @__PURE__ */ jsx("span", {
108
107
  "data-slot": "menubar-shortcut",
109
108
  className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
@@ -116,7 +115,7 @@ function MenubarSub({ ...props }) {
116
115
  ...props
117
116
  });
118
117
  }
119
- function MenubarSubTrigger({ className, inset, children,...props }) {
118
+ function MenubarSubTrigger({ className, inset, children, ...props }) {
120
119
  return /* @__PURE__ */ jsxs(MenubarPrimitive.SubTrigger, {
121
120
  "data-slot": "menubar-sub-trigger",
122
121
  "data-inset": inset,
@@ -125,7 +124,7 @@ function MenubarSubTrigger({ className, inset, children,...props }) {
125
124
  children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto h-4 w-4" })]
126
125
  });
127
126
  }
128
- function MenubarSubContent({ className,...props }) {
127
+ function MenubarSubContent({ className, ...props }) {
129
128
  return /* @__PURE__ */ jsx(MenubarPrimitive.SubContent, {
130
129
  "data-slot": "menubar-sub-content",
131
130
  className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", className),