@mantine/core 5.5.6 → 5.6.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 (212) hide show
  1. package/cjs/Autocomplete/Autocomplete.js +7 -3
  2. package/cjs/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/Badge/Badge.styles.js +1 -1
  4. package/cjs/Badge/Badge.styles.js.map +1 -1
  5. package/cjs/CloseButton/CloseButton.js +5 -2
  6. package/cjs/CloseButton/CloseButton.js.map +1 -1
  7. package/cjs/ColorInput/ColorInput.js +6 -4
  8. package/cjs/ColorInput/ColorInput.js.map +1 -1
  9. package/cjs/FileButton/FileButton.js +2 -2
  10. package/cjs/FileButton/FileButton.js.map +1 -1
  11. package/cjs/FileInput/FileInput.js +7 -4
  12. package/cjs/FileInput/FileInput.js.map +1 -1
  13. package/cjs/Image/Image.js +1 -1
  14. package/cjs/Image/Image.js.map +1 -1
  15. package/cjs/JsonInput/JsonInput.js +7 -4
  16. package/cjs/JsonInput/JsonInput.js.map +1 -1
  17. package/cjs/MediaQuery/MediaQuery.js.map +1 -1
  18. package/cjs/MediaQuery/MediaQuery.styles.js +5 -4
  19. package/cjs/MediaQuery/MediaQuery.styles.js.map +1 -1
  20. package/cjs/NativeSelect/NativeSelect.js +2 -1
  21. package/cjs/NativeSelect/NativeSelect.js.map +1 -1
  22. package/cjs/Popover/Popover.js +12 -9
  23. package/cjs/Popover/Popover.js.map +1 -1
  24. package/cjs/Popover/PopoverDropdown/PopoverDropdown.js +2 -2
  25. package/cjs/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  26. package/cjs/Progress/Progress.js +33 -18
  27. package/cjs/Progress/Progress.js.map +1 -1
  28. package/cjs/Rating/Rating.js +198 -0
  29. package/cjs/Rating/Rating.js.map +1 -0
  30. package/cjs/Rating/Rating.styles.js +23 -0
  31. package/cjs/Rating/Rating.styles.js.map +1 -0
  32. package/cjs/Rating/RatingItem/RatingItem.js +106 -0
  33. package/cjs/Rating/RatingItem/RatingItem.js.map +1 -0
  34. package/cjs/Rating/RatingItem/RatingItem.styles.js +52 -0
  35. package/cjs/Rating/RatingItem/RatingItem.styles.js.map +1 -0
  36. package/cjs/Rating/StarSymbol/StarIcon.js +41 -0
  37. package/cjs/Rating/StarSymbol/StarIcon.js.map +1 -0
  38. package/cjs/Rating/StarSymbol/StarSymbol.js +22 -0
  39. package/cjs/Rating/StarSymbol/StarSymbol.js.map +1 -0
  40. package/cjs/Rating/StarSymbol/StarSymbol.styles.js +28 -0
  41. package/cjs/Rating/StarSymbol/StarSymbol.styles.js.map +1 -0
  42. package/cjs/RingProgress/Curve/Curve.js +39 -13
  43. package/cjs/RingProgress/Curve/Curve.js.map +1 -1
  44. package/cjs/RingProgress/RingProgress.js +15 -15
  45. package/cjs/RingProgress/RingProgress.js.map +1 -1
  46. package/cjs/RingProgress/get-curves/get-curves.js.map +1 -1
  47. package/cjs/Select/SelectPopover/SelectPopover.js +3 -1
  48. package/cjs/Select/SelectPopover/SelectPopover.js.map +1 -1
  49. package/cjs/Slider/utils/get-change-value/get-change-value.js +5 -5
  50. package/cjs/Slider/utils/get-change-value/get-change-value.js.map +1 -1
  51. package/cjs/Tabs/Tab/Tab.js +2 -1
  52. package/cjs/Tabs/Tab/Tab.js.map +1 -1
  53. package/cjs/Tabs/Tab/Tab.styles.js +7 -7
  54. package/cjs/Tabs/Tab/Tab.styles.js.map +1 -1
  55. package/cjs/Tabs/Tabs.context.js.map +1 -1
  56. package/cjs/Tabs/Tabs.js +9 -5
  57. package/cjs/Tabs/Tabs.js.map +1 -1
  58. package/cjs/Tabs/Tabs.styles.js +3 -2
  59. package/cjs/Tabs/Tabs.styles.js.map +1 -1
  60. package/cjs/Tabs/TabsList/TabsList.js +2 -2
  61. package/cjs/Tabs/TabsList/TabsList.js.map +1 -1
  62. package/cjs/Tabs/TabsList/TabsList.styles.js +3 -3
  63. package/cjs/Tabs/TabsList/TabsList.styles.js.map +1 -1
  64. package/cjs/Tabs/TabsPanel/TabsPanel.js +2 -1
  65. package/cjs/Tabs/TabsPanel/TabsPanel.js.map +1 -1
  66. package/cjs/Tabs/TabsProvider.js +2 -0
  67. package/cjs/Tabs/TabsProvider.js.map +1 -1
  68. package/cjs/Tooltip/Tooltip.js +3 -0
  69. package/cjs/Tooltip/Tooltip.js.map +1 -1
  70. package/cjs/TransferList/RenderList/RenderList.js +16 -6
  71. package/cjs/TransferList/RenderList/RenderList.js.map +1 -1
  72. package/cjs/TransferList/TransferList.js +32 -4
  73. package/cjs/TransferList/TransferList.js.map +1 -1
  74. package/cjs/index.js +4 -0
  75. package/cjs/index.js.map +1 -1
  76. package/esm/Autocomplete/Autocomplete.js +7 -3
  77. package/esm/Autocomplete/Autocomplete.js.map +1 -1
  78. package/esm/Badge/Badge.styles.js +1 -1
  79. package/esm/Badge/Badge.styles.js.map +1 -1
  80. package/esm/CloseButton/CloseButton.js +5 -3
  81. package/esm/CloseButton/CloseButton.js.map +1 -1
  82. package/esm/ColorInput/ColorInput.js +6 -4
  83. package/esm/ColorInput/ColorInput.js.map +1 -1
  84. package/esm/FileButton/FileButton.js +2 -2
  85. package/esm/FileButton/FileButton.js.map +1 -1
  86. package/esm/FileInput/FileInput.js +7 -4
  87. package/esm/FileInput/FileInput.js.map +1 -1
  88. package/esm/Image/Image.js +1 -1
  89. package/esm/Image/Image.js.map +1 -1
  90. package/esm/JsonInput/JsonInput.js +7 -4
  91. package/esm/JsonInput/JsonInput.js.map +1 -1
  92. package/esm/MediaQuery/MediaQuery.js.map +1 -1
  93. package/esm/MediaQuery/MediaQuery.styles.js +5 -4
  94. package/esm/MediaQuery/MediaQuery.styles.js.map +1 -1
  95. package/esm/NativeSelect/NativeSelect.js +2 -1
  96. package/esm/NativeSelect/NativeSelect.js.map +1 -1
  97. package/esm/Popover/Popover.js +13 -10
  98. package/esm/Popover/Popover.js.map +1 -1
  99. package/esm/Popover/PopoverDropdown/PopoverDropdown.js +2 -2
  100. package/esm/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
  101. package/esm/Progress/Progress.js +33 -18
  102. package/esm/Progress/Progress.js.map +1 -1
  103. package/esm/Rating/Rating.js +190 -0
  104. package/esm/Rating/Rating.js.map +1 -0
  105. package/esm/Rating/Rating.styles.js +19 -0
  106. package/esm/Rating/Rating.styles.js.map +1 -0
  107. package/esm/Rating/RatingItem/RatingItem.js +98 -0
  108. package/esm/Rating/RatingItem/RatingItem.js.map +1 -0
  109. package/esm/Rating/RatingItem/RatingItem.styles.js +48 -0
  110. package/esm/Rating/RatingItem/RatingItem.styles.js.map +1 -0
  111. package/esm/Rating/StarSymbol/StarIcon.js +33 -0
  112. package/esm/Rating/StarSymbol/StarIcon.js.map +1 -0
  113. package/esm/Rating/StarSymbol/StarSymbol.js +14 -0
  114. package/esm/Rating/StarSymbol/StarSymbol.js.map +1 -0
  115. package/esm/Rating/StarSymbol/StarSymbol.styles.js +24 -0
  116. package/esm/Rating/StarSymbol/StarSymbol.styles.js.map +1 -0
  117. package/esm/RingProgress/Curve/Curve.js +39 -13
  118. package/esm/RingProgress/Curve/Curve.js.map +1 -1
  119. package/esm/RingProgress/RingProgress.js +15 -15
  120. package/esm/RingProgress/RingProgress.js.map +1 -1
  121. package/esm/RingProgress/get-curves/get-curves.js.map +1 -1
  122. package/esm/Select/SelectPopover/SelectPopover.js +3 -1
  123. package/esm/Select/SelectPopover/SelectPopover.js.map +1 -1
  124. package/esm/Slider/utils/get-change-value/get-change-value.js +5 -5
  125. package/esm/Slider/utils/get-change-value/get-change-value.js.map +1 -1
  126. package/esm/Tabs/Tab/Tab.js +2 -1
  127. package/esm/Tabs/Tab/Tab.js.map +1 -1
  128. package/esm/Tabs/Tab/Tab.styles.js +7 -7
  129. package/esm/Tabs/Tab/Tab.styles.js.map +1 -1
  130. package/esm/Tabs/Tabs.context.js.map +1 -1
  131. package/esm/Tabs/Tabs.js +9 -5
  132. package/esm/Tabs/Tabs.js.map +1 -1
  133. package/esm/Tabs/Tabs.styles.js +3 -2
  134. package/esm/Tabs/Tabs.styles.js.map +1 -1
  135. package/esm/Tabs/TabsList/TabsList.js +2 -2
  136. package/esm/Tabs/TabsList/TabsList.js.map +1 -1
  137. package/esm/Tabs/TabsList/TabsList.styles.js +3 -3
  138. package/esm/Tabs/TabsList/TabsList.styles.js.map +1 -1
  139. package/esm/Tabs/TabsPanel/TabsPanel.js +2 -1
  140. package/esm/Tabs/TabsPanel/TabsPanel.js.map +1 -1
  141. package/esm/Tabs/TabsProvider.js +2 -0
  142. package/esm/Tabs/TabsProvider.js.map +1 -1
  143. package/esm/Tooltip/Tooltip.js +3 -0
  144. package/esm/Tooltip/Tooltip.js.map +1 -1
  145. package/esm/TransferList/RenderList/RenderList.js +16 -6
  146. package/esm/TransferList/RenderList/RenderList.js.map +1 -1
  147. package/esm/TransferList/TransferList.js +32 -4
  148. package/esm/TransferList/TransferList.js.map +1 -1
  149. package/esm/index.js +2 -0
  150. package/esm/index.js.map +1 -1
  151. package/lib/Autocomplete/Autocomplete.d.ts.map +1 -1
  152. package/lib/CloseButton/CloseButton.d.ts +8 -1
  153. package/lib/CloseButton/CloseButton.d.ts.map +1 -1
  154. package/lib/ColorInput/ColorInput.d.ts.map +1 -1
  155. package/lib/FileButton/FileButton.d.ts +2 -0
  156. package/lib/FileButton/FileButton.d.ts.map +1 -1
  157. package/lib/FileInput/FileInput.d.ts +2 -0
  158. package/lib/FileInput/FileInput.d.ts.map +1 -1
  159. package/lib/Image/Image.d.ts.map +1 -1
  160. package/lib/JsonInput/JsonInput.d.ts.map +1 -1
  161. package/lib/MediaQuery/MediaQuery.d.ts +2 -2
  162. package/lib/MediaQuery/MediaQuery.d.ts.map +1 -1
  163. package/lib/MediaQuery/MediaQuery.styles.d.ts +3 -3
  164. package/lib/MediaQuery/MediaQuery.styles.d.ts.map +1 -1
  165. package/lib/NativeSelect/NativeSelect.d.ts.map +1 -1
  166. package/lib/Popover/Popover.d.ts.map +1 -1
  167. package/lib/Progress/Progress.d.ts +1 -1
  168. package/lib/Progress/Progress.d.ts.map +1 -1
  169. package/lib/Rating/Rating.d.ts +37 -0
  170. package/lib/Rating/Rating.d.ts.map +1 -0
  171. package/lib/Rating/Rating.styles.d.ts +7 -0
  172. package/lib/Rating/Rating.styles.d.ts.map +1 -0
  173. package/lib/Rating/RatingItem/RatingItem.d.ts +21 -0
  174. package/lib/Rating/RatingItem/RatingItem.d.ts.map +1 -0
  175. package/lib/Rating/RatingItem/RatingItem.styles.d.ts +7 -0
  176. package/lib/Rating/RatingItem/RatingItem.styles.d.ts.map +1 -0
  177. package/lib/Rating/StarSymbol/StarIcon.d.ts +6 -0
  178. package/lib/Rating/StarSymbol/StarIcon.d.ts.map +1 -0
  179. package/lib/Rating/StarSymbol/StarSymbol.d.ts +12 -0
  180. package/lib/Rating/StarSymbol/StarSymbol.d.ts.map +1 -0
  181. package/lib/Rating/StarSymbol/StarSymbol.styles.d.ts +13 -0
  182. package/lib/Rating/StarSymbol/StarSymbol.styles.d.ts.map +1 -0
  183. package/lib/Rating/index.d.ts +4 -0
  184. package/lib/Rating/index.d.ts.map +1 -0
  185. package/lib/RingProgress/Curve/Curve.d.ts +2 -2
  186. package/lib/RingProgress/Curve/Curve.d.ts.map +1 -1
  187. package/lib/RingProgress/RingProgress.d.ts +7 -5
  188. package/lib/RingProgress/RingProgress.d.ts.map +1 -1
  189. package/lib/RingProgress/get-curves/get-curves.d.ts +1 -1
  190. package/lib/RingProgress/get-curves/get-curves.d.ts.map +1 -1
  191. package/lib/Select/SelectPopover/SelectPopover.d.ts +2 -1
  192. package/lib/Select/SelectPopover/SelectPopover.d.ts.map +1 -1
  193. package/lib/Tabs/Tab/Tab.d.ts.map +1 -1
  194. package/lib/Tabs/Tab/Tab.styles.d.ts.map +1 -1
  195. package/lib/Tabs/Tabs.context.d.ts +3 -2
  196. package/lib/Tabs/Tabs.context.d.ts.map +1 -1
  197. package/lib/Tabs/Tabs.d.ts.map +1 -1
  198. package/lib/Tabs/Tabs.styles.d.ts.map +1 -1
  199. package/lib/Tabs/Tabs.types.d.ts +2 -0
  200. package/lib/Tabs/Tabs.types.d.ts.map +1 -1
  201. package/lib/Tabs/TabsList/TabsList.styles.d.ts.map +1 -1
  202. package/lib/Tabs/TabsPanel/TabsPanel.d.ts.map +1 -1
  203. package/lib/Tabs/TabsProvider.d.ts +4 -2
  204. package/lib/Tabs/TabsProvider.d.ts.map +1 -1
  205. package/lib/Tooltip/Tooltip.d.ts.map +1 -1
  206. package/lib/TransferList/RenderList/RenderList.d.ts +10 -1
  207. package/lib/TransferList/RenderList/RenderList.d.ts.map +1 -1
  208. package/lib/TransferList/TransferList.d.ts +17 -3
  209. package/lib/TransferList/TransferList.d.ts.map +1 -1
  210. package/lib/index.d.ts +1 -0
  211. package/lib/index.d.ts.map +1 -1
  212. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","sources":["../../src/Progress/Progress.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineColor,\n Selectors,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { Text } from '../Text';\nimport { Tooltip } from '../Tooltip';\nimport useStyles, { ProgressStylesParams } from './Progress.styles';\n\nexport type ProgressStylesNames = Selectors<typeof useStyles>;\n\ninterface ProgressSection {\n value: number;\n color: MantineColor;\n label?: string;\n tooltip?: React.ReactNode;\n}\n\nexport interface ProgressProps\n extends DefaultProps<ProgressStylesNames, ProgressStylesParams>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Percent of filled bar (0-100) */\n value?: number;\n\n /** Progress color from theme */\n color?: MantineColor;\n\n /** Predefined progress height or number for height in px */\n size?: MantineNumberSize;\n\n /** Predefined progress radius from theme.radius or number for height in px */\n radius?: MantineNumberSize;\n\n /** Adds stripes */\n striped?: boolean;\n\n /** Whether to animate striped progress bars */\n animate?: boolean;\n\n /** Text to be placed inside the progress bar */\n label?: string;\n\n /** Replaces value if present, renders multiple sections instead of single one */\n sections?: ProgressSection[];\n}\n\nfunction getCumulativeSections(\n sections: ProgressSection[]\n): (ProgressSection & { accumulated: number })[] {\n return sections.reduce(\n (acc, section) => {\n acc.sections.push({ ...section, accumulated: acc.accumulated });\n acc.accumulated += section.value;\n return acc;\n },\n { accumulated: 0, sections: [] }\n ).sections;\n}\n\nconst defaultProps: Partial<ProgressProps> = {\n size: 'md',\n radius: 'sm',\n striped: false,\n animate: false,\n label: '',\n};\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>((props, ref) => {\n const {\n className,\n value,\n color,\n size,\n radius,\n striped,\n animate,\n label,\n 'aria-label': ariaLabel,\n classNames,\n styles,\n sections,\n unstyled,\n ...others\n } = useComponentDefaultProps('Progress', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(\n { color, size, radius, striped: striped || animate, animate },\n { classNames, styles, unstyled, name: 'Progress' }\n );\n\n const segments = Array.isArray(sections)\n ? getCumulativeSections(sections).map((section, index) => (\n <Tooltip.Floating label={section.tooltip} disabled={!section.tooltip} key={index}>\n <Box\n className={classes.bar}\n sx={{\n width: `${section.value}%`,\n left: `${section.accumulated}%`,\n backgroundColor: theme.fn.variant({\n variant: 'filled',\n primaryFallback: false,\n color: section.color || theme.primaryColor,\n }).background,\n }}\n >\n {section.label && <Text className={classes.label}>{section.label}</Text>}\n </Box>\n </Tooltip.Floating>\n ))\n : null;\n\n return (\n <Box className={cx(classes.root, className)} ref={ref} {...others}>\n {segments || (\n <div\n role=\"progressbar\"\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={value}\n aria-label={ariaLabel}\n className={classes.bar}\n style={{ width: `${value}%` }}\n >\n {label ? <Text className={classes.label}>{label}</Text> : ''}\n </div>\n )}\n </Box>\n );\n});\n\nProgress.displayName = '@mantine/core/Progress';\n"],"names":[],"mappings":";;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AASF,SAAS,qBAAqB,CAAC,QAAQ,EAAE;AACzC,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACpG,IAAI,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;AACrC,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AACD,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE,KAAK,EAAE,EAAE;AACX,CAAC,CAAC;AACU,MAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACnD,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;AACxE,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,YAAY,EAAE,SAAS;AAC3B,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,UAAU;AACd,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAC9J,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC3J,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO;AAC9B,IAAI,GAAG,EAAE,KAAK;AACd,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AAC9C,IAAI,SAAS,EAAE,OAAO,CAAC,GAAG;AAC1B,IAAI,EAAE,EAAE;AACR,MAAM,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACrC,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;AACxC,QAAQ,OAAO,EAAE,QAAQ;AACzB,QAAQ,eAAe,EAAE,KAAK;AAC9B,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY;AAClD,OAAO,CAAC,CAAC,UAAU;AACnB,KAAK;AACL,GAAG,EAAE,OAAO,CAAC,KAAK,oBAAoB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AAChE,IAAI,SAAS,EAAE,OAAO,CAAC,KAAK;AAC5B,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9B,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC;AACjE,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;AAC1C,IAAI,GAAG;AACP,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACrE,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,eAAe,EAAE,GAAG;AACxB,IAAI,eAAe,EAAE,CAAC;AACtB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,YAAY,EAAE,SAAS;AAC3B,IAAI,SAAS,EAAE,OAAO,CAAC,GAAG;AAC1B,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACjC,GAAG,EAAE,KAAK,mBAAmB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE;AACvD,IAAI,SAAS,EAAE,OAAO,CAAC,KAAK;AAC5B,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC,EAAE;AACH,QAAQ,CAAC,WAAW,GAAG,wBAAwB;;;;"}
1
+ {"version":3,"file":"Progress.js","sources":["../../src/Progress/Progress.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineColor,\n Selectors,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { Text } from '../Text';\nimport { Tooltip } from '../Tooltip';\nimport useStyles, { ProgressStylesParams } from './Progress.styles';\n\nexport type ProgressStylesNames = Selectors<typeof useStyles>;\n\ninterface ProgressSection extends React.ComponentPropsWithRef<'div'> {\n value: number;\n color: MantineColor;\n label?: string;\n tooltip?: React.ReactNode;\n}\n\nexport interface ProgressProps\n extends DefaultProps<ProgressStylesNames, ProgressStylesParams>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Percent of filled bar (0-100) */\n value?: number;\n\n /** Progress color from theme */\n color?: MantineColor;\n\n /** Predefined progress height or number for height in px */\n size?: MantineNumberSize;\n\n /** Predefined progress radius from theme.radius or number for height in px */\n radius?: MantineNumberSize;\n\n /** Adds stripes */\n striped?: boolean;\n\n /** Whether to animate striped progress bars */\n animate?: boolean;\n\n /** Text to be placed inside the progress bar */\n label?: string;\n\n /** Replaces value if present, renders multiple sections instead of single one */\n sections?: ProgressSection[];\n}\n\nfunction getCumulativeSections(\n sections: ProgressSection[]\n): (ProgressSection & { accumulated: number })[] {\n return sections.reduce(\n (acc, section) => {\n acc.sections.push({ ...section, accumulated: acc.accumulated });\n acc.accumulated += section.value;\n return acc;\n },\n { accumulated: 0, sections: [] }\n ).sections;\n}\n\nconst defaultProps: Partial<ProgressProps> = {\n size: 'md',\n radius: 'sm',\n striped: false,\n animate: false,\n label: '',\n};\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>((props, ref) => {\n const {\n className,\n value,\n color,\n size,\n radius,\n striped,\n animate,\n label,\n 'aria-label': ariaLabel,\n classNames,\n styles,\n sections,\n unstyled,\n ...others\n } = useComponentDefaultProps('Progress', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(\n { color, size, radius, striped: striped || animate, animate },\n { classNames, styles, unstyled, name: 'Progress' }\n );\n\n const segments = Array.isArray(sections)\n ? getCumulativeSections(sections).map(\n (\n {\n tooltip,\n accumulated,\n value: sectionValue,\n label: sectionLabel,\n color: sectionColor,\n ...sectionProps\n },\n index\n ) => (\n <Tooltip.Floating label={tooltip} disabled={!tooltip} key={index}>\n <Box\n {...sectionProps}\n className={cx(classes.bar, sectionProps.className)}\n sx={{\n width: `${sectionValue}%`,\n left: `${accumulated}%`,\n backgroundColor: theme.fn.variant({\n variant: 'filled',\n primaryFallback: false,\n color: sectionColor || theme.primaryColor,\n }).background,\n }}\n >\n {sectionLabel && <Text className={classes.label}>{sectionLabel}</Text>}\n </Box>\n </Tooltip.Floating>\n )\n )\n : null;\n\n return (\n <Box className={cx(classes.root, className)} ref={ref} {...others}>\n {segments || (\n <div\n role=\"progressbar\"\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={value}\n aria-label={ariaLabel}\n className={classes.bar}\n style={{ width: `${value}%` }}\n >\n {label ? <Text className={classes.label}>{label}</Text> : ''}\n </div>\n )}\n </Box>\n );\n});\n\nProgress.displayName = '@mantine/core/Progress';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ import React, { forwardRef, useRef, useState } from 'react';
2
+ import { useComponentDefaultProps } from '@mantine/styles';
3
+ import { useId, useUncontrolled, useMergedRef, clamp } from '@mantine/hooks';
4
+ import { RatingItem } from './RatingItem/RatingItem.js';
5
+ import useStyles from './Rating.styles.js';
6
+ import { Box } from '../Box/Box.js';
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ function roundValueTo(value, to) {
37
+ var _a;
38
+ const rounded = Math.round(value / to) * to;
39
+ const precision = ((_a = `${to}`.split(".")[1]) == null ? void 0 : _a.length) || 0;
40
+ return Number(rounded.toFixed(precision));
41
+ }
42
+ const defaultProps = {
43
+ size: "sm",
44
+ getSymbolLabel: (value) => `${value}`,
45
+ count: 5,
46
+ fractions: 1,
47
+ color: "yellow"
48
+ };
49
+ const Rating = forwardRef((props, ref) => {
50
+ const _a = useComponentDefaultProps("Rating", defaultProps, props), {
51
+ defaultValue,
52
+ value,
53
+ emptySymbol,
54
+ fullSymbol,
55
+ size,
56
+ count,
57
+ fractions,
58
+ onChange,
59
+ onHover,
60
+ getSymbolLabel,
61
+ name,
62
+ readOnly,
63
+ className,
64
+ classNames,
65
+ styles,
66
+ unstyled,
67
+ onMouseEnter,
68
+ onMouseMove,
69
+ onMouseLeave,
70
+ highlightSelectedOnly,
71
+ color,
72
+ id
73
+ } = _a, others = __objRest(_a, [
74
+ "defaultValue",
75
+ "value",
76
+ "emptySymbol",
77
+ "fullSymbol",
78
+ "size",
79
+ "count",
80
+ "fractions",
81
+ "onChange",
82
+ "onHover",
83
+ "getSymbolLabel",
84
+ "name",
85
+ "readOnly",
86
+ "className",
87
+ "classNames",
88
+ "styles",
89
+ "unstyled",
90
+ "onMouseEnter",
91
+ "onMouseMove",
92
+ "onMouseLeave",
93
+ "highlightSelectedOnly",
94
+ "color",
95
+ "id"
96
+ ]);
97
+ const { classes, cx, theme } = useStyles(null, { name: "Rating", classNames, styles, unstyled });
98
+ const _name = useId(name);
99
+ const _id = useId(id);
100
+ const rootRef = useRef(null);
101
+ const [_value, setValue] = useUncontrolled({
102
+ value,
103
+ defaultValue,
104
+ finalValue: 0,
105
+ onChange
106
+ });
107
+ const [hovered, setHovered] = useState(-1);
108
+ const [isOutside, setOutside] = useState(true);
109
+ const _fractions = Math.floor(fractions);
110
+ const _count = Math.floor(count);
111
+ const decimalUnit = 1 / _fractions;
112
+ const stableValueRounded = roundValueTo(_value, decimalUnit);
113
+ const finalValue = hovered !== -1 ? hovered : stableValueRounded;
114
+ const handleMouseEnter = (event) => {
115
+ onMouseEnter == null ? void 0 : onMouseEnter(event);
116
+ !readOnly && setOutside(false);
117
+ };
118
+ const handleMouseMove = (event) => {
119
+ onMouseMove == null ? void 0 : onMouseMove(event);
120
+ if (readOnly) {
121
+ return;
122
+ }
123
+ const { left, right, width } = rootRef.current.getBoundingClientRect();
124
+ const symbolWidth = width / _count;
125
+ const hoverPosition = theme.dir === "rtl" ? right - event.clientX : event.clientX - left;
126
+ const hoverValue = hoverPosition / symbolWidth;
127
+ const rounded = clamp(roundValueTo(hoverValue + decimalUnit / 2, decimalUnit), decimalUnit, _count);
128
+ setHovered(rounded);
129
+ rounded !== hovered && (onHover == null ? void 0 : onHover(rounded));
130
+ };
131
+ const handleMouseLeave = (event) => {
132
+ onMouseLeave == null ? void 0 : onMouseLeave(event);
133
+ if (readOnly) {
134
+ return;
135
+ }
136
+ setHovered(-1);
137
+ setOutside(true);
138
+ hovered !== -1 && (onHover == null ? void 0 : onHover(-1));
139
+ };
140
+ const handleItemBlur = () => isOutside && setHovered(-1);
141
+ const handleChange = (event) => {
142
+ const resultedValue = parseFloat(event.target.value);
143
+ setValue(resultedValue);
144
+ };
145
+ const items = Array(_count).fill(0).map((_, index) => {
146
+ const integerValue = index + 1;
147
+ const fractionItems = Array.from(new Array(index === 0 ? _fractions + 1 : _fractions));
148
+ const isGroupActive = !readOnly && Math.ceil(hovered) === integerValue;
149
+ return /* @__PURE__ */ React.createElement("div", {
150
+ key: integerValue,
151
+ "data-active": isGroupActive,
152
+ className: classes.symbolGroup
153
+ }, fractionItems.map((__, fractionIndex) => {
154
+ const fractionValue = decimalUnit * (index === 0 ? fractionIndex : fractionIndex + 1);
155
+ const symbolValue = roundValueTo(integerValue - 1 + fractionValue, decimalUnit);
156
+ return /* @__PURE__ */ React.createElement(RatingItem, {
157
+ key: `${integerValue}-${symbolValue}`,
158
+ size,
159
+ getSymbolLabel,
160
+ emptyIcon: emptySymbol,
161
+ fullIcon: fullSymbol,
162
+ full: highlightSelectedOnly ? symbolValue === finalValue : symbolValue <= finalValue,
163
+ active: symbolValue === finalValue,
164
+ checked: symbolValue === stableValueRounded,
165
+ readOnly,
166
+ fractionValue,
167
+ value: symbolValue,
168
+ name: _name,
169
+ onChange: handleChange,
170
+ onBlur: handleItemBlur,
171
+ classNames,
172
+ styles,
173
+ unstyled,
174
+ color,
175
+ id: `${_id}-${index}-${fractionIndex}`
176
+ });
177
+ }));
178
+ });
179
+ return /* @__PURE__ */ React.createElement(Box, __spreadValues({
180
+ ref: useMergedRef(rootRef, ref),
181
+ className: cx(classes.root, className),
182
+ onMouseMove: handleMouseMove,
183
+ onMouseEnter: handleMouseEnter,
184
+ onMouseLeave: handleMouseLeave
185
+ }, others), items);
186
+ });
187
+ Rating.displayName = "@mantine/core/Rating";
188
+
189
+ export { Rating };
190
+ //# sourceMappingURL=Rating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.js","sources":["../../src/Rating/Rating.tsx"],"sourcesContent":["import React, { forwardRef, useState, useRef } from 'react';\nimport {\n DefaultProps,\n MantineSize,\n useComponentDefaultProps,\n Selectors,\n MantineColor,\n} from '@mantine/styles';\nimport { useUncontrolled, clamp, useMergedRef, useId } from '@mantine/hooks';\nimport { Box } from '../Box';\nimport { RatingItem, RatingItemStylesNames } from './RatingItem/RatingItem';\nimport useStyles from './Rating.styles';\n\nfunction roundValueTo(value: number, to: number) {\n const rounded = Math.round(value / to) * to;\n const precision = `${to}`.split('.')[1]?.length || 0;\n return Number(rounded.toFixed(precision));\n}\n\nexport type RatingStylesNames = Selectors<typeof useStyles> | RatingItemStylesNames;\n\nexport interface RatingProps\n extends DefaultProps<RatingStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {\n /** Default value for uncontrolled component */\n defaultValue?: number;\n\n /** Value for controlled component */\n value?: number;\n\n /** Called when value changes */\n onChange?(value: number): void;\n\n /** The icon that is displayed when symbol is empty */\n emptySymbol?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** This icon that is displayed when symbol is full */\n fullSymbol?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Number of fractions each item can be divided into, 1 by default */\n fractions?: number;\n\n /** Controls component size */\n size?: MantineSize;\n\n /** Number of controls that should be rendered */\n count?: number;\n\n /** Called when item is hovered */\n onHover?(value: number): void;\n\n /** Function should return labelText for the symbols */\n getSymbolLabel?: (value: number) => string;\n\n /** Name of rating, should be unique within the page */\n name?: string;\n\n /** If true, you won't be able to interact */\n readOnly?: boolean;\n\n /** If true, only the selected symbol will change to full symbol */\n highlightSelectedOnly?: boolean;\n\n /** Key of theme.colors or any CSS color value, yellow by default */\n color?: MantineColor;\n}\n\nconst defaultProps: Partial<RatingProps> = {\n size: 'sm',\n getSymbolLabel: (value) => `${value}`,\n count: 5,\n fractions: 1,\n color: 'yellow',\n};\n\nexport const Rating = forwardRef<HTMLInputElement, RatingProps>((props, ref) => {\n const {\n defaultValue,\n value,\n emptySymbol,\n fullSymbol,\n size,\n count,\n fractions,\n onChange,\n onHover,\n getSymbolLabel,\n name,\n readOnly,\n className,\n classNames,\n styles,\n unstyled,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n highlightSelectedOnly,\n color,\n id,\n ...others\n } = useComponentDefaultProps('Rating', defaultProps, props);\n\n const { classes, cx, theme } = useStyles(null, { name: 'Rating', classNames, styles, unstyled });\n\n const _name = useId(name);\n const _id = useId(id);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: 0,\n onChange,\n });\n\n const [hovered, setHovered] = useState(-1);\n const [isOutside, setOutside] = useState(true);\n\n const _fractions = Math.floor(fractions);\n const _count = Math.floor(count);\n\n const decimalUnit = 1 / _fractions;\n const stableValueRounded = roundValueTo(_value, decimalUnit);\n const finalValue = hovered !== -1 ? hovered : stableValueRounded;\n\n const handleMouseEnter = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(event);\n !readOnly && setOutside(false);\n };\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseMove?.(event);\n\n if (readOnly) {\n return;\n }\n\n const { left, right, width } = rootRef.current.getBoundingClientRect();\n const symbolWidth = width / _count;\n\n const hoverPosition = theme.dir === 'rtl' ? right - event.clientX : event.clientX - left;\n const hoverValue = hoverPosition / symbolWidth;\n\n const rounded = clamp(\n roundValueTo(hoverValue + decimalUnit / 2, decimalUnit),\n decimalUnit,\n _count\n );\n\n setHovered(rounded);\n rounded !== hovered && onHover?.(rounded);\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n\n if (readOnly) {\n return;\n }\n\n setHovered(-1);\n setOutside(true);\n hovered !== -1 && onHover?.(-1);\n };\n\n const handleItemBlur = () => isOutside && setHovered(-1);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const resultedValue = parseFloat(event.target.value);\n setValue(resultedValue);\n };\n\n const items = Array(_count)\n .fill(0)\n .map((_, index) => {\n const integerValue = index + 1;\n const fractionItems = Array.from(new Array(index === 0 ? _fractions + 1 : _fractions));\n const isGroupActive = !readOnly && Math.ceil(hovered) === integerValue;\n\n return (\n <div key={integerValue} data-active={isGroupActive} className={classes.symbolGroup}>\n {fractionItems.map((__, fractionIndex) => {\n const fractionValue = decimalUnit * (index === 0 ? fractionIndex : fractionIndex + 1);\n const symbolValue = roundValueTo(integerValue - 1 + fractionValue, decimalUnit);\n\n return (\n <RatingItem\n key={`${integerValue}-${symbolValue}`}\n size={size}\n getSymbolLabel={getSymbolLabel}\n emptyIcon={emptySymbol}\n fullIcon={fullSymbol}\n full={\n highlightSelectedOnly ? symbolValue === finalValue : symbolValue <= finalValue\n }\n active={symbolValue === finalValue}\n checked={symbolValue === stableValueRounded}\n readOnly={readOnly}\n fractionValue={fractionValue}\n value={symbolValue}\n name={_name}\n onChange={handleChange}\n onBlur={handleItemBlur}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n color={color}\n id={`${_id}-${index}-${fractionIndex}`}\n />\n );\n })}\n </div>\n );\n });\n\n return (\n <Box\n ref={useMergedRef(rootRef, ref)}\n className={cx(classes.root, className)}\n onMouseMove={handleMouseMove}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n {...others}\n >\n {items}\n </Box>\n );\n});\n\nRating.displayName = '@mantine/core/Rating';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { createStyles } from '@mantine/styles';
2
+
3
+ var useStyles = createStyles(() => ({
4
+ root: {
5
+ display: "flex",
6
+ width: "max-content"
7
+ },
8
+ symbolGroup: {
9
+ position: "relative",
10
+ transition: "transform 100ms ease",
11
+ '&[data-active="true"]': {
12
+ zIndex: 1,
13
+ transform: "scale(1.2)"
14
+ }
15
+ }
16
+ }));
17
+
18
+ export default useStyles;
19
+ //# sourceMappingURL=Rating.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.styles.js","sources":["../../src/Rating/Rating.styles.ts"],"sourcesContent":["import { createStyles } from '@mantine/styles';\n\nexport default createStyles(() => ({\n root: {\n display: 'flex',\n width: 'max-content',\n },\n\n symbolGroup: {\n position: 'relative',\n transition: 'transform 100ms ease',\n\n '&[data-active=\"true\"]': {\n zIndex: 1,\n transform: 'scale(1.2)',\n },\n },\n}));\n"],"names":[],"mappings":";;AACA,gBAAe,YAAY,CAAC,OAAO;AACnC,EAAE,IAAI,EAAE;AACR,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,KAAK,EAAE,aAAa;AACxB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,UAAU,EAAE,sBAAsB;AACtC,IAAI,uBAAuB,EAAE;AAC7B,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,SAAS,EAAE,YAAY;AAC7B,KAAK;AACL,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -0,0 +1,98 @@
1
+ import React from 'react';
2
+ import { StarSymbol } from '../StarSymbol/StarSymbol.js';
3
+ import useStyles from './RatingItem.styles.js';
4
+ import { Box } from '../../Box/Box.js';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __objRest = (source, exclude) => {
23
+ var target = {};
24
+ for (var prop in source)
25
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
26
+ target[prop] = source[prop];
27
+ if (source != null && __getOwnPropSymbols)
28
+ for (var prop of __getOwnPropSymbols(source)) {
29
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
30
+ target[prop] = source[prop];
31
+ }
32
+ return target;
33
+ };
34
+ function RatingItem(_a) {
35
+ var _b = _a, {
36
+ size,
37
+ getSymbolLabel,
38
+ emptyIcon,
39
+ fullIcon,
40
+ full,
41
+ active,
42
+ value,
43
+ readOnly,
44
+ fractionValue,
45
+ classNames,
46
+ styles,
47
+ unstyled,
48
+ color,
49
+ id
50
+ } = _b, others = __objRest(_b, [
51
+ "size",
52
+ "getSymbolLabel",
53
+ "emptyIcon",
54
+ "fullIcon",
55
+ "full",
56
+ "active",
57
+ "value",
58
+ "readOnly",
59
+ "fractionValue",
60
+ "classNames",
61
+ "styles",
62
+ "unstyled",
63
+ "color",
64
+ "id"
65
+ ]);
66
+ const { classes } = useStyles(null, { name: "Rating", classNames, styles, unstyled });
67
+ const _fullIcon = typeof fullIcon === "function" ? fullIcon(value) : fullIcon;
68
+ const _emptyIcon = typeof emptyIcon === "function" ? emptyIcon(value) : emptyIcon;
69
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, !readOnly && /* @__PURE__ */ React.createElement("input", __spreadValues({
70
+ className: classes.input,
71
+ id,
72
+ type: "radio",
73
+ "data-active": active,
74
+ "aria-label": getSymbolLabel(value),
75
+ value
76
+ }, others)), /* @__PURE__ */ React.createElement(Box, {
77
+ component: readOnly ? "div" : "label",
78
+ className: classes.label,
79
+ "data-read-only": readOnly || void 0,
80
+ htmlFor: id,
81
+ sx: fractionValue === 1 ? void 0 : { zIndex: active ? 2 : 0 }
82
+ }, /* @__PURE__ */ React.createElement(Box, {
83
+ className: classes.symbolBody,
84
+ sx: fractionValue === 1 ? void 0 : { clipPath: `inset(0 ${active ? 100 - fractionValue * 100 : 100}% 0 0)` }
85
+ }, full ? _fullIcon || /* @__PURE__ */ React.createElement(StarSymbol, {
86
+ color,
87
+ size,
88
+ type: "full"
89
+ }) : _emptyIcon || /* @__PURE__ */ React.createElement(StarSymbol, {
90
+ color,
91
+ size,
92
+ type: "empty"
93
+ }))));
94
+ }
95
+ RatingItem.displayName = "@mantine/core/RatingItem";
96
+
97
+ export { RatingItem };
98
+ //# sourceMappingURL=RatingItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingItem.js","sources":["../../../src/Rating/RatingItem/RatingItem.tsx"],"sourcesContent":["import React from 'react';\nimport { MantineSize, Selectors, DefaultProps, MantineColor } from '@mantine/styles';\nimport { Box } from '../../Box';\nimport { StarSymbol } from '../StarSymbol/StarSymbol';\nimport useStyles from './RatingItem.styles';\n\nexport type RatingItemStylesNames = Selectors<typeof useStyles>;\n\nexport interface RatingItemProps\n extends DefaultProps<RatingItemStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'value' | 'size'> {\n size: MantineSize;\n getSymbolLabel: (value: number) => string;\n emptyIcon?: React.ReactNode | ((value: number) => React.ReactNode);\n fullIcon?: React.ReactNode | ((value: number) => React.ReactNode);\n color: MantineColor;\n full: boolean;\n active: boolean;\n fractionValue: number;\n value: number;\n id: string;\n}\n\nexport function RatingItem({\n size,\n getSymbolLabel,\n emptyIcon,\n fullIcon,\n full,\n active,\n value,\n readOnly,\n fractionValue,\n classNames,\n styles,\n unstyled,\n color,\n id,\n ...others\n}: RatingItemProps) {\n const { classes } = useStyles(null, { name: 'Rating', classNames, styles, unstyled });\n const _fullIcon = typeof fullIcon === 'function' ? fullIcon(value) : fullIcon;\n const _emptyIcon = typeof emptyIcon === 'function' ? emptyIcon(value) : emptyIcon;\n\n return (\n <>\n {!readOnly && (\n <input\n className={classes.input}\n id={id}\n type=\"radio\"\n data-active={active}\n aria-label={getSymbolLabel(value)}\n value={value}\n {...others}\n />\n )}\n\n <Box\n component={readOnly ? 'div' : 'label'}\n className={classes.label}\n data-read-only={readOnly || undefined}\n htmlFor={id}\n sx={fractionValue === 1 ? undefined : { zIndex: active ? 2 : 0 }}\n >\n <Box\n className={classes.symbolBody}\n sx={\n fractionValue === 1\n ? undefined\n : { clipPath: `inset(0 ${active ? 100 - fractionValue * 100 : 100}% 0 0)` }\n }\n >\n {full\n ? _fullIcon || <StarSymbol color={color} size={size} type=\"full\" />\n : _emptyIcon || <StarSymbol color={color} size={size} type=\"empty\" />}\n </Box>\n </Box>\n </>\n );\n}\n\nRatingItem.displayName = '@mantine/core/RatingItem';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { createStyles } from '@mantine/styles';
2
+
3
+ var useStyles = createStyles((theme, _params, getRef) => ({
4
+ input: {
5
+ height: 0,
6
+ width: 0,
7
+ position: "absolute",
8
+ overflow: "hidden",
9
+ whiteSpace: "nowrap",
10
+ opacity: 0,
11
+ "&:focus": {
12
+ [`& + .${getRef("label")}`]: {
13
+ outline: theme.focusRing === "always" || theme.focusRing === "auto" ? `1px solid ${theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 7 : 5]}` : void 0
14
+ },
15
+ "&:focus:not(:focus-visible)": {
16
+ [`& + .${getRef("label")}`]: {
17
+ outline: theme.focusRing === "auto" || theme.focusRing === "never" ? "none" : void 0
18
+ }
19
+ }
20
+ }
21
+ },
22
+ label: {
23
+ ref: getRef("label"),
24
+ display: "block",
25
+ boxSizing: "border-box",
26
+ marginInline: 1,
27
+ top: 0,
28
+ left: 0,
29
+ cursor: "pointer",
30
+ position: "absolute",
31
+ zIndex: 0,
32
+ "&[data-read-only]": {
33
+ cursor: "default"
34
+ },
35
+ "&:last-of-type": {
36
+ position: "relative",
37
+ zIndex: 0
38
+ }
39
+ },
40
+ symbolBody: {
41
+ display: "grid",
42
+ placeContent: "center",
43
+ placeItems: "center"
44
+ }
45
+ }));
46
+
47
+ export default useStyles;
48
+ //# sourceMappingURL=RatingItem.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingItem.styles.js","sources":["../../../src/Rating/RatingItem/RatingItem.styles.ts"],"sourcesContent":["import { createStyles } from '@mantine/styles';\n\nexport default createStyles((theme, _params, getRef) => ({\n input: {\n height: 0,\n width: 0,\n position: 'absolute',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n opacity: 0,\n\n '&:focus': {\n [`& + .${getRef('label')}`]: {\n outline:\n theme.focusRing === 'always' || theme.focusRing === 'auto'\n ? `1px solid ${theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 7 : 5]}`\n : undefined,\n },\n\n '&:focus:not(:focus-visible)': {\n [`& + .${getRef('label')}`]: {\n outline: theme.focusRing === 'auto' || theme.focusRing === 'never' ? 'none' : undefined,\n },\n },\n },\n },\n\n label: {\n ref: getRef('label'),\n display: 'block',\n boxSizing: 'border-box',\n marginInline: 1,\n top: 0,\n left: 0,\n cursor: 'pointer',\n position: 'absolute',\n zIndex: 0,\n\n '&[data-read-only]': {\n cursor: 'default',\n },\n\n '&:last-of-type': {\n position: 'relative',\n zIndex: 0,\n },\n },\n\n symbolBody: {\n display: 'grid',\n placeContent: 'center',\n placeItems: 'center',\n },\n}));\n"],"names":[],"mappings":";;AACA,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM;AACzD,EAAE,KAAK,EAAE;AACT,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,UAAU,EAAE,QAAQ;AACxB,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,SAAS,EAAE;AACf,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACnC,QAAQ,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5K,OAAO;AACP,MAAM,6BAA6B,EAAE;AACrC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;AACrC,UAAU,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAC9F,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC;AACxB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,mBAAmB,EAAE;AACzB,MAAM,MAAM,EAAE,SAAS;AACvB,KAAK;AACL,IAAI,gBAAgB,EAAE;AACtB,MAAM,QAAQ,EAAE,UAAU;AAC1B,MAAM,MAAM,EAAE,CAAC;AACf,KAAK;AACL,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,YAAY,EAAE,QAAQ;AAC1B,IAAI,UAAU,EAAE,QAAQ;AACxB,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ function StarIcon(props) {
20
+ return /* @__PURE__ */ React.createElement("svg", __spreadValues({
21
+ viewBox: "0 0 24 24",
22
+ strokeLinecap: "round",
23
+ strokeLinejoin: "round",
24
+ fill: "none",
25
+ xmlns: "http://www.w3.org/2000/svg"
26
+ }, props), /* @__PURE__ */ React.createElement("path", {
27
+ d: "M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z"
28
+ }));
29
+ }
30
+ StarIcon.displayName = "@mantine/core/StarIcon";
31
+
32
+ export { StarIcon };
33
+ //# sourceMappingURL=StarIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarIcon.js","sources":["../../../src/Rating/StarSymbol/StarIcon.tsx"],"sourcesContent":["import React from 'react';\n\nexport function StarIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\" />\n </svg>\n );\n}\n\nStarIcon.displayName = '@mantine/core/StarIcon';\n"],"names":[],"mappings":";;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEK,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC;AACnE,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACzD,IAAI,CAAC,EAAE,2GAA2G;AAClH,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;AACD,QAAQ,CAAC,WAAW,GAAG,wBAAwB;;;;"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { StarIcon } from './StarIcon.js';
3
+ import useStyles from './StarSymbol.styles.js';
4
+
5
+ function StarSymbol({ size, type, color }) {
6
+ const { classes } = useStyles({ size, type, color });
7
+ return /* @__PURE__ */ React.createElement(StarIcon, {
8
+ className: classes.icon
9
+ });
10
+ }
11
+ StarSymbol.displayName = "@mantine/core/StarSymbol";
12
+
13
+ export { StarSymbol };
14
+ //# sourceMappingURL=StarSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarSymbol.js","sources":["../../../src/Rating/StarSymbol/StarSymbol.tsx"],"sourcesContent":["import React from 'react';\nimport { MantineSize, MantineColor } from '@mantine/styles';\nimport { StarIcon } from './StarIcon';\nimport useStyles from './StarSymbol.styles';\n\nexport interface StarSymbolProps {\n size: MantineSize;\n color: MantineColor;\n type: 'empty' | 'full';\n}\n\nexport function StarSymbol({ size, type, color }: StarSymbolProps) {\n const { classes } = useStyles({ size, type, color });\n return <StarIcon className={classes.icon} />;\n}\n\nStarSymbol.displayName = '@mantine/core/StarSymbol';\n"],"names":[],"mappings":";;;;AAGO,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AAClD,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvD,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AACvD,IAAI,SAAS,EAAE,OAAO,CAAC,IAAI;AAC3B,GAAG,CAAC,CAAC;AACL,CAAC;AACD,UAAU,CAAC,WAAW,GAAG,0BAA0B;;;;"}
@@ -0,0 +1,24 @@
1
+ import { createStyles } from '@mantine/styles';
2
+
3
+ const sizes = {
4
+ xs: 14,
5
+ sm: 18,
6
+ md: 20,
7
+ lg: 28,
8
+ xl: 32
9
+ };
10
+ var useStyles = createStyles((theme, { size, type, color }) => {
11
+ const emptyColor = theme.colorScheme === "light" ? theme.colors.gray[3] : theme.colors.gray[8];
12
+ const fullColor = theme.fn.variant({ variant: "filled", color }).background;
13
+ return {
14
+ icon: {
15
+ stroke: type === "empty" ? emptyColor : fullColor,
16
+ fill: type === "empty" ? emptyColor : fullColor,
17
+ width: theme.fn.size({ size, sizes }),
18
+ height: theme.fn.size({ size, sizes })
19
+ }
20
+ };
21
+ });
22
+
23
+ export default useStyles;
24
+ //# sourceMappingURL=StarSymbol.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarSymbol.styles.js","sources":["../../../src/Rating/StarSymbol/StarSymbol.styles.ts"],"sourcesContent":["import { createStyles, MantineColor, MantineSize } from '@mantine/styles';\n\nexport interface StarSymbolStylesParams {\n size: MantineSize;\n type: 'empty' | 'full';\n color: MantineColor;\n}\n\nconst sizes: Record<MantineSize, number> = {\n xs: 14,\n sm: 18,\n md: 20,\n lg: 28,\n xl: 32,\n};\n\nexport default createStyles((theme, { size, type, color }: StarSymbolStylesParams) => {\n const emptyColor = theme.colorScheme === 'light' ? theme.colors.gray[3] : theme.colors.gray[8];\n const fullColor = theme.fn.variant({ variant: 'filled', color }).background;\n\n return {\n icon: {\n stroke: type === 'empty' ? emptyColor : fullColor,\n fill: type === 'empty' ? emptyColor : fullColor,\n width: theme.fn.size({ size, sizes }),\n height: theme.fn.size({ size, sizes }),\n },\n };\n});\n"],"names":[],"mappings":";;AACA,MAAM,KAAK,GAAG;AACd,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,CAAC,CAAC;AACF,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;AAC9D,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,KAAK,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjG,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC;AAC9E,EAAE,OAAO;AACT,IAAI,IAAI,EAAE;AACV,MAAM,MAAM,EAAE,IAAI,KAAK,OAAO,GAAG,UAAU,GAAG,SAAS;AACvD,MAAM,IAAI,EAAE,IAAI,KAAK,OAAO,GAAG,UAAU,GAAG,SAAS;AACrD,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3C,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC5C,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;;;;"}
@@ -4,6 +4,8 @@ import { getCurveProps } from './get-curve-props.js';
4
4
  import { Tooltip } from '../../Tooltip/Tooltip.js';
5
5
 
6
6
  var __defProp = Object.defineProperty;
7
+ var __defProps = Object.defineProperties;
8
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
9
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
11
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -19,27 +21,51 @@ var __spreadValues = (a, b) => {
19
21
  }
20
22
  return a;
21
23
  };
22
- function Curve({
23
- size,
24
- value,
25
- offset,
26
- sum,
27
- thickness,
28
- root,
29
- color,
30
- lineRoundCaps,
31
- tooltip
32
- }) {
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ function Curve(_a) {
38
+ var _b = _a, {
39
+ size,
40
+ value,
41
+ offset,
42
+ sum,
43
+ thickness,
44
+ root,
45
+ color,
46
+ lineRoundCaps,
47
+ tooltip
48
+ } = _b, others = __objRest(_b, [
49
+ "size",
50
+ "value",
51
+ "offset",
52
+ "sum",
53
+ "thickness",
54
+ "root",
55
+ "color",
56
+ "lineRoundCaps",
57
+ "tooltip"
58
+ ]);
33
59
  const theme = useMantineTheme();
34
60
  const stroke = theme.fn.themeColor(color || (theme.colorScheme === "dark" ? "dark" : "gray"), color ? theme.fn.primaryShade() : theme.colorScheme === "dark" ? 4 : 1, false);
35
61
  return /* @__PURE__ */ React.createElement(Tooltip.Floating, {
36
62
  disabled: !tooltip,
37
63
  label: tooltip
38
- }, /* @__PURE__ */ React.createElement("circle", __spreadValues({
64
+ }, /* @__PURE__ */ React.createElement("circle", __spreadValues(__spreadProps(__spreadValues({}, others), {
39
65
  fill: "none",
40
66
  strokeLinecap: lineRoundCaps ? "round" : "butt",
41
67
  stroke
42
- }, getCurveProps({ sum, size, thickness, value, offset, root }))));
68
+ }), getCurveProps({ sum, size, thickness, value, offset, root }))));
43
69
  }
44
70
  Curve.displayName = "@mantine/core/Curve";
45
71