@once-ui-system/core 1.6.4 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/components/Avatar.d.ts +1 -0
  2. package/dist/components/Avatar.d.ts.map +1 -1
  3. package/dist/components/Avatar.js +2 -2
  4. package/dist/components/Avatar.js.map +1 -1
  5. package/dist/components/BlobFx.d.ts +8 -0
  6. package/dist/components/BlobFx.d.ts.map +1 -0
  7. package/dist/components/BlobFx.js +82 -0
  8. package/dist/components/BlobFx.js.map +1 -0
  9. package/dist/components/Button.d.ts +1 -1
  10. package/dist/components/Button.d.ts.map +1 -1
  11. package/dist/components/Button.js +2 -2
  12. package/dist/components/Button.js.map +1 -1
  13. package/dist/components/Button.module.scss +62 -32
  14. package/dist/components/ContextMenu.d.ts +1 -0
  15. package/dist/components/ContextMenu.d.ts.map +1 -1
  16. package/dist/components/ContextMenu.js +8 -4
  17. package/dist/components/ContextMenu.js.map +1 -1
  18. package/dist/components/Dialog.d.ts.map +1 -1
  19. package/dist/components/Dialog.js +27 -5
  20. package/dist/components/Dialog.js.map +1 -1
  21. package/dist/components/Dropdown.d.ts +1 -0
  22. package/dist/components/Dropdown.d.ts.map +1 -1
  23. package/dist/components/Dropdown.js +4 -2
  24. package/dist/components/Dropdown.js.map +1 -1
  25. package/dist/components/FadingLettersFx.d.ts +15 -0
  26. package/dist/components/FadingLettersFx.d.ts.map +1 -0
  27. package/dist/components/FadingLettersFx.js +27 -0
  28. package/dist/components/FadingLettersFx.js.map +1 -0
  29. package/dist/components/FadingLettersFx.module.scss +71 -0
  30. package/dist/components/IconButton.d.ts +5 -2
  31. package/dist/components/IconButton.d.ts.map +1 -1
  32. package/dist/components/IconButton.js +6 -4
  33. package/dist/components/IconButton.js.map +1 -1
  34. package/dist/components/IconButton.module.scss +14 -0
  35. package/dist/components/Input.d.ts +3 -1
  36. package/dist/components/Input.d.ts.map +1 -1
  37. package/dist/components/Input.js +19 -6
  38. package/dist/components/Input.js.map +1 -1
  39. package/dist/components/Input.module.scss +64 -10
  40. package/dist/components/Media.d.ts +5 -1
  41. package/dist/components/Media.d.ts.map +1 -1
  42. package/dist/components/Media.js +20 -7
  43. package/dist/components/Media.js.map +1 -1
  44. package/dist/components/Modal.d.ts +11 -0
  45. package/dist/components/Modal.d.ts.map +1 -0
  46. package/dist/components/Modal.js +72 -0
  47. package/dist/components/Modal.js.map +1 -0
  48. package/dist/components/NumberInput.d.ts.map +1 -1
  49. package/dist/components/NumberInput.js +1 -1
  50. package/dist/components/NumberInput.js.map +1 -1
  51. package/dist/components/ScrollContainer.d.ts +9 -0
  52. package/dist/components/ScrollContainer.d.ts.map +1 -0
  53. package/dist/components/ScrollContainer.js +67 -0
  54. package/dist/components/ScrollContainer.js.map +1 -0
  55. package/dist/components/ServerFlex.d.ts.map +1 -1
  56. package/dist/components/ServerFlex.js +3 -3
  57. package/dist/components/ServerFlex.js.map +1 -1
  58. package/dist/components/ServerGrid.d.ts.map +1 -1
  59. package/dist/components/ServerGrid.js +2 -2
  60. package/dist/components/ServerGrid.js.map +1 -1
  61. package/dist/components/SplitView.d.ts +16 -0
  62. package/dist/components/SplitView.d.ts.map +1 -0
  63. package/dist/components/SplitView.js +80 -0
  64. package/dist/components/SplitView.js.map +1 -0
  65. package/dist/components/SplitView.module.scss +18 -0
  66. package/dist/components/StylePanel.d.ts.map +1 -1
  67. package/dist/components/StylePanel.js +10 -10
  68. package/dist/components/StylePanel.js.map +1 -1
  69. package/dist/components/TagInput.d.ts +1 -2
  70. package/dist/components/TagInput.d.ts.map +1 -1
  71. package/dist/components/TagInput.js.map +1 -1
  72. package/dist/components/Textarea.d.ts +2 -0
  73. package/dist/components/Textarea.d.ts.map +1 -1
  74. package/dist/components/Textarea.js +18 -8
  75. package/dist/components/Textarea.js.map +1 -1
  76. package/dist/components/ThemeInit.d.ts.map +1 -1
  77. package/dist/components/ThemeInit.js +39 -40
  78. package/dist/components/ThemeInit.js.map +1 -1
  79. package/dist/components/Timeline.d.ts +1 -1
  80. package/dist/components/Timeline.d.ts.map +1 -1
  81. package/dist/components/Timeline.js +50 -6
  82. package/dist/components/Timeline.js.map +1 -1
  83. package/dist/components/ToggleButton.d.ts +2 -1
  84. package/dist/components/ToggleButton.d.ts.map +1 -1
  85. package/dist/components/ToggleButton.js +3 -3
  86. package/dist/components/ToggleButton.js.map +1 -1
  87. package/dist/components/ToggleButton.module.scss +27 -8
  88. package/dist/components/TypeFx.d.ts.map +1 -1
  89. package/dist/components/TypeFx.js +66 -87
  90. package/dist/components/TypeFx.js.map +1 -1
  91. package/dist/components/index.d.ts +9 -1
  92. package/dist/components/index.d.ts.map +1 -1
  93. package/dist/components/index.js +9 -1
  94. package/dist/components/index.js.map +1 -1
  95. package/dist/css/styles.css +1 -1
  96. package/dist/css/styles.css.map +1 -1
  97. package/dist/css/tokens.css +1 -1
  98. package/dist/css/tokens.css.map +1 -1
  99. package/dist/interfaces.d.ts +1 -0
  100. package/dist/interfaces.d.ts.map +1 -1
  101. package/dist/modules/code/CodeBlock.d.ts +3 -31
  102. package/dist/modules/code/CodeBlock.d.ts.map +1 -1
  103. package/dist/modules/code/CodeBlock.impl.d.ts +34 -0
  104. package/dist/modules/code/CodeBlock.impl.d.ts.map +1 -0
  105. package/dist/modules/code/CodeBlock.impl.js +487 -0
  106. package/dist/modules/code/CodeBlock.impl.js.map +1 -0
  107. package/dist/modules/code/CodeBlock.js +10 -483
  108. package/dist/modules/code/CodeBlock.js.map +1 -1
  109. package/dist/modules/data/BarChart.d.ts +1 -8
  110. package/dist/modules/data/BarChart.d.ts.map +1 -1
  111. package/dist/modules/data/BarChart.impl.d.ts +12 -0
  112. package/dist/modules/data/BarChart.impl.d.ts.map +1 -0
  113. package/dist/modules/data/BarChart.impl.js +137 -0
  114. package/dist/modules/data/BarChart.impl.js.map +1 -0
  115. package/dist/modules/data/BarChart.js +9 -132
  116. package/dist/modules/data/BarChart.js.map +1 -1
  117. package/dist/modules/data/DataTooltip.d.ts +2 -2
  118. package/dist/modules/data/DataTooltip.d.ts.map +1 -1
  119. package/dist/modules/data/Legend.d.ts +1 -1
  120. package/dist/modules/data/Legend.d.ts.map +1 -1
  121. package/dist/modules/data/LineBarChart.d.ts +1 -8
  122. package/dist/modules/data/LineBarChart.d.ts.map +1 -1
  123. package/dist/modules/data/LineBarChart.impl.d.ts +12 -0
  124. package/dist/modules/data/LineBarChart.impl.d.ts.map +1 -0
  125. package/dist/modules/data/LineBarChart.impl.js +142 -0
  126. package/dist/modules/data/LineBarChart.impl.js.map +1 -0
  127. package/dist/modules/data/LineBarChart.js +9 -137
  128. package/dist/modules/data/LineBarChart.js.map +1 -1
  129. package/dist/modules/data/LineChart.d.ts +1 -13
  130. package/dist/modules/data/LineChart.d.ts.map +1 -1
  131. package/dist/modules/data/LineChart.impl.d.ts +17 -0
  132. package/dist/modules/data/LineChart.impl.d.ts.map +1 -0
  133. package/dist/modules/data/LineChart.impl.js +148 -0
  134. package/dist/modules/data/LineChart.impl.js.map +1 -0
  135. package/dist/modules/data/LineChart.js +9 -143
  136. package/dist/modules/data/LineChart.js.map +1 -1
  137. package/dist/modules/data/PieChart.d.ts +4 -16
  138. package/dist/modules/data/PieChart.d.ts.map +1 -1
  139. package/dist/modules/data/PieChart.impl.d.ts +18 -0
  140. package/dist/modules/data/PieChart.impl.d.ts.map +1 -0
  141. package/dist/modules/data/PieChart.impl.js +102 -0
  142. package/dist/modules/data/PieChart.impl.js.map +1 -0
  143. package/dist/modules/data/PieChart.js +11 -97
  144. package/dist/modules/data/PieChart.js.map +1 -1
  145. package/dist/modules/media/MediaUpload.d.ts +2 -20
  146. package/dist/modules/media/MediaUpload.d.ts.map +1 -1
  147. package/dist/modules/media/MediaUpload.impl.d.ts +24 -0
  148. package/dist/modules/media/MediaUpload.impl.d.ts.map +1 -0
  149. package/dist/modules/media/MediaUpload.impl.js +92 -0
  150. package/dist/modules/media/MediaUpload.impl.js.map +1 -0
  151. package/dist/modules/media/MediaUpload.js +10 -88
  152. package/dist/modules/media/MediaUpload.js.map +1 -1
  153. package/dist/modules/navigation/Kbar.d.ts.map +1 -1
  154. package/dist/modules/navigation/Kbar.js +1 -1
  155. package/dist/modules/navigation/Kbar.js.map +1 -1
  156. package/dist/package.json +17 -6
  157. package/dist/src/__tests__/Dialog.test.d.ts +1 -0
  158. package/dist/src/components/Accordion.d.ts +21 -0
  159. package/dist/src/components/AccordionGroup.d.ts +15 -0
  160. package/dist/src/components/Animation.d.ts +33 -0
  161. package/dist/src/components/Arrow.d.ts +10 -0
  162. package/dist/src/components/ArrowNavigationContext.d.ts +32 -0
  163. package/dist/src/components/AutoScroll.d.ts +13 -0
  164. package/dist/src/components/Avatar.d.ts +20 -0
  165. package/dist/src/components/AvatarGroup.d.ts +13 -0
  166. package/dist/src/components/Background.d.ts +48 -0
  167. package/dist/src/components/Badge.d.ts +16 -0
  168. package/dist/src/components/Banner.d.ts +5 -0
  169. package/dist/src/components/BlobFx.d.ts +7 -0
  170. package/dist/src/components/BlockQuote.d.ts +20 -0
  171. package/dist/src/components/Button.d.ts +26 -0
  172. package/dist/src/components/Card.d.ts +12 -0
  173. package/dist/src/components/Carousel.d.ts +31 -0
  174. package/dist/src/components/CelebrationFx.d.ts +16 -0
  175. package/dist/src/components/Checkbox.d.ts +10 -0
  176. package/dist/src/components/Chip.d.ts +16 -0
  177. package/dist/src/components/ClientFlex.d.ts +12 -0
  178. package/dist/src/components/ClientGrid.d.ts +12 -0
  179. package/dist/src/components/ColorInput.d.ts +10 -0
  180. package/dist/src/components/Column.d.ts +6 -0
  181. package/dist/src/components/CompareImage.d.ts +15 -0
  182. package/dist/src/components/ContextMenu.d.ts +21 -0
  183. package/dist/src/components/CountFx.d.ts +14 -0
  184. package/dist/src/components/CountdownFx.d.ts +10 -0
  185. package/dist/src/components/Cursor.d.ts +7 -0
  186. package/dist/src/components/CursorCard.d.ts +12 -0
  187. package/dist/src/components/DateInput.d.ts +17 -0
  188. package/dist/src/components/DatePicker.d.ts +32 -0
  189. package/dist/src/components/DateRangeInput.d.ts +14 -0
  190. package/dist/src/components/DateRangePicker.d.ts +16 -0
  191. package/dist/src/components/Dialog.d.ts +19 -0
  192. package/dist/src/components/Dropdown.d.ts +12 -0
  193. package/dist/src/components/DropdownWrapper.d.ts +28 -0
  194. package/dist/src/components/ElementType.d.ts +13 -0
  195. package/dist/src/components/EmojiPicker.d.ts +15 -0
  196. package/dist/src/components/EmojiPickerDropdown.d.ts +10 -0
  197. package/dist/src/components/Fade.d.ts +18 -0
  198. package/dist/src/components/Feedback.d.ts +15 -0
  199. package/dist/src/components/Flex.d.ts +10 -0
  200. package/dist/src/components/FlipFx.d.ts +16 -0
  201. package/dist/src/components/GlitchFx.d.ts +11 -0
  202. package/dist/src/components/Grid.d.ts +10 -0
  203. package/dist/src/components/HoloFx.d.ts +31 -0
  204. package/dist/src/components/Hover.d.ts +13 -0
  205. package/dist/src/components/HoverCard.d.ts +4 -0
  206. package/dist/src/components/Icon.d.ts +17 -0
  207. package/dist/src/components/IconButton.d.ts +22 -0
  208. package/dist/src/components/InfiniteScroll.d.ts +15 -0
  209. package/dist/src/components/InlineCode.d.ts +9 -0
  210. package/dist/src/components/Input.d.ts +23 -0
  211. package/dist/src/components/InteractiveDetails.d.ts +14 -0
  212. package/dist/src/components/Kbd.d.ts +11 -0
  213. package/dist/src/components/Line.d.ts +8 -0
  214. package/dist/src/components/List.d.ts +10 -0
  215. package/dist/src/components/ListItem.d.ts +9 -0
  216. package/dist/src/components/Logo.d.ts +17 -0
  217. package/dist/src/components/LogoCloud.d.ts +13 -0
  218. package/dist/src/components/Mask.d.ts +14 -0
  219. package/dist/src/components/MasonryGrid.d.ts +21 -0
  220. package/dist/src/components/MatrixFx.d.ts +26 -0
  221. package/dist/src/components/Media.d.ts +25 -0
  222. package/dist/src/components/Modal.d.ts +10 -0
  223. package/dist/src/components/NavIcon.d.ts +10 -0
  224. package/dist/src/components/NumberInput.d.ts +12 -0
  225. package/dist/src/components/OTPInput.d.ts +12 -0
  226. package/dist/src/components/OgCard.d.ts +33 -0
  227. package/dist/src/components/Option.d.ts +20 -0
  228. package/dist/src/components/Particle.d.ts +20 -0
  229. package/dist/src/components/PasswordInput.d.ts +3 -0
  230. package/dist/src/components/ProgressBar.d.ts +14 -0
  231. package/dist/src/components/Pulse.d.ts +12 -0
  232. package/dist/src/components/RadioButton.d.ts +14 -0
  233. package/dist/src/components/RevealFx.d.ts +15 -0
  234. package/dist/src/components/Row.d.ts +6 -0
  235. package/dist/src/components/ScrollContainer.d.ts +8 -0
  236. package/dist/src/components/ScrollLock.integration.test.d.ts +1 -0
  237. package/dist/src/components/ScrollToTop.d.ts +6 -0
  238. package/dist/src/components/Scroller.d.ts +13 -0
  239. package/dist/src/components/SegmentedControl.d.ts +17 -0
  240. package/dist/src/components/Select.d.ts +18 -0
  241. package/dist/src/components/ShineFx.d.ts +12 -0
  242. package/dist/src/components/Skeleton.d.ts +12 -0
  243. package/dist/src/components/Slider.d.ts +16 -0
  244. package/dist/src/components/SmartLink.d.ts +17 -0
  245. package/dist/src/components/Spinner.d.ts +10 -0
  246. package/dist/src/components/SplitView.d.ts +15 -0
  247. package/dist/src/components/SplitView.js +79 -0
  248. package/dist/src/components/StatusIndicator.d.ts +11 -0
  249. package/dist/src/components/StyleOverlay.d.ts +9 -0
  250. package/dist/src/components/StylePanel.d.ts +7 -0
  251. package/dist/src/components/Swiper.d.ts +16 -0
  252. package/dist/src/components/Switch.d.ts +16 -0
  253. package/dist/src/components/Table.d.ts +15 -0
  254. package/dist/src/components/Tag.d.ts +15 -0
  255. package/dist/src/components/TagInput.d.ts +8 -0
  256. package/dist/src/components/Textarea.d.ts +22 -0
  257. package/dist/src/components/ThemeSwitcher.d.ts +3 -0
  258. package/dist/src/components/TiltFx.d.ts +9 -0
  259. package/dist/src/components/Timeline.d.ts +17 -0
  260. package/dist/src/components/Toast.d.ts +11 -0
  261. package/dist/src/components/Toaster.d.ts +12 -0
  262. package/dist/src/components/ToggleButton.d.ts +23 -0
  263. package/dist/src/components/Tooltip.d.ts +12 -0
  264. package/dist/src/components/TypeFx.d.ts +14 -0
  265. package/dist/src/components/User.d.ts +15 -0
  266. package/dist/src/components/UserMenu.d.ts +12 -0
  267. package/dist/src/components/WeatherFx.d.ts +17 -0
  268. package/dist/src/components/index.d.ts +120 -0
  269. package/dist/src/contexts/DataThemeProvider.d.ts +25 -0
  270. package/dist/src/contexts/ThemeProvider.d.ts +48 -0
  271. package/dist/src/contexts/ToastProvider.d.ts +17 -0
  272. package/dist/src/contexts/index.d.ts +5 -0
  273. package/dist/src/data/emoji-data.json +16062 -0
  274. package/dist/src/index.d.ts +9 -0
  275. package/dist/src/modules/code/CodeBlock.d.ts +5 -0
  276. package/dist/src/modules/code/CodeBlock.impl.d.ts +33 -0
  277. package/dist/src/modules/data/BarChart.d.ts +5 -0
  278. package/dist/src/modules/data/BarChart.impl.d.ts +11 -0
  279. package/dist/src/modules/data/ChartHeader.d.ts +13 -0
  280. package/dist/src/modules/data/ChartStatus.d.ts +9 -0
  281. package/dist/src/modules/data/DataTooltip.d.ts +15 -0
  282. package/dist/src/modules/data/Gradient.d.ts +31 -0
  283. package/dist/src/modules/data/Legend.d.ts +14 -0
  284. package/dist/src/modules/data/LineBarChart.d.ts +5 -0
  285. package/dist/src/modules/data/LineBarChart.impl.d.ts +11 -0
  286. package/dist/src/modules/data/LineChart.d.ts +5 -0
  287. package/dist/src/modules/data/LineChart.impl.d.ts +16 -0
  288. package/dist/src/modules/data/LinearGauge.d.ts +17 -0
  289. package/dist/src/modules/data/PieChart.d.ts +5 -0
  290. package/dist/src/modules/data/PieChart.impl.d.ts +17 -0
  291. package/dist/src/modules/data/RadialGauge.d.ts +24 -0
  292. package/dist/src/modules/data/Swatch.d.ts +8 -0
  293. package/dist/src/modules/data/index.d.ts +13 -0
  294. package/dist/src/modules/data/interfaces.d.ts +52 -0
  295. package/dist/src/modules/data/utils/formatDate.d.ts +11 -0
  296. package/dist/src/modules/index.d.ts +7 -0
  297. package/dist/src/modules/media/MediaUpload.d.ts +5 -0
  298. package/dist/src/modules/media/MediaUpload.impl.d.ts +23 -0
  299. package/dist/src/modules/navigation/HeadingLink.d.ts +10 -0
  300. package/dist/src/modules/navigation/HeadingNav.d.ts +7 -0
  301. package/dist/src/modules/navigation/Kbar.d.ts +33 -0
  302. package/dist/src/modules/navigation/MegaMenu.d.ts +27 -0
  303. package/dist/src/modules/navigation/MobileMegaMenu.d.ts +27 -0
  304. package/dist/src/modules/navigation/index.d.ts +5 -0
  305. package/dist/src/utils/MissingDependency.d.ts +6 -0
  306. package/dist/src/utils/index.d.ts +2 -0
  307. package/dist/styles/size.scss +20 -0
  308. package/dist/test/dialogTestUtils.d.ts +2 -0
  309. package/dist/test/dialogTestUtils.d.ts.map +1 -0
  310. package/dist/test/dialogTestUtils.js +12 -0
  311. package/dist/test/dialogTestUtils.js.map +1 -0
  312. package/dist/test/setup.d.ts +2 -0
  313. package/dist/test/setup.d.ts.map +1 -0
  314. package/dist/test/setup.js +59 -0
  315. package/dist/test/setup.js.map +1 -0
  316. package/dist/tokens/layout.scss +5 -0
  317. package/dist/utils/MissingDependency.d.ts +7 -0
  318. package/dist/utils/MissingDependency.d.ts.map +1 -0
  319. package/dist/utils/MissingDependency.js +6 -0
  320. package/dist/utils/MissingDependency.js.map +1 -0
  321. package/dist/utils/index.d.ts +1 -0
  322. package/dist/utils/index.d.ts.map +1 -1
  323. package/dist/utils/index.js +1 -0
  324. package/dist/utils/index.js.map +1 -1
  325. package/package.json +35 -13
  326. package/tsconfig.vitest.json +20 -0
  327. package/vitest.config.ts +19 -0
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { ChartProps } from "../../";
3
+ export interface PieChartProps extends ChartProps {
4
+ "data-viz-style"?: string;
5
+ ring?: {
6
+ inner: number;
7
+ outer: number;
8
+ };
9
+ dataKey?: string;
10
+ nameKey?: string;
11
+ origo?: {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ }
16
+ declare const PieChart: React.FC<PieChartProps>;
17
+ export default PieChart;
18
+ //# sourceMappingURL=PieChart.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PieChart.impl.d.ts","sourceRoot":"","sources":["../../../src/modules/data/PieChart.impl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AASnD,OAAO,EAKL,UAAU,EASX,MAAM,QAAQ,CAAC;AAIhB,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoQrC,CAAC;AAIF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { useState, useEffect } from "react";
4
+ import { PieChart as RechartsPieChart, Pie as RechartsPie, Cell as RechartsCell, Tooltip as RechartsTooltip, ResponsiveContainer as RechartsResponsiveContainer, Legend as RechartsLegend, } from "recharts";
5
+ import { schemes, Column, Row, ChartStatus, RadialGradient, DataTooltip, Legend, ChartHeader, useDataTheme, } from "../../";
6
+ import { getDistributedColor } from "./utils/colorDistribution";
7
+ const PieChart = ({ title, description, data, series, date, emptyState, errorState, error = false, loading = false, tooltip = true, origo = { x: 50, y: 50 }, legend: legendProp = {}, border = "neutral-alpha-weak", variant: variantProp, ring = { inner: 0, outer: 80 }, dataKey = "value", nameKey = "name", "data-viz-style": dataViz, ...flex }) => {
8
+ const { variant: themeVariant, mode, height } = useDataTheme();
9
+ const variant = variantProp || themeVariant;
10
+ const legend = {
11
+ display: legendProp.display !== undefined ? legendProp.display : true,
12
+ position: legendProp.position || "bottom-center",
13
+ direction: legendProp.direction,
14
+ };
15
+ const [selectedDateRange, setSelectedDateRange] = useState(date?.start && date?.end
16
+ ? {
17
+ startDate: date.start,
18
+ endDate: date.end,
19
+ }
20
+ : undefined);
21
+ useEffect(() => {
22
+ if (date?.start && date?.end) {
23
+ setSelectedDateRange({
24
+ startDate: date.start,
25
+ endDate: date.end,
26
+ });
27
+ }
28
+ }, [date?.start, date?.end]);
29
+ const handleDateRangeChange = (newRange) => {
30
+ setSelectedDateRange(newRange);
31
+ if (date?.onChange) {
32
+ date.onChange(newRange);
33
+ }
34
+ };
35
+ const colorPalette = React.useMemo(() => {
36
+ if (!data || data.length === 0)
37
+ return schemes.map((c) => `var(--data-${c})`);
38
+ return Array.from({ length: data.length }, (_, index) => {
39
+ const colorKey = getDistributedColor(index, data.length);
40
+ return `var(--data-${colorKey})`;
41
+ });
42
+ }, [data]);
43
+ const filteredData = React.useMemo(() => {
44
+ if (!selectedDateRange || !data || data.length === 0) {
45
+ return data;
46
+ }
47
+ return data.filter((item) => {
48
+ try {
49
+ if (!item.date || !selectedDateRange.startDate || !selectedDateRange.endDate) {
50
+ return true;
51
+ }
52
+ const itemDate = typeof item.date === "string" ? new Date(item.date) : item.date;
53
+ return itemDate >= selectedDateRange.startDate && itemDate <= selectedDateRange.endDate;
54
+ }
55
+ catch (e) {
56
+ return true;
57
+ }
58
+ });
59
+ }, [data, selectedDateRange]);
60
+ const getGradientId = React.useCallback((colorKey) => {
61
+ return `pieGradient-${String(colorKey)}`;
62
+ }, []);
63
+ return (_jsxs(Column, { fillWidth: true, height: height, "data-viz-style": dataViz || mode, border: border, radius: "l", ...flex, children: [_jsx(ChartHeader, { title: title, description: description, dateRange: selectedDateRange, date: date, onDateRangeChange: handleDateRangeChange, presets: date?.presets }), _jsxs(Row, { fill: true, borderTop: (title || description || date?.selector) ? (border || "neutral-alpha-weak") : undefined, topRadius: flex.radius || "l", overflow: "hidden", children: [_jsx(ChartStatus, { loading: loading, empty: !filteredData || filteredData.length === 0, emptyState: emptyState, error: error, errorState: errorState }), !loading && !error && filteredData && filteredData.length > 0 && (_jsx(RechartsResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(RechartsPieChart, { children: [_jsxs("defs", { children: [_jsxs("pattern", { id: "pieChartMasterPattern", patternUnits: "userSpaceOnUse", width: "100%", height: "100%", children: [_jsx(RadialGradient, { id: "pieChartMasterGradient", color: "var(--page-background)", cx: "50%", cy: "50%", r: "50%", fx: "50%", fy: "50%", variant: variant }), _jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: "url(#pieChartMasterGradient)" })] }), Array.from(new Set(filteredData.map((entry, index) => {
64
+ return entry.color || getDistributedColor(index, filteredData.length);
65
+ }))).map((colorKey) => {
66
+ const baseColor = `var(--data-${colorKey})`;
67
+ const patternId = getGradientId(colorKey);
68
+ return (_jsxs("pattern", { id: patternId, patternUnits: "userSpaceOnUse", width: "100%", height: "100%", children: [variant !== "outline" && (_jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: baseColor })), variant === "gradient" && (_jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: "url(#pieChartMasterPattern)" }))] }, `pattern-${colorKey}`));
69
+ })] }), legend.display && (_jsx(RechartsLegend, { content: (props) => (_jsx(Legend, { ...props, variant: variant, position: legend.position, direction: legend.direction, labels: "none", colors: colorPalette })), wrapperStyle: {
70
+ position: "absolute",
71
+ top: legend.position === "top-center" ||
72
+ legend.position === "top-left" ||
73
+ legend.position === "top-right"
74
+ ? 0
75
+ : undefined,
76
+ bottom: legend.position === "bottom-center" ||
77
+ legend.position === "bottom-left" ||
78
+ legend.position === "bottom-right"
79
+ ? 0
80
+ : undefined,
81
+ right: 0,
82
+ left: 0,
83
+ margin: 0,
84
+ } })), _jsx(RechartsPie, { data: filteredData, cx: origo.x + "%", cy: origo.y + "%", labelLine: false, innerRadius: ring.inner + "%", outerRadius: ring.outer + "%", dataKey: dataKey, nameKey: nameKey, stroke: variant === "outline" ? undefined : "none", children: filteredData.map((entry, index) => {
85
+ const colorKey = entry.color || getDistributedColor(index, filteredData.length);
86
+ const baseColor = `var(--data-${colorKey})`;
87
+ const gradientId = getGradientId(String(colorKey));
88
+ return (_jsx(RechartsCell, { fill: variant === "outline" ? "transparent" : `url(#${gradientId})`, strokeWidth: variant === "outline" ? 2 : 1, stroke: baseColor, style: { outline: "none" } }, `cell-${index}`));
89
+ }) }), tooltip && (_jsx(RechartsTooltip, { content: (props) => {
90
+ if (props.payload && props.payload.length > 0) {
91
+ const entry = props.payload[0];
92
+ const index = filteredData.findIndex((item) => item[nameKey] === entry.name);
93
+ const colorKey = filteredData[index]?.color || getDistributedColor(index, filteredData.length);
94
+ const color = `var(--data-${colorKey})`;
95
+ props.payload[0].color = color;
96
+ }
97
+ return (_jsx(DataTooltip, { ...props, label: undefined, date: date, variant: variant }));
98
+ } }))] }) }))] })] }));
99
+ };
100
+ PieChart.displayName = "PieChart";
101
+ export default PieChart;
102
+ //# sourceMappingURL=PieChart.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PieChart.impl.js","sourceRoot":"","sources":["../../../src/modules/data/PieChart.impl.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,GAAG,IAAI,WAAW,EAClB,IAAI,IAAI,YAAY,EACpB,OAAO,IAAI,eAAe,EAC1B,mBAAmB,IAAI,2BAA2B,EAClD,MAAM,IAAI,cAAc,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,OAAO,EACP,MAAM,EACN,GAAG,EAIH,WAAW,EACX,cAAc,EACd,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,GAEb,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAUhE,MAAM,QAAQ,GAA4B,CAAC,EACzC,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,UAAU,EACV,UAAU,EACV,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,IAAI,EACd,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EACxB,MAAM,EAAE,UAAU,GAAG,EAAE,EACvB,MAAM,GAAG,oBAAoB,EAC7B,OAAO,EAAE,WAAW,EACpB,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAC9B,OAAO,GAAG,OAAO,EACjB,OAAO,GAAG,MAAM,EAChB,gBAAgB,EAAE,OAAO,EACzB,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAG,WAAW,IAAI,YAAY,CAAC;IAC5C,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACrE,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,eAAe;QAChD,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC;IACF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG;QACtB,CAAC,CAAC;YACE,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG;SAClB;QACH,CAAC,CAAC,SAAS,CACd,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YAC7B,oBAAoB,CAAC;gBACnB,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,OAAO,EAAE,IAAI,CAAC,GAAG;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAE7B,MAAM,qBAAqB,GAAG,CAAC,QAAmB,EAAE,EAAE;QACpD,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE9E,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,cAAc,QAAQ,GAAG,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;oBAC7E,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEjF,OAAO,QAAQ,IAAI,iBAAiB,CAAC,SAAS,IAAI,QAAQ,IAAI,iBAAiB,CAAC,OAAO,CAAC;YAC1F,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAgC,EAAU,EAAE;QACnF,OAAO,eAAe,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,MAAC,MAAM,IACL,SAAS,QACT,MAAM,EAAE,MAAM,oBACE,OAAO,IAAI,IAAI,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAC,GAAG,KACN,IAAI,aAER,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,qBAAqB,EACxC,OAAO,EAAE,IAAI,EAAE,OAAO,GACtB,EACF,MAAC,GAAG,IAAC,IAAI,QAAC,SAAS,EAAE,CAAC,KAAK,IAAI,WAAW,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,MAAoB,IAAI,GAAG,EAAE,QAAQ,EAAC,QAAQ,aAC1K,KAAC,WAAW,IACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EACjD,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,GACtB,EACD,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAChE,KAAC,2BAA2B,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YACrD,MAAC,gBAAgB,eACf,2BACE,mBACE,EAAE,EAAC,uBAAuB,EAC1B,YAAY,EAAC,gBAAgB,EAC7B,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,aAEb,KAAC,cAAc,IACb,EAAE,EAAC,wBAAwB,EAC3B,KAAK,EAAC,wBAAwB,EAC9B,EAAE,EAAC,KAAK,EACR,EAAE,EAAC,KAAK,EACR,CAAC,EAAC,KAAK,EACP,EAAE,EAAC,KAAK,EACR,EAAE,EAAC,KAAK,EACR,OAAO,EAAE,OAAuB,GAChC,EACF,eACE,CAAC,EAAC,GAAG,EACL,CAAC,EAAC,GAAG,EACL,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,IAAI,EAAC,8BAA8B,GACnC,IACM,EAET,KAAK,CAAC,IAAI,CACT,IAAI,GAAG,CACL,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;4CAChC,OAAO,KAAK,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;wCACxE,CAAC,CAAC,CACH,CACF,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;4CACjB,MAAM,SAAS,GAAG,cAAc,QAAQ,GAAG,CAAC;4CAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,QAAkB,CAAC,CAAC;4CACpD,OAAO,CACL,mBACE,EAAE,EAAE,SAAS,EAEb,YAAY,EAAC,gBAAgB,EAC7B,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,aAEZ,OAAO,KAAK,SAAS,IAAI,CACxB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAE,SAAS,GAAI,CACjE,EACA,OAAO,KAAK,UAAU,IAAI,CACzB,eACE,CAAC,EAAC,GAAG,EACL,CAAC,EAAC,GAAG,EACL,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,IAAI,EAAC,6BAA6B,GAClC,CACH,KAhBI,WAAW,QAAQ,EAAE,CAiBlB,CACX,CAAC;wCACJ,CAAC,CAAC,IACG,EACN,MAAM,CAAC,OAAO,IAAI,CACjB,KAAC,cAAc,IACb,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAClB,KAAC,MAAM,OACD,KAAK,EACT,OAAO,EAAE,OAAuB,EAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,MAAM,EAAC,MAAM,EACb,MAAM,EAAE,YAAY,GACpB,CACH,EACD,YAAY,EAAE;wCACZ,QAAQ,EAAE,UAAU;wCACpB,GAAG,EACD,MAAM,CAAC,QAAQ,KAAK,YAAY;4CAChC,MAAM,CAAC,QAAQ,KAAK,UAAU;4CAC9B,MAAM,CAAC,QAAQ,KAAK,WAAW;4CAC7B,CAAC,CAAC,CAAC;4CACH,CAAC,CAAC,SAAS;wCACf,MAAM,EACJ,MAAM,CAAC,QAAQ,KAAK,eAAe;4CACnC,MAAM,CAAC,QAAQ,KAAK,aAAa;4CACjC,MAAM,CAAC,QAAQ,KAAK,cAAc;4CAChC,CAAC,CAAC,CAAC;4CACH,CAAC,CAAC,SAAS;wCACf,KAAK,EAAE,CAAC;wCACR,IAAI,EAAE,CAAC;wCACP,MAAM,EAAE,CAAC;qCACV,GACD,CACH,EACD,KAAC,WAAW,IACV,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EACjB,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EACjB,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,EAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,EAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,YAEjD,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wCACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;wCAChF,MAAM,SAAS,GAAG,cAAc,QAAQ,GAAG,CAAC;wCAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;wCACnD,OAAO,CACL,KAAC,YAAY,IAEX,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,UAAU,GAAG,EACnE,WAAW,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1C,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,IAJnB,QAAQ,KAAK,EAAE,CAKpB,CACH,CAAC;oCACJ,CAAC,CAAC,GACU,EACb,OAAO,IAAI,CACV,KAAC,eAAe,IACd,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wCACjB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4CAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;4CAC7E,MAAM,QAAQ,GACZ,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;4CAChF,MAAM,KAAK,GAAG,cAAc,QAAQ,GAAG,CAAC;4CAExC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;wCACjC,CAAC;wCACD,OAAO,CACL,KAAC,WAAW,OACN,KAAK,EACT,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAuB,GAChC,CACH,CAAC;oCACJ,CAAC,GACD,CACH,IACgB,GACS,CAC/B,IACG,IACC,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,eAAe,QAAQ,CAAC"}
@@ -1,100 +1,14 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { useState, useEffect } from "react";
4
- import { PieChart as RechartsPieChart, Pie as RechartsPie, Cell as RechartsCell, Tooltip as RechartsTooltip, ResponsiveContainer as RechartsResponsiveContainer, Legend as RechartsLegend, } from "recharts";
5
- import { schemes, Column, Row, ChartStatus, RadialGradient, DataTooltip, Legend, ChartHeader, useDataTheme, } from "../../";
6
- import { getDistributedColor } from "./utils/colorDistribution";
7
- export const PieChart = ({ title, description, data, series, date, emptyState, errorState, error = false, loading = false, tooltip = true, origo = { x: 50, y: 50 }, legend: legendProp = {}, border = "neutral-alpha-weak", variant: variantProp, ring = { inner: 0, outer: 80 }, dataKey = "value", nameKey = "name", "data-viz-style": dataViz, ...flex }) => {
8
- const { variant: themeVariant, mode, height } = useDataTheme();
9
- const variant = variantProp || themeVariant;
10
- const legend = {
11
- display: legendProp.display !== undefined ? legendProp.display : true,
12
- position: legendProp.position || "bottom-center",
13
- direction: legendProp.direction,
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React, { Suspense } from "react";
4
+ import { MissingDependency } from "../../utils/MissingDependency";
5
+ const PieChartImpl = React.lazy(() => import("./PieChart.impl").catch(() => {
6
+ console.warn('[@once-ui-system/core] <PieChart /> requires the "recharts" package. Install it with: npm install recharts');
7
+ return {
8
+ default: () => _jsx(MissingDependency, { component: "PieChart", packageName: "recharts" }),
14
9
  };
15
- const [selectedDateRange, setSelectedDateRange] = useState(date?.start && date?.end
16
- ? {
17
- startDate: date.start,
18
- endDate: date.end,
19
- }
20
- : undefined);
21
- useEffect(() => {
22
- if (date?.start && date?.end) {
23
- setSelectedDateRange({
24
- startDate: date.start,
25
- endDate: date.end,
26
- });
27
- }
28
- }, [date?.start, date?.end]);
29
- const handleDateRangeChange = (newRange) => {
30
- setSelectedDateRange(newRange);
31
- if (date?.onChange) {
32
- date.onChange(newRange);
33
- }
34
- };
35
- const colorPalette = React.useMemo(() => {
36
- if (!data || data.length === 0)
37
- return schemes.map((c) => `var(--data-${c})`);
38
- return Array.from({ length: data.length }, (_, index) => {
39
- const colorKey = getDistributedColor(index, data.length);
40
- return `var(--data-${colorKey})`;
41
- });
42
- }, [data]);
43
- const filteredData = React.useMemo(() => {
44
- if (!selectedDateRange || !data || data.length === 0) {
45
- return data;
46
- }
47
- return data.filter((item) => {
48
- try {
49
- if (!item.date || !selectedDateRange.startDate || !selectedDateRange.endDate) {
50
- return true;
51
- }
52
- const itemDate = typeof item.date === "string" ? new Date(item.date) : item.date;
53
- return itemDate >= selectedDateRange.startDate && itemDate <= selectedDateRange.endDate;
54
- }
55
- catch (e) {
56
- return true;
57
- }
58
- });
59
- }, [data, selectedDateRange]);
60
- const getGradientId = React.useCallback((colorKey) => {
61
- return `pieGradient-${String(colorKey)}`;
62
- }, []);
63
- return (_jsxs(Column, { fillWidth: true, height: height, "data-viz-style": dataViz || mode, border: border, radius: "l", ...flex, children: [_jsx(ChartHeader, { title: title, description: description, dateRange: selectedDateRange, date: date, onDateRangeChange: handleDateRangeChange, presets: date?.presets }), _jsxs(Row, { fill: true, borderTop: (title || description || date?.selector) ? (border || "neutral-alpha-weak") : undefined, topRadius: flex.radius || "l", overflow: "hidden", children: [_jsx(ChartStatus, { loading: loading, empty: !filteredData || filteredData.length === 0, emptyState: emptyState, error: error, errorState: errorState }), !loading && !error && filteredData && filteredData.length > 0 && (_jsx(RechartsResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(RechartsPieChart, { children: [_jsxs("defs", { children: [_jsxs("pattern", { id: "pieChartMasterPattern", patternUnits: "userSpaceOnUse", width: "100%", height: "100%", children: [_jsx(RadialGradient, { id: "pieChartMasterGradient", color: "var(--page-background)", cx: "50%", cy: "50%", r: "50%", fx: "50%", fy: "50%", variant: variant }), _jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: "url(#pieChartMasterGradient)" })] }), Array.from(new Set(filteredData.map((entry, index) => {
64
- return entry.color || getDistributedColor(index, filteredData.length);
65
- }))).map((colorKey) => {
66
- const baseColor = `var(--data-${colorKey})`;
67
- const patternId = getGradientId(colorKey);
68
- return (_jsxs("pattern", { id: patternId, patternUnits: "userSpaceOnUse", width: "100%", height: "100%", children: [variant !== "outline" && (_jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: baseColor })), variant === "gradient" && (_jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: "url(#pieChartMasterPattern)" }))] }, `pattern-${colorKey}`));
69
- })] }), legend.display && (_jsx(RechartsLegend, { content: (props) => (_jsx(Legend, { ...props, variant: variant, position: legend.position, direction: legend.direction, labels: "none", colors: colorPalette })), wrapperStyle: {
70
- position: "absolute",
71
- top: legend.position === "top-center" ||
72
- legend.position === "top-left" ||
73
- legend.position === "top-right"
74
- ? 0
75
- : undefined,
76
- bottom: legend.position === "bottom-center" ||
77
- legend.position === "bottom-left" ||
78
- legend.position === "bottom-right"
79
- ? 0
80
- : undefined,
81
- right: 0,
82
- left: 0,
83
- margin: 0,
84
- } })), _jsx(RechartsPie, { data: filteredData, cx: origo.x + "%", cy: origo.y + "%", labelLine: false, innerRadius: ring.inner + "%", outerRadius: ring.outer + "%", dataKey: dataKey, nameKey: nameKey, stroke: variant === "outline" ? undefined : "none", children: filteredData.map((entry, index) => {
85
- const colorKey = entry.color || getDistributedColor(index, filteredData.length);
86
- const baseColor = `var(--data-${colorKey})`;
87
- const gradientId = getGradientId(String(colorKey));
88
- return (_jsx(RechartsCell, { fill: variant === "outline" ? "transparent" : `url(#${gradientId})`, strokeWidth: variant === "outline" ? 2 : 1, stroke: baseColor, style: { outline: "none" } }, `cell-${index}`));
89
- }) }), tooltip && (_jsx(RechartsTooltip, { content: (props) => {
90
- if (props.payload && props.payload.length > 0) {
91
- const entry = props.payload[0];
92
- const index = filteredData.findIndex((item) => item[nameKey] === entry.name);
93
- const colorKey = filteredData[index]?.color || getDistributedColor(index, filteredData.length);
94
- const color = `var(--data-${colorKey})`;
95
- props.payload[0].color = color;
96
- }
97
- return (_jsx(DataTooltip, { ...props, label: undefined, date: date, variant: variant }));
98
- } }))] }) }))] })] }));
99
- };
10
+ }));
11
+ const PieChart = (props) => (_jsx(Suspense, { fallback: null, children: _jsx(PieChartImpl, { ...props }) }));
12
+ PieChart.displayName = "PieChart";
13
+ export { PieChart };
100
14
  //# sourceMappingURL=PieChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PieChart.js","sourceRoot":"","sources":["../../../src/modules/data/PieChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PieChart.js","sourceRoot":"","sources":["../../../src/modules/data/PieChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACnC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;IACnC,OAAO,CAAC,IAAI,CACV,4GAA4G,CAC7G,CAAC;IACF,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,KAAC,iBAAiB,IAAC,SAAS,EAAC,UAAU,EAAC,WAAW,EAAC,UAAU,GAAG;KACjF,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,QAAQ,GAA4B,CAAC,KAAK,EAAE,EAAE,CAAC,CACnD,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,YAAY,OAAK,KAAK,GAAI,GAClB,CACZ,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,24 +1,6 @@
1
1
  import React from "react";
2
- import { Flex } from "../../";
3
- interface MediaUploadProps extends React.ComponentProps<typeof Flex> {
4
- onFileUpload?: (file: File) => Promise<void>;
5
- compress?: boolean;
6
- aspectRatio?: string;
7
- className?: string;
8
- style?: React.CSSProperties;
9
- initialPreviewImage?: string | null;
10
- emptyState?: React.ReactNode;
11
- quality?: number;
12
- sizes?: string;
13
- children?: React.ReactNode;
14
- convertTypes?: string[];
15
- resizeMaxWidth?: number;
16
- resizeMaxHeight?: number;
17
- resizeWidth?: number;
18
- resizeHeight?: number;
19
- loading?: boolean;
20
- accept?: string;
21
- }
2
+ import type { MediaUploadProps } from "./MediaUpload.impl";
22
3
  declare const MediaUpload: React.ForwardRefExoticComponent<Omit<MediaUploadProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
23
4
  export { MediaUpload };
5
+ export type { MediaUploadProps };
24
6
  //# sourceMappingURL=MediaUpload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaUpload.d.ts","sourceRoot":"","sources":["../../../src/modules/media/MediaUpload.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,IAAI,EAA8B,MAAM,QAAQ,CAAC;AAG1D,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAClE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,WAAW,wGA8KhB,CAAC;AAGF,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"MediaUpload.d.ts","sourceRoot":"","sources":["../../../src/modules/media/MediaUpload.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAe3D,QAAA,MAAM,WAAW,wGAIf,CAAC;AAIH,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ import { Flex } from "../../";
3
+ export interface MediaUploadProps extends React.ComponentProps<typeof Flex> {
4
+ onFileUpload?: (file: File) => Promise<void>;
5
+ compress?: boolean;
6
+ aspectRatio?: string;
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ initialPreviewImage?: string | null;
10
+ emptyState?: React.ReactNode;
11
+ quality?: number;
12
+ sizes?: string;
13
+ children?: React.ReactNode;
14
+ convertTypes?: string[];
15
+ resizeMaxWidth?: number;
16
+ resizeMaxHeight?: number;
17
+ resizeWidth?: number;
18
+ resizeHeight?: number;
19
+ loading?: boolean;
20
+ accept?: string;
21
+ }
22
+ declare const MediaUpload: React.ForwardRefExoticComponent<Omit<MediaUploadProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
23
+ export default MediaUpload;
24
+ //# sourceMappingURL=MediaUpload.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUpload.impl.d.ts","sourceRoot":"","sources":["../../../src/modules/media/MediaUpload.impl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,IAAI,EAA8B,MAAM,QAAQ,CAAC;AAG1D,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IACzE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,WAAW,wGA8KhB,CAAC;AAIF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useRef, useState, forwardRef, useEffect } from "react";
4
+ import Compressor from "compressorjs";
5
+ import { Flex, Icon, Media, Spinner, Text } from "../../";
6
+ import styles from "./MediaUpload.module.scss";
7
+ const MediaUpload = forwardRef(({ onFileUpload, compress = true, aspectRatio = "16 / 9", quality = 0.8, convertTypes = ["image/png", "image/webp", "image/jpg"], emptyState = "Drag and drop or click to browse", resizeMaxWidth = 1920, resizeMaxHeight = 1920, resizeWidth = 1200, resizeHeight = 1200, loading = false, sizes, children, initialPreviewImage = null, accept = "image/*", ...rest }, ref) => {
8
+ const [dragActive, setDragActive] = useState(false);
9
+ const [previewImage, setPreviewImage] = useState(initialPreviewImage); // Use prop as initial state
10
+ const [uploading, setUploading] = useState(false);
11
+ const inputRef = useRef(null);
12
+ useEffect(() => {
13
+ if (initialPreviewImage) {
14
+ setPreviewImage(initialPreviewImage);
15
+ }
16
+ }, [initialPreviewImage]);
17
+ const handleDragOver = (e) => {
18
+ e.preventDefault();
19
+ e.stopPropagation();
20
+ setDragActive(true);
21
+ };
22
+ const handleDragLeave = (e) => {
23
+ e.preventDefault();
24
+ e.stopPropagation();
25
+ setDragActive(false);
26
+ };
27
+ const handleDrop = (e) => {
28
+ e.preventDefault();
29
+ e.stopPropagation();
30
+ setDragActive(false);
31
+ if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
32
+ handleFiles(e.dataTransfer.files);
33
+ }
34
+ };
35
+ const handleFileSelection = () => {
36
+ if (inputRef.current) {
37
+ inputRef.current.click();
38
+ }
39
+ };
40
+ const handleFiles = (files) => {
41
+ const file = files[0];
42
+ if (!file)
43
+ return;
44
+ if (file.type.startsWith("image/")) {
45
+ setPreviewImage(URL.createObjectURL(file));
46
+ if (compress && file.type.startsWith("image/")) {
47
+ compressImage(file);
48
+ }
49
+ else {
50
+ uploadFile(file);
51
+ }
52
+ }
53
+ else {
54
+ console.warn("Unsupported file type:", file.type);
55
+ }
56
+ };
57
+ const compressImage = (file) => {
58
+ new Compressor(file, {
59
+ convertTypes: convertTypes,
60
+ quality: quality,
61
+ maxWidth: resizeMaxWidth,
62
+ maxHeight: resizeMaxHeight,
63
+ convertSize: 400 * 1024,
64
+ width: resizeWidth,
65
+ height: resizeHeight,
66
+ success(compressedFile) {
67
+ uploadFile(compressedFile);
68
+ },
69
+ error(err) {
70
+ console.error("Compression error:", err);
71
+ uploadFile(file);
72
+ },
73
+ });
74
+ };
75
+ const uploadFile = async (file) => {
76
+ setUploading(true);
77
+ if (onFileUpload) {
78
+ await onFileUpload(file);
79
+ }
80
+ setUploading(false);
81
+ };
82
+ return (_jsxs(Flex, { style: { isolation: "isolate", cursor: "pointer" }, transition: "micro-medium", overflow: "hidden", className: styles.container, aspectRatio: aspectRatio, fillWidth: true, center: true, border: "neutral-medium", radius: "l", onClick: handleFileSelection, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, ...rest, children: [!loading && (_jsx(_Fragment, { children: previewImage ? (_jsx(Media, { height: undefined, style: {
83
+ filter: uploading ? "grayscale(1)" : "",
84
+ }, sizes: sizes, src: previewImage ? previewImage : "", alt: "Preview of uploaded image" })) : (_jsx(Flex, { fill: true, center: true, children: _jsx(Icon, { name: "plus", size: "l" }) })) })), children, _jsx(Flex, { className: styles.upload, zIndex: 1, transition: "micro-medium", position: "absolute", fill: true, padding: "m", horizontal: "center", vertical: "center", children: uploading || loading ? (_jsx(Spinner, { size: "l" })) : (_jsx(Text, { className: styles.text, align: "center", children: emptyState })) }), _jsx("input", { type: "file", ref: inputRef, accept: accept, style: { display: "none" }, onChange: (e) => {
85
+ if (e.target.files) {
86
+ handleFiles(e.target.files);
87
+ }
88
+ } })] }));
89
+ });
90
+ MediaUpload.displayName = "MediaUpload";
91
+ export default MediaUpload;
92
+ //# sourceMappingURL=MediaUpload.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUpload.impl.js","sourceRoot":"","sources":["../../../src/modules/media/MediaUpload.impl.tsx"],"names":[],"mappings":"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"}
@@ -1,92 +1,14 @@
1
1
  "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useRef, useState, forwardRef, useEffect } from "react";
4
- import Compressor from "compressorjs";
5
- import { Flex, Icon, Media, Spinner, Text } from "../../";
6
- import styles from "./MediaUpload.module.scss";
7
- const MediaUpload = forwardRef(({ onFileUpload, compress = true, aspectRatio = "16 / 9", quality = 0.8, convertTypes = ["image/png", "image/webp", "image/jpg"], emptyState = "Drag and drop or click to browse", resizeMaxWidth = 1920, resizeMaxHeight = 1920, resizeWidth = 1200, resizeHeight = 1200, loading = false, sizes, children, initialPreviewImage = null, accept = "image/*", ...rest }, ref) => {
8
- const [dragActive, setDragActive] = useState(false);
9
- const [previewImage, setPreviewImage] = useState(initialPreviewImage); // Use prop as initial state
10
- const [uploading, setUploading] = useState(false);
11
- const inputRef = useRef(null);
12
- useEffect(() => {
13
- if (initialPreviewImage) {
14
- setPreviewImage(initialPreviewImage);
15
- }
16
- }, [initialPreviewImage]);
17
- const handleDragOver = (e) => {
18
- e.preventDefault();
19
- e.stopPropagation();
20
- setDragActive(true);
21
- };
22
- const handleDragLeave = (e) => {
23
- e.preventDefault();
24
- e.stopPropagation();
25
- setDragActive(false);
26
- };
27
- const handleDrop = (e) => {
28
- e.preventDefault();
29
- e.stopPropagation();
30
- setDragActive(false);
31
- if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
32
- handleFiles(e.dataTransfer.files);
33
- }
34
- };
35
- const handleFileSelection = () => {
36
- if (inputRef.current) {
37
- inputRef.current.click();
38
- }
39
- };
40
- const handleFiles = (files) => {
41
- const file = files[0];
42
- if (!file)
43
- return;
44
- if (file.type.startsWith("image/")) {
45
- setPreviewImage(URL.createObjectURL(file));
46
- if (compress && file.type.startsWith("image/")) {
47
- compressImage(file);
48
- }
49
- else {
50
- uploadFile(file);
51
- }
52
- }
53
- else {
54
- console.warn("Unsupported file type:", file.type);
55
- }
56
- };
57
- const compressImage = (file) => {
58
- new Compressor(file, {
59
- convertTypes: convertTypes,
60
- quality: quality,
61
- maxWidth: resizeMaxWidth,
62
- maxHeight: resizeMaxHeight,
63
- convertSize: 400 * 1024,
64
- width: resizeWidth,
65
- height: resizeHeight,
66
- success(compressedFile) {
67
- uploadFile(compressedFile);
68
- },
69
- error(err) {
70
- console.error("Compression error:", err);
71
- uploadFile(file);
72
- },
73
- });
74
- };
75
- const uploadFile = async (file) => {
76
- setUploading(true);
77
- if (onFileUpload) {
78
- await onFileUpload(file);
79
- }
80
- setUploading(false);
81
- };
82
- return (_jsxs(Flex, { style: { isolation: "isolate", cursor: "pointer" }, transition: "micro-medium", overflow: "hidden", className: styles.container, aspectRatio: aspectRatio, fillWidth: true, center: true, border: "neutral-medium", radius: "l", onClick: handleFileSelection, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, ...rest, children: [!loading && (_jsx(_Fragment, { children: previewImage ? (_jsx(Media, { height: undefined, style: {
83
- filter: uploading ? "grayscale(1)" : "",
84
- }, sizes: sizes, src: previewImage ? previewImage : "", alt: "Preview of uploaded image" })) : (_jsx(Flex, { fill: true, center: true, children: _jsx(Icon, { name: "plus", size: "l" }) })) })), children, _jsx(Flex, { className: styles.upload, zIndex: 1, transition: "micro-medium", position: "absolute", fill: true, padding: "m", horizontal: "center", vertical: "center", children: uploading || loading ? (_jsx(Spinner, { size: "l" })) : (_jsx(Text, { className: styles.text, align: "center", children: emptyState })) }), _jsx("input", { type: "file", ref: inputRef, accept: accept, style: { display: "none" }, onChange: (e) => {
85
- if (e.target.files) {
86
- handleFiles(e.target.files);
87
- }
88
- } })] }));
89
- });
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React, { forwardRef, Suspense } from "react";
4
+ import { MissingDependency } from "../../utils/MissingDependency";
5
+ const MediaUploadImpl = React.lazy(() => import("./MediaUpload.impl").catch(() => {
6
+ console.warn('[@once-ui-system/core] <MediaUpload /> requires the "compressorjs" package. Install it with: npm install compressorjs');
7
+ return {
8
+ default: forwardRef(() => (_jsx(MissingDependency, { component: "MediaUpload", packageName: "compressorjs" }))),
9
+ };
10
+ }));
11
+ const MediaUpload = forwardRef((props, ref) => (_jsx(Suspense, { fallback: null, children: _jsx(MediaUploadImpl, { ...props, ref: ref }) })));
90
12
  MediaUpload.displayName = "MediaUpload";
91
13
  export { MediaUpload };
92
14
  //# sourceMappingURL=MediaUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaUpload.js","sourceRoot":"","sources":["../../../src/modules/media/MediaUpload.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaUpload.js","sourceRoot":"","sources":["../../../src/modules/media/MediaUpload.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;IACtC,OAAO,CAAC,IAAI,CACV,uHAAuH,CACxH,CAAC;IACF,OAAO;QACL,OAAO,EAAE,UAAU,CAAqC,GAAG,EAAE,CAAC,CAC5D,KAAC,iBAAiB,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAC,cAAc,GAAG,CACzE,CAAC;KACH,CAAC;AACJ,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,GAAG,UAAU,CAAqC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACjF,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACtB,KAAC,eAAe,OAAK,KAAK,EAAE,GAAG,EAAE,GAAG,GAAI,GAC/B,CACZ,CAAC,CAAC;AAEH,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Kbar.d.ts","sourceRoot":"","sources":["../../../src/modules/navigation/Kbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAqD,SAAS,EAAE,MAAM,OAAO,CAAC;AAM5F,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+CD,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAMlD,CAAC;AAEF,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0RlD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA6DpC,CAAC"}
1
+ {"version":3,"file":"Kbar.d.ts","sourceRoot":"","sources":["../../../src/modules/navigation/Kbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAqD,SAAS,EAAE,MAAM,OAAO,CAAC;AAkB5F,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+CD,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAMlD,CAAC;AAEF,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0RlD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA6DpC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import React, { useState, useEffect, useRef, useCallback, useMemo } from "react";
4
- import { Flex, Text, Icon, Column, Input, Option, Row, Kbd, ArrowNavigation, useArrowNavigationContext, ScrollLock } from "../../";
4
+ import { Flex, Text, Icon, Column, Input, Option, Row, Kbd, ArrowNavigation, useArrowNavigationContext, ScrollLock, } from "../../components";
5
5
  import { createPortal } from "react-dom";
6
6
  import { useRouter, usePathname } from "next/navigation";
7
7
  import styles from "./Kbar.module.scss";