@galaxy-io/dls 1.0.3

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 (434) hide show
  1. package/README.md +42 -0
  2. package/dist/accordion/Accordion.d.ts +30 -0
  3. package/dist/accordion/Accordion.js +147 -0
  4. package/dist/animations/Fade.d.ts +6 -0
  5. package/dist/animations/Fade.js +22 -0
  6. package/dist/animations/Flashing.d.ts +3 -0
  7. package/dist/animations/Flashing.js +14 -0
  8. package/dist/animations/RotateWithTransition.d.ts +8 -0
  9. package/dist/animations/RotateWithTransition.js +28 -0
  10. package/dist/animations/ScaleFade.d.ts +6 -0
  11. package/dist/animations/ScaleFade.js +31 -0
  12. package/dist/animations/SpinAnimation.d.ts +7 -0
  13. package/dist/animations/SpinAnimation.js +20 -0
  14. package/dist/animations/SpinVerticalAnimation.d.ts +6 -0
  15. package/dist/animations/SpinVerticalAnimation.js +19 -0
  16. package/dist/assets/components/GalaxyLogomarkDark.d.ts +3 -0
  17. package/dist/assets/components/GalaxyLogomarkDark.js +11 -0
  18. package/dist/assets/components/GalaxyLogomarkLight.d.ts +3 -0
  19. package/dist/assets/components/GalaxyLogomarkLight.js +17 -0
  20. package/dist/assets/components/GalaxyWordmarkDark.d.ts +3 -0
  21. package/dist/assets/components/GalaxyWordmarkDark.js +15 -0
  22. package/dist/assets/components/GalaxyWordmarkLight.d.ts +3 -0
  23. package/dist/assets/components/GalaxyWordmarkLight.js +28 -0
  24. package/dist/assets/components/enrichment/PerplexityIcon.d.ts +3 -0
  25. package/dist/assets/components/enrichment/PerplexityIcon.js +35 -0
  26. package/dist/assets/components/enrichment/TavilyIcon.d.ts +3 -0
  27. package/dist/assets/components/enrichment/TavilyIcon.js +15 -0
  28. package/dist/assets/components/onboarding/TenantSetupDark.d.ts +3 -0
  29. package/dist/assets/components/onboarding/TenantSetupDark.js +498 -0
  30. package/dist/assets/components/onboarding/TenantSetupLight.d.ts +3 -0
  31. package/dist/assets/components/onboarding/TenantSetupLight.js +482 -0
  32. package/dist/assets/components/onboarding/UserSetupDark.d.ts +3 -0
  33. package/dist/assets/components/onboarding/UserSetupDark.js +1086 -0
  34. package/dist/assets/components/onboarding/UserSetupLight.d.ts +3 -0
  35. package/dist/assets/components/onboarding/UserSetupLight.js +1024 -0
  36. package/dist/assets/components/onboarding/WorkspaceSetupBuildDark.d.ts +3 -0
  37. package/dist/assets/components/onboarding/WorkspaceSetupBuildDark.js +466 -0
  38. package/dist/assets/components/onboarding/WorkspaceSetupBuildLight.d.ts +3 -0
  39. package/dist/assets/components/onboarding/WorkspaceSetupBuildLight.js +460 -0
  40. package/dist/assets/components/onboarding/WorkspaceSetupConnectDark.d.ts +3 -0
  41. package/dist/assets/components/onboarding/WorkspaceSetupConnectDark.js +336 -0
  42. package/dist/assets/components/onboarding/WorkspaceSetupConnectLight.d.ts +3 -0
  43. package/dist/assets/components/onboarding/WorkspaceSetupConnectLight.js +336 -0
  44. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateDark.d.ts +3 -0
  45. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateDark.js +153 -0
  46. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateLight.d.ts +3 -0
  47. package/dist/assets/components/onboarding/WorkspaceSetupIntegrateLight.js +153 -0
  48. package/dist/assets/components/projects/MappingMethodAutoIntrospectDark.d.ts +3 -0
  49. package/dist/assets/components/projects/MappingMethodAutoIntrospectDark.js +117 -0
  50. package/dist/assets/components/projects/MappingMethodAutoIntrospectLight.d.ts +3 -0
  51. package/dist/assets/components/projects/MappingMethodAutoIntrospectLight.js +117 -0
  52. package/dist/assets/components/projects/MappingMethodBlankDark.d.ts +3 -0
  53. package/dist/assets/components/projects/MappingMethodBlankDark.js +150 -0
  54. package/dist/assets/components/projects/MappingMethodBlankDarkHovered.d.ts +3 -0
  55. package/dist/assets/components/projects/MappingMethodBlankDarkHovered.js +150 -0
  56. package/dist/assets/components/projects/MappingMethodBlankLight.d.ts +3 -0
  57. package/dist/assets/components/projects/MappingMethodBlankLight.js +150 -0
  58. package/dist/assets/components/projects/MappingMethodBlankLightHovered.d.ts +3 -0
  59. package/dist/assets/components/projects/MappingMethodBlankLightHovered.js +150 -0
  60. package/dist/assets/components/projects/MappingMethodJsonDark.d.ts +3 -0
  61. package/dist/assets/components/projects/MappingMethodJsonDark.js +90 -0
  62. package/dist/assets/components/projects/MappingMethodJsonDarkHovered.d.ts +3 -0
  63. package/dist/assets/components/projects/MappingMethodJsonDarkHovered.js +90 -0
  64. package/dist/assets/components/projects/MappingMethodJsonLight.d.ts +3 -0
  65. package/dist/assets/components/projects/MappingMethodJsonLight.js +90 -0
  66. package/dist/assets/components/projects/MappingMethodJsonLightHovered.d.ts +3 -0
  67. package/dist/assets/components/projects/MappingMethodJsonLightHovered.js +90 -0
  68. package/dist/assets/components/projects/ProjectsEmptyStateDark.d.ts +3 -0
  69. package/dist/assets/components/projects/ProjectsEmptyStateDark.js +454 -0
  70. package/dist/assets/components/projects/ProjectsEmptyStateLight.d.ts +3 -0
  71. package/dist/assets/components/projects/ProjectsEmptyStateLight.js +456 -0
  72. package/dist/assets/components/root/CreateProjectActionCardDark.d.ts +3 -0
  73. package/dist/assets/components/root/CreateProjectActionCardDark.js +1796 -0
  74. package/dist/assets/components/root/CreateProjectActionCardDarkHovered.d.ts +3 -0
  75. package/dist/assets/components/root/CreateProjectActionCardDarkHovered.js +1796 -0
  76. package/dist/assets/components/root/CreateProjectActionCardLight.d.ts +3 -0
  77. package/dist/assets/components/root/CreateProjectActionCardLight.js +1786 -0
  78. package/dist/assets/components/root/CreateProjectActionCardLightHovered.d.ts +3 -0
  79. package/dist/assets/components/root/CreateProjectActionCardLightHovered.js +1786 -0
  80. package/dist/assets/components/root/CreateSourceActionCardDark.d.ts +3 -0
  81. package/dist/assets/components/root/CreateSourceActionCardDark.js +879 -0
  82. package/dist/assets/components/root/CreateSourceActionCardDarkHovered.d.ts +3 -0
  83. package/dist/assets/components/root/CreateSourceActionCardDarkHovered.js +879 -0
  84. package/dist/assets/components/root/CreateSourceActionCardLight.d.ts +3 -0
  85. package/dist/assets/components/root/CreateSourceActionCardLight.js +889 -0
  86. package/dist/assets/components/root/CreateSourceActionCardLightHovered.d.ts +3 -0
  87. package/dist/assets/components/root/CreateSourceActionCardLightHovered.js +889 -0
  88. package/dist/assets/components/sources/AttioIcon.d.ts +3 -0
  89. package/dist/assets/components/sources/AttioIcon.js +11 -0
  90. package/dist/assets/components/sources/BigquerySourceIcon.d.ts +3 -0
  91. package/dist/assets/components/sources/BigquerySourceIcon.js +39 -0
  92. package/dist/assets/components/sources/BrowserbaseSourceIcon.d.ts +3 -0
  93. package/dist/assets/components/sources/BrowserbaseSourceIcon.js +35 -0
  94. package/dist/assets/components/sources/ClickhouseLogoSourceIconDark.d.ts +3 -0
  95. package/dist/assets/components/sources/ClickhouseLogoSourceIconDark.js +13 -0
  96. package/dist/assets/components/sources/ClickhouseLogoSourceIconLight.d.ts +3 -0
  97. package/dist/assets/components/sources/ClickhouseLogoSourceIconLight.js +13 -0
  98. package/dist/assets/components/sources/ConfluenceSourceIcon.d.ts +3 -0
  99. package/dist/assets/components/sources/ConfluenceSourceIcon.js +30 -0
  100. package/dist/assets/components/sources/GalaxyFileUploadSourceIcon.d.ts +3 -0
  101. package/dist/assets/components/sources/GalaxyFileUploadSourceIcon.js +16 -0
  102. package/dist/assets/components/sources/GalaxyTextSourceIcon.d.ts +3 -0
  103. package/dist/assets/components/sources/GalaxyTextSourceIcon.js +16 -0
  104. package/dist/assets/components/sources/GalaxyWebhookSourceIcon.d.ts +3 -0
  105. package/dist/assets/components/sources/GalaxyWebhookSourceIcon.js +16 -0
  106. package/dist/assets/components/sources/GithubSourceIcon.d.ts +3 -0
  107. package/dist/assets/components/sources/GithubSourceIcon.js +27 -0
  108. package/dist/assets/components/sources/GoogleDriveIcon.d.ts +3 -0
  109. package/dist/assets/components/sources/GoogleDriveIcon.js +45 -0
  110. package/dist/assets/components/sources/HubspotSourceIcon.d.ts +3 -0
  111. package/dist/assets/components/sources/HubspotSourceIcon.js +14 -0
  112. package/dist/assets/components/sources/JiraSourceIcon.d.ts +3 -0
  113. package/dist/assets/components/sources/JiraSourceIcon.js +54 -0
  114. package/dist/assets/components/sources/LinearSourceIcon.d.ts +3 -0
  115. package/dist/assets/components/sources/LinearSourceIcon.js +14 -0
  116. package/dist/assets/components/sources/MysqlLogoSourceIconDark.d.ts +3 -0
  117. package/dist/assets/components/sources/MysqlLogoSourceIconDark.js +17 -0
  118. package/dist/assets/components/sources/MysqlLogoSourceIconLight.d.ts +3 -0
  119. package/dist/assets/components/sources/MysqlLogoSourceIconLight.js +17 -0
  120. package/dist/assets/components/sources/NetsuiteSourceIcon.d.ts +3 -0
  121. package/dist/assets/components/sources/NetsuiteSourceIcon.js +32 -0
  122. package/dist/assets/components/sources/NotionIcon.d.ts +3 -0
  123. package/dist/assets/components/sources/NotionIcon.js +20 -0
  124. package/dist/assets/components/sources/NotionLogoSourceIconDark.d.ts +3 -0
  125. package/dist/assets/components/sources/NotionLogoSourceIconDark.js +10 -0
  126. package/dist/assets/components/sources/NotionLogoSourceIconLight.d.ts +3 -0
  127. package/dist/assets/components/sources/NotionLogoSourceIconLight.js +13 -0
  128. package/dist/assets/components/sources/PostgresLogoSourceIconDark.d.ts +3 -0
  129. package/dist/assets/components/sources/PostgresLogoSourceIconDark.js +28 -0
  130. package/dist/assets/components/sources/PostgresLogoSourceIconLight.d.ts +3 -0
  131. package/dist/assets/components/sources/PostgresLogoSourceIconLight.js +28 -0
  132. package/dist/assets/components/sources/PostgresqlIcon.d.ts +3 -0
  133. package/dist/assets/components/sources/PostgresqlIcon.js +61 -0
  134. package/dist/assets/components/sources/PostgresqlLogoSourceIconDark.d.ts +3 -0
  135. package/dist/assets/components/sources/PostgresqlLogoSourceIconDark.js +10 -0
  136. package/dist/assets/components/sources/PostgresqlLogoSourceIconLight.d.ts +3 -0
  137. package/dist/assets/components/sources/PostgresqlLogoSourceIconLight.js +13 -0
  138. package/dist/assets/components/sources/S3Icon.d.ts +3 -0
  139. package/dist/assets/components/sources/S3Icon.js +76 -0
  140. package/dist/assets/components/sources/S3LogoSourceIconDark.d.ts +3 -0
  141. package/dist/assets/components/sources/S3LogoSourceIconDark.js +10 -0
  142. package/dist/assets/components/sources/S3LogoSourceIconLight.d.ts +3 -0
  143. package/dist/assets/components/sources/S3LogoSourceIconLight.js +13 -0
  144. package/dist/assets/components/sources/SalesforceSourceIcon.d.ts +3 -0
  145. package/dist/assets/components/sources/SalesforceSourceIcon.js +23 -0
  146. package/dist/assets/components/sources/SlackIcon.d.ts +3 -0
  147. package/dist/assets/components/sources/SlackIcon.js +32 -0
  148. package/dist/assets/components/sources/SlackLogoSourceIconDark.d.ts +3 -0
  149. package/dist/assets/components/sources/SlackLogoSourceIconDark.js +15 -0
  150. package/dist/assets/components/sources/SlackLogoSourceIconLight.d.ts +3 -0
  151. package/dist/assets/components/sources/SlackLogoSourceIconLight.js +15 -0
  152. package/dist/assets/components/sources/SnowflakeLogoSourceIconDark.d.ts +3 -0
  153. package/dist/assets/components/sources/SnowflakeLogoSourceIconDark.js +14 -0
  154. package/dist/assets/components/sources/SnowflakeLogoSourceIconLight.d.ts +3 -0
  155. package/dist/assets/components/sources/SnowflakeLogoSourceIconLight.js +14 -0
  156. package/dist/assets/components/sources/SourcesEmptyStateDark.d.ts +3 -0
  157. package/dist/assets/components/sources/SourcesEmptyStateDark.js +432 -0
  158. package/dist/assets/components/sources/SourcesEmptyStateLight.d.ts +3 -0
  159. package/dist/assets/components/sources/SourcesEmptyStateLight.js +434 -0
  160. package/dist/assets/components/sources/WikipediaSourceIcon.d.ts +3 -0
  161. package/dist/assets/components/sources/WikipediaSourceIcon.js +1490 -0
  162. package/dist/assets/models/galaxy-logomark.js +4 -0
  163. package/dist/avatar/Avatar.d.ts +9 -0
  164. package/dist/avatar/Avatar.js +52 -0
  165. package/dist/avatar/AvatarEmpty.d.ts +36 -0
  166. package/dist/avatar/AvatarEmpty.js +43 -0
  167. package/dist/avatar/AvatarShimmer.d.ts +28 -0
  168. package/dist/avatar/AvatarShimmer.js +21 -0
  169. package/dist/avatar/GalaxyAvatar.d.ts +6 -0
  170. package/dist/avatar/GalaxyAvatar.js +36 -0
  171. package/dist/avatar/types.d.ts +5 -0
  172. package/dist/avatar/types.js +9 -0
  173. package/dist/backgrounds/CellGridBackground.d.ts +13 -0
  174. package/dist/backgrounds/CellGridBackground.js +39 -0
  175. package/dist/backgrounds/CrossGridBackground.d.ts +14 -0
  176. package/dist/backgrounds/CrossGridBackground.js +45 -0
  177. package/dist/backgrounds/DotGridBackground.d.ts +13 -0
  178. package/dist/backgrounds/DotGridBackground.js +43 -0
  179. package/dist/badge/Badge.d.ts +30 -0
  180. package/dist/badge/Badge.js +92 -0
  181. package/dist/beacons/Beacon.d.ts +43 -0
  182. package/dist/beacons/Beacon.js +68 -0
  183. package/dist/buttons/Button.d.ts +30 -0
  184. package/dist/buttons/Button.js +173 -0
  185. package/dist/charts/BarChart.d.ts +21 -0
  186. package/dist/charts/BarChart.js +264 -0
  187. package/dist/charts/ChartAxis.d.ts +28 -0
  188. package/dist/charts/ChartAxis.js +94 -0
  189. package/dist/charts/ChartLegend.d.ts +7 -0
  190. package/dist/charts/ChartLegend.js +30 -0
  191. package/dist/charts/ChartTooltip.d.ts +7 -0
  192. package/dist/charts/ChartTooltip.js +66 -0
  193. package/dist/charts/LineChart.d.ts +22 -0
  194. package/dist/charts/LineChart.js +250 -0
  195. package/dist/charts/PieChart.d.ts +35 -0
  196. package/dist/charts/PieChart.js +183 -0
  197. package/dist/charts/constants.d.ts +22 -0
  198. package/dist/charts/constants.js +38 -0
  199. package/dist/charts/types.d.ts +80 -0
  200. package/dist/charts/types.js +0 -0
  201. package/dist/charts/utils.d.ts +29 -0
  202. package/dist/charts/utils.js +62 -0
  203. package/dist/chips/Chip.d.ts +39 -0
  204. package/dist/chips/Chip.js +185 -0
  205. package/dist/containers/FlexItem.d.ts +28 -0
  206. package/dist/containers/FlexItem.js +93 -0
  207. package/dist/containers/FlexWrapper.d.ts +147 -0
  208. package/dist/containers/FlexWrapper.js +122 -0
  209. package/dist/containers/GridWrapper.d.ts +120 -0
  210. package/dist/containers/GridWrapper.js +117 -0
  211. package/dist/containers/Spacing.d.ts +13 -0
  212. package/dist/containers/Spacing.js +52 -0
  213. package/dist/containers/Wrapper.d.ts +16 -0
  214. package/dist/containers/Wrapper.js +50 -0
  215. package/dist/dividers/HorizontalDivider.d.ts +2 -0
  216. package/dist/dividers/HorizontalDivider.js +17 -0
  217. package/dist/dividers/VerticalDivider.d.ts +2 -0
  218. package/dist/dividers/VerticalDivider.js +17 -0
  219. package/dist/drawer/Drawer.d.ts +13 -0
  220. package/dist/drawer/Drawer.js +70 -0
  221. package/dist/dropdown/Dropdown.d.ts +51 -0
  222. package/dist/dropdown/Dropdown.js +136 -0
  223. package/dist/dropdown/DropdownButton.d.ts +18 -0
  224. package/dist/dropdown/DropdownButton.js +179 -0
  225. package/dist/dropdown/DropdownFooter.d.ts +10 -0
  226. package/dist/dropdown/DropdownFooter.js +35 -0
  227. package/dist/dropdown/DropdownItem.d.ts +10 -0
  228. package/dist/dropdown/DropdownItem.js +38 -0
  229. package/dist/editor/CodeEditor.d.ts +68 -0
  230. package/dist/editor/CodeEditor.js +435 -0
  231. package/dist/editor/CodeEditorReactWidget.d.ts +35 -0
  232. package/dist/editor/CodeEditorReactWidget.js +47 -0
  233. package/dist/hooks/useDismiss.d.ts +27 -0
  234. package/dist/hooks/useDismiss.js +37 -0
  235. package/dist/hooks/useElementWidth.d.ts +22 -0
  236. package/dist/hooks/useElementWidth.js +44 -0
  237. package/dist/hooks/useResize.d.ts +83 -0
  238. package/dist/hooks/useResize.js +114 -0
  239. package/dist/hotkeys/HotKeyBindings.d.ts +7 -0
  240. package/dist/hotkeys/HotKeyBindings.js +23 -0
  241. package/dist/hotkeys/HotKeySymbol.d.ts +13 -0
  242. package/dist/hotkeys/HotKeySymbol.js +49 -0
  243. package/dist/icons/BackIcon.d.ts +3 -0
  244. package/dist/icons/BackIcon.js +13 -0
  245. package/dist/icons/CloseIcon.d.ts +3 -0
  246. package/dist/icons/CloseIcon.js +13 -0
  247. package/dist/icons/CreateIcon.d.ts +3 -0
  248. package/dist/icons/CreateIcon.js +13 -0
  249. package/dist/icons/ForwardIcon.d.ts +3 -0
  250. package/dist/icons/ForwardIcon.js +13 -0
  251. package/dist/icons/GalaxyLogomark.d.ts +5 -0
  252. package/dist/icons/GalaxyLogomark.js +21 -0
  253. package/dist/icons/GalaxyLogomark3D.d.ts +41 -0
  254. package/dist/icons/GalaxyLogomark3D.js +310 -0
  255. package/dist/icons/GalaxyWordmark.d.ts +5 -0
  256. package/dist/icons/GalaxyWordmark.js +21 -0
  257. package/dist/icons/HelpIcon.d.ts +3 -0
  258. package/dist/icons/HelpIcon.js +14 -0
  259. package/dist/icons/Icon.d.ts +41 -0
  260. package/dist/icons/Icon.js +51 -0
  261. package/dist/icons/ProjectsIcon.d.ts +3 -0
  262. package/dist/icons/ProjectsIcon.js +12 -0
  263. package/dist/icons/SearchIcon.d.ts +3 -0
  264. package/dist/icons/SearchIcon.js +12 -0
  265. package/dist/icons/SourcesIcon.d.ts +3 -0
  266. package/dist/icons/SourcesIcon.js +12 -0
  267. package/dist/icons/TextIcon.d.ts +4 -0
  268. package/dist/icons/TextIcon.js +22 -0
  269. package/dist/icons/WebScrapeIcon.d.ts +4 -0
  270. package/dist/icons/WebScrapeIcon.js +22 -0
  271. package/dist/icons/WebhookIcon.d.ts +4 -0
  272. package/dist/icons/WebhookIcon.js +22 -0
  273. package/dist/icons/sources/AttioLogomark.d.ts +4 -0
  274. package/dist/icons/sources/AttioLogomark.js +8 -0
  275. package/dist/icons/sources/BrowserbaseLogomark.d.ts +4 -0
  276. package/dist/icons/sources/BrowserbaseLogomark.js +8 -0
  277. package/dist/icons/sources/ClickhouseLogomark.d.ts +4 -0
  278. package/dist/icons/sources/ClickhouseLogomark.js +16 -0
  279. package/dist/icons/sources/ConfluenceLogomark.d.ts +4 -0
  280. package/dist/icons/sources/ConfluenceLogomark.js +8 -0
  281. package/dist/icons/sources/GithubLogomark.d.ts +4 -0
  282. package/dist/icons/sources/GithubLogomark.js +8 -0
  283. package/dist/icons/sources/GoogleBigqueryLogomark.d.ts +4 -0
  284. package/dist/icons/sources/GoogleBigqueryLogomark.js +8 -0
  285. package/dist/icons/sources/GoogleDriveLogomark.d.ts +4 -0
  286. package/dist/icons/sources/GoogleDriveLogomark.js +8 -0
  287. package/dist/icons/sources/HubspotLogomark.d.ts +4 -0
  288. package/dist/icons/sources/HubspotLogomark.js +8 -0
  289. package/dist/icons/sources/JiraLogomark.d.ts +4 -0
  290. package/dist/icons/sources/JiraLogomark.js +8 -0
  291. package/dist/icons/sources/LinearLogomark.d.ts +4 -0
  292. package/dist/icons/sources/LinearLogomark.js +8 -0
  293. package/dist/icons/sources/MySQLLogomark.d.ts +4 -0
  294. package/dist/icons/sources/MySQLLogomark.js +8 -0
  295. package/dist/icons/sources/NetsuiteLogomark.d.ts +4 -0
  296. package/dist/icons/sources/NetsuiteLogomark.js +8 -0
  297. package/dist/icons/sources/NotionLogomark.d.ts +4 -0
  298. package/dist/icons/sources/NotionLogomark.js +8 -0
  299. package/dist/icons/sources/PostgresLogomark.d.ts +4 -0
  300. package/dist/icons/sources/PostgresLogomark.js +8 -0
  301. package/dist/icons/sources/S3Logomark.d.ts +4 -0
  302. package/dist/icons/sources/S3Logomark.js +8 -0
  303. package/dist/icons/sources/SalesforceLogomark.d.ts +4 -0
  304. package/dist/icons/sources/SalesforceLogomark.js +8 -0
  305. package/dist/icons/sources/SlackLogoIconmark.d.ts +4 -0
  306. package/dist/icons/sources/SlackLogoIconmark.js +8 -0
  307. package/dist/icons/sources/SnowflakeLogomark.d.ts +4 -0
  308. package/dist/icons/sources/SnowflakeLogomark.js +16 -0
  309. package/dist/icons/sources/WikipediaLogomark.d.ts +4 -0
  310. package/dist/icons/sources/WikipediaLogomark.js +8 -0
  311. package/dist/inputs/CheckboxInput.d.ts +20 -0
  312. package/dist/inputs/CheckboxInput.js +97 -0
  313. package/dist/inputs/ColorInput.d.ts +20 -0
  314. package/dist/inputs/ColorInput.js +368 -0
  315. package/dist/inputs/CopyInput.d.ts +15 -0
  316. package/dist/inputs/CopyInput.js +46 -0
  317. package/dist/inputs/DateInput.d.ts +19 -0
  318. package/dist/inputs/DateInput.js +498 -0
  319. package/dist/inputs/Input.d.ts +91 -0
  320. package/dist/inputs/Input.js +205 -0
  321. package/dist/inputs/MultiSelectInput.d.ts +38 -0
  322. package/dist/inputs/MultiSelectInput.js +566 -0
  323. package/dist/inputs/MultiTextInput.d.ts +27 -0
  324. package/dist/inputs/MultiTextInput.js +178 -0
  325. package/dist/inputs/NumberInput.d.ts +4 -0
  326. package/dist/inputs/NumberInput.js +34 -0
  327. package/dist/inputs/PasswordInput.d.ts +4 -0
  328. package/dist/inputs/PasswordInput.js +40 -0
  329. package/dist/inputs/RadioInput.d.ts +20 -0
  330. package/dist/inputs/RadioInput.js +108 -0
  331. package/dist/inputs/SelectInput.d.ts +51 -0
  332. package/dist/inputs/SelectInput.js +528 -0
  333. package/dist/inputs/SliderInput.d.ts +16 -0
  334. package/dist/inputs/SliderInput.js +172 -0
  335. package/dist/inputs/TextAreaInput.d.ts +40 -0
  336. package/dist/inputs/TextAreaInput.js +238 -0
  337. package/dist/inputs/TextInput.d.ts +4 -0
  338. package/dist/inputs/TextInput.js +53 -0
  339. package/dist/inputs/ToggleInput.d.ts +11 -0
  340. package/dist/inputs/ToggleInput.js +100 -0
  341. package/dist/inputs/hooks.d.ts +10 -0
  342. package/dist/inputs/hooks.js +22 -0
  343. package/dist/links/Link.d.ts +2 -0
  344. package/dist/links/Link.js +10 -0
  345. package/dist/lists/BulletedList.d.ts +11 -0
  346. package/dist/lists/BulletedList.js +41 -0
  347. package/dist/metrics/MetricItem.d.ts +15 -0
  348. package/dist/metrics/MetricItem.js +53 -0
  349. package/dist/metrics/ProgressBar.d.ts +15 -0
  350. package/dist/metrics/ProgressBar.js +60 -0
  351. package/dist/modal/Modal.d.ts +7 -0
  352. package/dist/modal/Modal.js +52 -0
  353. package/dist/overlay/OverlayProvider.d.ts +26 -0
  354. package/dist/overlay/OverlayProvider.js +92 -0
  355. package/dist/overlay/constants.d.ts +27 -0
  356. package/dist/overlay/constants.js +36 -0
  357. package/dist/overlay/useOverlay.d.ts +7 -0
  358. package/dist/overlay/useOverlay.js +46 -0
  359. package/dist/resizable/HorizontalResizeHandle.d.ts +10 -0
  360. package/dist/resizable/HorizontalResizeHandle.js +32 -0
  361. package/dist/resizable/VerticalResizeHandle.d.ts +11 -0
  362. package/dist/resizable/VerticalResizeHandle.js +33 -0
  363. package/dist/shapes/Circle.d.ts +6 -0
  364. package/dist/shapes/Circle.js +25 -0
  365. package/dist/spreadsheet/InfiniteSpreadsheet.d.ts +3 -0
  366. package/dist/spreadsheet/InfiniteSpreadsheet.js +265 -0
  367. package/dist/spreadsheet/SpreadsheetAddColumnButton.d.ts +6 -0
  368. package/dist/spreadsheet/SpreadsheetAddColumnButton.js +32 -0
  369. package/dist/spreadsheet/SpreadsheetCell.d.ts +19 -0
  370. package/dist/spreadsheet/SpreadsheetCell.js +115 -0
  371. package/dist/spreadsheet/SpreadsheetCellEditor.d.ts +11 -0
  372. package/dist/spreadsheet/SpreadsheetCellEditor.js +95 -0
  373. package/dist/spreadsheet/SpreadsheetHeaderCell.d.ts +13 -0
  374. package/dist/spreadsheet/SpreadsheetHeaderCell.js +125 -0
  375. package/dist/spreadsheet/SpreadsheetRow.d.ts +21 -0
  376. package/dist/spreadsheet/SpreadsheetRow.js +68 -0
  377. package/dist/spreadsheet/SpreadsheetRowActionCell.d.ts +11 -0
  378. package/dist/spreadsheet/SpreadsheetRowActionCell.js +60 -0
  379. package/dist/spreadsheet/hooks/useColumnResize.d.ts +6 -0
  380. package/dist/spreadsheet/hooks/useColumnResize.js +46 -0
  381. package/dist/spreadsheet/hooks/useSpreadsheetEditing.d.ts +13 -0
  382. package/dist/spreadsheet/hooks/useSpreadsheetEditing.js +41 -0
  383. package/dist/spreadsheet/types.d.ts +92 -0
  384. package/dist/spreadsheet/types.js +21 -0
  385. package/dist/styles.css +213 -0
  386. package/dist/switcher/Switcher.d.ts +11 -0
  387. package/dist/switcher/Switcher.js +41 -0
  388. package/dist/table/InfiniteTable.d.ts +83 -0
  389. package/dist/table/InfiniteTable.js +711 -0
  390. package/dist/table/VirtualizedInfiniteTable.d.ts +28 -0
  391. package/dist/table/VirtualizedInfiniteTable.js +359 -0
  392. package/dist/text/Bold.d.ts +3 -0
  393. package/dist/text/Bold.js +17 -0
  394. package/dist/text/Code.d.ts +3 -0
  395. package/dist/text/Code.js +27 -0
  396. package/dist/text/EditableText.d.ts +7 -0
  397. package/dist/text/EditableText.js +141 -0
  398. package/dist/text/Ellipsis.d.ts +10 -0
  399. package/dist/text/Ellipsis.js +28 -0
  400. package/dist/text/MarkdownText.d.ts +7 -0
  401. package/dist/text/MarkdownText.js +295 -0
  402. package/dist/text/Paragraph.d.ts +16 -0
  403. package/dist/text/Paragraph.js +76 -0
  404. package/dist/text/RequiredMarker.d.ts +6 -0
  405. package/dist/text/RequiredMarker.js +44 -0
  406. package/dist/text/Selectable.d.ts +3 -0
  407. package/dist/text/Selectable.js +15 -0
  408. package/dist/text/Text.d.ts +47 -0
  409. package/dist/text/Text.js +104 -0
  410. package/dist/text/TextShimmer.d.ts +7 -0
  411. package/dist/text/TextShimmer.js +30 -0
  412. package/dist/theme/GalaxyTheme.d.ts +36 -0
  413. package/dist/theme/GalaxyTheme.js +107 -0
  414. package/dist/theme/constants.d.ts +13 -0
  415. package/dist/theme/constants.js +43 -0
  416. package/dist/theme/index.d.ts +6 -0
  417. package/dist/theme/index.js +6 -0
  418. package/dist/theme/types.d.ts +174 -0
  419. package/dist/theme/types.js +0 -0
  420. package/dist/theme/typography.d.ts +2 -0
  421. package/dist/theme/typography.js +73 -0
  422. package/dist/theme/variants/dark.d.ts +2 -0
  423. package/dist/theme/variants/dark.js +125 -0
  424. package/dist/theme/variants/light.d.ts +2 -0
  425. package/dist/theme/variants/light.js +125 -0
  426. package/dist/tooltip/Tooltip.d.ts +37 -0
  427. package/dist/tooltip/Tooltip.js +79 -0
  428. package/dist/utils/colors.d.ts +84 -0
  429. package/dist/utils/colors.js +323 -0
  430. package/dist/utils/linaria.d.ts +1 -0
  431. package/dist/utils/linaria.js +8 -0
  432. package/dist/widget/Widget.d.ts +28 -0
  433. package/dist/widget/Widget.js +99 -0
  434. package/package.json +268 -0
@@ -0,0 +1,7 @@
1
+ import type { ChartSeriesConfig } from "./types";
2
+ interface ChartLegendProps {
3
+ series: ChartSeriesConfig[];
4
+ palette: string[];
5
+ }
6
+ declare const ChartLegend: ({ series, palette }: ChartLegendProps) => import("react").JSX.Element;
7
+ export default ChartLegend;
@@ -0,0 +1,30 @@
1
+ import Text, { TextSize, TextVariant } from "../text/Text.js";
2
+ import FlexWrapper, { AlignItems, FlexDirection } from "../containers/FlexWrapper.js";
3
+ import Circle from "../shapes/Circle.js";
4
+ import { resolveSeriesColor } from "./utils.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/charts/ChartLegend.tsx
7
+ var ChartLegend = ({ series, palette }) => {
8
+ return /* @__PURE__ */ jsx(FlexWrapper, {
9
+ direction: FlexDirection.ROW,
10
+ alignItems: AlignItems.CENTER,
11
+ gap: 16,
12
+ children: series.map((s, i) => {
13
+ const color = resolveSeriesColor(s, i, palette);
14
+ return /* @__PURE__ */ jsxs(FlexWrapper, {
15
+ alignItems: AlignItems.CENTER,
16
+ gap: 6,
17
+ children: [/* @__PURE__ */ jsx(Circle, {
18
+ size: 8,
19
+ hex: color
20
+ }), /* @__PURE__ */ jsx(Text, {
21
+ size: TextSize.CAPTION,
22
+ variant: TextVariant.TERTIARY,
23
+ children: s.name
24
+ })]
25
+ }, s.key);
26
+ })
27
+ });
28
+ };
29
+ //#endregion
30
+ export { ChartLegend as default };
@@ -0,0 +1,7 @@
1
+ import type { ChartTooltipData, ChartValueFormatter } from "./types";
2
+ interface ChartTooltipProps {
3
+ data: ChartTooltipData | null;
4
+ valueFormatter?: ChartValueFormatter;
5
+ }
6
+ declare const ChartTooltip: ({ data, valueFormatter }: ChartTooltipProps) => import("react").JSX.Element | null;
7
+ export default ChartTooltip;
@@ -0,0 +1,66 @@
1
+ import { withTheme } from "../theme/GalaxyTheme.js";
2
+ import Text, { TextSize, TextVariant, TextWeight } from "../text/Text.js";
3
+ import FlexWrapper, { AlignItems, FlexDirection, JustifyContent } from "../containers/FlexWrapper.js";
4
+ import Circle from "../shapes/Circle.js";
5
+ import { defaultValueFormatter } from "./utils.js";
6
+ /* empty css */
7
+ import { styled } from "@linaria/react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ //#region src/charts/ChartTooltip.tsx
10
+ var _exp = () => ({ $x }) => $x;
11
+ var _exp2 = () => ({ $y }) => $y;
12
+ var _exp3 = () => ({ theme }) => theme.color.background.secondary;
13
+ var _exp4 = () => ({ theme }) => theme.color.border.secondary;
14
+ var _exp5 = () => ({ $visible }) => $visible ? 1 : 0;
15
+ var TooltipContainer = withTheme(/*#__PURE__*/ styled("div")({
16
+ name: "TooltipContainer",
17
+ class: "ttysfji",
18
+ propsAsIs: false,
19
+ vars: {
20
+ "ttysfji-0": [_exp(), "px"],
21
+ "ttysfji-1": [_exp2(), "px"],
22
+ "ttysfji-2": [_exp3()],
23
+ "ttysfji-3": [_exp4()],
24
+ "ttysfji-4": [_exp5()]
25
+ }
26
+ }));
27
+ var ChartTooltip = ({ data, valueFormatter = defaultValueFormatter }) => {
28
+ if (!data) return null;
29
+ return /* @__PURE__ */ jsx(TooltipContainer, {
30
+ $x: data.x,
31
+ $y: data.y,
32
+ $visible: true,
33
+ children: /* @__PURE__ */ jsxs(FlexWrapper, {
34
+ direction: FlexDirection.COLUMN,
35
+ gap: 6,
36
+ children: [/* @__PURE__ */ jsx(Text, {
37
+ size: TextSize.BODY_SM,
38
+ weight: TextWeight.MEDIUM,
39
+ children: data.label
40
+ }), data.items.map((item) => /* @__PURE__ */ jsxs(FlexWrapper, {
41
+ alignItems: AlignItems.CENTER,
42
+ justifyContent: JustifyContent.SPACE_BETWEEN,
43
+ gap: 32,
44
+ fillWidth: true,
45
+ children: [/* @__PURE__ */ jsxs(FlexWrapper, {
46
+ alignItems: AlignItems.CENTER,
47
+ gap: 6,
48
+ children: [/* @__PURE__ */ jsx(Circle, {
49
+ size: 8,
50
+ hex: item.color
51
+ }), /* @__PURE__ */ jsx(Text, {
52
+ size: TextSize.CAPTION,
53
+ variant: TextVariant.PRIMARY,
54
+ children: item.seriesName
55
+ })]
56
+ }), /* @__PURE__ */ jsx(Text, {
57
+ size: TextSize.CAPTION,
58
+ weight: TextWeight.MEDIUM,
59
+ children: valueFormatter(item.value)
60
+ })]
61
+ }, item.seriesKey))]
62
+ })
63
+ });
64
+ };
65
+ //#endregion
66
+ export { ChartTooltip as default };
@@ -0,0 +1,22 @@
1
+ import type { CurveFactory } from "d3-shape";
2
+ import type { BaseChartProps } from "./types";
3
+ export declare enum LineChartMode {
4
+ NORMAL = "NORMAL",
5
+ STACKED = "STACKED"
6
+ }
7
+ export interface LineChartProps extends BaseChartProps {
8
+ /** Normal or stacked line mode */
9
+ mode?: LineChartMode;
10
+ /** Line stroke width in px */
11
+ strokeWidth?: number;
12
+ /** Data-point dot radius in px (0 to hide dots) */
13
+ dotRadius?: number;
14
+ /** Show grid lines */
15
+ showGrid?: boolean;
16
+ /** Fill area under lines */
17
+ showArea?: boolean;
18
+ /** D3 curve factory for line interpolation */
19
+ curveType?: CurveFactory;
20
+ }
21
+ declare const LineChart: ({ data, series, width, height, margin: marginOverride, fillWidth, aspectRatio, mode, strokeWidth, dotRadius, valueFormatter, labelFormatter, tooltipRenderer, noTooltip, showLegend, showGrid, showArea, curveType, ariaLabel, }: LineChartProps) => import("react").JSX.Element;
22
+ export default LineChart;
@@ -0,0 +1,250 @@
1
+ import { useGalaxyTheme, withTheme } from "../theme/GalaxyTheme.js";
2
+ import FlexWrapper, { FlexDirection } from "../containers/FlexWrapper.js";
3
+ import { useElementWidth } from "../hooks/useElementWidth.js";
4
+ import Wrapper from "../containers/Wrapper.js";
5
+ import { getChartPalette } from "./constants.js";
6
+ import { buildLinearScale, buildPointScale, defaultLabelFormatter, defaultValueFormatter, getGroupedMax, getPlotDimensions, getStackedMax, resolveMargin, resolveSeriesColor } from "./utils.js";
7
+ import ChartLegend from "./ChartLegend.js";
8
+ import ChartTooltip from "./ChartTooltip.js";
9
+ import { XAxisPoint, YAxis } from "./ChartAxis.js";
10
+ /* empty css */
11
+ import { styled } from "@linaria/react";
12
+ import { useCallback, useMemo, useRef, useState } from "react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ import { area, curveMonotoneX, line } from "d3-shape";
15
+ //#region src/charts/LineChart.tsx
16
+ var LineChartMode = /* @__PURE__ */ function(LineChartMode) {
17
+ LineChartMode["NORMAL"] = "NORMAL";
18
+ LineChartMode["STACKED"] = "STACKED";
19
+ return LineChartMode;
20
+ }({});
21
+ var _exp = () => ({ $fillWidth }) => $fillWidth ? "flex" : "inline-flex";
22
+ var _exp2 = () => ({ $fillWidth }) => $fillWidth ? "100%" : "auto";
23
+ var ChartWrapper = withTheme(/*#__PURE__*/ styled("div")({
24
+ name: "ChartWrapper",
25
+ class: "c8llr95",
26
+ propsAsIs: false,
27
+ vars: {
28
+ "c8llr95-0": [_exp()],
29
+ "c8llr95-1": [_exp2()]
30
+ }
31
+ }));
32
+ var LineChart = ({ data, series, width, height, margin: marginOverride, fillWidth = false, aspectRatio, mode = "NORMAL", strokeWidth = 2, dotRadius = 4, valueFormatter = defaultValueFormatter, labelFormatter = defaultLabelFormatter, tooltipRenderer, noTooltip = false, showLegend = true, showGrid = true, showArea = false, curveType = curveMonotoneX, ariaLabel }) => {
33
+ const { theme } = useGalaxyTheme();
34
+ const containerRef = useRef(null);
35
+ const svgRef = useRef(null);
36
+ const [tooltip, setTooltip] = useState(null);
37
+ const [hoveredDatumIndex, setHoveredDatumIndex] = useState(null);
38
+ const measuredWidth = useElementWidth(containerRef);
39
+ const resolvedWidth = fillWidth ? measuredWidth ?? 0 : width ?? 0;
40
+ const resolvedHeight = aspectRatio ? resolvedWidth / aspectRatio : height ?? 0;
41
+ const palette = useMemo(() => getChartPalette(theme), [theme]);
42
+ const margin = useMemo(() => resolveMargin(marginOverride), [marginOverride]);
43
+ const { plotWidth, plotHeight } = useMemo(() => getPlotDimensions(resolvedWidth, resolvedHeight, margin), [
44
+ resolvedWidth,
45
+ resolvedHeight,
46
+ margin
47
+ ]);
48
+ const seriesKeys = useMemo(() => series.map((s) => s.key), [series]);
49
+ const labels = useMemo(() => data.map((d) => d.label), [data]);
50
+ const xScale = useMemo(() => buildPointScale(labels, [0, plotWidth]), [labels, plotWidth]);
51
+ const yMax = useMemo(() => mode === "STACKED" ? getStackedMax(data, seriesKeys) : getGroupedMax(data, seriesKeys), [
52
+ data,
53
+ seriesKeys,
54
+ mode
55
+ ]);
56
+ const yScale = useMemo(() => buildLinearScale(yMax, [plotHeight, 0]), [yMax, plotHeight]);
57
+ const stackedValues = useMemo(() => {
58
+ if (mode !== "STACKED") return null;
59
+ return data.map((datum) => {
60
+ let cumulative = 0;
61
+ const values = {};
62
+ for (const s of series) {
63
+ const value = datum.values[s.key] ?? 0;
64
+ values[s.key] = {
65
+ y0: cumulative,
66
+ y1: cumulative + value
67
+ };
68
+ cumulative += value;
69
+ }
70
+ return values;
71
+ });
72
+ }, [
73
+ data,
74
+ series,
75
+ mode
76
+ ]);
77
+ const handlePointMouseEnter = useCallback((datumIndex, x, y) => {
78
+ const datum = data[datumIndex];
79
+ if (!datum) return;
80
+ setHoveredDatumIndex(datumIndex);
81
+ setTooltip({
82
+ label: datum.label,
83
+ items: series.map((s, i) => ({
84
+ seriesKey: s.key,
85
+ seriesName: s.name,
86
+ value: datum.values[s.key] ?? 0,
87
+ color: resolveSeriesColor(s, i, palette)
88
+ })),
89
+ x: x + margin.left,
90
+ y: y + margin.top
91
+ });
92
+ }, [
93
+ data,
94
+ series,
95
+ palette,
96
+ margin
97
+ ]);
98
+ const handlePointMouseLeave = useCallback(() => {
99
+ setHoveredDatumIndex(null);
100
+ setTooltip(null);
101
+ }, []);
102
+ if (resolvedWidth === 0 || resolvedHeight === 0) return /* @__PURE__ */ jsx(ChartWrapper, {
103
+ ref: containerRef,
104
+ $fillWidth: fillWidth
105
+ });
106
+ const renderNormalLines = () => {
107
+ return series.map((s, seriesIndex) => {
108
+ const color = resolveSeriesColor(s, seriesIndex, palette);
109
+ const linePath = line().x((_, i) => xScale(data[i].label) ?? 0).y((_, i) => yScale(data[i].values[s.key] ?? 0)).curve(curveType)(data.map((_, i) => i)) ?? "";
110
+ const areaPath = showArea ? area().x((_, i) => xScale(data[i].label) ?? 0).y0(plotHeight).y1((_, i) => yScale(data[i].values[s.key] ?? 0)).curve(curveType)(data.map((_, i) => i)) ?? "" : "";
111
+ return /* @__PURE__ */ jsxs("g", { children: [
112
+ showArea && /* @__PURE__ */ jsx("path", {
113
+ d: areaPath,
114
+ fill: color,
115
+ opacity: .1,
116
+ style: { transition: `opacity 150ms ease-in-out` }
117
+ }),
118
+ /* @__PURE__ */ jsx("path", {
119
+ d: linePath,
120
+ fill: "none",
121
+ stroke: color,
122
+ strokeWidth,
123
+ style: { transition: `opacity 150ms ease-in-out` }
124
+ }),
125
+ data.map((datum, datumIndex) => {
126
+ const cx = xScale(datum.label) ?? 0;
127
+ const cy = yScale(datum.values[s.key] ?? 0);
128
+ return /* @__PURE__ */ jsxs("g", { children: [dotRadius > 0 && /* @__PURE__ */ jsx("circle", {
129
+ cx,
130
+ cy,
131
+ r: dotRadius,
132
+ fill: color,
133
+ opacity: hoveredDatumIndex !== null && hoveredDatumIndex !== datumIndex ? .3 : 1,
134
+ style: { transition: `opacity 150ms ease-in-out` },
135
+ role: "graphics-symbol",
136
+ "aria-roledescription": "data point",
137
+ "aria-label": `${s.name} for ${datum.label}: ${valueFormatter(datum.values[s.key] ?? 0)}`
138
+ }), /* @__PURE__ */ jsx("circle", {
139
+ cx,
140
+ cy,
141
+ r: dotRadius + 6,
142
+ fill: "transparent",
143
+ onMouseEnter: () => handlePointMouseEnter(datumIndex, cx, cy),
144
+ onMouseLeave: handlePointMouseLeave,
145
+ onFocus: () => handlePointMouseEnter(datumIndex, cx, cy),
146
+ onBlur: handlePointMouseLeave,
147
+ tabIndex: 0,
148
+ style: { cursor: "pointer" }
149
+ })] }, datum.label);
150
+ })
151
+ ] }, s.key);
152
+ });
153
+ };
154
+ const renderStackedLines = () => {
155
+ if (!stackedValues) return null;
156
+ return series.map((s, seriesIndex) => {
157
+ const color = resolveSeriesColor(s, seriesIndex, palette);
158
+ const areaPath = area().x((_, i) => xScale(data[i].label) ?? 0).y0((_, i) => yScale(stackedValues[i][s.key].y0)).y1((_, i) => yScale(stackedValues[i][s.key].y1)).curve(curveType)(data.map((_, i) => i)) ?? "";
159
+ const linePath = line().x((_, i) => xScale(data[i].label) ?? 0).y((_, i) => yScale(stackedValues[i][s.key].y1)).curve(curveType)(data.map((_, i) => i)) ?? "";
160
+ return /* @__PURE__ */ jsxs("g", { children: [
161
+ /* @__PURE__ */ jsx("path", {
162
+ d: areaPath,
163
+ fill: color,
164
+ opacity: .3,
165
+ style: { transition: `opacity 150ms ease-in-out` }
166
+ }),
167
+ /* @__PURE__ */ jsx("path", {
168
+ d: linePath,
169
+ fill: "none",
170
+ stroke: color,
171
+ strokeWidth,
172
+ style: { transition: `opacity 150ms ease-in-out` }
173
+ }),
174
+ data.map((datum, datumIndex) => {
175
+ const cx = xScale(datum.label) ?? 0;
176
+ const cy = yScale(stackedValues[datumIndex][s.key].y1);
177
+ return /* @__PURE__ */ jsxs("g", { children: [dotRadius > 0 && /* @__PURE__ */ jsx("circle", {
178
+ cx,
179
+ cy,
180
+ r: dotRadius,
181
+ fill: color,
182
+ opacity: hoveredDatumIndex !== null && hoveredDatumIndex !== datumIndex ? .3 : 1,
183
+ style: { transition: `opacity 150ms ease-in-out` },
184
+ role: "graphics-symbol",
185
+ "aria-roledescription": "data point",
186
+ "aria-label": `${s.name} for ${datum.label}: ${valueFormatter(datum.values[s.key] ?? 0)}`
187
+ }), /* @__PURE__ */ jsx("circle", {
188
+ cx,
189
+ cy,
190
+ r: dotRadius + 6,
191
+ fill: "transparent",
192
+ onMouseEnter: () => handlePointMouseEnter(datumIndex, cx, cy),
193
+ onMouseLeave: handlePointMouseLeave,
194
+ onFocus: () => handlePointMouseEnter(datumIndex, cx, cy),
195
+ onBlur: handlePointMouseLeave,
196
+ tabIndex: 0,
197
+ style: { cursor: "pointer" }
198
+ })] }, datum.label);
199
+ })
200
+ ] }, s.key);
201
+ });
202
+ };
203
+ const defaultAriaLabel = `Line chart with ${data.length} data points and ${series.length} series`;
204
+ return /* @__PURE__ */ jsxs(ChartWrapper, {
205
+ ref: containerRef,
206
+ $fillWidth: fillWidth,
207
+ children: [/* @__PURE__ */ jsxs(Wrapper, {
208
+ position: "relative",
209
+ children: [/* @__PURE__ */ jsx("svg", {
210
+ ref: svgRef,
211
+ width: resolvedWidth,
212
+ height: resolvedHeight,
213
+ role: "img",
214
+ "aria-label": ariaLabel ?? defaultAriaLabel,
215
+ children: /* @__PURE__ */ jsxs("g", {
216
+ transform: `translate(${margin.left}, ${margin.top})`,
217
+ children: [
218
+ /* @__PURE__ */ jsx(YAxis, {
219
+ scale: yScale,
220
+ transform: "translate(0, 0)",
221
+ plotWidth,
222
+ formatter: valueFormatter,
223
+ showGrid,
224
+ theme
225
+ }),
226
+ /* @__PURE__ */ jsx(XAxisPoint, {
227
+ scale: xScale,
228
+ transform: `translate(0, ${plotHeight})`,
229
+ plotWidth,
230
+ formatter: labelFormatter
231
+ }),
232
+ mode === "STACKED" ? renderStackedLines() : renderNormalLines()
233
+ ]
234
+ })
235
+ }), !noTooltip && (tooltipRenderer ? tooltip && tooltipRenderer(tooltip) : /* @__PURE__ */ jsx(ChartTooltip, {
236
+ data: tooltip,
237
+ valueFormatter
238
+ }))]
239
+ }), showLegend && /* @__PURE__ */ jsxs(FlexWrapper, {
240
+ direction: FlexDirection.ROW,
241
+ gap: 0,
242
+ children: [/* @__PURE__ */ jsx(Wrapper, { minWidth: margin.left }), /* @__PURE__ */ jsx(ChartLegend, {
243
+ series,
244
+ palette
245
+ })]
246
+ })]
247
+ });
248
+ };
249
+ //#endregion
250
+ export { LineChartMode, LineChart as default };
@@ -0,0 +1,35 @@
1
+ import type { ChartLabelFormatter, ChartTooltipRenderer, ChartValueFormatter, PieSlice } from "./types";
2
+ export interface PieChartProps {
3
+ /** Slice data */
4
+ slices: PieSlice[];
5
+ /** Chart width in pixels. Optional when fillWidth is true. */
6
+ width?: number;
7
+ /** Chart height in pixels. Optional when aspectRatio is provided. */
8
+ height?: number;
9
+ /** When true, chart fills container width */
10
+ fillWidth?: boolean;
11
+ /** Aspect ratio (width/height). Used to auto-calculate height when fillWidth is true. */
12
+ aspectRatio?: number;
13
+ /** Inner radius for donut charts (0 = full pie) */
14
+ innerRadius?: number;
15
+ /** Gap between slices in radians */
16
+ padAngle?: number;
17
+ /** Rounded slice corners in px */
18
+ cornerRadius?: number;
19
+ /** Format values in tooltip/labels */
20
+ valueFormatter?: ChartValueFormatter;
21
+ /** Format labels in legend/tooltip */
22
+ labelFormatter?: ChartLabelFormatter;
23
+ /** Custom tooltip renderer */
24
+ tooltipRenderer?: ChartTooltipRenderer;
25
+ /** Disable tooltip */
26
+ noTooltip?: boolean;
27
+ /** Show legend */
28
+ showLegend?: boolean;
29
+ /** Show percentage labels on slices */
30
+ showLabels?: boolean;
31
+ /** Accessible label for the chart SVG */
32
+ ariaLabel?: string;
33
+ }
34
+ declare const PieChart: ({ slices, width, height, fillWidth, aspectRatio, innerRadius, padAngle, cornerRadius, valueFormatter, labelFormatter, tooltipRenderer, noTooltip, showLegend, showLabels, ariaLabel, }: PieChartProps) => import("react").JSX.Element;
35
+ export default PieChart;
@@ -0,0 +1,183 @@
1
+ import { useGalaxyTheme, withTheme } from "../theme/GalaxyTheme.js";
2
+ import Text, { TextSize, TextWeight } from "../text/Text.js";
3
+ import FlexWrapper, { AlignItems, FlexDirection, JustifyContent } from "../containers/FlexWrapper.js";
4
+ import { useElementWidth } from "../hooks/useElementWidth.js";
5
+ import Wrapper from "../containers/Wrapper.js";
6
+ import { getChartPalette } from "./constants.js";
7
+ import { defaultLabelFormatter, defaultValueFormatter } from "./utils.js";
8
+ import ChartLegend from "./ChartLegend.js";
9
+ import ChartTooltip from "./ChartTooltip.js";
10
+ /* empty css */
11
+ import { styled } from "@linaria/react";
12
+ import { useCallback, useMemo, useRef, useState } from "react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ import { arc, pie } from "d3-shape";
15
+ //#region src/charts/PieChart.tsx
16
+ var DEFAULT_PAD_ANGLE = .02;
17
+ var DEFAULT_CORNER_RADIUS = 2;
18
+ var PIE_MARGIN = 8;
19
+ var _exp = () => ({ $fillWidth }) => $fillWidth ? "flex" : "inline-flex";
20
+ var _exp2 = () => ({ $fillWidth }) => $fillWidth ? "100%" : "auto";
21
+ var ChartWrapper = withTheme(/*#__PURE__*/ styled("div")({
22
+ name: "ChartWrapper",
23
+ class: "c1ez9f1",
24
+ propsAsIs: false,
25
+ vars: {
26
+ "c1ez9f1-0": [_exp()],
27
+ "c1ez9f1-1": [_exp2()]
28
+ }
29
+ }));
30
+ var resolveSliceColor = (slice, index, palette) => slice.color ?? palette[index % palette.length];
31
+ var PieChart = ({ slices, width, height, fillWidth = false, aspectRatio, innerRadius = 0, padAngle = DEFAULT_PAD_ANGLE, cornerRadius = DEFAULT_CORNER_RADIUS, valueFormatter = defaultValueFormatter, labelFormatter = defaultLabelFormatter, tooltipRenderer, noTooltip = false, showLegend = true, showLabels = false, ariaLabel }) => {
32
+ const { theme } = useGalaxyTheme();
33
+ const containerRef = useRef(null);
34
+ const svgRef = useRef(null);
35
+ const [tooltip, setTooltip] = useState(null);
36
+ const [hoveredSliceIndex, setHoveredSliceIndex] = useState(null);
37
+ const measuredWidth = useElementWidth(containerRef);
38
+ const resolvedWidth = fillWidth ? measuredWidth ?? 0 : width ?? 0;
39
+ const resolvedHeight = aspectRatio ? resolvedWidth / aspectRatio : height ?? 0;
40
+ const palette = useMemo(() => getChartPalette(theme), [theme]);
41
+ const outerRadius = useMemo(() => Math.min(resolvedWidth, resolvedHeight) / 2 - PIE_MARGIN, [resolvedWidth, resolvedHeight]);
42
+ const effectivePadAngle = innerRadius > 0 ? padAngle : 0;
43
+ const pieGen = useMemo(() => pie().value((d) => d.value).sort(null).padAngle(effectivePadAngle), [effectivePadAngle]);
44
+ const arcs = useMemo(() => pieGen(slices), [pieGen, slices]);
45
+ const arcGen = useMemo(() => arc().innerRadius(innerRadius).outerRadius(outerRadius).cornerRadius(cornerRadius), [
46
+ innerRadius,
47
+ outerRadius,
48
+ cornerRadius
49
+ ]);
50
+ const labelArc = useMemo(() => {
51
+ const mid = innerRadius > 0 ? (innerRadius + outerRadius) / 2 : outerRadius * .65;
52
+ return arc().innerRadius(mid).outerRadius(mid);
53
+ }, [innerRadius, outerRadius]);
54
+ const total = useMemo(() => slices.reduce((sum, s) => sum + s.value, 0), [slices]);
55
+ const handleSliceMouseEnter = useCallback((sliceIndex, event) => {
56
+ const slice = slices[sliceIndex];
57
+ if (!slice) return;
58
+ const svgRect = svgRef.current?.getBoundingClientRect();
59
+ if (!svgRect) return;
60
+ setHoveredSliceIndex(sliceIndex);
61
+ setTooltip({
62
+ label: labelFormatter(slice.label),
63
+ items: [{
64
+ seriesKey: slice.label,
65
+ seriesName: labelFormatter(slice.label),
66
+ value: slice.value,
67
+ color: resolveSliceColor(slice, sliceIndex, palette)
68
+ }],
69
+ x: event.clientX - svgRect.left,
70
+ y: event.clientY - svgRect.top
71
+ });
72
+ }, [
73
+ slices,
74
+ palette,
75
+ labelFormatter
76
+ ]);
77
+ const handleSliceMouseMove = useCallback((event) => {
78
+ if (hoveredSliceIndex === null) return;
79
+ const svgRect = svgRef.current?.getBoundingClientRect();
80
+ if (!svgRect) return;
81
+ setTooltip((prev) => prev ? {
82
+ ...prev,
83
+ x: event.clientX - svgRect.left,
84
+ y: event.clientY - svgRect.top
85
+ } : null);
86
+ }, [hoveredSliceIndex]);
87
+ const handleSliceMouseLeave = useCallback(() => {
88
+ setHoveredSliceIndex(null);
89
+ setTooltip(null);
90
+ }, []);
91
+ const legendSeries = useMemo(() => slices.map((s, i) => ({
92
+ key: s.label,
93
+ name: labelFormatter(s.label),
94
+ color: resolveSliceColor(s, i, palette)
95
+ })), [
96
+ slices,
97
+ palette,
98
+ labelFormatter
99
+ ]);
100
+ if (resolvedWidth === 0 || resolvedHeight === 0) return /* @__PURE__ */ jsx(ChartWrapper, {
101
+ ref: containerRef,
102
+ $fillWidth: fillWidth
103
+ });
104
+ const cx = resolvedWidth / 2;
105
+ const cy = resolvedHeight / 2;
106
+ const defaultAriaLabel = `Pie chart with ${slices.length} slices`;
107
+ return /* @__PURE__ */ jsxs(ChartWrapper, {
108
+ ref: containerRef,
109
+ $fillWidth: fillWidth,
110
+ children: [/* @__PURE__ */ jsxs(Wrapper, {
111
+ position: "relative",
112
+ children: [/* @__PURE__ */ jsx("svg", {
113
+ ref: svgRef,
114
+ width: resolvedWidth,
115
+ height: resolvedHeight,
116
+ role: "img",
117
+ "aria-label": ariaLabel ?? defaultAriaLabel,
118
+ children: /* @__PURE__ */ jsx("g", {
119
+ transform: `translate(${cx}, ${cy})`,
120
+ children: arcs.map((d, i) => {
121
+ const color = resolveSliceColor(d.data, i, palette);
122
+ const isDimmed = hoveredSliceIndex !== null && hoveredSliceIndex !== i;
123
+ const path = arcGen(d) ?? "";
124
+ const pct = total > 0 ? Math.round(d.data.value / total * 100) : 0;
125
+ return /* @__PURE__ */ jsxs("g", { children: [/* @__PURE__ */ jsx("path", {
126
+ d: path,
127
+ fill: color,
128
+ opacity: isDimmed ? .3 : 1,
129
+ style: {
130
+ transition: `opacity 150ms ease-in-out`,
131
+ cursor: "pointer"
132
+ },
133
+ onMouseEnter: (e) => handleSliceMouseEnter(i, e),
134
+ onMouseMove: handleSliceMouseMove,
135
+ onMouseLeave: handleSliceMouseLeave,
136
+ onFocus: (e) => handleSliceMouseEnter(i, e),
137
+ onBlur: handleSliceMouseLeave,
138
+ tabIndex: 0,
139
+ role: "graphics-symbol",
140
+ "aria-roledescription": "slice",
141
+ "aria-label": `${labelFormatter(d.data.label)}: ${valueFormatter(d.data.value)} (${pct}%)`
142
+ }), showLabels && pct > 5 && (() => {
143
+ const [lx, ly] = labelArc.centroid(d);
144
+ const labelW = 48;
145
+ const labelH = 20;
146
+ return /* @__PURE__ */ jsx("foreignObject", {
147
+ x: lx - labelW / 2,
148
+ y: ly - labelH / 2,
149
+ width: labelW,
150
+ height: labelH,
151
+ style: { pointerEvents: "none" },
152
+ children: /* @__PURE__ */ jsx(FlexWrapper, {
153
+ justifyContent: JustifyContent.CENTER,
154
+ alignItems: AlignItems.CENTER,
155
+ fillWidth: true,
156
+ fillHeight: true,
157
+ children: /* @__PURE__ */ jsx(Text, {
158
+ size: TextSize.CAPTION,
159
+ weight: TextWeight.MEDIUM,
160
+ hex: theme.color.text.primaryAlt,
161
+ children: `${pct}%`
162
+ })
163
+ })
164
+ });
165
+ })()] }, d.data.label);
166
+ })
167
+ })
168
+ }), !noTooltip && (tooltipRenderer ? tooltip && tooltipRenderer(tooltip) : /* @__PURE__ */ jsx(ChartTooltip, {
169
+ data: tooltip,
170
+ valueFormatter
171
+ }))]
172
+ }), showLegend && /* @__PURE__ */ jsx(FlexWrapper, {
173
+ direction: FlexDirection.ROW,
174
+ gap: 0,
175
+ children: /* @__PURE__ */ jsx(ChartLegend, {
176
+ series: legendSeries,
177
+ palette
178
+ })
179
+ })]
180
+ });
181
+ };
182
+ //#endregion
183
+ export { PieChart as default };
@@ -0,0 +1,22 @@
1
+ import type { Theme } from "../theme/types";
2
+ import type { ChartMargin } from "./types";
3
+ /**
4
+ * Theme-derived chart series color palette.
5
+ * Purple first to match Galaxy brand aesthetic.
6
+ */
7
+ export declare const getChartPalette: (theme: Theme) => string[];
8
+ export declare const DEFAULT_CHART_MARGIN: ChartMargin;
9
+ /** Spacing between bars within a group (fraction of bandwidth, 0-1) */
10
+ export declare const DEFAULT_BAR_PADDING_INNER = 0.2;
11
+ /** Spacing around bar groups (fraction of step, 0-1) */
12
+ export declare const DEFAULT_BAR_PADDING_OUTER = 0.1;
13
+ /** Default bar top-corner radius in px */
14
+ export declare const DEFAULT_BAR_RADIUS = 4;
15
+ /** Default line stroke width in px */
16
+ export declare const DEFAULT_LINE_STROKE_WIDTH = 2;
17
+ /** Default data-point dot radius in px */
18
+ export declare const DEFAULT_LINE_DOT_RADIUS = 4;
19
+ /** Transition duration in ms for hover effects */
20
+ export declare const CHART_TRANSITION_MS = 150;
21
+ /** Default number of y-axis ticks */
22
+ export declare const DEFAULT_Y_TICK_COUNT = 5;
@@ -0,0 +1,38 @@
1
+ //#region src/charts/constants.ts
2
+ /**
3
+ * Theme-derived chart series color palette.
4
+ * Purple first to match Galaxy brand aesthetic.
5
+ */
6
+ var getChartPalette = (theme) => [
7
+ theme.color.text.purple,
8
+ theme.color.text.pink,
9
+ theme.color.text.blue,
10
+ theme.color.text.teal,
11
+ theme.color.text.lime,
12
+ theme.color.text.orange,
13
+ theme.color.text.yellow,
14
+ theme.color.text.success,
15
+ theme.color.text.error
16
+ ];
17
+ var DEFAULT_CHART_MARGIN = {
18
+ top: 16,
19
+ right: 16,
20
+ bottom: 32,
21
+ left: 48
22
+ };
23
+ /** Spacing between bars within a group (fraction of bandwidth, 0-1) */
24
+ var DEFAULT_BAR_PADDING_INNER = .2;
25
+ /** Spacing around bar groups (fraction of step, 0-1) */
26
+ var DEFAULT_BAR_PADDING_OUTER = .1;
27
+ /** Default bar top-corner radius in px */
28
+ var DEFAULT_BAR_RADIUS = 4;
29
+ /** Default line stroke width in px */
30
+ var DEFAULT_LINE_STROKE_WIDTH = 2;
31
+ /** Default data-point dot radius in px */
32
+ var DEFAULT_LINE_DOT_RADIUS = 4;
33
+ /** Transition duration in ms for hover effects */
34
+ var CHART_TRANSITION_MS = 150;
35
+ /** Default number of y-axis ticks */
36
+ var DEFAULT_Y_TICK_COUNT = 5;
37
+ //#endregion
38
+ export { CHART_TRANSITION_MS, DEFAULT_BAR_PADDING_INNER, DEFAULT_BAR_PADDING_OUTER, DEFAULT_BAR_RADIUS, DEFAULT_CHART_MARGIN, DEFAULT_LINE_DOT_RADIUS, DEFAULT_LINE_STROKE_WIDTH, DEFAULT_Y_TICK_COUNT, getChartPalette };