@nocoo/basalt 2.0.2 → 2.1.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 (300) hide show
  1. package/README.md +134 -15
  2. package/ai/COMPATIBILITY.md +180 -0
  3. package/ai/INTEGRATION.md +1760 -0
  4. package/ai/RECIPES.md +161 -0
  5. package/ai/USAGE.md +99 -0
  6. package/ai/registry.json +38099 -0
  7. package/ai/sources.json +10 -0
  8. package/dist/assets/brand-mark.d.ts +1 -0
  9. package/dist/assets/brand-mark.js +7 -0
  10. package/dist/assets/brand-mark.js.map +1 -0
  11. package/dist/charts/area.d.ts +58 -5
  12. package/dist/charts/area.js +20 -12
  13. package/dist/charts/area.js.map +1 -1
  14. package/dist/charts/bar.d.ts +54 -5
  15. package/dist/charts/bar.js +16 -10
  16. package/dist/charts/bar.js.map +1 -1
  17. package/dist/charts/bullet.d.ts +18 -1
  18. package/dist/charts/bullet.js +6 -3
  19. package/dist/charts/bullet.js.map +1 -1
  20. package/dist/charts/charts.d.ts +58 -5
  21. package/dist/charts/charts.js +13 -2
  22. package/dist/charts/charts.js.map +1 -1
  23. package/dist/charts/config.d.ts +7 -0
  24. package/dist/charts/config.js +5 -1
  25. package/dist/charts/config.js.map +1 -1
  26. package/dist/charts/custom-chart.d.ts +58 -5
  27. package/dist/charts/custom-chart.js +13 -2
  28. package/dist/charts/custom-chart.js.map +1 -1
  29. package/dist/charts/donut.d.ts +18 -1
  30. package/dist/charts/donut.js +6 -3
  31. package/dist/charts/donut.js.map +1 -1
  32. package/dist/charts/frame.d.ts +40 -3
  33. package/dist/charts/frame.js +55 -28
  34. package/dist/charts/frame.js.map +1 -1
  35. package/dist/charts/funnel.d.ts +18 -1
  36. package/dist/charts/funnel.js +5 -1
  37. package/dist/charts/funnel.js.map +1 -1
  38. package/dist/charts/gauge.d.ts +18 -1
  39. package/dist/charts/gauge.js +38 -20
  40. package/dist/charts/gauge.js.map +1 -1
  41. package/dist/charts/grouped-bar.d.ts +54 -5
  42. package/dist/charts/grouped-bar.js +16 -10
  43. package/dist/charts/grouped-bar.js.map +1 -1
  44. package/dist/charts/heatmap-calendar.d.ts +61 -0
  45. package/dist/charts/heatmap-calendar.js +287 -96
  46. package/dist/charts/heatmap-calendar.js.map +1 -1
  47. package/dist/charts/heatmap-matrix.d.ts +99 -0
  48. package/dist/charts/heatmap-matrix.js +249 -0
  49. package/dist/charts/heatmap-matrix.js.map +1 -0
  50. package/dist/charts/line.d.ts +66 -5
  51. package/dist/charts/line.js +37 -30
  52. package/dist/charts/line.js.map +1 -1
  53. package/dist/charts/palette.d.ts +1 -0
  54. package/dist/charts/palette.js +7 -1
  55. package/dist/charts/palette.js.map +1 -1
  56. package/dist/charts/radar.d.ts +18 -1
  57. package/dist/charts/radar.js +26 -19
  58. package/dist/charts/radar.js.map +1 -1
  59. package/dist/charts/sankey.d.ts +18 -1
  60. package/dist/charts/sankey.js +4 -1
  61. package/dist/charts/sankey.js.map +1 -1
  62. package/dist/charts/series.d.ts +5 -7
  63. package/dist/charts/series.js.map +1 -1
  64. package/dist/charts/slot-bar.d.ts +38 -6
  65. package/dist/charts/slot-bar.js +5 -2
  66. package/dist/charts/slot-bar.js.map +1 -1
  67. package/dist/charts/sparkline.d.ts +35 -5
  68. package/dist/charts/sparkline.js +22 -18
  69. package/dist/charts/sparkline.js.map +1 -1
  70. package/dist/charts/stacked-bar.d.ts +58 -5
  71. package/dist/charts/stacked-bar.js +19 -12
  72. package/dist/charts/stacked-bar.js.map +1 -1
  73. package/dist/charts/stat-card.d.ts +51 -1
  74. package/dist/charts/stat-card.js +66 -39
  75. package/dist/charts/stat-card.js.map +1 -1
  76. package/dist/charts/timeline.d.ts +3 -0
  77. package/dist/charts/timeline.js +4 -3
  78. package/dist/charts/timeline.js.map +1 -1
  79. package/dist/charts/timeseries.d.ts +58 -5
  80. package/dist/charts/timeseries.js +13 -2
  81. package/dist/charts/timeseries.js.map +1 -1
  82. package/dist/charts/tooltip.d.ts +57 -0
  83. package/dist/charts/tooltip.js +119 -2
  84. package/dist/charts/tooltip.js.map +1 -1
  85. package/dist/components/accordion.d.ts +117 -2
  86. package/dist/components/accordion.js +20 -13
  87. package/dist/components/accordion.js.map +1 -1
  88. package/dist/components/alert-dialog.d.ts +131 -13
  89. package/dist/components/alert-dialog.js +13 -10
  90. package/dist/components/alert-dialog.js.map +1 -1
  91. package/dist/components/app-header.js +18 -17
  92. package/dist/components/app-header.js.map +1 -1
  93. package/dist/components/app-shell.js +15 -14
  94. package/dist/components/app-shell.js.map +1 -1
  95. package/dist/components/autocomplete.d.ts +4 -0
  96. package/dist/components/autocomplete.js.map +1 -1
  97. package/dist/components/avatar.d.ts +76 -3
  98. package/dist/components/avatar.js.map +1 -1
  99. package/dist/components/badge.d.ts +15 -1
  100. package/dist/components/badge.js +17 -16
  101. package/dist/components/badge.js.map +1 -1
  102. package/dist/components/banner.d.ts +88 -2
  103. package/dist/components/banner.js +41 -40
  104. package/dist/components/banner.js.map +1 -1
  105. package/dist/components/basalt-mark.js +14 -8
  106. package/dist/components/basalt-mark.js.map +1 -1
  107. package/dist/components/battery-meter.d.ts +10 -0
  108. package/dist/components/battery-meter.js +56 -0
  109. package/dist/components/battery-meter.js.map +1 -0
  110. package/dist/components/breadcrumbs.d.ts +27 -7
  111. package/dist/components/breadcrumbs.js +21 -20
  112. package/dist/components/breadcrumbs.js.map +1 -1
  113. package/dist/components/button.d.ts +48 -2
  114. package/dist/components/button.js +87 -36
  115. package/dist/components/button.js.map +1 -1
  116. package/dist/components/chat-bubble.d.ts +24 -0
  117. package/dist/components/chat-bubble.js +26 -0
  118. package/dist/components/chat-bubble.js.map +1 -0
  119. package/dist/components/chat-composer.d.ts +45 -0
  120. package/dist/components/chat-composer.js +74 -0
  121. package/dist/components/chat-composer.js.map +1 -0
  122. package/dist/components/chat-header.d.ts +25 -0
  123. package/dist/components/chat-header.js +34 -0
  124. package/dist/components/chat-header.js.map +1 -0
  125. package/dist/components/chat-inbox.d.ts +33 -0
  126. package/dist/components/chat-inbox.js +44 -0
  127. package/dist/components/chat-inbox.js.map +1 -0
  128. package/dist/components/checkbox.js +84 -53
  129. package/dist/components/checkbox.js.map +1 -1
  130. package/dist/components/clipboard-text.d.ts +13 -2
  131. package/dist/components/clipboard-text.js +4 -4
  132. package/dist/components/clipboard-text.js.map +1 -1
  133. package/dist/components/collapsible.d.ts +58 -15
  134. package/dist/components/collapsible.js.map +1 -1
  135. package/dist/components/command-palette.d.ts +151 -61
  136. package/dist/components/command-palette.js.map +1 -1
  137. package/dist/components/confirm-dialog.d.ts +1 -1
  138. package/dist/components/confirm-dialog.js +6 -4
  139. package/dist/components/confirm-dialog.js.map +1 -1
  140. package/dist/components/context-menu.d.ts +210 -2
  141. package/dist/components/context-menu.js +7 -4
  142. package/dist/components/context-menu.js.map +1 -1
  143. package/dist/components/data-table.d.ts +40 -2
  144. package/dist/components/data-table.js +168 -120
  145. package/dist/components/data-table.js.map +1 -1
  146. package/dist/components/date-picker.d.ts +53 -2
  147. package/dist/components/date-picker.js +387 -219
  148. package/dist/components/date-picker.js.map +1 -1
  149. package/dist/components/delete-resource.d.ts +7 -1
  150. package/dist/components/delete-resource.js +22 -18
  151. package/dist/components/delete-resource.js.map +1 -1
  152. package/dist/components/description-list.js +16 -15
  153. package/dist/components/description-list.js.map +1 -1
  154. package/dist/components/dialog.d.ts +141 -12
  155. package/dist/components/dialog.js +43 -39
  156. package/dist/components/dialog.js.map +1 -1
  157. package/dist/components/dock.d.ts +39 -0
  158. package/dist/components/dock.js +97 -0
  159. package/dist/components/dock.js.map +1 -0
  160. package/dist/components/dropdown-menu.d.ts +229 -15
  161. package/dist/components/dropdown-menu.js +9 -6
  162. package/dist/components/dropdown-menu.js.map +1 -1
  163. package/dist/components/editable-nav-item.d.ts +33 -0
  164. package/dist/components/editable-nav-item.js +90 -0
  165. package/dist/components/editable-nav-item.js.map +1 -0
  166. package/dist/components/empty.d.ts +22 -2
  167. package/dist/components/empty.js +22 -13
  168. package/dist/components/empty.js.map +1 -1
  169. package/dist/components/fab.d.ts +23 -0
  170. package/dist/components/fab.js +25 -0
  171. package/dist/components/fab.js.map +1 -0
  172. package/dist/components/field.js +31 -30
  173. package/dist/components/field.js.map +1 -1
  174. package/dist/components/file-dropzone.d.ts +37 -0
  175. package/dist/components/file-dropzone.js +103 -0
  176. package/dist/components/file-dropzone.js.map +1 -0
  177. package/dist/components/filter-bar.d.ts +34 -0
  178. package/dist/components/filter-bar.js +52 -0
  179. package/dist/components/filter-bar.js.map +1 -0
  180. package/dist/components/flow.js +19 -18
  181. package/dist/components/flow.js.map +1 -1
  182. package/dist/components/grid.d.ts +3 -1
  183. package/dist/components/grid.js.map +1 -1
  184. package/dist/components/hover-card.d.ts +111 -1
  185. package/dist/components/hover-card.js +9 -6
  186. package/dist/components/hover-card.js.map +1 -1
  187. package/dist/components/icon-picker.d.ts +34 -0
  188. package/dist/components/icon-picker.js +77 -0
  189. package/dist/components/icon-picker.js.map +1 -0
  190. package/dist/components/inline-editable.d.ts +46 -0
  191. package/dist/components/inline-editable.js +124 -0
  192. package/dist/components/inline-editable.js.map +1 -0
  193. package/dist/components/input-area.js +3 -3
  194. package/dist/components/input-group.js +7 -7
  195. package/dist/components/input.js +3 -3
  196. package/dist/components/label.js +18 -17
  197. package/dist/components/label.js.map +1 -1
  198. package/dist/components/layer-card.d.ts +10 -2
  199. package/dist/components/layer-card.js +71 -68
  200. package/dist/components/layer-card.js.map +1 -1
  201. package/dist/components/loader.d.ts +10 -2
  202. package/dist/components/loader.js.map +1 -1
  203. package/dist/components/menu-bar.d.ts +174 -6
  204. package/dist/components/menu-bar.js +33 -29
  205. package/dist/components/menu-bar.js.map +1 -1
  206. package/dist/components/meter.d.ts +27 -2
  207. package/dist/components/meter.js.map +1 -1
  208. package/dist/components/multi-select.d.ts +64 -0
  209. package/dist/components/multi-select.js +218 -0
  210. package/dist/components/multi-select.js.map +1 -0
  211. package/dist/components/navigation-menu.d.ts +88 -5
  212. package/dist/components/navigation-menu.js.map +1 -1
  213. package/dist/components/overlay.js +6 -5
  214. package/dist/components/overlay.js.map +1 -1
  215. package/dist/components/page-header.js +23 -21
  216. package/dist/components/page-header.js.map +1 -1
  217. package/dist/components/pagination.js +7 -7
  218. package/dist/components/popover.d.ts +136 -16
  219. package/dist/components/popover.js +32 -28
  220. package/dist/components/popover.js.map +1 -1
  221. package/dist/components/radio.js +38 -37
  222. package/dist/components/radio.js.map +1 -1
  223. package/dist/components/resource-list.d.ts +26 -1
  224. package/dist/components/resource-list.js +28 -15
  225. package/dist/components/resource-list.js.map +1 -1
  226. package/dist/components/responsive-master-detail.d.ts +27 -0
  227. package/dist/components/responsive-master-detail.js +85 -0
  228. package/dist/components/responsive-master-detail.js.map +1 -0
  229. package/dist/components/section-rule.js +23 -22
  230. package/dist/components/section-rule.js.map +1 -1
  231. package/dist/components/select.d.ts +27 -3
  232. package/dist/components/select.js +11 -11
  233. package/dist/components/select.js.map +1 -1
  234. package/dist/components/sheet.d.ts +115 -11
  235. package/dist/components/sheet.js +37 -30
  236. package/dist/components/sheet.js.map +1 -1
  237. package/dist/components/sidebar.d.ts +109 -17
  238. package/dist/components/sidebar.js +109 -108
  239. package/dist/components/sidebar.js.map +1 -1
  240. package/dist/components/skeleton-line.d.ts +22 -2
  241. package/dist/components/skeleton-line.js.map +1 -1
  242. package/dist/components/slider.d.ts +61 -1
  243. package/dist/components/slider.js +31 -15
  244. package/dist/components/slider.js.map +1 -1
  245. package/dist/components/stat-strip.js +16 -15
  246. package/dist/components/stat-strip.js.map +1 -1
  247. package/dist/components/switch.js +78 -47
  248. package/dist/components/switch.js.map +1 -1
  249. package/dist/components/table-of-contents.js +18 -17
  250. package/dist/components/table-of-contents.js.map +1 -1
  251. package/dist/components/table-pager.js +20 -19
  252. package/dist/components/table-pager.js.map +1 -1
  253. package/dist/components/table.d.ts +9 -3
  254. package/dist/components/table.js +19 -18
  255. package/dist/components/table.js.map +1 -1
  256. package/dist/components/tabs.js +29 -22
  257. package/dist/components/tabs.js.map +1 -1
  258. package/dist/components/tag-badge.d.ts +58 -0
  259. package/dist/components/tag-badge.js +72 -0
  260. package/dist/components/tag-badge.js.map +1 -0
  261. package/dist/components/tag-color-picker.d.ts +20 -0
  262. package/dist/components/tag-color-picker.js +42 -0
  263. package/dist/components/tag-color-picker.js.map +1 -0
  264. package/dist/components/text.js +17 -16
  265. package/dist/components/text.js.map +1 -1
  266. package/dist/components/toast.d.ts +173 -3
  267. package/dist/components/toast.js +1 -1
  268. package/dist/components/toast.js.map +1 -1
  269. package/dist/components/toggle-group.d.ts +88 -2
  270. package/dist/components/toggle-group.js +32 -31
  271. package/dist/components/toggle-group.js.map +1 -1
  272. package/dist/components/toggle.d.ts +35 -2
  273. package/dist/components/toggle.js +12 -11
  274. package/dist/components/toggle.js.map +1 -1
  275. package/dist/components/tooltip.d.ts +144 -6
  276. package/dist/components/tooltip.js +9 -6
  277. package/dist/components/tooltip.js.map +1 -1
  278. package/dist/components/typeahead-field.js +193 -132
  279. package/dist/components/typeahead-field.js.map +1 -1
  280. package/dist/components/upload-queue.d.ts +51 -0
  281. package/dist/components/upload-queue.js +116 -0
  282. package/dist/components/upload-queue.js.map +1 -0
  283. package/dist/providers/accent.d.ts +46 -2
  284. package/dist/providers/accent.js +358 -172
  285. package/dist/providers/accent.js.map +1 -1
  286. package/dist/providers/link.d.ts +14 -4
  287. package/dist/providers/link.js.map +1 -1
  288. package/dist/providers/theme.d.ts +38 -2
  289. package/dist/providers/theme.js +160 -27
  290. package/dist/providers/theme.js.map +1 -1
  291. package/dist/styles/base.css +83 -0
  292. package/dist/styles/standalone.css +820 -120
  293. package/dist/styles/tailwind.css +21 -7
  294. package/dist/styles/tokens.css +146 -91
  295. package/dist/utils/control-surface.d.ts +2 -1
  296. package/dist/utils/control-surface.js +4 -4
  297. package/dist/utils/control-surface.js.map +1 -1
  298. package/dist/utils/selection-indicator.js +2 -2
  299. package/dist/utils/selection-indicator.js.map +1 -1
  300. package/package.json +8 -4
@@ -0,0 +1,10 @@
1
+ {
2
+ "packages/basalt/src/charts/chart-colors.tsx": {
3
+ "content": "export type ColorsProps = {\n\tariaLabel?: string;\n};\n\nexport { CHART_COLORS, ChartPalette as Colors } from \"./palette\";\n",
4
+ "hash": "a227003ef4032c2c"
5
+ },
6
+ "packages/basalt/src/index.ts": {
7
+ "content": "export {\n\tAlertDialog,\n\tAlertDialogAction,\n\tAlertDialogCancel,\n\tAlertDialogContent,\n\tAlertDialogDescription,\n\tAlertDialogFooter,\n\tAlertDialogHeader,\n\tAlertDialogTitle,\n\tAlertDialogTrigger,\n} from \"./components/alert-dialog\";\nexport { Avatar, AvatarFallback, AvatarImage } from \"./components/avatar\";\nexport { Badge } from \"./components/badge\";\nexport { Button } from \"./components/button\";\nexport { Checkbox } from \"./components/checkbox\";\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"./components/collapsible\";\nexport {\n\tCommandEmpty,\n\tCommandGroup,\n\tCommandInput,\n\tCommandItem,\n\tCommandList,\n\tCommandPalette,\n\tCommandPaletteTrigger,\n\tCommandSeparator,\n\tCommandShortcut,\n} from \"./components/command-palette\";\nexport { ConfirmDialog, useConfirm } from \"./components/confirm-dialog\";\nexport { DescriptionList } from \"./components/description-list\";\nexport {\n\tDialog,\n\tDialogClose,\n\tDialogContent,\n\tDialogDescription,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"./components/dialog\";\nexport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"./components/dropdown-menu\";\nexport { Field } from \"./components/field\";\nexport { Input } from \"./components/input\";\nexport { Label } from \"./components/label\";\nexport { LayerCard } from \"./components/layer-card\";\nexport { Link } from \"./components/link\";\nexport { Meter } from \"./components/meter\";\nexport {\n\tPopover,\n\tPopoverClose,\n\tPopoverContent,\n\tPopoverDescription,\n\tPopoverTitle,\n\tPopoverTrigger,\n} from \"./components/popover\";\nexport { ScrollArea } from \"./components/scroll-area\";\nexport { SegmentControl } from \"./components/segment-control\";\nexport { Separator } from \"./components/separator\";\nexport {\n\tSheet,\n\tSheetClose,\n\tSheetContent,\n\tSheetDescription,\n\tSheetFooter,\n\tSheetHeader,\n\tSheetTitle,\n\tSheetTrigger,\n} from \"./components/sheet\";\nexport {\n\tContentIsland,\n\tSidebar,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarHeader,\n\tSidebarIconItem,\n\tSidebarItem,\n\tSidebarNav,\n\tSidebarPartition,\n\tSidebarProvider,\n\tSidebarSearch,\n\tSidebarUser,\n} from \"./components/sidebar\";\nexport { StatStrip } from \"./components/stat-strip\";\nexport { Switch } from \"./components/switch\";\nexport { TablePager } from \"./components/table-pager\";\nexport { Tabs, TabsContent, TabsList, TabsTrigger } from \"./components/tabs\";\nexport { Text } from \"./components/text\";\nexport { ThemeToggle } from \"./components/theme-toggle\";\nexport { Toast, Toaster, toast } from \"./components/toast\";\nexport { Toolbar } from \"./components/toolbar\";\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"./components/tooltip\";\nexport { LinkProvider } from \"./providers/link\";\nexport { ThemeProvider } from \"./providers/theme\";\n",
8
+ "hash": "aad8d28800c9ac1d"
9
+ }
10
+ }
@@ -0,0 +1 @@
1
+ export declare const basaltMarkPng = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAABIwklEQVR4nO29CZhc5XUm/N696ta+dvXeLXW3pJbQDmgDCcwig8CYIGEbGxt7vDt4iSfOzMSW5YyTOE5iJ7YzMSTBhNiJERgMBrNaO0KgfWupu9V7d1XXvt2qu9//+b6WCPYk8/wzYBByn+fpp6SWqure+53vLO95z/mAWZmVWZmVWZmVWZmVWZmVWZmVWZmVWZmVWZmVWZmVWZmVWZmVS1Qcx2Ecx2HxOyw8foflk5/8JL9ubngLwzA/dhwHv4vyO6n9W7fO3Ld+5oWOQrnwR3ZpMnbBIuB3TC55Bdi6dSu/efNm7vW/O316M13oQCjUXMueW/DL7Q+c/5dfX3/yvq1bt17Sz+h3RuPJ7iYCwHYefpj7+qktzjz/V75Rnj7zRyXHub0mP/GLhQs3M1u2bLc3b97Mbt++3SZvwyUul7R2O86w68+++Rcf/MSH7l3HMAxZTLKoIIu/bRtjlyaHVk8NDXIC63rXtm0z/0betn37dou8fvKee9/7hc98YSH9JS5N98BeqmafvP7z/TtulET2oZpZevZvvvs3eze9647PEEtAFvvLW1b/vpHTri71jxi5vqlPfemmmz6yZct2a8eOI8H/+gf/9Rvf+95f70qnkz/r6+/7x4c3b+YYfH1WAd4pcvr0aWq6TU4eOXHqpJHNTbv27Nm9Npcf/s4n7/sk3wX4b9h4+zc3XLuCr+cU5vp3vUvsDOj/k7znH76z7faX9+386jNPP3v15NSIlcnnU1u2b7c2bz59SSrApSgkt2divb3eb/2P//Z0b3eX8+6bbjWuWLnSdDH4WxL23NUmNz771XcZ+u4lzuCPGbPvb+Y437klkWE5Fgmv2OtxcUMLexfqly+/wrzy8hW5v/yzb/138sGXYkB4yd0QEeLvNyxcKJ44cXhtKBpB0Odhzpw+xc3rWfgzZ+vX2Il7nsrs3vfid350/zFztJ+zd+4YqnsD9p9+9Y9f5FNV/XTPoqW7HJsRVi5fbnKwwzt/9dzV5GNPn770rMAlpwBbt26li3TDlfM7ecktnhkacWpK3eEECefGRr/CbNtm79p2jXnStfknhfKy6ZPPhri0uujc3x+c92/btl1jAvCkktO38LyAqVSay2TTzvLOgEHiwN7e3ksuK7jkFGDhwoXUBRgGG/JLjku1DCdbLPNutxeNzc3Xbrx+05OrVq3b6uKmdy26YUHzi6riXPZ71y3y+Yu716zZ8I0N667dKYtihGXhHD51klu4fCWTq4tXAgh+/etfJwpwSVmBS04BLriAgs5/vnvBctx83VXO/pPHUTM12C5BbG5u2bR21ZVf56Qm/yO7dRzLBbgfPHTQYVzhrsaG8Fc1Q12p1KvoO3uWqQkss27lImu6WI9dtX7dH5PPXb9+/a+BSu90uaQU4Ief+ISwZcsW+8/+ZOu105nMpkd/+Zw9b04n13vj1XASYYwXMnj2xCFr2tJNxis7Z4bGsXTZlZjOlZnO7vk2w/DmyXN9tsYykJfOw9o1l2F8dIjdd+igLbvke9ctu3bxrl27rE984hMCLhG5lBSA+eR99xlgGKemmt8+deoEOJ53JoYnsOG914HraIRVrGAiN8lNcCqfh8pMZCYgy26olormjib26GgfX6mWWNstovGWVWiRRZwdSTGNTRFnfGxCCMR8f09igfvI91wiruCSUIAL6dl3/sdnrv7kB+549MTZweXtYdPJp8e5Y/0jmPjZ8yCLysaCaF7ajVcPvoqz/WcBUcDk+CRUU8OPf/pTlFkV0aYEFInBXNXA6NlxHDpyCqvnN3Lwck46m1593YYrH/vaZ+56/+u/950s7/gbOC8swe8FVls8OjJ0+3g+adoOy9ywagEGhoYxdLwf7TkVBsOjfHocyrlJTI1MwiiqSKezsAwbiuOgNJxHybLhczjYx0aw45VjuGH1QngY4LLlS5izmTHDqtduK6bGNpLvSyaT7/h44J2uAAyp2G3bto0h+P1zB8aVjChYbWEZrKcZDuPGDasXYSSZBJvO4ff+4NMw3RICohuiJMGxHRIwQtc1mJYJFg6W37kJi3q7cfzYGSzrbYOHt5A3vTCSZSxdsYA9PT5lqVzIQ76PuILzsPM71h28IxTg4Yc3c+vXr38decVhzv+dFm54nje+8OkvXzeZL328LeRjlVyNtSwGC5evQVjU0dwQQjabh/rqUTheN1zREHiBBcOyECQJmqqCNQ1oAsDlctCTeYgijwBr4rIlK6BBxtj4JNpEL+cPBpnD/WPv+af/df9fOI4T3LZtG8EOHKIIr+MTcL/x94tWLuoLJD5227ZtJPemAAx5oFu2bGHPV+vg9DvSV//x67938MiRz5w6fWrtlUvbkS/VsWLZKmQOHwTb3oZVSzrwiyd/jr1902iPhOB0NOJsNg+9bxCdiVYEI3EMjZyG4hYhtwSw3NuIvtMDaAsKuGPTjTg2qaF/7x50tLXjTKmEpV1NeH7PyxBdXtx83U3Da1ev/ov3f+yuHzEMo5JrIoq5a9cuohRUiIW6cL0Xo1x0CvDwww9zp06dogu+bds2m2VZPPq3f7ztoV/8yvrZM3v/hKz7n2/9m5bR1OD7RkfHPjZw7sx8gTEwryVqG7yEhrYF7NbP34tvf/hTOJ0cw3Wf+TBKY/3Yf/QEjp9L4/Kl82Fcthh7n3oGnZyMYDiGw8f3w7+0B1d3zcWRnUcQ9QE3X7USeTuCg3v3gRubwje++x386PHH0J9OoSPqxrnRUfNk/xR/2aKFWLt63ekVi1f/YNOWO38SCjHFlSsXf/Rjt61vmN+z/IFrttyTIkpwHkUkCv2aclwMctEpwOtl6+//ly2Z1NjharX8/T2nx25cMG/FvU0tLasGh4ZuHh8fC0xPJ8GyvHXLhsWMWs2zp6d03NDbg4QkAOfO4pnDQ+h49wb0LuvF4MlXcah/EmPJAnoW9OJMuYwmTkQi1ohfHdmBq1avRnZgApatYE1vC2LxueibKGLgmadxdSiB9lUrMO7Y2HfsOHK2irs3LsIjO87Zk9Nph2NYrrd3CbrnzZmMh5t+8qN/ue99G5a1Nn/7Y5ubfnxidPXWP7/v8YuVcnjRKICzdStLcPpntv/TR6fGpzMGU+b27DlzY//opIuVPDVDr37S0C0uXyigXCjAYmG5wh7GbfGsLxDADdfdjEBARnl8CqnxEXywswE/3n8MfSOD6LnhRrSGWQz2ncC5dB26I0E3Haxc1ImmxgQeeW4X5rS0YTo5gq4GH3rndeNslsfpF5+G13Tw1faleFBPIym7sHzhfKiCC5nMFF4+eAxujxs6bFvNVBxeFrlQKAqRBdyycNwfTPy14KQ/8v6bbv/22NRIacWyVRve89FP/el5cspFIRePAswETMx//9yH+g8cGw3xbl5TyoZX1TWfopShKCpqumrplu54m2NcqVVmwvEYlN0nEIlHIJI8v2ZiTs98yLyMztZ2yKyLsAKgKiYgMPAYSTz61A5MFWrw+oJYv6QFEmdj16kcstks/JKD39t4NXKGDE1RwTk1SC4/4GZRrFRgWjb6hwfR0NCAwdQ4UoqKJjmAQX0SQQTATZVsEazNsBzHiwzjcfnAcHYpHIg4iqpMr1rQOa+nI7Tqi3/+wIGLJTa4aGjhlK7HMPbatVfnJsZScw1bRV1VwQm8zcoMdL/NxuINXDSewEC9CI+uwztdwtLrNiLc2Ignn34YRpDFwKGd0Eez6OpoRckwsGbxMlR1G01NUUS4KG647U64eR6HDh5FtqaD52W0Noq47d3vRraYxXC2jIo2ilK+CoM10D88DpeLQ3JqEoHmRpTSGSQ4DZGFXfj0omuwrHsRfrjzn7H3+EF4/RG2WCyzTFqFR3cc1XRsOE4gk6vAcuxgre5YQ9U5F1XmxVwsgd+WLVusnz34V187evTYV5SSxmlOnS0xDn+mnmUGp6awduEGvOvyNRgaGcBLB14Gw7FYsPJKGHUHSmoC3XPn4+cHn8HUSycgx/youFi4vW7wuTpyLguuugo3I6GSq2BhYwd8IT+und8Mw+HxxO5jcBgWw5U0GI5BLZMF4kE0h/yYzFQQC8dQV8vQfRL8bhkFvYjGtk584aZPY06iFZqt4u+e/Qlu3HA1PB4Zz7ywE/t/9QxcBtDdmXA6Jb/tAmuxvJtfurDjyNXXbLxh0ZqNeWcGhnhb3cFFYQG2b99OXwePvFg4dXxcLtVYzOuKocPrs7t9TY4SiGFOe4KZOHeUmRifQLSnA+E5XRjsH0SwzqBjTg9eOLgP+SMDCC3vQqVRgKeqQVZZpKt1NDgyFi5fjJMTE+DTBRS7JPA8h7G0DlGWwHh4TPEO6mMVJHq70D53LpJ6BbWYgHlNDSiVNEBm4Pa5UC4q4C0vlIKGR46+gp7GKVzW3IhblqzDq3t2YtOSZfhwTwfW8Fc4XEVzLIZ1crkal60o3OT4MFhlPHhFt2SR3oS3e/EvGgtAaVwABJ5zblkz/7F9R0YinfO6xzhHusvnA0KyCy7eRjAgIOALwR3yo1SvQWcFuPwxPD9wHP2jY5DWLUG0txNT9z0MM6fC5HiEvB4sW7wSyVwG40dOYNn6uSiE/YieyOPGJfNh6Q6e6RvChEdEm+Ngzyt96FqzErFwAMfVFMJdUYTSVYyPp+HwLrhFFvZYGYlEGAvaOylMHHQUoG5Dq1WRTKdh6A4quglNE5FXqrBsfjSTnz7oY6yV118179Pf/+m+X14sMcDFogC/JhzLwLIdhKTQjS09UatUcL7k9blX8wL8IY+f8clgQrKIgEeAS7Dg97jBBj2oxAKo5yo4d/IcShwP8CLqHhnpdBnjZ05BntcET9gD17k01nX2oMMfQS45jSm3C9OcAAgGCkUFY8UiEuEIOkNReGICPF4eDSUFTNWB283A50io1TQYtRL9/6lyDYWKg7KqolozwICp67aajwQS3zo3fCrnYjyHc9XcmQ+3t7seHB2lgNHFIhefAjjk+dH2LUrfvvDruZ3tL2bzxWtNw7YCIT8nchK65rQhn01CU+tobQijye8Fw1tINMbg87oBwY06o6GYq0GLy8jUVVjJHCY9DrwZDqdfHsayhb3wdMiwGiIwSyU0+n2QGRZsvQJBVSHYOqplGzWtAl23kS/XkSmrqKoGVMOG5TAwLBNaTYWq1xzLsJlQKFjm+OrSsbHS8Gv3RbqTtm+3zqObr93X2y0XnwL8unArVqxgN23a5Dy/8/lFmanC00q10lirV+3uOXPZW9cvxd8+8K/IVQzq02W3C7JbgFdyQZZZNIRC8Mk8IgE/ZJcAWRAgeDgUSnk8+9IUFnVHUbe9KOUzuPO6eTjSnwXD8LB1E5lSATXVQrlWQ76sQdV0GKZFX1VdR2PIg7UrF+AXu09CFBgEA1GUKyWbYTjd6/N+JhQK/Eu9XidEUrLYF37I837b/f5FFQSS/P/rX9/Abdu268JDen2lD729vdb5HXP04/d89he/2vXCxzmBtW+47jq2kj4BbyAOi1WQz2egayqKRfpWuN0uDI3lwfEMJEGiFoHjeQgsi3y5gp7OVqyMtUJ1u/F3x4/jR0/UkSO5P8tC08lCq+A5AdVajRaLHMeCac6guG6XGw4vIx6ScPtN1+Pw6QHUqjVLlFxs99wFZ9Zfs/qn27ZtM15XC3jtdl93byyBh99ua8BcLIWeC7/buXMnG4/HL7RnUfnmf/vmNdPlsT/etfuVK8+c7ZN9oRDz4dtugFDpx3AtgoGJHA4f3A+O42BbFliOg8fjBcfxqNdr4HkRpl6HwzDweX0wLQutiSje1QicTJVxJOfAUAmZyKbRqE0xKRscL4BlGaiqBkWp0M+sKQrmze9FOBTFqmYFZSuIQ+MVpCenkEwnnUW9SxyBtzNKuX6/UlT+13hufOrCfZBC0YYNG+zfXPS30y281Qrwv5nAI08+3Lxn/+7rv/OvP3tpeHiq/8Lv123cGGt3BW/UHfXuWsW83t8YwOLelRg8N4Bcehg+u4jh6QpWLZ6L4xMmDp44gHw6C0LnZmwWrMBCljyQ3BLyuSyi0SgS8QbU6hpyxFqYDnyyhXLZAFgWsUgcpm2CYzlMjI8jEAwiHIygqTmO4ydOwzR0MAJgaiaWLr8cC6IcSrUSeF2Dt6EDL5+cQntrE4L+GI6dOYTCdAGBoDfndXl+KnilB/fs2fPKhXtLJBKxz37w1hVr1l0x/K7b/gu5Z1ooOl9WZt5KZXirUSlnpksX+MaXPn4r4eCXRl4I73v1wAP5kvKXf/3X9y387Kc++9m7N9/1WNjh+4bSYw8dywxe/9zUQeep/S9a+w4fQDgRw+LuRmTLDNq8DRifnEbCZ6O7exHgZgAPC04WIPACTMOE7TiU8CHLMubM6UZLSwsk0Q2P2wXL9iEUjtN/c0ku3HbLJly7/lpYtg3dNFGpVnHgwKsU7+e9PIqFIhYuXAYXq8MtOshkbQxP6rBrGVyzZhlyVRV9w2cxXEg5kz7TGimnIqP51GeqpeqBq9ase+XmG2/5+qc+9allhVL980ePH/tlpv/ld5Nnsu2Ld7/3vPt7y13CW2IBHGcru337QsYpjH1r/4GDXtWqnT56YmK14ThHr75u48vPPvnU4wGf7PH7QrzDmMxkJYdhsQKXbltqXYOh6lyiJ4E448LKSBRD5zL48me+ggd+8AP0jQ/g2muXoG/SxolkPyaTI+AYNySDRTwYR3t7C4qFCrL5aTg24HJJqFQV+Hw+lMoV6iJaW5pRzBfR0tqIbLYI27bQ1toGXTMwlZlAsVaCUq2gpb0Vva1L0ezLIpOzkD47gc9+/sv43r/ch6ULIjicVnB4YAySxMJkJfgXdDrOdM4qpsf4GB9BYzBGYxDHtqvVclle1Nu1ZWgiabo49SM3r137eLma4y7rXbTiQxtu+8LXn3zyQuxz6biA66+9dmBwaKTL65ENDhJYzhJ4lkfRUFCAitZII5hw0Dw0copZN/8ydn3vlcxTe57B2coEDMbBx7u70XdyAk2BRrz/+g14/KnncWwohZ5lZBf7cabgYO/4UcDhgIkcWB3w+/2Y0zEXgsAjEo7C6/MiNZVCsZxDoVBGTVXQ3NgIvy+AcCQEiXejUM5jYmIK4xMjUOwa4HFBMG1cu+Y6SLUsutrceOG5AQT1Oj73h19BOlfAX/zT3+MDtyzHyWwevzg1DIZ3oadrAb589xfw9I7H8Nje5+0rFq62takJ/szAcSTkBsiCSLNey7bKHpfMKnrF6m1pDvgDQvShx1/MnbfQ9jtaAc4PZnAO7nn6vff9w4+/1z/Qn5guldjxcplROcuxOMYRL2tgr1q8CsE8nPHxIeaypi7IXj9e2P8i0vUC3IKMoCHh8qUr4fEEkTlzEp78OG6+bA6+/+RhJI0Srnv3ChQMD3KshRf2vgS2YkMAD6VWhlf2UrOeiCcwp7sLrU2dGBrpRzadg2bU0drShoYGsvtTGB0Zw3Q2CaVah22ZEMMeWAKwdP5ieB0OV83h8cuXh1A+M47PLerGQKWI3XUb7W2dEFubIXIaXp1MIlMpoFjIYGHPcnz+c7+P6ZFR/Oixh3H5qnUAV3Ue2/ckY0/rEBUOtVoNXtGFsMeD9kRb7WMfuvX2oU//wfPbZsrGzjtaAUiE+yd/8if2n37xAzsnktn1/pAXosihDNscrBTYpMAxLfG5THkgjaBbwIqAiKd3H0KB5RDwh+ERZCiFIkYJ1OtyY9GiRYg2NiMWTUCEDqVYw/joAGpGDSu6fFDKNfz4mZdRqjs0LbQs2ioAlmdhWzYN8nzBIFiHQWdHN8ndUSrkoJkG6rpKMwSy6QhTWCSYABxsWNKBZUvmI5NOYSqnIp0sob2xAxsX96IaiKLqEmHpdZQKFezd/xJymWnE4gnYMoPp6Rw4v4jFsSiuWd6Nfzjch46uJUi0xvHcS4+imfM6Mclld/i9TszNO+WcxkaifuvWW1a3Lb7uC9OkZvB6QOwdhwOQjlrbthHmSn+0c6D/pb5pPdfT0RppDLr5noiMdf6goxamrKTLYSV/M/PoizuQTBXh98qYnBxCJptFTVPASCIgC8ieUhAccEOr1BCPNaAp3or2uW3oCTaiopVw/4M/RCQWh1WdAsMBnETMLGBZJjjCFApKKGlVhCwJYb8beq2Eaa0OPUwq+V7YuTJcogTTzcCwLXgcASeHM2DdMjbeeDvm2wJszkStZODFiQEkj53E+MQoNFNDUVdpwIm6jmQmDa/Hg4ZoI9i6jf2vnAYcFl3hKDyFPixvNO1lixfbSlFhMyWNK2RUPDs2BTdsdDXyP7psz08zM4zn32694C2LAQi374Pr5y382Y6+6WjL3BVev3SdqulbvG65TeJU3HTNakxOTOKnLx5BFRYstUY9oCfoAxI+GLKITm8MLZFGHB/ogxDyIDswCsHkoFbLSEQaERIltDXEaA1/eHIMrF+Gw7FwDAusbUIIe6HZOuxkGV7BhbtuuR6lUgVP7XkFmp9HIB6DmqtCL5Qged2oaCrcFgOf5MOCBT3wugMYGR3C6NQYDMNC3VThbUlQOrkRktESacJ0OYeaWoWnbkLLlaCWVFrq4iQvEoEwPnXLEjQ2JvBvT+6GBkI0MVFV1T7TdM4qivK/mmV0LVnQ9ci/PL8//VYgh2+VAlz4Huc3f9kzd94al0e+J+zWN9Vrenzp0gUsK9ZRtDUk68CZTB5mSwIbei9Htn8Ir/SfghQJoJ7JQY76UdcN2PkiZIOHu1zDH95xI36+4xB2HDsFVzwEs67BMQFfUwSsx4P82UG4QzLEkoF7796M5FQGDz71HMwAic5ZyC2NMLIlsPkqBI+ESqaML7z/RnACi7/6yfPwJoKQeAGKyCIY9KEgCAjGw6hOZ8GLEuINCYxNTkDLZhCQefjaoojWauiSo7BVHmouZVdMDgOTlVMSb/+bY1k7x6amXsLbJMxbu/AEYmOdlx5/4O4fPvivH3nwsWe/CeBFggt84mOfec+JE8f+xe/hPXGPgPYGgfH6XKg7BqRAApbgxXPDZ1FgeFQVBXquhkytgJDuQG6LYzSXwmp3Mzw1DslsHskKifQrxJbAtagd7Yt6UXq1H5V6ERbZuZaIz2+6AVPTBfzDE8+A6fbSAr1ZsCG3t6MyOA5kcohGEuhqakS8IYpfDZ6FOicI2WahjufguHnA5qE1R9HZNQf+qBfG+BSWurzwaBXEPQyCgheGaSCfMzCerzvHzk4a1Urhf05MTf0VgBqZVnftynmfff8dt4x8/I/+8ieve25vSc3gLbEA93/3mw27DvZVN1+z9LOP/+LpK2Smcv+r/YUn8yp7/O733f2ootY+MDk5Nu/EiZP8dDbNuF0yGuJR8CwQ9UmIeAUEQ25EAx4YLMC6XZgo11Gr1CF1dePxkWOo9idxw+IrkNpzBPlqGWVLhcIbsK9fDJMToD93FLwkIQIV5pwAEgU3bluwGMlMDj97+QAqvAGJ58HxHKpVByu33ElJoRhKU0h4Ufd8DDULSKlFyIs60Kbb8JxNwe/xoznqRzwaQAOBnKs11BUVmmZiaCqDXNlCrlxFpaYhn89D4FknEo3VBE46Aug/GRoZv/qyrqb33bZ+0fdOniufeO9tNzafnKp+g8wimJlqB2br1q2UIv+OUoDzJE/CyjQ++f5bPrl7/9Gpdct7uAN9w9vjTd0PybLnesexEpVKFeMjI8gWsoQTCI4FJJ6DIArQdQuS7AHLCgiHAvDKLoRkFvGAC2GfjEjMB5MRYLEWTJ7Hi/sHcdPSBahlk3jmlYOY0x6CZ0UP6tMVpPIlpCYKqC9ux3ghj2XjDiZGS1jQ1Y1JNoWBoA15tIjWgBeN/gC627qgGxUc3nECt268AqmsiVcmR3HNjcvgLmuI+CQY2SI01aQVwlSmgOmihkyphlJdR+V8GsnYJmqaRsAfGKZNYWeB4ygmEQz5wTEcGIcpqnXlD2zb+Pb1qy574ZEnfv65D33g7i9/+75//gp+y8L8Nvh95FVNnvnGkRN9y1RLONk3MLqoqmlNkXBjJZOZWlOtVlhNV1GrVhzD0KxQIszausUSnJ1U74jq1Ko1itxJkpsGXLpB+vds+PwBBP1+uCUJLGPC73LBLZGc38bp8TzWNsWgl3J4nvQD6gw6I260tSXQ3uqlOL0Z8CGfLWHfkSQCog2W94FxsVi2ogUBjoFRKqJa0NE/PInjg+OIyH6sjEVgNbfg+QOHcfPahRhNlaGapGSsoFLToRomCO+/WCpDdrlo6ul2uaBpdSh1BTahOHACeEmgBSrDsWBohsVqBtyylyNQdCIWga45jsvj+aVla+NuTmjauH7+3mKuLK9YvpRtXWx/I5M57ZBRdhe7BaDo1bvfdf2+0/1n1wiiByLLol6rQiH4ulrCvDkd1l3vXsc++uzzTE4U4BHcMBUdWt2AoWnwSGTX88jmCiiVi2huakGxmEc2n4XbLYNjWITDEdTVOuo1leb4vCDQHL89yECtKzgxXgJPfLptz2D/HpECLfGQBwxhHLEC7li+GDrnwfb9O9EeCiCZLSKZzyGdrUI1DGqReJbFht4oxooMSiYDyzRh2TMumgULSRJpmdg0DOSLeRCan8/nh8vlRqVCKogemgXUdBUq0RKRhyiL4GNeVMemsaZjDub3LsL2x35h27zAkuyEpKGSJFuCyECplpml8zsqjz+3O/jbiA/eVAW40Ay548kf/f6DDz3+R33DY7FkMcdOqXVYYRleMnnDI7O3rFqM8uGTeGWshAXzLoPX7aE7anJ0HIpSha6bdOFrtTpFde+840Po7OpEIZfDxMQoBgcHUCoWUVMqlM/f1t6OgC+IUqmE6VwGWq0OjnVg2w54noXs9sCwLEro8Hi9sEwL7U0RrA8byCk6duUYVCoqBF5EpUz8tABJ5FGtEj6fA8exwXESGhMxeL1eVCs1TKUm4fV4wbIcPF4PYtEYmpua0NzcgkRDI44fP4Ynn3kSHpeHlpFdkgS3TFhKPGkkgUUqj14ByugEvnjXDXi2qGPf4WNgHdOujeUd1G3OLUrwiG50tTeX//hLH/lSjYv8iExAuWgVgAAXjz76qPXVT936XP9I+vo5c1pgWpqdlHlMyyJTOTkJ1etlvFUL6eMjIIwJWXSjWC6iWq2AIQGYVoNtWrA4gJdE2KoG3i2htaUVPZ3z0NTQhMbGZlq3T01PYnx0AiNjg6gUK9A0FYGgHyPDIzAtAyzD0sWTZR8ldJAfySXD5/VAqekI+IFqVYNpiwj6fVCUGqpKiQI2vMChUlEoiujYFhobW2A7xI8b8MhexGMRzO3sRnt7O/x+H0UZp9PTGBoewcjUKKaSUyjbdTCyBC/DQK3qkDgJftKaTsilHg9CgSBS6TQ6oiJSKxfgdCoNd3oKAQ+PNs7lLIrFLEJRKxYULuoTcx//2D3tzStvrZ9/3M5FhwT2ptPMdttGUGD/bmJq9Kqdrw5WLpvfGmsMyJjvkdDU2wNG8NgPPfI0O1AuwaqUqAq6Az54IhJsDw9eA5iqBbbBg1pFA6My4CIeDJ0bwOCxkxC9Hggcj4Z4E+bNm4fm5nYsWb4cXtmDg68cwP4D+8ALLuoWTGPGXdZrCmSvDJYRoGkadQGS4EKuoNGdLQk8hYAJkYQoi1pXUS5XwBAokQSmAk+tx/yebtxw/fWQeBmmrSKZTOPo0SMYGR/B0MgITFObKd14ecBFMgoBjMzDIBC0X4DY0QEEg8ieOgktNQV90AQkEVMFD27uaMbNS+fZWj7uBEyTMTSDyeSr/I6TxymItaAl9mjzyltrv9l9fNFmAVe0SZ2ZXKDmmxtbOpXKfoux7ab2lki4ORjivD7GjjaFnIFcjh31upjpiTxyk9PgIMBLFkESoTkOTM2BZWuoszbBciEUNVgk9WN5mKYDtU7SaMATCKC1uQMuEngpeZSKFeQrFViWA5u1AA8PkWHh0kXaQmZqBlxuGRoJLA2LcgkJd4DlBahajY6M0TUNsGbcbTgQgN/vhdcTQFNTI06d7aOkEWJdiBDAyOf1QjENWnX0B4KAm0ehVARJaXVThW7pECJBaP4QTI+MEKtDmMyg0e9FV6TBNsam7CtWLOT3HxvE4FQWKkEaVesfNb3+VJTXLYHxvHomm01e1DHAfya9vb3i5OSk3Nqa6JI47/cCPnZVS9SLqJeD3y86JisweVvHZEHHWK6EsckSqrYJg6B8ogY5HgZf1sBka4gEgiiUyyjlK+AEDqxlA7YFzcsAdQt/+umP4cSJU/jXp3ZB8Llhuh0QHbCqGojPkVwSQokojKoOkZVmAjhLg8oBtmFAqyjULjJuAZzFwqzWcffmmyBxAu5/+OeAnwcveyDyHBzFAGNz0GIBeL0+xN0SqjQ2qSMYioD3ujGRnoaLEEoYB0KUR6vHjzkNMTQGvIjbsI1KmakZPLP/dIoUkYbHM6UHtbq2z++X1Uwms/e3vTa/zWIQpTht3gx2+/bTOjmgo1QqHQTw7ng8vvLsuP9OF8/dHvaJ4Yag14wFWX5RKICV8xth9LRjUq3gzEQeVctGqmQgbWpI9MxFulJBrcbCHQ8DtTokUUDNzUCyLIQCLtSKU9DrJcBNhrxK4Go6YNu0EOQ4BuyEF5U1cbj3TqI12IB6vY7h3BjqMReYSRWCxNLSMcFgHJ8EmCY4NQdR9iPUHIPdGUZNN2GJIry6DXMiD9Q0lANBlC0DzfEoXKUyVE1BsyBj/rJ5aPaJSHi8EGHD0EyUCiVn6ty09Wq2zucqCqpV9ajjWM/HEolvVwaGM2R7ZzIKeYY0pd5MuqfOM4beSQpA7eP27bBeZ2nIazGdTr8AkB98Q21uv2xsMv+UW2Ygi17H62GYxqAfbU0+3NjRDikgoqxoyEgshlNFJDkLBcdBvlAFGvzIe0UIIo9w1UCMleByyeDBQmiKUN/t+ESwuTrMggJu+VxgWQvUUgWyYeOWaxZjdDyN4X2T4EQTjJcFq3AQBQ51zQJ0A3I8iIjXAx0sOHBwKjp4iSfGBprXBfecRsjZEhK1GgLtMXSEvOhd3AYySJBcB2E0FcoqjvSfw1SuBMPikC6UGN00eZEX/sk21J+kc7ndBDCbTKXIM3r94CkaxLzGKb5EWMHkO9n169czF4KZaDh6b8Dv+qvUVJqzOZZxiTIEiYfXLdNd3eCTkYi40BiLIBKWoRgmCqqOIcZAgXGhMjaNgVwOc3wRGKNF1A0bGamKarsMdrwEeygHrJoDtjUBrlAClywhWrbx0WtXY3gsjZ8PDsCICzAqBVhTOhzNAHgO8IkImhLCrIyenrl4pVZAqV5HPMChLRFF1ONBi9eDZheJL0zaLZQraciWFKTyCnJlFUWljopSh2EQl1Z3fC6RYQVXoVpT/jUWi317dHR0hDwTMoGUDKF8q/sG3u7GEHYzwDzCMtZVV1+z/8TR46sq1aIdjcRYUeKh1nVK6iTcvSCBgl0ueNwsmsJ+NEWDSEQkhHwBmmqVTB3P7+uHzHKwtDoG8jm0tHrhU0yU4x5Mz21EaSyHSv8E4JGw1B/DbfMXoahU8f3nd8JsC4JxWQgaFhKQ4TMZ6KyNsYEUGkMRiJ4Q2nti6G2PwO84cHQDpYqKfL6K6XIZE6kKSqqOat2EaTuolCvwemRKKxd4nuIbpXLZakw0cm1tnU8eeOUlQoq9sOOt39XGEHtoxQrBOXQIQW/gSPfcnlWHjr1q9/TMZ0fHxkCqgcVigZJDoqEAjfzLdR0jJ0fBYhR+v4fWDUI+EVGvjHq+jPesX4Ps+Bj6BoYxlSlj0bwGXOXzI2a6YHR2otTTgZSio+/IGP7in55Aa0cz1i6Zh+5mP0Ihsrg2qrk8Xjk6hMmRDBIeN7ZcsRw5yYu9+/bCms5hOl9FrkIGVpjQdBuqqkIUBLgknvY1yiIHU+PB8zzFE0LBMEU2TctxCGgl8+7HybPv7e1lT5+m8RF+VxWAIGuUsFOv1wVV12hnjkeWEY/FEAqHcejQQUrbjje00K3ikkWap6em02ToAgr5EiqqgcHJIuKxMI4e2EN79kqqCcdm8NLZPI6MVBALTCIa9GBucxxsTYEyXcadN61GslJHZXIakkdC/7lzGJlII5nLo6zoFJ0Ex2Dq1CGcc3gkazam+omfZino5Ha7wcJAJOBC0BeksYFjgVYUVdMBL4iIRaO0w0ip1SmuIBDImmDZgBmLxd725/+2X8AFcRzCHJuxhOTh+nwEPhUpbVupVSlNW7WBiqpCllwUctUNHV0dcyl7N5cvUmCm4nOhUi7DMgxaGyB07prCoFiqYjwj4cxECdW6hisv60C7DoQiXjzSP4rjzx+nXUWWadDCDs/xYHQdk9kKnmBM2CDgDy3mIRIMwZuIUL/uOH6wHBk2aaNeM0hGCpeLAZllRBDDSCgEsDy5QRBq3IxcPANGL4pxJYQ4ygs8Q0wmefjE75MpnsR/kpq4oamo5sYQ8zEIEmTNUJErlFCu1pEmbCBfEJFIHJ3tHWAZEUpFBcvxNJ0TRZECRLatg2cA29QRDfowMDqNgfQZ7Hx5LyqVOkSeQSRAKo0+OASDIMUgskM4FsmMAoYVKcXc7w/QwpOi6jQ7Kdd0FCp1et0Rv4T5bWEIZhm6WqcEE9K0OjI2jkKhANMkBFUGDuuwF8ucYfa30QRCRp/8/w0w4/FdtBtGFERNFEmuTtJ2my6+yM9MZScVtmQqQwMpS8mD0UtoikgIuGy4BdDdHolE0d7eQS1FNBZ7bccRpSJKQApDlVodxXIVlmlDN2w8fqaKwRIPlnHg9wdhOkC+VIVuWrQziBwnS5SRmG1S9Us0JCBJLmiGDZbhEPC60BrzY0lXAmGXieagCNsyMDGVpNdMngAZSUver9RqVCHJZxq6Uf2/JXiQOstvY/Lom+0CGIa5cGO/jlheOL3zfNMn+bNN+uCSyaT0uc+J3bl0sYcUWqjyMDOVPE3TX/sMjmOh6hZ0pYYa9a8SqpUyGhINkHgGDM9Sfn1DrAG5XA7F/DQCsghNU2CqDlw8aRiVwLtkqmQ93d3IZ/MoVYrUQrCkqywogoeBQsmkgA0hstJqIMNCqSm0VYxYhAYfh4DPjWq1jmIxh4CvkRJCdFJP4F30feQ7SO2fWIByuUyrhmQBCfLYEIldec8997wsHBfGd2EXfVCbsZlLr0/TBf6P0kHy3M4zhC5OBbgw6Ong3hc//eB997//e//8b7cDTHaGB/jaYYwzJtBxLFLUIFMzu7sXrGhra95NBj6QQQ8Mw3C5PMHzq5TKbdCWbAaWZVOlIK/EtJKSrkbxcpN+pigR5ImCj6TTBj43D1kSoBHHTSwBB0rZ9sgSokEJHrcb7pYWKP1VOLCR8Iu0LyCnKrBNk/5/ywF8Lh4ML6FGsAG6qA4sXUO+ZKOq1KgbCmoGXS3GscELxPXMTH8iCnmmfxC1eh22Y4FnOc6yyDXX7u3vT39yIjt+DYCXN27cKG1/ZruGXf/Rk93K9vae5jdd3/CuDTd+9OCBAz/PbSNH17xJswbfPAuwfTseeGCH6+Xn7nt/ZvTwVRvXXXndR+/9g+0/+MEPhF27duk3vuuWWwIR6R5TQ9tA/4kn9uze/fVvfvObDS/tfuWqVC7lTE3225VqmSM7p+/sIK3JE3NJfi7YEnr0p23RYIxO9yaT5WDTQo40M1iECnn4RFlMi7x/ZuQM2TyEWVRRagj7fNSiWCZxNTwkkQSLClLFMi3C0M8gYboN6g5cPIlH2Jn32BZqhkkbVkj1kGQtxNVoOiGQsLSVnHwnuQby57qmzyi9TdTMwdDwKDyujBmJBaUVS1d0TU5M7n/mmWe0NVdce01nV/xG27QHC2XjmXo9n6pWq8yhw98wpvudxb6NH3laNl/67rZt2764Y8MG/hoyAPFiUQCym7ds325ela5+Mx7Ala+eztQ1pvTg3Xd/IKmqJtXrQqH42Wy5fv3Z0/2EMrVs6ZKV1z300EOLyiUlMJUcd1hO4sjoN1JhI/6VmEo6OtCZGaVF6GBkwW2HEk/OM3McWmolrduTk1OINTRSU0tkRnFmduIFy0kUgZSKGV6k72dZnvpnMDb19cRkg/n3tJy8l0T9RB0YloNumKiUCoj7eap0hLNGB0dYJlU4em2U7GHTMjJVWhrQznhF8koGTuTzBT6VTjo1Rf+nFctXft7tFp8/fPjIFyfSQWluexcK+cL3j544+Pvki+fMmXeZV8Q3DuzbaRRK09etX79p3YYN1+x7s2YKvKkxQHp6wl+ouMSq49KUckns6V1we0uo4zJf3HWHTwove/XoAVOpVRnHsZljJ46uJdw5sqkXzO9lCYuW1NXJDreJjyfDGcjAB5MQORyIAktNQK2u0mCNmHBd16lSkAc7MjKCdC6PNatW091G/i/ZtXQhzluSGVsy8/tz586BE13QDQOVQhGtYfeMslHDSuzKjKt5TZlYIJ3JwFBriHkDM9dpk2sDVUTyhXVVg0k/Y+ZwMfrKEkWYYRU5DuEoGGiIN0BRyszZ/lM8xwkrfD7/imqt6pRHCjoHnu3pnnP1nb0f2HzoUP6J5PSBG4ZryrsnAqH6qJpaVFf09zEM9q5fv5PGUReFAmwggQvAXNEWM7qiPvyoVOV65y1wwhHvvW7Bj0Ihg5xeQSpJQBSGplONDY1WsVxi63WVDQaCYMChqlRQrSoU4NHqKk26WcYGy4mIRGKY19mKCJnxoxg0FiAKUFN1sgKU0FEql2Ye9PkI/MLuZ+iCzCwKw3E0xSO9BaV0hn4vmQzCch6aMdA1f+1wOPL+81OryEITnMAmsQipFjI0KFVqpB2MzAsQEA95EYjEoNYUjE8XqIUh1+lYJDYQaNk6Ho+ho7UTxUoe/WdrRBltXVcJBsJzBDmCA6/fv7harjzc3madi0d7+VQ6bVmWzXc2+uzMtFIaxJsnb4oC7Jx5cUqZaSVXymB6ehoiRx5dxBZZ1VEtBUpZZW3HZhpiCay4fBncops7fvIYTMPB4NAwErEGGjHTlEvg0drSjlKpiFw2hcbGJvQuvwrpShWOK4aGkATOUBDwyQiEY5gYH6EBI0kuSMBFXMj5EwbohRFsniE/xCCQgRGaRn22TfWELPBMenbh5/yGpq/EtFPLQdyPReIKCxph83odeD1uhGUJXfM7MeaSaR9iVRcQaujEZE6hbiwYClHyKOEu1KpVyLIHU8kkStUi/P4wGhpi7Nw5nWw2k8eR44cxOj5OqGeOKIp2S0vTXHIpZPpoLp1xlsHL7rNrFEPYufP8U78IFIDulR/++cOBR55/oOtQJQUWNlMo5lHX6mzQF4LHL1HYdN3adWBtHtO5FIZyY+gfGIDb5cUVV6yg6JprgsHRE6fhlj2Y2zkHXp8Pe/buoj62VMjA5wlAjgShqjps3gOR81Ez7g+EZxbLsvDSy/shkY3EzARnPCGHnp87KLIz4NLMxK+ZPJ94CbJLScBmOQ4kkcUMs4swgumx8TMugCgAqdmaJiKhADrmdqJQUVAp1TGUVGCxAfofGMuhxFHyE4vFsfiyxTh+7CQGRwYgkM5kWQLn4SmkfeZMP/L5LK0XiJyIVVdcSe8tm8sQA8NNTEzahmEwpXKJdKricN8pjFhW7YVt2+z169e/KRjOG04sL3DUVixdd29ra+vf6E7NrOQVXnSzlFWrqwYkmWi/jnK1hKZYM1jRgaFZaGpphEMKPNUybdI8cvRVyslbf9V6cIyNgcFzGE+mqJ8PhUJwuTyoVEu0z7+trQ2BQAA876IM3edfeG7Gdzs2JEEA72jwSQzKqgndcGDBQcjjQUd7I1lFHB+aAsuLlDiqqjVc3tsCnz+EobEJTKYKMG0S/bPwSCx0S0CNuHOHhWFqWLxgAdyEXWw5NFshxTydjo/TKDmUKM2Zs/2Ix+Job21BS0sbjp06QWlkpFHx8hWrYDMmrXbqmom6XgXPCHC5ROSLRQphE+CJuBYCN9u2SbyH0zGnxUnEGgdCgdDHyjeXX+499canjL1RC8Du2rXLvv322+cU8uU7zpw5bsteFxsNNIDhHMTCcfowCuUcHIeYXQ3TmTRa2hO0iDM2PobGWDOtphGVX33lOli2QW+8Wquif7Afbe1zsPbKy3Hm9HFMZfIolMrQVB2ZXBYEOUzEG+FySzSwI/ArOELkFGFCQEYxYJjOzBxaxkHVAKYKOnyyTCeBMaRyQ/0Cg5IhIZeqIVPWyWajTSk1g+RaDCnewDJMaiFIGshwhEpmoF5XoakavV5N189jFKQPQcCGdVfh6Ilj6B/oRzQaQ2NDnMYCpMFlKjUFURLQmGik00qI4pJqYjaXQ6VaQzDgp1lKNBqhg6o9PpnwE5lisWBlc5l5J0+eel//g2f3nT83yX7bLMCF3X/DdTd9zWbMbUq5ZpaVMu8YDjiRpeNWvD4Pvdm6okGSBWh18iBVlEsKJpOTiIXiaGiKoVQs0x0di0WRSqahqDWIhNHjAAF/AOeGhzA2Oky7b+fNnYt8No1SrQaBJ/P/WASCYVTKVUoVJwtR1+oUIqbGnKaSFh0CSRBDUSDdOxZN/YgFIKstukSK/pE6A80iSABJ21lJKsiB5zg6RoYMuHBxLlRrZbrbSfsXid1E0YVUOkULUfPnz0NDPIGh4WHqMkhsEwoGaIPLdDpFx+CTBSeIJTH5kVgYHGExSaQfgXAe3GhpbqbNJWQw1URyHJkMUQ7FsWGaC+ctrCycv3Dr393//e+/0ZnDb0oQqFTqjYGox7ZlB+NTEwgHwgiF/ahXDdrNQwgRHreP4vNeWUZdJ6ZTx9w5c6CrM4UXUtnrO3MG+UIcAX9wZt6fKFKlSGfStKwaCgQoXSsYClOrUaoplH8fb4gj4PPB1HQaMBGmr2npFNEjO5nlyAlhHDyyDxZB5DiRzhQUeYdOArEYDiznQGdJ3wBRUo3y/0ltl3FIluDQTqTuuXOh6nVMjqeoK/D7fHC7RPT0zEMqNY1ypUjJoWSBh0eG0dSUmMk4qgqNR06eOkm7mUhsQP5O6gpEcYiitzW1obmliSproVjAyNgoMpkMqoSkyjkIBSLo6ZrPdPe0MovmXxaens6TCWPff6Nr94YUgAw93LVrFzwedyeBSkbGxhzSHxcJhWmzB+HPk8UhO5P8HRXin93w+T2IhCLUSpAHXCwXaNjtO//wSMMG8ctjYyNYtnT5DB5gWeia241qrYLxySlaGFL1GTSwZ+4cMFYdWjWHcMCDQqmGRDxOI2oC1JDbJHUUshtJf4Cp6ojFQ7j3Ex8Cy7nwwwd+jNGJcXg9flSU4kw1kgI4FlUcksIRizGdmkQ8GqWKcPLMSVqCJu6n+OpBBPw+rLrySqTTGTrVhEDC09MpunOJopNAlngikmoauo5AJIzLFi6Ez+un4BF5RsePn6DNJeQ4O0mS6OuSxUuxoLcLzY0tCAdC4CST2bnjFWd0bNJPLMv27dvfvhiATPokvjuTz8VGJkacUqlMizHEd2mGSnn9ZPeFgiHaL0eaJQllOplMUe0n41xJH1yANHu63BAEkS4weUCkO5jsFOJzCSCTSk/T9mpS/CF8ikg4jCVLlsCs11GpVeEIMqq6g1I+ReMC4kMJV7+jtRnlYon2CFYU0vBRogQsiTehT+6jnccCaiiXq9BUC4RDThaFYR14ZDeNOUgcQ9wQGRJBG0G1KpYuWUzdmGnq9LpI48jJU6dp4EsIIVE5AssUaTvYTJHLwcL5C+Dze+H3Bui9Z3IZHD9xHMl0ilLgEw0NmNczj8ZJJNUklcRNN2+idQ5CSSXp6769e9hdu15herq75xqG6WYYpv5GegXeqAsgJUpzfGL8ZwzDLud53iH5eDqbpe1XZBFpRCu4QbqBJclPdxnxy8Q/VqplyG5isk34/D64JTft+vEEyJhXFoZEcm6dugfSW0ciZtO0qPkmpp8EXpFQlE7/VGp5xBsaEG9sgF6roVwvw0t8aWsnmFZgKjlJ6VwVpYx53YuwcGE3Xu0bhWOY6Jy7AFXLjf4zfZi3YB7CnigsVqf++NzQOVRrCu3l4yFhYnISXtkHn59ct0EXkXQCk0CRtoQ7DlyCQDEAssiiGEdTYxPa21rBsQJy+SxOnzmNbC5LiS+kjL1i6XJanSQ/JPO5/8EfUTd2x+23U15hXS/TIVm/2rEb/SP9tsC52PHJCTKC1nyjo+TeaBpINW/+5ZdHpkfGh2uK4mMZzpAkniMbl6hkS0sT5nZ0wR/w0rYsAqYUyyUcPHyYVs+uvno9bQVPpiaodSAPknLzAn7a7kU6bYhlqShVBP0haiEI1Zq4DdIMGg6GEY1FqGKQPdDR2U6gfcDRqTkuVVW6AzPZDOp1jU74bIg2QfL7AXKWcJEcBqWiWi2jUlLg9bvhEmTYjAHbAOZ2dYAglYpSRzaboXV9ooDkXkj3ryiJiEbC1EWIojQzr9i20dU5lwa0A+cG6XWRZtfxCRKgmtR6CaJIMx8CHwcDIdqlRCqc5DvIUGuOE/Glz/8+bQ59Ydez2L//EGpa3ZHdksFAEE3TfN/U1MhPAZIJ/L+3ir1hHOBCFLp48Yp7i9Xit7WaKZKaSrFYdizbskRR4AROYppaEljQs4AWXHa+tAdKpQrWsbFm9VosmL+I+t5cJo+p1ASqlSq1DiSwI7AxeUAk5bNMUvzR6Di2QrlAdx5B6oiZJanYxMQE/f/EqpDdR7iE1WqNtmY1NbTQVu10ZgylfA1LlvbgZN8Qivkcli/pxtGTIzSaj8bCYB0BIxNDcCwHkUgIak2jff6lcpmaaRLU0m5jg5wKosLv8yIcClFXRzqGiRSKRSRTKbrwJFsIBPxYtHAR1qxeRfsOH3joX+D1yrRcTPAE4s8joSAtTBEO4bp1V6OrswM///kvMDw+5AicZDOcw8ZjUQY2Oyi5uN5DhzZZwK8P3H7LFeDC55BhkDfddFP3dLJ8h8nU35fNlBZXKuWZsrXDWIqqEN/HyR4PSkoFMIivlekOJ7P2G5oSaGpohugS8OqBV2igaGg6iqUCDEOnC0qyg1AoQINLMuGT7DjS2UPm/+u6QapslENIMgYSOJIInMQe9bpCsYPGRAL+kB+pyTQ+seFK/OTFPVBtA3ddfw3+4fndCEfIzP8i8rki7eWTSV+fodFBk7linpplYslEfiY7CfkDkGU3VThSKSyUChQGJ9dcr5H5xG6aTi5fugwfvefD8JCWMkHE9//+7/CrnbvREI/RsbXZfJGuoE92UxiDsIgTiYRz7PhxmxBg3bLEkVhFll2az+fba2vOthN9h/e8GRXBN5Ni8logQsgh3/3u31+dy+fushnjPYbqRPPFLJ29Cwamy+1mbctiG6IRap7T2QKlYDVE4zQNI+nb/IW9dOo36eStKwrKZF6AotD0i5AtyY4K+AJwSW5yUgc9Bl6p16nPJBE/KQqR5kzSgl1Xa8jmyPAGIBaPwnZYLE6ncNIk7YQ65jFAXyQyU66tVihPgOAXHreHmuZoKAaHsUlJGy3NjWhraSPnG6FcqSJfyNMAlbgjonCiINFUdE7nHKxcsZIUh/Gzx57A//jKlzE1mcKBg6+gf3AAE8lphPx+mhWMTUzRYNlF3AILOxaJOmMT4xy5D7JhBJ6r8oKwU/a6vtZ3/PiR33zeb3TR3kwhHT8EHXzNJ63buC7GKZ7fG0+O3FWvq2s11WDIHL1wKGwlYjEumcnOdM0Y5PxNBpVyAW2tLTTCN3SLtneRh0oeeDo9s7uISSWVQzK9gwSVoXCA+m3TIWnhjF+d+bwZzj6xAB4PmRFAjhFiUSoq6G1vwPh0HqZWR3sshFeHJuF2SzNkEsIZtHQEvH7akNIYb4LH5wbrcFSZSBZDInVSfSSLTgZCUtcjyzR+ec+mm+h4ep7lsO/Afvzw/n/E3LlzqAIRhQ8GApiYSlFlJVjC+OSUw7KMJfA8Kwg8SwZMZAq5umVaeziBf1RipWeGhk6PXXjG51/ti7kziJ6IMXNQxr+jVJdfvmapomgfqOmVO+PheFuhVHLOjY5YAa+PDoeyHIZTqhUmFPBj1apVgE24fgSyZemkD0K1JgRPSZRoujV9fucRDojESzSTIGaWTAQh6RkpQJHJr/lSnsKwJKXs6GiDxMkYz0xQGJawdeOJKBbM6aGDpA8fOwqvm4yR9yMeaYDpGCgVyhTly+cKtBZBUj5i3psSjTRyb0g0QuRYTGem8cQvn8PKpUuwZNFCtDY1Yce+vXjhV7uohQuHgjReIGa/XKk6HMfaAb+fKZaqlMdCngM4nGPAP2Bo+r+OjQ0Mve6ZvqkL/9pCvZkf9p99x2/2vd16662+9tZ5d+bL+fuf+MUT4DnS1El6/i2o9boZ8PvZ9o4OtrWhCYZjgAVPmy5KRTK9w4HkEpHO5DA5NUU7h1auWI70dAakAklEJpiCSE4L0ajfJzk8AXOIAgkih+aGFjQ0RDExNYV4OIK29gSSU1mcOtMHyeWCT/bTen16Oot0Lg2L0MTOB2eknt81pxvd3XPR1NAIl+xCNptDNp3C3gMH8OrhIzSKJ0Ay6Qkg3zM6OkHPGfJ5vTbPsXY2XyAUeI6QXjxeN3E5kw5rP+2SfI8Y9eLu0X8/WYwFSNXvfztO581bHLy18msuYuOmTetPHu97LwNWcHklyTKcOzRNC5BqnmFb5hVLV3Kii1T3JYgyj0K+SPGDXKFAARqCz2t1Be++8UYKxw4PD4G0lBEkjoA4BNIlkDAJFkmjCckmSD5PgjlSPDJMMhtQxHQ2RauRxGL4Az4U86TnoEQtUFNzA80+SEq39so1dGSs3xOAZtbpRPFaXcHpvrPQ1Bqe37WHxhrElVxgBSXiUWSzeUvVNcYjewgngio6z7NZjpdesG3jkXqVez6fHyz/RmZFKZCXanMo7RD+zabI9773rpazQ/13afX6p1VNa2+INmDJ0vlWrWSyqcIkMzQ0hiKxAiyZJ0jePjMRrKujE5s23UyDxHJFoYvQd/YU7nzvZiTTk+g/M4h0dpr6a7LDCfJIcvFytQyCpxBlIUQPktcbpk53dnfPXGy84SbIXhfu/eJXKKGTQLGhoB+xcASxeBitja1IZZJIpTJwyy48++IOmuYSzgEhdXhl2fL7vFy+UCQ0AYJ0DjowXhJZ+SmVN3akBgczr7t97vwkgN/KHID/00K8bTKj6TNceGAX7REkf+rt7U2UKvqXbMfeHG+IdEyniigpBZNxWNYtSSxJ8QjSRthDqlonpC68787NNAgj5vjs2X4cePVlfOKeT+DW225CMVcGyUImJiZxbmgIQ8PnKD7Acg7t5SOVQ9Ib0Du/F9e+62qsueIqdMxtA2lT/70tt+O5F3fT6WIk1SRWg5h3icz8Yzl4Cc08EqUWZWBoxBFFwSYZCMOwHBluSdrbanVtu2E5/ywwxguvM++v7xF7Sxf9oukN/A/KmBfiBVIk/8NYLPaNsVH1Ztnl/VY44G+v12eSC9u2TfKABZ5nQI6AKVXpkKZVl1+Bo8dP4NzIKOUT7tn/Em7YeA38Xh/cHoK8cUim0hidnEJPZxf9Xd/pM3j/++7Els13YPGiJRBcHB0/Qxb0a1u/hp179lIsgVgIksNL5xE8whAigBA5w6BYKtvFctnmOI5niXoSJI8VMpbjPKmZ+o9Hhwd+9Z8s+uzRsf+JMMB67gLE2dOzImpztTuMuvNBsM5aEs2TEa02KdfBga7qbGtbM9M7fxF27N5J00BdV+ESRNyyaSNSyTw9dXxsYhKOYeDqDevwh5/7Ag6dOo5v/vlfIhj004h+yeLFWLv2CqxbvQ679u7Ct7/11ygqZTIlZqYPgSW2xnkN7pUk0QoHAyTY5Cq1CkReMgRe2MOw9naelR8bHj45/R8s+kV1cOTbPSDi/zpWWLB48ZWaanzQ0Oz3sjyadc2i6B9L5sayHFut1Vg6l1dXEQmEack5ny9DFHm4XeTYmRW48vIl8HmDeObFF6jFIDBsKpkEHEIg4dDU3IpQyEvHx08kJ+kZRKS/iZh+Z2Y0GDHzfDQapulgqVh5BazzmCy6fz4wcKrvddd/YeHf9p3+TlWAC8Jg/XoOr0sl29vbg7ws38La4odNR7vW1ByG9u/VFEKhJuxAZk5rJyv7JIyPJ+lpYfO75tKKY7VeoYs6PjWB6UyGzh4mFUcCMJGdrlRr6OhopQDU+OQE4PAO4f6wDMsSI0/KzG6XSOL8/Q6Dhwb7Tv79r13rv0/9uKh2+ztZAV4vLDZvZshBzBd+0btkyVLOlu4sVgofKJbLbYRqLkosIv6QlS3mCU2ca2lsoJz+Wk2lFO1wIIJ8MYfJZAo+jxuaMTNZlLZ/WeSAqShNw0bGJyDwLo4XGbhFGZKL6/d7fY8YDvNI3/GDr4dlLzRqXDQHQ1+qCnBBGGzezGKGEUN3WldXl7+gqJtMzXxPLB5ZFfKF2samJukIWI9LMjme50RRYsgik3pCrpCjWD6pKhKAifQPkD9wDGs3NsZJSRu5Yo5UB5OsaD3LMp6H3YLxq8HBQe3XEc/f7rk+v015JyvA/7EGsWbNGp9p8u/NFDL3aKq+XhR5hhR5bMcxSbDu9XhYwr0jeD6pSLIMZxumZbMswxOFcLnFMseIj+tG5fFKETtKpVF6LPXryLDvuN1+KSvAbwaNRF7ble1dC5aJAvtB1ubu1i09ahozEbxSUxilqjgsQZUY4uFpH6Am8e4XIJh/mBobO/26z75oI/k3IpeaArxeLpjn1xbs8t7LEwW78hHH4D4hurhOQskmQx8IPMyAP8Sw+CnDO49nJycHZj6Csm2cS23RfxeFxUwTBZXe3l7v4qWLP93ePv9lfyTxD6HG2Nr/7f9fJPOTZuXNTyf/T+gnP7vwvxtCIGf+denbxTO3bVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmZVZmBf+v8v8BSsDXbmafKKMAAAAASUVORK5CYII=";
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ //#region src/assets/brand-mark.ts
3
+ var e = "data:image/png;base64,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";
4
+ //#endregion
5
+ export { e as basaltMarkPng };
6
+
7
+ //# sourceMappingURL=brand-mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-mark.js","names":[],"sources":["../../src/assets/brand-mark.ts"],"sourcesContent":["export const basaltMarkPng =\n\t\"data:image/png;base64,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\";\n"],"mappings":";;AAAA,IAAa,IACZ"}
@@ -1,12 +1,65 @@
1
- import { type XYPoint, type XYSeriesDescriptor } from "./series.js";
2
- export type AreaChartProps = {
3
- data: XYPoint[];
4
- series?: XYSeriesDescriptor[];
1
+ import type { ReactNode } from "react";
2
+ import type { LineChartAxisDomain, LineChartLegendRenderer, LineChartNumericKeys, LineChartTooltipRenderer } from "./line.js";
3
+ import { type ChartSeriesDescriptor, type XYPoint } from "./series.js";
4
+ export type AreaChartProps<TData extends {
5
+ x: string | number;
6
+ } = XYPoint, K extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string> = {
7
+ /**
8
+ * Dataset array where each record requires an `x` category or time coordinate.
9
+ * Any remaining fields with numeric, nullable, or optional number values are inferred as valid series keys.
10
+ */
11
+ data: TData[];
12
+ /**
13
+ * Series descriptors identifying which numeric keys to plot.
14
+ * Inferred strictly from numeric keys of `TData` (rejects non-numeric fields, `x`, and typos).
15
+ */
16
+ series?: Array<ChartSeriesDescriptor<NoInfer<K>>>;
5
17
  ariaLabel?: string;
6
18
  className?: string;
7
19
  showAxes?: boolean;
8
20
  showLegend?: boolean;
9
21
  stacked?: boolean;
22
+ /**
23
+ * Stacking offset algorithm (e.g. "expand" for 100% normalized percentage area stacks).
24
+ */
25
+ stackOffset?: "none" | "expand" | "wiggle" | "silhouette";
26
+ /**
27
+ * Value formatter for Y-axis tick values and fallback tooltip values.
28
+ */
10
29
  valueFormatter?: (value: number) => string;
30
+ /**
31
+ * Formatter for X-axis category or time tick labels.
32
+ */
33
+ xValueFormatter?: (value: string | number) => string;
34
+ /**
35
+ * Custom numerical or keyword bounds for the Y-axis.
36
+ */
37
+ yDomain?: LineChartAxisDomain;
38
+ /**
39
+ * Custom legend slot or render function receiving resolved series descriptors.
40
+ */
41
+ legend?: ReactNode | LineChartLegendRenderer<K>;
42
+ /**
43
+ * Custom tooltip content renderer receiving Recharts payload, active status, and coordinate label.
44
+ */
45
+ customTooltip?: LineChartTooltipRenderer;
46
+ /**
47
+ * Textual summary describing key insights, highs, lows, and keyboard exploration instructions.
48
+ * Associated with the chart via useId and aria-describedby.
49
+ */
50
+ summary?: ReactNode;
51
+ /**
52
+ * Accessible tabular or structured data alternative rendered outside the plot area.
53
+ */
54
+ dataAlternative?: ReactNode;
55
+ /**
56
+ * Whether the interactive accessibility layer is enabled on the underlying Recharts graphic.
57
+ * Enables keyboard exploration with Tab and arrow keys where supported by the underlying chart type.
58
+ * Non-interactive compact or decorative charts without tooltip navigation should provide summary or dataAlternative.
59
+ * @default true
60
+ */
61
+ accessibilityLayer?: boolean;
11
62
  };
12
- export declare function AreaChart({ data, series, ariaLabel, className, showAxes, showLegend, stacked, valueFormatter, }: AreaChartProps): import("react").JSX.Element;
63
+ export declare function AreaChart<TData extends {
64
+ x: string | number;
65
+ } = XYPoint, K extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string>({ data, series, ariaLabel, className, showAxes, showLegend, stacked, stackOffset, valueFormatter, xValueFormatter, yDomain, legend, customTooltip, summary, dataAlternative, accessibilityLayer, }: AreaChartProps<TData, K>): import("react").JSX.Element;
@@ -6,39 +6,47 @@ import { ChartLegend as d } from "./legend.js";
6
6
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
7
7
  import { Area as m, AreaChart as h, CartesianGrid as g, Tooltip as _, XAxis as v, YAxis as y } from "recharts";
8
8
  //#region src/charts/area.tsx
9
- function b({ data: b, series: x, ariaLabel: S = "Area chart", className: C, showAxes: w = !1, showLegend: T = !1, stacked: E = !1, valueFormatter: D }) {
10
- let O = c(x, l(b)), k = E ? "stack" : void 0;
9
+ function b({ data: b, series: x, ariaLabel: S = "Area chart", className: C, showAxes: w = !1, showLegend: T = !1, stacked: E = !1, stackOffset: D, valueFormatter: O, xValueFormatter: k, yDomain: A, legend: j, customTooltip: M, summary: N, dataAlternative: P, accessibilityLayer: F }) {
10
+ let I = c(x, l(b)), L = E || D ? "stack" : void 0, R = j === void 0 ? T ? /* @__PURE__ */ f(d, {
11
+ items: I,
12
+ shape: "area"
13
+ }) : void 0 : typeof j == "function" ? j({ items: I }) : j;
11
14
  return /* @__PURE__ */ f(u, {
12
15
  ariaLabel: S,
13
16
  className: C,
14
- legend: T ? /* @__PURE__ */ f(d, {
15
- items: O,
16
- shape: "area"
17
- }) : void 0,
17
+ legend: R,
18
+ summary: N,
19
+ dataAlternative: P,
20
+ accessibilityLayer: F,
18
21
  children: /* @__PURE__ */ p(h, {
19
22
  data: b,
20
23
  margin: w ? t : n,
24
+ stackOffset: D,
21
25
  children: [
22
26
  w ? /* @__PURE__ */ f(g, { ...i }) : null,
23
27
  /* @__PURE__ */ f(v, {
24
28
  dataKey: "x",
25
- ...a(!w)
29
+ ...a(!w),
30
+ tickFormatter: k
26
31
  }),
27
32
  /* @__PURE__ */ f(y, {
28
33
  ...a(!w),
29
- tickFormatter: D
34
+ tickFormatter: O,
35
+ ...A ? { domain: A } : {}
30
36
  }),
31
37
  /* @__PURE__ */ f(_, { ...o({
32
- formatter: D,
33
- cursor: "line"
38
+ formatter: O,
39
+ cursor: "line",
40
+ customTooltip: M
34
41
  }) }),
35
- O.map((t, n) => {
42
+ I.map((t, n) => {
36
43
  let i = s(t, n);
37
44
  return /* @__PURE__ */ f(m, {
38
45
  dataKey: t.key,
39
46
  name: t.label ?? t.key,
40
- stackId: k,
47
+ stackId: L,
41
48
  stroke: i,
49
+ strokeWidth: r.strokeWidth,
42
50
  fill: i,
43
51
  fillOpacity: r.areaFillAlpha,
44
52
  ...e
@@ -1 +1 @@
1
- {"version":3,"file":"area.js","names":[],"sources":["../../src/charts/area.tsx"],"sourcesContent":["import { Area, CartesianGrid, AreaChart as RechartsArea, Tooltip, XAxis, YAxis } from \"recharts\";\nimport {\n\tANIMATION_PROPS,\n\tCHART_PLOT_MARGIN,\n\tCHART_PLOT_MARGIN_BARE,\n\tCHART_TYPE,\n\tcartesianAxisProps,\n\tchartTooltipProps,\n\tGRID_PROPS,\n\tseriesColor,\n} from \"./config\";\nimport { ChartShell } from \"./frame\";\nimport { ChartLegend } from \"./legend\";\nimport {\n\tresolveChartSeries,\n\ttype XYPoint,\n\ttype XYSeriesDescriptor,\n\txyFallbackKeys,\n} from \"./series\";\n\nexport type AreaChartProps = {\n\tdata: XYPoint[];\n\tseries?: XYSeriesDescriptor[];\n\tariaLabel?: string;\n\tclassName?: string;\n\tshowAxes?: boolean;\n\tshowLegend?: boolean;\n\tstacked?: boolean;\n\tvalueFormatter?: (value: number) => string;\n};\n\nexport function AreaChart({\n\tdata,\n\tseries,\n\tariaLabel = \"Area chart\",\n\tclassName,\n\tshowAxes = false,\n\tshowLegend = false,\n\tstacked = false,\n\tvalueFormatter,\n}: AreaChartProps) {\n\tconst areas = resolveChartSeries(series, xyFallbackKeys(data));\n\tconst stackId = stacked ? \"stack\" : undefined;\n\treturn (\n\t\t<ChartShell\n\t\t\tariaLabel={ariaLabel}\n\t\t\tclassName={className}\n\t\t\tlegend={showLegend ? <ChartLegend items={areas} shape=\"area\" /> : undefined}\n\t\t>\n\t\t\t<RechartsArea data={data} margin={showAxes ? CHART_PLOT_MARGIN : CHART_PLOT_MARGIN_BARE}>\n\t\t\t\t{showAxes ? <CartesianGrid {...GRID_PROPS} /> : null}\n\t\t\t\t<XAxis dataKey=\"x\" {...cartesianAxisProps(!showAxes)} />\n\t\t\t\t<YAxis {...cartesianAxisProps(!showAxes)} tickFormatter={valueFormatter} />\n\t\t\t\t<Tooltip {...chartTooltipProps({ formatter: valueFormatter, cursor: \"line\" })} />\n\t\t\t\t{areas.map((item, index) => {\n\t\t\t\t\tconst fill = seriesColor(item, index);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Area\n\t\t\t\t\t\t\tkey={item.key}\n\t\t\t\t\t\t\tdataKey={item.key}\n\t\t\t\t\t\t\tname={item.label ?? item.key}\n\t\t\t\t\t\t\tstackId={stackId}\n\t\t\t\t\t\t\tstroke={fill}\n\t\t\t\t\t\t\tfill={fill}\n\t\t\t\t\t\t\tfillOpacity={CHART_TYPE.areaFillAlpha}\n\t\t\t\t\t\t\t{...ANIMATION_PROPS}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</RechartsArea>\n\t\t</ChartShell>\n\t);\n}\n"],"mappings":";;;;;;;;AA+BA,SAAgB,EAAU,EACzB,SACA,WACA,eAAY,cACZ,cACA,cAAW,IACX,gBAAa,IACb,aAAU,IACV,qBACkB;CAClB,IAAM,IAAQ,EAAmB,GAAQ,EAAe,CAAI,CAAC,GACvD,IAAU,IAAU,UAAU,KAAA;CACpC,OACC,kBAAC,GAAD;EACY;EACA;EACX,QAAQ,IAAa,kBAAC,GAAD;GAAa,OAAO;GAAO,OAAM;EAAQ,CAAA,IAAI,KAAA;EAElE,UAAA,kBAAC,GAAD;GAAoB;GAAM,QAAQ,IAAW,IAAoB;GAAjE,UAAA;IACE,IAAW,kBAAC,GAAD,EAAe,GAAI,EAAa,CAAA,IAAI;IAChD,kBAAC,GAAD;KAAO,SAAQ;KAAI,GAAI,EAAmB,CAAC,CAAQ;IAAI,CAAA;IACvD,kBAAC,GAAD;KAAO,GAAI,EAAmB,CAAC,CAAQ;KAAG,eAAe;IAAiB,CAAA;IAC1E,kBAAC,GAAD,EAAS,GAAI,EAAkB;KAAE,WAAW;KAAgB,QAAQ;IAAO,CAAC,EAAI,CAAA;IAC/E,EAAM,KAAK,GAAM,MAAU;KAC3B,IAAM,IAAO,EAAY,GAAM,CAAK;KACpC,OACC,kBAAC,GAAD;MAEC,SAAS,EAAK;MACd,MAAM,EAAK,SAAS,EAAK;MAChB;MACT,QAAQ;MACF;MACN,aAAa,EAAW;MACxB,GAAI;KACJ,GARK,EAAK,GAQV;IAEH,CAAC;GACY;;CACH,CAAA;AAEd"}
1
+ {"version":3,"file":"area.js","names":[],"sources":["../../src/charts/area.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Area, CartesianGrid, AreaChart as RechartsArea, Tooltip, XAxis, YAxis } from \"recharts\";\nimport {\n\tANIMATION_PROPS,\n\tCHART_PLOT_MARGIN,\n\tCHART_PLOT_MARGIN_BARE,\n\tCHART_TYPE,\n\tcartesianAxisProps,\n\tchartTooltipProps,\n\tGRID_PROPS,\n\tseriesColor,\n} from \"./config\";\nimport { ChartShell } from \"./frame\";\nimport { ChartLegend } from \"./legend\";\nimport type {\n\tLineChartAxisDomain,\n\tLineChartLegendRenderer,\n\tLineChartNumericKeys,\n\tLineChartTooltipRenderer,\n} from \"./line\";\nimport {\n\ttype ChartSeriesDescriptor,\n\tresolveChartSeries,\n\ttype XYPoint,\n\txyFallbackKeys,\n} from \"./series\";\n\nexport type AreaChartProps<\n\tTData extends { x: string | number } = XYPoint,\n\tK extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string,\n> = {\n\t/**\n\t * Dataset array where each record requires an `x` category or time coordinate.\n\t * Any remaining fields with numeric, nullable, or optional number values are inferred as valid series keys.\n\t */\n\tdata: TData[];\n\t/**\n\t * Series descriptors identifying which numeric keys to plot.\n\t * Inferred strictly from numeric keys of `TData` (rejects non-numeric fields, `x`, and typos).\n\t */\n\tseries?: Array<ChartSeriesDescriptor<NoInfer<K>>>;\n\tariaLabel?: string;\n\tclassName?: string;\n\tshowAxes?: boolean;\n\tshowLegend?: boolean;\n\tstacked?: boolean;\n\t/**\n\t * Stacking offset algorithm (e.g. \"expand\" for 100% normalized percentage area stacks).\n\t */\n\tstackOffset?: \"none\" | \"expand\" | \"wiggle\" | \"silhouette\";\n\t/**\n\t * Value formatter for Y-axis tick values and fallback tooltip values.\n\t */\n\tvalueFormatter?: (value: number) => string;\n\t/**\n\t * Formatter for X-axis category or time tick labels.\n\t */\n\txValueFormatter?: (value: string | number) => string;\n\t/**\n\t * Custom numerical or keyword bounds for the Y-axis.\n\t */\n\tyDomain?: LineChartAxisDomain;\n\t/**\n\t * Custom legend slot or render function receiving resolved series descriptors.\n\t */\n\tlegend?: ReactNode | LineChartLegendRenderer<K>;\n\t/**\n\t * Custom tooltip content renderer receiving Recharts payload, active status, and coordinate label.\n\t */\n\tcustomTooltip?: LineChartTooltipRenderer;\n\t/**\n\t * Textual summary describing key insights, highs, lows, and keyboard exploration instructions.\n\t * Associated with the chart via useId and aria-describedby.\n\t */\n\tsummary?: ReactNode;\n\t/**\n\t * Accessible tabular or structured data alternative rendered outside the plot area.\n\t */\n\tdataAlternative?: ReactNode;\n\t/**\n\t * Whether the interactive accessibility layer is enabled on the underlying Recharts graphic.\n\t * Enables keyboard exploration with Tab and arrow keys where supported by the underlying chart type.\n\t * Non-interactive compact or decorative charts without tooltip navigation should provide summary or dataAlternative.\n\t * @default true\n\t */\n\taccessibilityLayer?: boolean;\n};\n\nexport function AreaChart<\n\tTData extends { x: string | number } = XYPoint,\n\tK extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string,\n>({\n\tdata,\n\tseries,\n\tariaLabel = \"Area chart\",\n\tclassName,\n\tshowAxes = false,\n\tshowLegend = false,\n\tstacked = false,\n\tstackOffset,\n\tvalueFormatter,\n\txValueFormatter,\n\tyDomain,\n\tlegend,\n\tcustomTooltip,\n\tsummary,\n\tdataAlternative,\n\taccessibilityLayer,\n}: AreaChartProps<TData, K>) {\n\tconst areas = resolveChartSeries(\n\t\tseries,\n\t\txyFallbackKeys(data as unknown as Array<{ y2?: number; y3?: number }>) as K[],\n\t);\n\tconst stackId = stacked || stackOffset ? \"stack\" : undefined;\n\tconst resolvedLegend =\n\t\tlegend !== undefined ? (\n\t\t\ttypeof legend === \"function\" ? (\n\t\t\t\tlegend({ items: areas })\n\t\t\t) : (\n\t\t\t\tlegend\n\t\t\t)\n\t\t) : showLegend ? (\n\t\t\t<ChartLegend items={areas} shape=\"area\" />\n\t\t) : undefined;\n\n\treturn (\n\t\t<ChartShell\n\t\t\tariaLabel={ariaLabel}\n\t\t\tclassName={className}\n\t\t\tlegend={resolvedLegend}\n\t\t\tsummary={summary}\n\t\t\tdataAlternative={dataAlternative}\n\t\t\taccessibilityLayer={accessibilityLayer}\n\t\t>\n\t\t\t<RechartsArea\n\t\t\t\tdata={data}\n\t\t\t\tmargin={showAxes ? CHART_PLOT_MARGIN : CHART_PLOT_MARGIN_BARE}\n\t\t\t\tstackOffset={stackOffset}\n\t\t\t>\n\t\t\t\t{showAxes ? <CartesianGrid {...GRID_PROPS} /> : null}\n\t\t\t\t<XAxis dataKey=\"x\" {...cartesianAxisProps(!showAxes)} tickFormatter={xValueFormatter} />\n\t\t\t\t<YAxis\n\t\t\t\t\t{...cartesianAxisProps(!showAxes)}\n\t\t\t\t\ttickFormatter={valueFormatter}\n\t\t\t\t\t{...(yDomain ? { domain: yDomain as [number, number] } : {})}\n\t\t\t\t/>\n\t\t\t\t<Tooltip\n\t\t\t\t\t{...chartTooltipProps({\n\t\t\t\t\t\tformatter: valueFormatter,\n\t\t\t\t\t\tcursor: \"line\",\n\t\t\t\t\t\tcustomTooltip,\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t\t{areas.map((item, index) => {\n\t\t\t\t\tconst fill = seriesColor(item, index);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Area\n\t\t\t\t\t\t\tkey={item.key}\n\t\t\t\t\t\t\tdataKey={item.key}\n\t\t\t\t\t\t\tname={item.label ?? item.key}\n\t\t\t\t\t\t\tstackId={stackId}\n\t\t\t\t\t\t\tstroke={fill}\n\t\t\t\t\t\t\tstrokeWidth={CHART_TYPE.strokeWidth}\n\t\t\t\t\t\t\tfill={fill}\n\t\t\t\t\t\t\tfillOpacity={CHART_TYPE.areaFillAlpha}\n\t\t\t\t\t\t\t{...ANIMATION_PROPS}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</RechartsArea>\n\t\t</ChartShell>\n\t);\n}\n"],"mappings":";;;;;;;;AAwFA,SAAgB,EAGd,EACD,SACA,WACA,eAAY,cACZ,cACA,cAAW,IACX,gBAAa,IACb,aAAU,IACV,gBACA,mBACA,oBACA,YACA,WACA,kBACA,YACA,oBACA,yBAC4B;CAC5B,IAAM,IAAQ,EACb,GACA,EAAe,CAAsD,CACtE,GACM,IAAU,KAAW,IAAc,UAAU,KAAA,GAC7C,IACL,MAAW,KAAA,IAMP,IACH,kBAAC,GAAD;EAAa,OAAO;EAAO,OAAM;CAAQ,CAAA,IACtC,KAAA,IAPH,OAAO,KAAW,aACjB,EAAO,EAAE,OAAO,EAAM,CAAC,IAEvB;CAMH,OACC,kBAAC,GAAD;EACY;EACA;EACX,QAAQ;EACC;EACQ;EACG;EAEpB,UAAA,kBAAC,GAAD;GACO;GACN,QAAQ,IAAW,IAAoB;GAC1B;GAHd,UAAA;IAKE,IAAW,kBAAC,GAAD,EAAe,GAAI,EAAa,CAAA,IAAI;IAChD,kBAAC,GAAD;KAAO,SAAQ;KAAI,GAAI,EAAmB,CAAC,CAAQ;KAAG,eAAe;IAAkB,CAAA;IACvF,kBAAC,GAAD;KACC,GAAI,EAAmB,CAAC,CAAQ;KAChC,eAAe;KACf,GAAK,IAAU,EAAE,QAAQ,EAA4B,IAAI,CAAC;IAC1D,CAAA;IACD,kBAAC,GAAD,EACC,GAAI,EAAkB;KACrB,WAAW;KACX,QAAQ;KACR;IACD,CAAC,EACD,CAAA;IACA,EAAM,KAAK,GAAM,MAAU;KAC3B,IAAM,IAAO,EAAY,GAAM,CAAK;KACpC,OACC,kBAAC,GAAD;MAEC,SAAS,EAAK;MACd,MAAM,EAAK,SAAS,EAAK;MAChB;MACT,QAAQ;MACR,aAAa,EAAW;MAClB;MACN,aAAa,EAAW;MACxB,GAAI;KACJ,GATK,EAAK,GASV;IAEH,CAAC;GACY;;CACH,CAAA;AAEd"}
@@ -1,12 +1,61 @@
1
- import { type XYPoint, type XYSeriesDescriptor } from "./series.js";
2
- export type BarChartProps = {
3
- data: XYPoint[];
4
- series?: XYSeriesDescriptor[];
1
+ import type { ReactNode } from "react";
2
+ import type { LineChartAxisDomain, LineChartLegendRenderer, LineChartNumericKeys, LineChartTooltipRenderer } from "./line.js";
3
+ import { type ChartSeriesDescriptor, type XYPoint } from "./series.js";
4
+ export type BarChartProps<TData extends {
5
+ x: string | number;
6
+ } = XYPoint, K extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string> = {
7
+ /**
8
+ * Dataset array where each record requires an `x` category or time coordinate.
9
+ * Any remaining fields with numeric, nullable, or optional number values are inferred as valid series keys.
10
+ */
11
+ data: TData[];
12
+ /**
13
+ * Series descriptors identifying which numeric keys to plot.
14
+ * Inferred strictly from numeric keys of `TData` (rejects non-numeric fields, `x`, and typos).
15
+ */
16
+ series?: Array<ChartSeriesDescriptor<NoInfer<K>>>;
5
17
  ariaLabel?: string;
6
18
  className?: string;
7
19
  showAxes?: boolean;
8
20
  showLegend?: boolean;
9
21
  color?: string;
22
+ /**
23
+ * Value formatter for Y-axis tick values and fallback tooltip values.
24
+ */
10
25
  valueFormatter?: (value: number) => string;
26
+ /**
27
+ * Formatter for X-axis category or time tick labels.
28
+ */
29
+ xValueFormatter?: (value: string | number) => string;
30
+ /**
31
+ * Custom numerical or keyword bounds for the Y-axis.
32
+ */
33
+ yDomain?: LineChartAxisDomain;
34
+ /**
35
+ * Custom legend slot or render function receiving resolved series descriptors.
36
+ */
37
+ legend?: ReactNode | LineChartLegendRenderer<K>;
38
+ /**
39
+ * Custom tooltip content renderer receiving Recharts payload, active status, and coordinate label.
40
+ */
41
+ customTooltip?: LineChartTooltipRenderer;
42
+ /**
43
+ * Textual summary describing key insights, highs, lows, and keyboard exploration instructions.
44
+ * Associated with the chart via useId and aria-describedby.
45
+ */
46
+ summary?: ReactNode;
47
+ /**
48
+ * Accessible tabular or structured data alternative rendered outside the plot area.
49
+ */
50
+ dataAlternative?: ReactNode;
51
+ /**
52
+ * Whether the interactive accessibility layer is enabled on the underlying Recharts graphic.
53
+ * Enables keyboard exploration with Tab and arrow keys where supported by the underlying chart type.
54
+ * Non-interactive compact or decorative charts without tooltip navigation should provide summary or dataAlternative.
55
+ * @default true
56
+ */
57
+ accessibilityLayer?: boolean;
11
58
  };
12
- export declare function BarChart({ data, series, ariaLabel, className, showAxes, showLegend, color, valueFormatter, }: BarChartProps): import("react").JSX.Element;
59
+ export declare function BarChart<TData extends {
60
+ x: string | number;
61
+ } = XYPoint, K extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string>({ data, series, ariaLabel, className, showAxes, showLegend, color, valueFormatter, xValueFormatter, yDomain, legend, customTooltip, summary, dataAlternative, accessibilityLayer, }: BarChartProps<TData, K>): import("react").JSX.Element;
@@ -6,15 +6,18 @@ import { ChartLegend as d } from "./legend.js";
6
6
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
7
7
  import { Bar as m, BarChart as h, CartesianGrid as g, Tooltip as _, XAxis as v, YAxis as y } from "recharts";
8
8
  //#region src/charts/bar.tsx
9
- function b({ data: b, series: x, ariaLabel: S = "Bar chart", className: C, showAxes: w = !1, showLegend: T = !1, color: E, valueFormatter: D }) {
10
- let O = c(l(x, ["y"]), E);
9
+ function b({ data: b, series: x, ariaLabel: S = "Bar chart", className: C, showAxes: w = !1, showLegend: T = !1, color: E, valueFormatter: D, xValueFormatter: O, yDomain: k, legend: A, customTooltip: j, summary: M, dataAlternative: N, accessibilityLayer: P }) {
10
+ let F = c(l(x, ["y"]), E), I = A === void 0 ? T ? /* @__PURE__ */ f(d, {
11
+ items: F,
12
+ shape: "bar"
13
+ }) : void 0 : typeof A == "function" ? A({ items: F }) : A;
11
14
  return /* @__PURE__ */ f(u, {
12
15
  ariaLabel: S,
13
16
  className: C,
14
- legend: T ? /* @__PURE__ */ f(d, {
15
- items: O,
16
- shape: "bar"
17
- }) : void 0,
17
+ legend: I,
18
+ summary: M,
19
+ dataAlternative: N,
20
+ accessibilityLayer: P,
18
21
  children: /* @__PURE__ */ p(h, {
19
22
  data: b,
20
23
  margin: w ? n : r,
@@ -22,17 +25,20 @@ function b({ data: b, series: x, ariaLabel: S = "Bar chart", className: C, showA
22
25
  w ? /* @__PURE__ */ f(g, { ...i }) : null,
23
26
  /* @__PURE__ */ f(v, {
24
27
  dataKey: "x",
25
- ...a(!w)
28
+ ...a(!w),
29
+ tickFormatter: O
26
30
  }),
27
31
  /* @__PURE__ */ f(y, {
28
32
  ...a(!w),
29
- tickFormatter: D
33
+ tickFormatter: D,
34
+ ...k ? { domain: k } : {}
30
35
  }),
31
36
  /* @__PURE__ */ f(_, { ...o({
32
37
  formatter: D,
33
- cursor: "bar"
38
+ cursor: "bar",
39
+ customTooltip: j
34
40
  }) }),
35
- O.map((n, r) => /* @__PURE__ */ f(m, {
41
+ F.map((n, r) => /* @__PURE__ */ f(m, {
36
42
  dataKey: n.key,
37
43
  name: n.label ?? n.key,
38
44
  fill: s(n, r),
@@ -1 +1 @@
1
- {"version":3,"file":"bar.js","names":[],"sources":["../../src/charts/bar.tsx"],"sourcesContent":["import { Bar, CartesianGrid, BarChart as RechartsBar, Tooltip, XAxis, YAxis } from \"recharts\";\nimport {\n\tANIMATION_PROPS,\n\tBAR_RADIUS,\n\tCHART_PLOT_MARGIN,\n\tCHART_PLOT_MARGIN_BARE,\n\tcartesianAxisProps,\n\tchartTooltipProps,\n\tGRID_PROPS,\n\tseriesColor,\n} from \"./config\";\nimport { ChartShell } from \"./frame\";\nimport { ChartLegend } from \"./legend\";\nimport {\n\tapplyLeadColor,\n\tresolveChartSeries,\n\ttype XYPoint,\n\ttype XYSeriesDescriptor,\n} from \"./series\";\n\nexport type BarChartProps = {\n\tdata: XYPoint[];\n\tseries?: XYSeriesDescriptor[];\n\tariaLabel?: string;\n\tclassName?: string;\n\tshowAxes?: boolean;\n\tshowLegend?: boolean;\n\tcolor?: string;\n\tvalueFormatter?: (value: number) => string;\n};\n\nexport function BarChart({\n\tdata,\n\tseries,\n\tariaLabel = \"Bar chart\",\n\tclassName,\n\tshowAxes = false,\n\tshowLegend = false,\n\tcolor,\n\tvalueFormatter,\n}: BarChartProps) {\n\tconst bars = applyLeadColor(resolveChartSeries(series, [\"y\"]), color);\n\treturn (\n\t\t<ChartShell\n\t\t\tariaLabel={ariaLabel}\n\t\t\tclassName={className}\n\t\t\tlegend={showLegend ? <ChartLegend items={bars} shape=\"bar\" /> : undefined}\n\t\t>\n\t\t\t<RechartsBar data={data} margin={showAxes ? CHART_PLOT_MARGIN : CHART_PLOT_MARGIN_BARE}>\n\t\t\t\t{showAxes ? <CartesianGrid {...GRID_PROPS} /> : null}\n\t\t\t\t<XAxis dataKey=\"x\" {...cartesianAxisProps(!showAxes)} />\n\t\t\t\t<YAxis {...cartesianAxisProps(!showAxes)} tickFormatter={valueFormatter} />\n\t\t\t\t<Tooltip {...chartTooltipProps({ formatter: valueFormatter, cursor: \"bar\" })} />\n\t\t\t\t{bars.map((item, index) => (\n\t\t\t\t\t<Bar\n\t\t\t\t\t\tkey={item.key}\n\t\t\t\t\t\tdataKey={item.key}\n\t\t\t\t\t\tname={item.label ?? item.key}\n\t\t\t\t\t\tfill={seriesColor(item, index)}\n\t\t\t\t\t\tradius={BAR_RADIUS.vertical}\n\t\t\t\t\t\t{...ANIMATION_PROPS}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</RechartsBar>\n\t\t</ChartShell>\n\t);\n}\n"],"mappings":";;;;;;;;AA+BA,SAAgB,EAAS,EACxB,SACA,WACA,eAAY,aACZ,cACA,cAAW,IACX,gBAAa,IACb,UACA,qBACiB;CACjB,IAAM,IAAO,EAAe,EAAmB,GAAQ,CAAC,GAAG,CAAC,GAAG,CAAK;CACpE,OACC,kBAAC,GAAD;EACY;EACA;EACX,QAAQ,IAAa,kBAAC,GAAD;GAAa,OAAO;GAAM,OAAM;EAAO,CAAA,IAAI,KAAA;EAEhE,UAAA,kBAAC,GAAD;GAAmB;GAAM,QAAQ,IAAW,IAAoB;GAAhE,UAAA;IACE,IAAW,kBAAC,GAAD,EAAe,GAAI,EAAa,CAAA,IAAI;IAChD,kBAAC,GAAD;KAAO,SAAQ;KAAI,GAAI,EAAmB,CAAC,CAAQ;IAAI,CAAA;IACvD,kBAAC,GAAD;KAAO,GAAI,EAAmB,CAAC,CAAQ;KAAG,eAAe;IAAiB,CAAA;IAC1E,kBAAC,GAAD,EAAS,GAAI,EAAkB;KAAE,WAAW;KAAgB,QAAQ;IAAM,CAAC,EAAI,CAAA;IAC9E,EAAK,KAAK,GAAM,MAChB,kBAAC,GAAD;KAEC,SAAS,EAAK;KACd,MAAM,EAAK,SAAS,EAAK;KACzB,MAAM,EAAY,GAAM,CAAK;KAC7B,QAAQ,EAAW;KACnB,GAAI;IACJ,GANK,EAAK,GAMV,CACD;GACW;;CACF,CAAA;AAEd"}
1
+ {"version":3,"file":"bar.js","names":[],"sources":["../../src/charts/bar.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Bar, CartesianGrid, BarChart as RechartsBar, Tooltip, XAxis, YAxis } from \"recharts\";\nimport {\n\tANIMATION_PROPS,\n\tBAR_RADIUS,\n\tCHART_PLOT_MARGIN,\n\tCHART_PLOT_MARGIN_BARE,\n\tcartesianAxisProps,\n\tchartTooltipProps,\n\tGRID_PROPS,\n\tseriesColor,\n} from \"./config\";\nimport { ChartShell } from \"./frame\";\nimport { ChartLegend } from \"./legend\";\nimport type {\n\tLineChartAxisDomain,\n\tLineChartLegendRenderer,\n\tLineChartNumericKeys,\n\tLineChartTooltipRenderer,\n} from \"./line\";\nimport {\n\tapplyLeadColor,\n\ttype ChartSeriesDescriptor,\n\tresolveChartSeries,\n\ttype XYPoint,\n} from \"./series\";\n\nexport type BarChartProps<\n\tTData extends { x: string | number } = XYPoint,\n\tK extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string,\n> = {\n\t/**\n\t * Dataset array where each record requires an `x` category or time coordinate.\n\t * Any remaining fields with numeric, nullable, or optional number values are inferred as valid series keys.\n\t */\n\tdata: TData[];\n\t/**\n\t * Series descriptors identifying which numeric keys to plot.\n\t * Inferred strictly from numeric keys of `TData` (rejects non-numeric fields, `x`, and typos).\n\t */\n\tseries?: Array<ChartSeriesDescriptor<NoInfer<K>>>;\n\tariaLabel?: string;\n\tclassName?: string;\n\tshowAxes?: boolean;\n\tshowLegend?: boolean;\n\tcolor?: string;\n\t/**\n\t * Value formatter for Y-axis tick values and fallback tooltip values.\n\t */\n\tvalueFormatter?: (value: number) => string;\n\t/**\n\t * Formatter for X-axis category or time tick labels.\n\t */\n\txValueFormatter?: (value: string | number) => string;\n\t/**\n\t * Custom numerical or keyword bounds for the Y-axis.\n\t */\n\tyDomain?: LineChartAxisDomain;\n\t/**\n\t * Custom legend slot or render function receiving resolved series descriptors.\n\t */\n\tlegend?: ReactNode | LineChartLegendRenderer<K>;\n\t/**\n\t * Custom tooltip content renderer receiving Recharts payload, active status, and coordinate label.\n\t */\n\tcustomTooltip?: LineChartTooltipRenderer;\n\t/**\n\t * Textual summary describing key insights, highs, lows, and keyboard exploration instructions.\n\t * Associated with the chart via useId and aria-describedby.\n\t */\n\tsummary?: ReactNode;\n\t/**\n\t * Accessible tabular or structured data alternative rendered outside the plot area.\n\t */\n\tdataAlternative?: ReactNode;\n\t/**\n\t * Whether the interactive accessibility layer is enabled on the underlying Recharts graphic.\n\t * Enables keyboard exploration with Tab and arrow keys where supported by the underlying chart type.\n\t * Non-interactive compact or decorative charts without tooltip navigation should provide summary or dataAlternative.\n\t * @default true\n\t */\n\taccessibilityLayer?: boolean;\n};\n\nexport function BarChart<\n\tTData extends { x: string | number } = XYPoint,\n\tK extends LineChartNumericKeys<TData> & string = LineChartNumericKeys<TData> & string,\n>({\n\tdata,\n\tseries,\n\tariaLabel = \"Bar chart\",\n\tclassName,\n\tshowAxes = false,\n\tshowLegend = false,\n\tcolor,\n\tvalueFormatter,\n\txValueFormatter,\n\tyDomain,\n\tlegend,\n\tcustomTooltip,\n\tsummary,\n\tdataAlternative,\n\taccessibilityLayer,\n}: BarChartProps<TData, K>) {\n\tconst bars = applyLeadColor(resolveChartSeries(series, [\"y\" as K]), color);\n\tconst resolvedLegend =\n\t\tlegend !== undefined ? (\n\t\t\ttypeof legend === \"function\" ? (\n\t\t\t\tlegend({ items: bars })\n\t\t\t) : (\n\t\t\t\tlegend\n\t\t\t)\n\t\t) : showLegend ? (\n\t\t\t<ChartLegend items={bars} shape=\"bar\" />\n\t\t) : undefined;\n\n\treturn (\n\t\t<ChartShell\n\t\t\tariaLabel={ariaLabel}\n\t\t\tclassName={className}\n\t\t\tlegend={resolvedLegend}\n\t\t\tsummary={summary}\n\t\t\tdataAlternative={dataAlternative}\n\t\t\taccessibilityLayer={accessibilityLayer}\n\t\t>\n\t\t\t<RechartsBar data={data} margin={showAxes ? CHART_PLOT_MARGIN : CHART_PLOT_MARGIN_BARE}>\n\t\t\t\t{showAxes ? <CartesianGrid {...GRID_PROPS} /> : null}\n\t\t\t\t<XAxis dataKey=\"x\" {...cartesianAxisProps(!showAxes)} tickFormatter={xValueFormatter} />\n\t\t\t\t<YAxis\n\t\t\t\t\t{...cartesianAxisProps(!showAxes)}\n\t\t\t\t\ttickFormatter={valueFormatter}\n\t\t\t\t\t{...(yDomain ? { domain: yDomain as [number, number] } : {})}\n\t\t\t\t/>\n\t\t\t\t<Tooltip\n\t\t\t\t\t{...chartTooltipProps({\n\t\t\t\t\t\tformatter: valueFormatter,\n\t\t\t\t\t\tcursor: \"bar\",\n\t\t\t\t\t\tcustomTooltip,\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t\t{bars.map((item, index) => (\n\t\t\t\t\t<Bar\n\t\t\t\t\t\tkey={item.key}\n\t\t\t\t\t\tdataKey={item.key}\n\t\t\t\t\t\tname={item.label ?? item.key}\n\t\t\t\t\t\tfill={seriesColor(item, index)}\n\t\t\t\t\t\tradius={BAR_RADIUS.vertical}\n\t\t\t\t\t\t{...ANIMATION_PROPS}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</RechartsBar>\n\t\t</ChartShell>\n\t);\n}\n"],"mappings":";;;;;;;;AAoFA,SAAgB,EAGd,EACD,SACA,WACA,eAAY,aACZ,cACA,cAAW,IACX,gBAAa,IACb,UACA,mBACA,oBACA,YACA,WACA,kBACA,YACA,oBACA,yBAC2B;CAC3B,IAAM,IAAO,EAAe,EAAmB,GAAQ,CAAC,GAAQ,CAAC,GAAG,CAAK,GACnE,IACL,MAAW,KAAA,IAMP,IACH,kBAAC,GAAD;EAAa,OAAO;EAAM,OAAM;CAAO,CAAA,IACpC,KAAA,IAPH,OAAO,KAAW,aACjB,EAAO,EAAE,OAAO,EAAK,CAAC,IAEtB;CAMH,OACC,kBAAC,GAAD;EACY;EACA;EACX,QAAQ;EACC;EACQ;EACG;EAEpB,UAAA,kBAAC,GAAD;GAAmB;GAAM,QAAQ,IAAW,IAAoB;GAAhE,UAAA;IACE,IAAW,kBAAC,GAAD,EAAe,GAAI,EAAa,CAAA,IAAI;IAChD,kBAAC,GAAD;KAAO,SAAQ;KAAI,GAAI,EAAmB,CAAC,CAAQ;KAAG,eAAe;IAAkB,CAAA;IACvF,kBAAC,GAAD;KACC,GAAI,EAAmB,CAAC,CAAQ;KAChC,eAAe;KACf,GAAK,IAAU,EAAE,QAAQ,EAA4B,IAAI,CAAC;IAC1D,CAAA;IACD,kBAAC,GAAD,EACC,GAAI,EAAkB;KACrB,WAAW;KACX,QAAQ;KACR;IACD,CAAC,EACD,CAAA;IACA,EAAK,KAAK,GAAM,MAChB,kBAAC,GAAD;KAEC,SAAS,EAAK;KACd,MAAM,EAAK,SAAS,EAAK;KACzB,MAAM,EAAY,GAAM,CAAK;KAC7B,QAAQ,EAAW;KACnB,GAAI;IACJ,GANK,EAAK,GAMV,CACD;GACW;;CACF,CAAA;AAEd"}
@@ -1,3 +1,4 @@
1
+ import type { ReactNode } from "react";
1
2
  import { type BulletPoint, type BulletSeriesDescriptor } from "./series.js";
2
3
  export type BulletChartProps = {
3
4
  data: BulletPoint[];
@@ -6,5 +7,21 @@ export type BulletChartProps = {
6
7
  className?: string;
7
8
  showAxes?: boolean;
8
9
  valueFormatter?: (value: number) => string;
10
+ /**
11
+ * Textual summary describing key insights, highs, lows, and keyboard exploration instructions.
12
+ * Associated with the chart via useId and aria-describedby.
13
+ */
14
+ summary?: ReactNode;
15
+ /**
16
+ * Accessible tabular or structured data alternative rendered outside the plot area.
17
+ */
18
+ dataAlternative?: ReactNode;
19
+ /**
20
+ * Whether the interactive accessibility layer is enabled on the underlying Recharts graphic.
21
+ * Enables keyboard exploration with Tab and arrow keys where supported by the underlying chart type.
22
+ * Non-interactive compact or decorative charts without tooltip navigation should provide summary or dataAlternative.
23
+ * @default true
24
+ */
25
+ accessibilityLayer?: boolean;
9
26
  };
10
- export declare function BulletChart({ data, series, ariaLabel, className, showAxes, valueFormatter, }: BulletChartProps): import("react").JSX.Element;
27
+ export declare function BulletChart({ data, series, ariaLabel, className, showAxes, valueFormatter, summary, dataAlternative, accessibilityLayer, }: BulletChartProps): import("react").JSX.Element;
@@ -5,11 +5,14 @@ import { ChartFrame as a } from "./frame.js";
5
5
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
6
  import { Bar as c, BarChart as l, Tooltip as u, XAxis as d, YAxis as f } from "recharts";
7
7
  //#region src/charts/bullet.tsx
8
- function p({ data: p, series: m, ariaLabel: h = "Bullet chart", className: g, showAxes: _ = !0, valueFormatter: v }) {
9
- let y = i(m, ["target", "value"]);
8
+ function p({ data: p, series: m, ariaLabel: h = "Bullet chart", className: g, showAxes: _ = !0, valueFormatter: v, summary: y, dataAlternative: b, accessibilityLayer: x }) {
9
+ let S = i(m, ["target", "value"]);
10
10
  return /* @__PURE__ */ o(a, {
11
11
  ariaLabel: h,
12
12
  className: g,
13
+ summary: y,
14
+ dataAlternative: b,
15
+ accessibilityLayer: x,
13
16
  children: /* @__PURE__ */ s(l, {
14
17
  data: p,
15
18
  layout: "vertical",
@@ -28,7 +31,7 @@ function p({ data: p, series: m, ariaLabel: h = "Bullet chart", className: g, sh
28
31
  formatter: v,
29
32
  cursor: "bar"
30
33
  }) }),
31
- y.map((t) => /* @__PURE__ */ o(c, {
34
+ S.map((t) => /* @__PURE__ */ o(c, {
32
35
  dataKey: t.key,
33
36
  name: t.label ?? t.key,
34
37
  fill: r(t, t.key === "target" ? 6 : 1),
@@ -1 +1 @@
1
- {"version":3,"file":"bullet.js","names":[],"sources":["../../src/charts/bullet.tsx"],"sourcesContent":["import { Bar, BarChart as RechartsBar, Tooltip, XAxis, YAxis } from \"recharts\";\nimport { ANIMATION_PROPS, cartesianAxisProps, chartTooltipProps, seriesColor } from \"./config\";\nimport { ChartFrame } from \"./frame\";\nimport { type BulletPoint, type BulletSeriesDescriptor, resolveChartSeries } from \"./series\";\n\nexport type BulletChartProps = {\n\tdata: BulletPoint[];\n\tseries?: BulletSeriesDescriptor[];\n\tariaLabel?: string;\n\tclassName?: string;\n\tshowAxes?: boolean;\n\tvalueFormatter?: (value: number) => string;\n};\n\nexport function BulletChart({\n\tdata,\n\tseries,\n\tariaLabel = \"Bullet chart\",\n\tclassName,\n\tshowAxes = true,\n\tvalueFormatter,\n}: BulletChartProps) {\n\tconst bars = resolveChartSeries(series, [\"target\", \"value\"]);\n\treturn (\n\t\t<ChartFrame ariaLabel={ariaLabel} className={className}>\n\t\t\t<RechartsBar data={data} layout=\"vertical\">\n\t\t\t\t<XAxis type=\"number\" {...cartesianAxisProps(!showAxes)} tickFormatter={valueFormatter} />\n\t\t\t\t<YAxis type=\"category\" dataKey=\"name\" {...cartesianAxisProps(!showAxes)} />\n\t\t\t\t<Tooltip {...chartTooltipProps({ formatter: valueFormatter, cursor: \"bar\" })} />\n\t\t\t\t{bars.map((item) => (\n\t\t\t\t\t<Bar\n\t\t\t\t\t\tkey={item.key}\n\t\t\t\t\t\tdataKey={item.key}\n\t\t\t\t\t\tname={item.label ?? item.key}\n\t\t\t\t\t\tfill={seriesColor(item, item.key === \"target\" ? 6 : 1)}\n\t\t\t\t\t\tbarSize={item.key === \"target\" ? 10 : 6}\n\t\t\t\t\t\t{...ANIMATION_PROPS}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</RechartsBar>\n\t\t</ChartFrame>\n\t);\n}\n"],"mappings":";;;;;;;AAcA,SAAgB,EAAY,EAC3B,SACA,WACA,eAAY,gBACZ,cACA,cAAW,IACX,qBACoB;CACpB,IAAM,IAAO,EAAmB,GAAQ,CAAC,UAAU,OAAO,CAAC;CAC3D,OACC,kBAAC,GAAD;EAAuB;EAAsB;EAC5C,UAAA,kBAAC,GAAD;GAAmB;GAAM,QAAO;GAAhC,UAAA;IACC,kBAAC,GAAD;KAAO,MAAK;KAAS,GAAI,EAAmB,CAAC,CAAQ;KAAG,eAAe;IAAiB,CAAA;IACxF,kBAAC,GAAD;KAAO,MAAK;KAAW,SAAQ;KAAO,GAAI,EAAmB,CAAC,CAAQ;IAAI,CAAA;IAC1E,kBAAC,GAAD,EAAS,GAAI,EAAkB;KAAE,WAAW;KAAgB,QAAQ;IAAM,CAAC,EAAI,CAAA;IAC9E,EAAK,KAAK,MACV,kBAAC,GAAD;KAEC,SAAS,EAAK;KACd,MAAM,EAAK,SAAS,EAAK;KACzB,MAAM,EAAY,GAAM,EAAK,QAAQ,WAAW,IAAI,CAAC;KACrD,SAAS,EAAK,QAAQ,WAAW,KAAK;KACtC,GAAI;IACJ,GANK,EAAK,GAMV,CACD;GACW;;CACF,CAAA;AAEd"}
1
+ {"version":3,"file":"bullet.js","names":[],"sources":["../../src/charts/bullet.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Bar, BarChart as RechartsBar, Tooltip, XAxis, YAxis } from \"recharts\";\nimport { ANIMATION_PROPS, cartesianAxisProps, chartTooltipProps, seriesColor } from \"./config\";\nimport { ChartFrame } from \"./frame\";\nimport { type BulletPoint, type BulletSeriesDescriptor, resolveChartSeries } from \"./series\";\n\nexport type BulletChartProps = {\n\tdata: BulletPoint[];\n\tseries?: BulletSeriesDescriptor[];\n\tariaLabel?: string;\n\tclassName?: string;\n\tshowAxes?: boolean;\n\tvalueFormatter?: (value: number) => string;\n\t/**\n\t * Textual summary describing key insights, highs, lows, and keyboard exploration instructions.\n\t * Associated with the chart via useId and aria-describedby.\n\t */\n\tsummary?: ReactNode;\n\t/**\n\t * Accessible tabular or structured data alternative rendered outside the plot area.\n\t */\n\tdataAlternative?: ReactNode;\n\t/**\n\t * Whether the interactive accessibility layer is enabled on the underlying Recharts graphic.\n\t * Enables keyboard exploration with Tab and arrow keys where supported by the underlying chart type.\n\t * Non-interactive compact or decorative charts without tooltip navigation should provide summary or dataAlternative.\n\t * @default true\n\t */\n\taccessibilityLayer?: boolean;\n};\n\nexport function BulletChart({\n\tdata,\n\tseries,\n\tariaLabel = \"Bullet chart\",\n\tclassName,\n\tshowAxes = true,\n\tvalueFormatter,\n\tsummary,\n\tdataAlternative,\n\taccessibilityLayer,\n}: BulletChartProps) {\n\tconst bars = resolveChartSeries(series, [\"target\", \"value\"]);\n\treturn (\n\t\t<ChartFrame\n\t\t\tariaLabel={ariaLabel}\n\t\t\tclassName={className}\n\t\t\tsummary={summary}\n\t\t\tdataAlternative={dataAlternative}\n\t\t\taccessibilityLayer={accessibilityLayer}\n\t\t>\n\t\t\t<RechartsBar data={data} layout=\"vertical\">\n\t\t\t\t<XAxis type=\"number\" {...cartesianAxisProps(!showAxes)} tickFormatter={valueFormatter} />\n\t\t\t\t<YAxis type=\"category\" dataKey=\"name\" {...cartesianAxisProps(!showAxes)} />\n\t\t\t\t<Tooltip {...chartTooltipProps({ formatter: valueFormatter, cursor: \"bar\" })} />\n\t\t\t\t{bars.map((item) => (\n\t\t\t\t\t<Bar\n\t\t\t\t\t\tkey={item.key}\n\t\t\t\t\t\tdataKey={item.key}\n\t\t\t\t\t\tname={item.label ?? item.key}\n\t\t\t\t\t\tfill={seriesColor(item, item.key === \"target\" ? 6 : 1)}\n\t\t\t\t\t\tbarSize={item.key === \"target\" ? 10 : 6}\n\t\t\t\t\t\t{...ANIMATION_PROPS}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</RechartsBar>\n\t\t</ChartFrame>\n\t);\n}\n"],"mappings":";;;;;;;AA+BA,SAAgB,EAAY,EAC3B,SACA,WACA,eAAY,gBACZ,cACA,cAAW,IACX,mBACA,YACA,oBACA,yBACoB;CACpB,IAAM,IAAO,EAAmB,GAAQ,CAAC,UAAU,OAAO,CAAC;CAC3D,OACC,kBAAC,GAAD;EACY;EACA;EACF;EACQ;EACG;EAEpB,UAAA,kBAAC,GAAD;GAAmB;GAAM,QAAO;GAAhC,UAAA;IACC,kBAAC,GAAD;KAAO,MAAK;KAAS,GAAI,EAAmB,CAAC,CAAQ;KAAG,eAAe;IAAiB,CAAA;IACxF,kBAAC,GAAD;KAAO,MAAK;KAAW,SAAQ;KAAO,GAAI,EAAmB,CAAC,CAAQ;IAAI,CAAA;IAC1E,kBAAC,GAAD,EAAS,GAAI,EAAkB;KAAE,WAAW;KAAgB,QAAQ;IAAM,CAAC,EAAI,CAAA;IAC9E,EAAK,KAAK,MACV,kBAAC,GAAD;KAEC,SAAS,EAAK;KACd,MAAM,EAAK,SAAS,EAAK;KACzB,MAAM,EAAY,GAAM,EAAK,QAAQ,WAAW,IAAI,CAAC;KACrD,SAAS,EAAK,QAAQ,WAAW,KAAK;KACtC,GAAI;IACJ,GANK,EAAK,GAMV,CACD;GACW;;CACF,CAAA;AAEd"}