@vygruppen/spor-react 11.3.9 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/.turbo/turbo-build.log +32 -11
  2. package/.turbo/turbo-typegen.log +23 -0
  3. package/CHANGELOG.md +245 -0
  4. package/dist/index.d.mts +2552 -8319
  5. package/dist/index.d.ts +2552 -8319
  6. package/dist/index.js +9609 -8607
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.mjs +9487 -8454
  9. package/dist/index.mjs.map +1 -1
  10. package/package.json +21 -13
  11. package/src/accordion/Accordion.tsx +96 -45
  12. package/src/accordion/Expandable.tsx +54 -127
  13. package/src/accordion/helpers.ts +31 -0
  14. package/src/accordion/types.ts +60 -0
  15. package/src/alert/Alert.tsx +101 -0
  16. package/src/alert/AlertIcon.tsx +63 -45
  17. package/src/alert/ExpandableAlert.tsx +96 -64
  18. package/src/alert/ServiceAlert.tsx +127 -125
  19. package/src/alert/{index.tsx → index.ts} +1 -2
  20. package/src/breadcrumb/Breadcrumb.tsx +39 -24
  21. package/src/button/Button.tsx +86 -105
  22. package/src/button/ButtonGroup.tsx +45 -20
  23. package/src/button/Clipboard.tsx +82 -0
  24. package/src/button/CloseButton.tsx +4 -3
  25. package/src/button/FloatingActionButton.tsx +35 -41
  26. package/src/button/IconButton.tsx +34 -30
  27. package/src/button/index.tsx +1 -0
  28. package/src/color-mode/color-mode.tsx +75 -0
  29. package/src/color-mode/index.ts +1 -0
  30. package/src/datepicker/Calendar.tsx +17 -8
  31. package/src/datepicker/CalendarCell.tsx +20 -13
  32. package/src/datepicker/CalendarGrid.tsx +18 -10
  33. package/src/datepicker/CalendarHeader.tsx +2 -0
  34. package/src/datepicker/CalendarNavigationButton.tsx +1 -0
  35. package/src/datepicker/CalendarTriggerButton.tsx +43 -45
  36. package/src/datepicker/DateField.tsx +21 -12
  37. package/src/datepicker/DatePicker.tsx +61 -58
  38. package/src/datepicker/DateRangePicker.tsx +52 -58
  39. package/src/datepicker/DateTimeSegment.tsx +13 -5
  40. package/src/datepicker/RangeCalendar.tsx +13 -7
  41. package/src/datepicker/StyledField.tsx +25 -17
  42. package/src/datepicker/TimeField.tsx +10 -8
  43. package/src/datepicker/TimePicker.tsx +48 -45
  44. package/src/datepicker/types.ts +5 -0
  45. package/src/dialog/Dialog.tsx +56 -0
  46. package/src/dialog/Drawer.tsx +187 -0
  47. package/src/dialog/index.ts +2 -0
  48. package/src/dialog/types.ts +26 -0
  49. package/src/image/index.tsx +2 -2
  50. package/src/index.tsx +5 -3
  51. package/src/input/AttachedInputs.tsx +17 -42
  52. package/src/input/CardSelect.tsx +75 -162
  53. package/src/input/Checkbox.tsx +30 -6
  54. package/src/input/CheckboxGroup.tsx +25 -16
  55. package/src/input/ChoiceChip.tsx +58 -77
  56. package/src/input/Combobox.tsx +172 -172
  57. package/src/input/CountryCodeSelect.tsx +42 -28
  58. package/src/input/Dialog.tsx +1 -0
  59. package/src/input/Field.tsx +71 -0
  60. package/src/input/Fieldset.tsx +7 -0
  61. package/src/input/Input.tsx +68 -73
  62. package/src/input/InputGroup.tsx +66 -0
  63. package/src/input/ListBox.tsx +83 -70
  64. package/src/input/NativeSelect.tsx +68 -33
  65. package/src/input/NumericStepper.tsx +173 -171
  66. package/src/input/PasswordInput.tsx +99 -52
  67. package/src/input/PhoneNumberInput.tsx +69 -72
  68. package/src/input/Popover.tsx +1 -0
  69. package/src/input/Radio.tsx +37 -17
  70. package/src/input/SearchInput.tsx +24 -86
  71. package/src/input/Select.tsx +237 -0
  72. package/src/input/Switch.tsx +60 -18
  73. package/src/input/Textarea.tsx +53 -101
  74. package/src/input/{index.tsx → index.ts} +2 -8
  75. package/src/layout/PressableCard.tsx +12 -21
  76. package/src/layout/RadioCard.tsx +68 -100
  77. package/src/layout/Separator.tsx +32 -0
  78. package/src/layout/StaticCard.tsx +13 -33
  79. package/src/layout/index.tsx +3 -7
  80. package/src/linjetag/InfoTag.tsx +16 -9
  81. package/src/linjetag/LineIcon.tsx +74 -28
  82. package/src/linjetag/TravelTag.tsx +38 -27
  83. package/src/link/TextLink.tsx +25 -16
  84. package/src/list/index.tsx +24 -2
  85. package/src/loader/ClientOnly.tsx +8 -7
  86. package/src/loader/ColorInlineLoader.tsx +4 -3
  87. package/src/loader/ColorSpinner.tsx +5 -4
  88. package/src/loader/ContentLoader.tsx +6 -4
  89. package/src/loader/DarkFullScreenLoader.tsx +11 -3
  90. package/src/loader/DarkInlineLoader.tsx +5 -3
  91. package/src/loader/DarkSpinner.tsx +7 -3
  92. package/src/loader/LightFullScreenLoader.tsx +11 -3
  93. package/src/loader/LightInlineLoader.tsx +11 -3
  94. package/src/loader/LightSpinner.tsx +5 -3
  95. package/src/loader/Lottie.tsx +3 -3
  96. package/src/loader/ProgressBar.tsx +83 -84
  97. package/src/loader/ProgressLoader.tsx +120 -75
  98. package/src/loader/Skeleton.tsx +94 -19
  99. package/src/loader/index.tsx +0 -2
  100. package/src/loader/useHydrated.tsx +1 -0
  101. package/src/loader/useRotatingLabel.tsx +2 -1
  102. package/src/logo/CargonetLogo.tsx +89 -89
  103. package/src/logo/VyLogo.tsx +61 -42
  104. package/src/logo/VyLogoPride.tsx +137 -139
  105. package/src/media-controller/JumpButton.tsx +48 -38
  106. package/src/media-controller/PlayPauseButton.tsx +31 -29
  107. package/src/media-controller/SkipButton.tsx +38 -37
  108. package/src/nudge/Nudge.tsx +195 -123
  109. package/src/nudge/index.tsx +0 -1
  110. package/src/pagination/Pagination.tsx +221 -118
  111. package/src/pagination/types.ts +23 -0
  112. package/src/popover/index.tsx +67 -0
  113. package/src/progress-indicator/ProgressDot.tsx +11 -10
  114. package/src/progress-indicator/ProgressIndicator.tsx +28 -15
  115. package/src/provider/SporProvider.tsx +17 -14
  116. package/src/stepper/Stepper.tsx +88 -85
  117. package/src/stepper/StepperContext.tsx +2 -1
  118. package/src/stepper/StepperStep.tsx +28 -21
  119. package/src/tab/Tabs.tsx +62 -12
  120. package/src/tab/index.tsx +1 -9
  121. package/src/table/Table.tsx +35 -30
  122. package/src/table/index.tsx +11 -7
  123. package/src/theme/brand.ts +7 -0
  124. package/src/theme/index.ts +45 -37
  125. package/src/theme/recipes/attached-inputs.ts +43 -0
  126. package/src/theme/recipes/badge.ts +104 -0
  127. package/src/theme/recipes/button.ts +124 -0
  128. package/src/theme/recipes/choice-chip.ts +144 -0
  129. package/src/theme/recipes/close-button.ts +41 -0
  130. package/src/theme/recipes/code.ts +14 -0
  131. package/src/theme/recipes/group.ts +19 -0
  132. package/src/theme/recipes/index.ts +29 -0
  133. package/src/theme/recipes/input.ts +89 -0
  134. package/src/theme/recipes/link.ts +64 -0
  135. package/src/theme/recipes/nudge.ts +12 -0
  136. package/src/theme/recipes/pressable-card.ts +83 -0
  137. package/src/theme/recipes/progress-loader.ts +14 -0
  138. package/src/theme/recipes/separator.ts +85 -0
  139. package/src/theme/recipes/skeleton.ts +57 -0
  140. package/src/theme/recipes/static-card.ts +39 -0
  141. package/src/theme/recipes/textarea.ts +27 -0
  142. package/src/theme/semantic-tokens/colors.ts +22 -0
  143. package/src/theme/semantic-tokens/index.ts +24 -0
  144. package/src/theme/semantic-tokens/radii.ts +14 -0
  145. package/src/theme/semantic-tokens/shadows.ts +17 -0
  146. package/src/theme/slot-recipes/accordion.ts +131 -0
  147. package/src/theme/slot-recipes/alert-expandable.ts +133 -0
  148. package/src/theme/slot-recipes/alert-service.ts +66 -0
  149. package/src/theme/slot-recipes/alert.ts +72 -0
  150. package/src/theme/slot-recipes/anatomy.ts +269 -0
  151. package/src/theme/slot-recipes/breadcrumb.ts +61 -0
  152. package/src/theme/slot-recipes/checkbox.ts +89 -0
  153. package/src/theme/slot-recipes/datepicker.ts +214 -0
  154. package/src/theme/slot-recipes/dialog.ts +221 -0
  155. package/src/theme/slot-recipes/drawer.ts +205 -0
  156. package/src/theme/slot-recipes/field.ts +79 -0
  157. package/src/theme/slot-recipes/floating-action-button.ts +131 -0
  158. package/src/theme/slot-recipes/index.ts +65 -0
  159. package/src/theme/slot-recipes/info-tag.ts +62 -0
  160. package/src/theme/slot-recipes/line-icon.ts +140 -0
  161. package/src/theme/slot-recipes/list.ts +45 -0
  162. package/src/theme/slot-recipes/listbox.ts +72 -0
  163. package/src/theme/slot-recipes/media-controller-button.ts +131 -0
  164. package/src/theme/slot-recipes/native-select.ts +54 -0
  165. package/src/theme/slot-recipes/numeric-stepper.ts +65 -0
  166. package/src/theme/slot-recipes/pagination.ts +41 -0
  167. package/src/theme/slot-recipes/popover.ts +78 -0
  168. package/src/theme/slot-recipes/progress-bar.ts +39 -0
  169. package/src/theme/slot-recipes/progress-indicator.ts +22 -0
  170. package/src/theme/slot-recipes/radio-card.ts +112 -0
  171. package/src/theme/slot-recipes/radio.ts +80 -0
  172. package/src/theme/slot-recipes/select.ts +243 -0
  173. package/src/theme/slot-recipes/stepper.ts +92 -0
  174. package/src/theme/slot-recipes/switch.ts +147 -0
  175. package/src/theme/slot-recipes/table.ts +200 -0
  176. package/src/theme/slot-recipes/tabs.ts +169 -0
  177. package/src/theme/slot-recipes/toast.ts +56 -0
  178. package/src/theme/slot-recipes/travel-tag.ts +192 -0
  179. package/src/theme/tokens/animation-styles.ts +50 -0
  180. package/src/theme/tokens/animations.ts +22 -0
  181. package/src/theme/tokens/aspect-ratios.ts +22 -0
  182. package/src/theme/tokens/blurs.ts +28 -0
  183. package/src/theme/tokens/borders.ts +26 -0
  184. package/src/theme/{foundations → tokens}/breakpoints.ts +0 -1
  185. package/src/theme/tokens/colors.ts +10 -0
  186. package/src/theme/tokens/config.ts +10 -0
  187. package/src/theme/tokens/cursor.ts +28 -0
  188. package/src/theme/tokens/durations.ts +25 -0
  189. package/src/theme/tokens/easings.ts +16 -0
  190. package/src/theme/tokens/font-sizes.ts +30 -0
  191. package/src/theme/tokens/font-weights.ts +31 -0
  192. package/src/theme/tokens/fonts.ts +8 -0
  193. package/src/theme/tokens/global-css.ts +18 -0
  194. package/src/theme/tokens/index.ts +37 -0
  195. package/src/theme/tokens/keyframes.ts +255 -0
  196. package/src/theme/tokens/letter-spacings.ts +19 -0
  197. package/src/theme/tokens/line-heights.ts +19 -0
  198. package/src/theme/tokens/radii.ts +13 -0
  199. package/src/theme/tokens/sizes.ts +51 -0
  200. package/src/theme/tokens/spacing.ts +20 -0
  201. package/src/theme/tokens/text-styles.ts +89 -0
  202. package/src/theme/tokens/z-index.ts +17 -0
  203. package/src/theme/utils/accent-utils.ts +8 -21
  204. package/src/theme/utils/bg-utils.ts +4 -6
  205. package/src/theme/utils/brand-utils.ts +6 -19
  206. package/src/theme/utils/core-utils.ts +91 -0
  207. package/src/theme/utils/floating-utils.ts +20 -39
  208. package/src/theme/utils/ghost-utils.ts +7 -21
  209. package/src/theme/utils/input-utils.ts +32 -37
  210. package/src/theme/utils/outline-utils.ts +4 -11
  211. package/src/theme/utils/surface-utils.ts +5 -19
  212. package/src/theme/utils/types.ts +1 -0
  213. package/src/toast/index.tsx +1 -1
  214. package/src/toast/toast.tsx +105 -0
  215. package/src/transition/index.ts +2 -8
  216. package/src/typography/Badge.tsx +15 -61
  217. package/src/typography/Code.tsx +16 -28
  218. package/src/typography/Heading.tsx +34 -19
  219. package/src/typography/Text.tsx +9 -6
  220. package/src/typography/{index.tsx → index.ts} +1 -0
  221. package/src/util/externals.tsx +13 -27
  222. package/tsconfig.json +5 -1
  223. package/src/accordion/Accordion.test.tsx +0 -20
  224. package/src/alert/BaseAlert.test.tsx +0 -37
  225. package/src/alert/BaseAlert.tsx +0 -34
  226. package/src/alert/ClosableAlert.test.tsx +0 -37
  227. package/src/alert/ClosableAlert.tsx +0 -85
  228. package/src/alert/ExpandableAlert.test.tsx +0 -84
  229. package/src/alert/StaticAlert.tsx +0 -33
  230. package/src/button/Button.test.tsx +0 -23
  231. package/src/datepicker/TimePicker.test.tsx +0 -74
  232. package/src/input/FormControl.tsx +0 -2
  233. package/src/input/FormErrorMessage.tsx +0 -95
  234. package/src/input/FormLabel.tsx +0 -11
  235. package/src/input/InfoSelect.tsx +0 -274
  236. package/src/input/InputElement.tsx +0 -44
  237. package/src/input/RadioGroup.tsx +0 -47
  238. package/src/layout/Divider.tsx +0 -27
  239. package/src/layout/RadioCardGroup.tsx +0 -79
  240. package/src/layout/Stack.tsx +0 -42
  241. package/src/loader/SkeletonCircle.tsx +0 -13
  242. package/src/loader/SkeletonText.tsx +0 -14
  243. package/src/media-controller/index.test.tsx +0 -59
  244. package/src/modal/Drawer.tsx +0 -120
  245. package/src/modal/FullScreenDrawer.tsx +0 -239
  246. package/src/modal/Modal.tsx +0 -15
  247. package/src/modal/ModalHeader.tsx +0 -31
  248. package/src/modal/SimpleDrawer.tsx +0 -51
  249. package/src/modal/index.tsx +0 -5
  250. package/src/nudge/WizardNudge.tsx +0 -107
  251. package/src/theme/components/accordion.ts +0 -102
  252. package/src/theme/components/alert-expandable.ts +0 -125
  253. package/src/theme/components/alert-service.ts +0 -98
  254. package/src/theme/components/alert.ts +0 -71
  255. package/src/theme/components/badge.ts +0 -109
  256. package/src/theme/components/breadcrumb.ts +0 -60
  257. package/src/theme/components/button.ts +0 -125
  258. package/src/theme/components/card-select.ts +0 -117
  259. package/src/theme/components/checkbox.ts +0 -88
  260. package/src/theme/components/choice-chip.ts +0 -161
  261. package/src/theme/components/close-button.ts +0 -48
  262. package/src/theme/components/code.ts +0 -17
  263. package/src/theme/components/datepicker.ts +0 -198
  264. package/src/theme/components/divider.ts +0 -50
  265. package/src/theme/components/drawer.ts +0 -95
  266. package/src/theme/components/fab.ts +0 -109
  267. package/src/theme/components/form-label.ts +0 -17
  268. package/src/theme/components/form.ts +0 -27
  269. package/src/theme/components/index.ts +0 -45
  270. package/src/theme/components/info-select.ts +0 -85
  271. package/src/theme/components/info-tag.ts +0 -63
  272. package/src/theme/components/input.ts +0 -28
  273. package/src/theme/components/line-icon.ts +0 -129
  274. package/src/theme/components/link.ts +0 -78
  275. package/src/theme/components/list.ts +0 -23
  276. package/src/theme/components/listbox.ts +0 -77
  277. package/src/theme/components/media-controller-button.ts +0 -97
  278. package/src/theme/components/modal.ts +0 -96
  279. package/src/theme/components/numeric-stepper.ts +0 -65
  280. package/src/theme/components/pagination.ts +0 -74
  281. package/src/theme/components/popover.ts +0 -68
  282. package/src/theme/components/pressable-card.ts +0 -72
  283. package/src/theme/components/progress-bar.ts +0 -47
  284. package/src/theme/components/progress-indicator.ts +0 -44
  285. package/src/theme/components/radio-card.ts +0 -134
  286. package/src/theme/components/radio.ts +0 -68
  287. package/src/theme/components/select.ts +0 -74
  288. package/src/theme/components/skeleton.ts +0 -40
  289. package/src/theme/components/static-card.ts +0 -82
  290. package/src/theme/components/stepper.ts +0 -100
  291. package/src/theme/components/switch.ts +0 -112
  292. package/src/theme/components/table.ts +0 -161
  293. package/src/theme/components/tabs.ts +0 -135
  294. package/src/theme/components/textarea.ts +0 -33
  295. package/src/theme/components/toast.ts +0 -28
  296. package/src/theme/components/travel-tag.ts +0 -256
  297. package/src/theme/foundations/borders.ts +0 -11
  298. package/src/theme/foundations/colors.ts +0 -12
  299. package/src/theme/foundations/config.ts +0 -5
  300. package/src/theme/foundations/fontSizes.ts +0 -29
  301. package/src/theme/foundations/fontWeights.ts +0 -5
  302. package/src/theme/foundations/fonts.ts +0 -7
  303. package/src/theme/foundations/index.ts +0 -15
  304. package/src/theme/foundations/lineHeights.ts +0 -6
  305. package/src/theme/foundations/radii.ts +0 -12
  306. package/src/theme/foundations/shadows.ts +0 -8
  307. package/src/theme/foundations/sizes.ts +0 -36
  308. package/src/theme/foundations/spacing.ts +0 -31
  309. package/src/theme/foundations/styles.ts +0 -12
  310. package/src/theme/foundations/textStyles.ts +0 -74
  311. package/src/theme/foundations/zIndices.ts +0 -17
  312. package/src/theme/utils/base-utils.ts +0 -104
  313. package/src/theme/utils/focus-utils.ts +0 -10
  314. package/src/toast/ActionToast.test.tsx +0 -22
  315. package/src/toast/ActionToast.tsx +0 -28
  316. package/src/toast/BaseToast.test.tsx +0 -27
  317. package/src/toast/BaseToast.tsx +0 -75
  318. package/src/toast/ClosableToast.test.tsx +0 -17
  319. package/src/toast/ClosableToast.tsx +0 -40
  320. package/src/toast/useToast.tsx +0 -121
  321. package/src/tooltip/Tooltip.tsx +0 -70
  322. package/src/tooltip/index.tsx +0 -1
@@ -1,164 +1,162 @@
1
- import { Box, BoxProps } from "@chakra-ui/react";
2
- import React, { useId } from "react";
1
+ import { BoxProps } from "@chakra-ui/react";
2
+ import React, { forwardRef, useId } from "react";
3
+ import { SvgBox } from "./VyLogo";
3
4
 
4
- export type VyLogoPrideProps = {
5
- /** The color of the logo
6
- *
7
- * Use `"light"` when the logo is used on a light background.
8
- * Use `"dark"` when the logo is used on a dark background.
9
- */
10
- colorScheme: "light" | "dark";
11
- } & BoxProps;
12
- export const VyLogoPride = ({ colorScheme, ...boxProps }: VyLogoPrideProps) => {
13
- // These colors should not be tokenized, as they are logo specific.
14
- const pinkColor = colorScheme === "light" ? "#ED6F99" : "#ffffff";
15
- const purpleColor = colorScheme === "light" ? "#C06CF7" : "#ffffff";
16
- const darkPurpleColor = colorScheme === "light" ? "#821889" : "#ffffff";
17
- const greenColor = colorScheme === "light" ? "#56BDBF" : "#ffffff";
18
- const darkGreenColor = colorScheme === "light" ? "#3E8C26" : "#ffffff";
19
- const blueColor = colorScheme === "light" ? "#3A0692" : "#ffffff";
20
- const redColor = colorScheme === "light" ? "#EA3323" : "#ffffff";
21
- const orangeColor = colorScheme === "light" ? "#F09436" : "#ffffff";
22
- const yellowColor = colorScheme === "light" ? "#FFFF54" : "#ffffff";
5
+ export type VyLogoPrideProps = BoxProps;
23
6
 
24
- const id = useId();
25
- return (
26
- <Box as="svg" viewBox="0 0 107 54" {...boxProps}>
27
- <title>Vy logo pride</title>
28
- <svg
29
- width="108"
30
- height="55"
31
- viewBox="0 0 108 55"
32
- fill="none"
33
- xmlns="http://www.w3.org/2000/svg"
34
- >
35
- <path
36
- fillRule="evenodd"
37
- clipRule="evenodd"
38
- d="M81.4496 34.0577C81.4727 34.0577 81.4914 34.0389 81.4914 34.0158C81.4914 33.9951 81.4762 33.9779 81.4564 33.9747C80.5875 33.8486 79.8027 33.5738 79.0873 33.115C77.4968 32.0951 76.2499 30.1645 75.189 26.9334C75.0494 26.5085 69.7485 8.46796 69.4024 7.29056C68.1947 3.18059 65.9216 1.33839 63.8188 0.561417C62.7398 0.162674 61.7055 0.0441895 60.8829 0.0441895C60.4167 0.0441895 59.4168 0.0441895 59.4168 0.0441895C59.3937 0.0441895 59.375 0.0629034 59.375 0.0859014C59.375 0.106645 59.3902 0.123893 59.4101 0.127162C59.9962 0.211263 60.6246 0.368077 61.262 0.635935C63.2087 1.45371 65.24 3.30719 66.4107 7.29056C66.6722 8.18038 72.0104 26.3533 72.125 26.7112C73.2046 30.0866 74.4763 32.0839 76.1099 33.1244C77.1418 33.7817 78.318 34.0577 79.6817 34.0577H81.4496"
39
- fill={pinkColor}
40
- />
41
- <mask
42
- id={`${id}-a-pride`}
43
- style={{ maskType: "luminance" }}
44
- maskUnits="userSpaceOnUse"
45
- x="0"
46
- y="0"
47
- width="95"
7
+ export const VyLogoPride = forwardRef<SVGSVGElement, VyLogoPrideProps>(
8
+ (props, ref) => {
9
+ // These colors should not be tokenized, as they are logo specific.
10
+
11
+ const pinkColor = "#ED6F99";
12
+ const purpleColor = "#C06CF7";
13
+ const darkPurpleColor = "#821889";
14
+ const greenColor = "#56BDBF";
15
+ const darkGreenColor = "#3E8C26";
16
+ const blueColor = "#3A0692";
17
+ const redColor = "#EA3323";
18
+ const orangeColor = "#F09436";
19
+ const yellowColor = "#FFFF54";
20
+
21
+ const id = useId();
22
+ return (
23
+ <SvgBox ref={ref} viewBox="0 0 107 54" {...(props as any)}>
24
+ <title>Vy logo pride</title>
25
+ <svg
26
+ width="108"
48
27
  height="55"
28
+ viewBox="0 0 108 55"
29
+ fill="none"
30
+ xmlns="http://www.w3.org/2000/svg"
49
31
  >
50
32
  <path
51
33
  fillRule="evenodd"
52
34
  clipRule="evenodd"
53
- d="M0.00585938 0.0339355H94.9827V54.6696H0.00585938V0.0339355Z"
54
- fill="white"
35
+ d="M81.4496 34.0577C81.4727 34.0577 81.4914 34.0389 81.4914 34.0158C81.4914 33.9951 81.4762 33.9779 81.4564 33.9747C80.5875 33.8486 79.8027 33.5738 79.0873 33.115C77.4968 32.0951 76.2499 30.1645 75.189 26.9334C75.0494 26.5085 69.7485 8.46796 69.4024 7.29056C68.1947 3.18059 65.9216 1.33839 63.8188 0.561417C62.7398 0.162674 61.7055 0.0441895 60.8829 0.0441895C60.4167 0.0441895 59.4168 0.0441895 59.4168 0.0441895C59.3937 0.0441895 59.375 0.0629034 59.375 0.0859014C59.375 0.106645 59.3902 0.123893 59.4101 0.127162C59.9962 0.211263 60.6246 0.368077 61.262 0.635935C63.2087 1.45371 65.24 3.30719 66.4107 7.29056C66.6722 8.18038 72.0104 26.3533 72.125 26.7112C73.2046 30.0866 74.4763 32.0839 76.1099 33.1244C77.1418 33.7817 78.318 34.0577 79.6817 34.0577H81.4496"
36
+ fill={pinkColor}
55
37
  />
56
- </mask>
57
- <g mask={`url(#${id}-a-pride)`}>
38
+ <mask
39
+ id={`${id}-a-pride`}
40
+ style={{ maskType: "luminance" }}
41
+ maskUnits="userSpaceOnUse"
42
+ x="0"
43
+ y="0"
44
+ width="95"
45
+ height="55"
46
+ >
47
+ <path
48
+ fillRule="evenodd"
49
+ clipRule="evenodd"
50
+ d="M0.00585938 0.0339355H94.9827V54.6696H0.00585938V0.0339355Z"
51
+ fill="white"
52
+ />
53
+ </mask>
54
+ <g mask={`url(#${id}-a-pride)`}>
55
+ <path
56
+ fillRule="evenodd"
57
+ clipRule="evenodd"
58
+ d="M86.1392 34.0577C86.1622 34.0577 86.1809 34.0389 86.1809 34.0158C86.1809 33.9951 86.1658 33.9779 86.146 33.9747V33.9745C83.7657 33.6665 82.2265 30.3247 81.3764 27.4799C80.4843 24.4948 77.2629 13.5951 75.3455 7.29056C73.4194 0.957342 67.4267 0.0485861 64.7129 0.0441895H64.7137C64.6906 0.0441895 64.6719 0.0629034 64.6719 0.0859014C64.6719 0.106645 64.6869 0.123893 64.7068 0.127162L64.7067 0.127388C67.2413 0.468862 70.8417 2.00375 72.3953 7.29056C73.7591 11.9308 78.0927 26.6723 78.2592 27.1656C79.2998 30.2466 80.5197 32.1068 82.0639 33.1046C83.1032 33.776 84.2891 34.0577 85.6664 34.0577H86.1392"
59
+ fill={purpleColor}
60
+ />
61
+ <path
62
+ fillRule="evenodd"
63
+ clipRule="evenodd"
64
+ d="M23.7089 54.6763C23.4058 54.6763 23.1352 54.6763 22.9803 54.6763C20.8144 54.6763 18.2099 53.5754 16.7766 48.5188L3.8641 4.45414C3.09965 1.80939 1.96226 0.481143 0.0347223 0.151506C0.014881 0.148237 0 0.131101 0 0.110245C0 0.0871344 0.018714 0.0684204 0.0418246 0.0684204H1.98402C4.56565 0.0684204 5.96987 1.36104 6.86386 4.45414C6.86386 4.45414 18.8019 44.9686 19.8869 48.7964C20.6896 51.628 21.628 53.5542 23.0795 54.3328C23.3142 54.4587 23.5119 54.5409 23.7154 54.5932C23.7352 54.5965 23.7506 54.6138 23.7506 54.6345C23.7506 54.6576 23.7319 54.6763 23.7089 54.6763Z"
65
+ fill={darkPurpleColor}
66
+ />
67
+ <path
68
+ fillRule="evenodd"
69
+ clipRule="evenodd"
70
+ d="M19.3365 6.09794C18.1013 1.82472 16.1613 0.0390015 12.5947 0.0390015H10.8543C10.8312 0.0390015 10.8125 0.0577155 10.8125 0.0808261C10.8125 0.101569 10.8277 0.118818 10.8476 0.122087V0.121974C13.6341 0.517899 15.2582 2.35232 16.341 6.09794C16.341 6.09794 27.027 42.4871 28.4146 47.2512C28.7189 46.2219 29.2327 44.4828 29.8791 42.2935C28.6038 37.9117 19.3365 6.09794 19.3365 6.09794"
71
+ fill={greenColor}
72
+ />
73
+ <path
74
+ fillRule="evenodd"
75
+ clipRule="evenodd"
76
+ d="M24.7059 54.6763H25.9753C27.5661 54.6763 28.7056 54.2553 29.5596 53.5597C30.9494 52.4272 31.5822 50.5663 32.1676 48.6028C32.2552 48.309 43.5646 9.95201 43.9629 8.45455C45.3098 3.39196 48.3208 1.18687 51.5334 0.404941C52.0668 0.275183 52.6055 0.184995 53.1431 0.127162H53.1439C53.1638 0.123893 53.1789 0.106645 53.1789 0.0859014C53.1789 0.0629034 53.1602 0.0441895 53.1371 0.0441895H51.7232C47.4872 0.0441895 42.7565 1.72507 40.9662 8.45455C40.3206 10.8814 29.2585 48.309 29.1709 48.6028C28.5854 50.5663 27.9202 52.6362 26.5303 53.7687C25.9647 54.2295 25.4469 54.4781 24.6995 54.5933H24.699C24.6792 54.5966 24.6641 54.614 24.6641 54.6346C24.6641 54.6577 24.6828 54.6764 24.7059 54.6764V54.6763"
77
+ fill={darkGreenColor}
78
+ />
79
+ <path
80
+ fillRule="evenodd"
81
+ clipRule="evenodd"
82
+ d="M82.7992 28.2698L89.4539 6.09287C90.5365 2.34748 92.1604 0.513059 94.9467 0.117021H94.9471C94.9669 0.113752 94.9821 0.0965034 94.9821 0.0757602C94.9821 0.0526495 94.9635 0.0339355 94.9403 0.0339355H93.2001C89.6335 0.0339355 87.6935 1.81966 86.4583 6.09287L81.3125 23.3801C81.3125 23.3801 82.6735 27.9173 82.7992 28.2698"
83
+ fill={darkPurpleColor}
84
+ />
85
+ </g>
58
86
  <path
59
87
  fillRule="evenodd"
60
88
  clipRule="evenodd"
61
- d="M86.1392 34.0577C86.1622 34.0577 86.1809 34.0389 86.1809 34.0158C86.1809 33.9951 86.1658 33.9779 86.146 33.9747V33.9745C83.7657 33.6665 82.2265 30.3247 81.3764 27.4799C80.4843 24.4948 77.2629 13.5951 75.3455 7.29056C73.4194 0.957342 67.4267 0.0485861 64.7129 0.0441895H64.7137C64.6906 0.0441895 64.6719 0.0629034 64.6719 0.0859014C64.6719 0.106645 64.6869 0.123893 64.7068 0.127162L64.7067 0.127388C67.2413 0.468862 70.8417 2.00375 72.3953 7.29056C73.7591 11.9308 78.0927 26.6723 78.2592 27.1656C79.2998 30.2466 80.5197 32.1068 82.0639 33.1046C83.1032 33.776 84.2891 34.0577 85.6664 34.0577H86.1392"
62
- fill={purpleColor}
89
+ d="M100.313 0.0684204H98.4597C95.4268 0.0684204 93.7771 1.58696 92.7268 5.22074C92.7268 5.22074 86.1431 27.2276 86.0874 27.4145C85.6036 28.9698 84.9952 30.48 84.3828 31.4546C84.9626 32.2484 85.5745 32.7345 86.1805 32.8562C87.3236 31.8751 88.2719 30.0574 89.1204 27.2954C89.1653 27.1488 95.731 5.22074 95.731 5.22074C96.6408 2.0733 98.0002 0.512821 100.319 0.151506H100.32C100.34 0.148237 100.355 0.131101 100.355 0.110245C100.355 0.0871344 100.336 0.0684204 100.313 0.0684204"
90
+ fill={blueColor}
63
91
  />
64
92
  <path
65
93
  fillRule="evenodd"
66
94
  clipRule="evenodd"
67
- d="M23.7089 54.6763C23.4058 54.6763 23.1352 54.6763 22.9803 54.6763C20.8144 54.6763 18.2099 53.5754 16.7766 48.5188L3.8641 4.45414C3.09965 1.80939 1.96226 0.481143 0.0347223 0.151506C0.014881 0.148237 0 0.131101 0 0.110245C0 0.0871344 0.018714 0.0684204 0.0418246 0.0684204H1.98402C4.56565 0.0684204 5.96987 1.36104 6.86386 4.45414C6.86386 4.45414 18.8019 44.9686 19.8869 48.7964C20.6896 51.628 21.628 53.5542 23.0795 54.3328C23.3142 54.4587 23.5119 54.5409 23.7154 54.5932C23.7352 54.5965 23.7506 54.6138 23.7506 54.6345C23.7506 54.6576 23.7319 54.6763 23.7089 54.6763Z"
68
- fill={darkPurpleColor}
95
+ d="M86.829 35.1664H83.8473C82.4939 39.632 80.7038 45.5437 80.0385 47.7716C78.1846 53.98 81.1091 54.6188 82.2256 54.6188C82.3769 54.6188 83.722 54.6188 84.5809 54.6188C84.604 54.6187 84.6227 54.6001 84.6227 54.577C84.6227 54.5571 84.6088 54.5403 84.5902 54.5361H84.5899C83.3122 54.232 81.5755 52.9078 83.1092 47.7716C83.1092 47.7716 85.8127 38.6188 86.829 35.1664"
96
+ fill={blueColor}
69
97
  />
70
98
  <path
71
99
  fillRule="evenodd"
72
100
  clipRule="evenodd"
73
- d="M19.3365 6.09794C18.1013 1.82472 16.1613 0.0390015 12.5947 0.0390015H10.8543C10.8312 0.0390015 10.8125 0.0577155 10.8125 0.0808261C10.8125 0.101569 10.8277 0.118818 10.8476 0.122087V0.121974C13.6341 0.517899 15.2582 2.35232 16.341 6.09794C16.341 6.09794 27.027 42.4871 28.4146 47.2512C28.7189 46.2219 29.2327 44.4828 29.8791 42.2935C28.6038 37.9117 19.3365 6.09794 19.3365 6.09794"
101
+ d="M104.248 0.115556C104.265 0.110144 104.277 0.0943614 104.277 0.0757602C104.277 0.0526495 104.258 0.0339355 104.235 0.0339355H103.82C101.239 0.0339355 99.8344 1.32655 98.9403 4.41955C98.9403 4.41955 93.8509 21.5423 92.2501 26.8474C90.6493 32.1524 89.5515 33.5736 87.3782 33.9486L87.2635 33.9747C87.2436 33.978 87.2285 33.9951 87.2285 34.0158C87.2285 34.0389 87.2472 34.0577 87.2703 34.0577H88.7449C92.5299 34.0577 93.9393 31.5339 95.2711 27.0896C96.387 23.3664 102.914 1.55428 102.914 1.55428C103.1 0.938746 103.632 0.300666 104.248 0.11533V0.115556"
74
102
  fill={greenColor}
75
103
  />
104
+ <mask
105
+ id={`${id}-b-pride`}
106
+ style={{ maskType: "luminance" }}
107
+ maskUnits="userSpaceOnUse"
108
+ x="30"
109
+ y="0"
110
+ width="78"
111
+ height="55"
112
+ >
113
+ <path
114
+ fillRule="evenodd"
115
+ clipRule="evenodd"
116
+ d="M30.0938 0.0441895H107.967V54.6696H30.0938V0.0441895Z"
117
+ fill="white"
118
+ />
119
+ </mask>
120
+ <g mask={`url(#${id}-b-pride)`}>
121
+ <path
122
+ fillRule="evenodd"
123
+ clipRule="evenodd"
124
+ d="M89.8289 35.0891C88.7828 38.6493 85.8015 48.8015 85.8015 48.8015C84.2266 54.076 86.7112 54.6188 87.6599 54.6188H89.9623C89.9855 54.6188 90.0042 54.6001 90.0042 54.577C90.0042 54.5571 89.9903 54.5403 89.9717 54.5362V54.5363C88.8916 54.2553 87.4798 53.0991 88.7632 48.8015C88.7632 48.8015 92.0286 37.7282 93.2719 33.5031C92.561 34.2226 91.3615 34.8917 89.8289 35.0891"
125
+ fill={greenColor}
126
+ />
127
+ <path
128
+ fillRule="evenodd"
129
+ clipRule="evenodd"
130
+ d="M95.4467 54.6188C95.4698 54.6188 95.4885 54.6001 95.4885 54.577C95.4885 54.557 95.4747 54.5403 95.4561 54.5362H95.4558C94.5434 54.2765 93.3986 53.2655 94.4728 49.6684C94.4728 49.6684 107.101 6.68958 107.804 4.25563C108.507 1.82169 106.809 0.298979 105.28 0.0692254C105.269 0.0676471 105.219 0.0537807 105.209 0.0862483C105.199 0.118716 105.241 0.138557 105.249 0.143179C105.553 0.303376 105.894 0.672244 105.708 1.30469C105.522 1.93713 91.499 49.6684 91.499 49.6684C90.1586 54.1569 92.273 54.6188 93.0802 54.6188H95.4467"
131
+ fill={darkGreenColor}
132
+ />
133
+ <path
134
+ fillRule="evenodd"
135
+ clipRule="evenodd"
136
+ d="M75.4659 34.0577C75.4889 34.0577 75.5076 34.0389 75.5076 34.0158C75.5076 33.9951 75.4925 33.9778 75.4726 33.9746H75.4723C74.6146 33.8501 73.8387 33.5807 73.1306 33.1321C71.4607 32.0744 70.1687 30.0201 69.0737 26.521C68.9798 26.2215 63.6049 7.92165 63.4194 7.29056C62.2821 3.42105 60.4546 1.5616 58.6517 0.708874C57.557 0.191083 56.4715 0.0441895 55.5553 0.0441895C54.9539 0.0441895 54.4151 0.0441895 53.9784 0.0441895H53.9715C53.9484 0.0441895 53.9297 0.0629034 53.9297 0.0859014C53.9297 0.106645 53.9448 0.123893 53.9646 0.127162V0.127275C54.26 0.171918 58.362 0.298745 60.4275 7.29056C62.493 14.2825 64.9683 22.6405 65.8045 25.5908C67.6133 31.9722 69.9469 34.0577 73.6985 34.0577H75.4659"
137
+ fill={redColor}
138
+ />
139
+ <path
140
+ fillRule="evenodd"
141
+ clipRule="evenodd"
142
+ d="M56.4576 2.44421C56.4559 2.44568 56.4541 2.44703 56.4524 2.4485C54.944 3.74292 53.6961 5.66449 52.9539 8.45445C52.8754 8.74959 41.6662 46.889 41.4206 47.7167C40.4784 50.8926 39.6893 54.0469 36.1209 54.5932C36.101 54.5965 36.0859 54.6138 36.0859 54.6345C36.0859 54.6576 36.1047 54.6763 36.1278 54.6763H36.8373C36.8373 54.6763 37.3489 54.6683 37.4515 54.6642C41.0756 54.5179 42.8818 52.978 44.4271 47.7167C45.5556 43.8746 55.8691 8.75883 55.9604 8.45445C56.4006 6.98517 56.9293 5.3123 57.6882 3.84641C57.53 3.59208 56.9713 2.87385 56.4576 2.44421"
143
+ fill={orangeColor}
144
+ />
145
+ <path
146
+ fillRule="evenodd"
147
+ clipRule="evenodd"
148
+ d="M54.7756 1.4669C53.6292 1.14087 52.0012 1.22801 50.5238 2.41218C49.0463 3.59635 47.7228 5.60664 47.0466 8.14847C46.968 8.4435 35.2535 48.309 35.1658 48.6028C34.5804 50.5662 33.9476 52.4272 32.5578 53.5597C31.9265 54.0741 31.139 54.4382 30.1287 54.5931V54.5932C30.1089 54.5965 30.0938 54.6138 30.0938 54.6345C30.0938 54.6576 30.1125 54.6763 30.1355 54.6763H31.9702C33.561 54.6763 34.7005 54.2555 35.5545 53.5597C36.9444 52.4272 37.5771 50.5663 38.1625 48.6028C38.2502 48.309 49.8795 8.74957 49.958 8.45443C50.7002 5.66447 51.9481 3.7429 53.4565 2.44848C53.8916 2.07499 54.3488 1.75505 54.8217 1.48077C54.8141 1.47817 54.7985 1.47344 54.7756 1.4669"
149
+ fill={yellowColor}
150
+ />
151
+ </g>
76
152
  <path
77
153
  fillRule="evenodd"
78
154
  clipRule="evenodd"
79
- d="M24.7059 54.6763H25.9753C27.5661 54.6763 28.7056 54.2553 29.5596 53.5597C30.9494 52.4272 31.5822 50.5663 32.1676 48.6028C32.2552 48.309 43.5646 9.95201 43.9629 8.45455C45.3098 3.39196 48.3208 1.18687 51.5334 0.404941C52.0668 0.275183 52.6055 0.184995 53.1431 0.127162H53.1439C53.1638 0.123893 53.1789 0.106645 53.1789 0.0859014C53.1789 0.0629034 53.1602 0.0441895 53.1371 0.0441895H51.7232C47.4872 0.0441895 42.7565 1.72507 40.9662 8.45455C40.3206 10.8814 29.2585 48.309 29.1709 48.6028C28.5854 50.5663 27.9202 52.6362 26.5303 53.7687C25.9647 54.2295 25.4469 54.4781 24.6995 54.5933H24.699C24.6792 54.5966 24.6641 54.614 24.6641 54.6346C24.6641 54.6577 24.6828 54.6764 24.7059 54.6764V54.6763"
80
- fill={darkGreenColor}
81
- />
82
- <path
83
- fillRule="evenodd"
84
- clipRule="evenodd"
85
- d="M82.7992 28.2698L89.4539 6.09287C90.5365 2.34748 92.1604 0.513059 94.9467 0.117021H94.9471C94.9669 0.113752 94.9821 0.0965034 94.9821 0.0757602C94.9821 0.0526495 94.9635 0.0339355 94.9403 0.0339355H93.2001C89.6335 0.0339355 87.6935 1.81966 86.4583 6.09287L81.3125 23.3801C81.3125 23.3801 82.6735 27.9173 82.7992 28.2698"
86
- fill={darkPurpleColor}
87
- />
88
- </g>
89
- <path
90
- fillRule="evenodd"
91
- clipRule="evenodd"
92
- d="M100.313 0.0684204H98.4597C95.4268 0.0684204 93.7771 1.58696 92.7268 5.22074C92.7268 5.22074 86.1431 27.2276 86.0874 27.4145C85.6036 28.9698 84.9952 30.48 84.3828 31.4546C84.9626 32.2484 85.5745 32.7345 86.1805 32.8562C87.3236 31.8751 88.2719 30.0574 89.1204 27.2954C89.1653 27.1488 95.731 5.22074 95.731 5.22074C96.6408 2.0733 98.0002 0.512821 100.319 0.151506H100.32C100.34 0.148237 100.355 0.131101 100.355 0.110245C100.355 0.0871344 100.336 0.0684204 100.313 0.0684204"
93
- fill={blueColor}
94
- />
95
- <path
96
- fillRule="evenodd"
97
- clipRule="evenodd"
98
- d="M86.829 35.1664H83.8473C82.4939 39.632 80.7038 45.5437 80.0385 47.7716C78.1846 53.98 81.1091 54.6188 82.2256 54.6188C82.3769 54.6188 83.722 54.6188 84.5809 54.6188C84.604 54.6187 84.6227 54.6001 84.6227 54.577C84.6227 54.5571 84.6088 54.5403 84.5902 54.5361H84.5899C83.3122 54.232 81.5755 52.9078 83.1092 47.7716C83.1092 47.7716 85.8127 38.6188 86.829 35.1664"
99
- fill={blueColor}
100
- />
101
- <path
102
- fillRule="evenodd"
103
- clipRule="evenodd"
104
- d="M104.248 0.115556C104.265 0.110144 104.277 0.0943614 104.277 0.0757602C104.277 0.0526495 104.258 0.0339355 104.235 0.0339355H103.82C101.239 0.0339355 99.8344 1.32655 98.9403 4.41955C98.9403 4.41955 93.8509 21.5423 92.2501 26.8474C90.6493 32.1524 89.5515 33.5736 87.3782 33.9486L87.2635 33.9747C87.2436 33.978 87.2285 33.9951 87.2285 34.0158C87.2285 34.0389 87.2472 34.0577 87.2703 34.0577H88.7449C92.5299 34.0577 93.9393 31.5339 95.2711 27.0896C96.387 23.3664 102.914 1.55428 102.914 1.55428C103.1 0.938746 103.632 0.300666 104.248 0.11533V0.115556"
105
- fill={greenColor}
106
- />
107
- <mask
108
- id={`${id}-b-pride`}
109
- style={{ maskType: "luminance" }}
110
- maskUnits="userSpaceOnUse"
111
- x="30"
112
- y="0"
113
- width="78"
114
- height="55"
115
- >
116
- <path
117
- fillRule="evenodd"
118
- clipRule="evenodd"
119
- d="M30.0938 0.0441895H107.967V54.6696H30.0938V0.0441895Z"
120
- fill="white"
121
- />
122
- </mask>
123
- <g mask={`url(#${id}-b-pride)`}>
124
- <path
125
- fillRule="evenodd"
126
- clipRule="evenodd"
127
- d="M89.8289 35.0891C88.7828 38.6493 85.8015 48.8015 85.8015 48.8015C84.2266 54.076 86.7112 54.6188 87.6599 54.6188H89.9623C89.9855 54.6188 90.0042 54.6001 90.0042 54.577C90.0042 54.5571 89.9903 54.5403 89.9717 54.5362V54.5363C88.8916 54.2553 87.4798 53.0991 88.7632 48.8015C88.7632 48.8015 92.0286 37.7282 93.2719 33.5031C92.561 34.2226 91.3615 34.8917 89.8289 35.0891"
128
- fill={greenColor}
129
- />
130
- <path
131
- fillRule="evenodd"
132
- clipRule="evenodd"
133
- d="M95.4467 54.6188C95.4698 54.6188 95.4885 54.6001 95.4885 54.577C95.4885 54.557 95.4747 54.5403 95.4561 54.5362H95.4558C94.5434 54.2765 93.3986 53.2655 94.4728 49.6684C94.4728 49.6684 107.101 6.68958 107.804 4.25563C108.507 1.82169 106.809 0.298979 105.28 0.0692254C105.269 0.0676471 105.219 0.0537807 105.209 0.0862483C105.199 0.118716 105.241 0.138557 105.249 0.143179C105.553 0.303376 105.894 0.672244 105.708 1.30469C105.522 1.93713 91.499 49.6684 91.499 49.6684C90.1586 54.1569 92.273 54.6188 93.0802 54.6188H95.4467"
134
- fill={darkGreenColor}
135
- />
136
- <path
137
- fillRule="evenodd"
138
- clipRule="evenodd"
139
- d="M75.4659 34.0577C75.4889 34.0577 75.5076 34.0389 75.5076 34.0158C75.5076 33.9951 75.4925 33.9778 75.4726 33.9746H75.4723C74.6146 33.8501 73.8387 33.5807 73.1306 33.1321C71.4607 32.0744 70.1687 30.0201 69.0737 26.521C68.9798 26.2215 63.6049 7.92165 63.4194 7.29056C62.2821 3.42105 60.4546 1.5616 58.6517 0.708874C57.557 0.191083 56.4715 0.0441895 55.5553 0.0441895C54.9539 0.0441895 54.4151 0.0441895 53.9784 0.0441895H53.9715C53.9484 0.0441895 53.9297 0.0629034 53.9297 0.0859014C53.9297 0.106645 53.9448 0.123893 53.9646 0.127162V0.127275C54.26 0.171918 58.362 0.298745 60.4275 7.29056C62.493 14.2825 64.9683 22.6405 65.8045 25.5908C67.6133 31.9722 69.9469 34.0577 73.6985 34.0577H75.4659"
140
- fill={redColor}
141
- />
142
- <path
143
- fillRule="evenodd"
144
- clipRule="evenodd"
145
- d="M56.4576 2.44421C56.4559 2.44568 56.4541 2.44703 56.4524 2.4485C54.944 3.74292 53.6961 5.66449 52.9539 8.45445C52.8754 8.74959 41.6662 46.889 41.4206 47.7167C40.4784 50.8926 39.6893 54.0469 36.1209 54.5932C36.101 54.5965 36.0859 54.6138 36.0859 54.6345C36.0859 54.6576 36.1047 54.6763 36.1278 54.6763H36.8373C36.8373 54.6763 37.3489 54.6683 37.4515 54.6642C41.0756 54.5179 42.8818 52.978 44.4271 47.7167C45.5556 43.8746 55.8691 8.75883 55.9604 8.45445C56.4006 6.98517 56.9293 5.3123 57.6882 3.84641C57.53 3.59208 56.9713 2.87385 56.4576 2.44421"
146
- fill={orangeColor}
147
- />
148
- <path
149
- fillRule="evenodd"
150
- clipRule="evenodd"
151
- d="M54.7756 1.4669C53.6292 1.14087 52.0012 1.22801 50.5238 2.41218C49.0463 3.59635 47.7228 5.60664 47.0466 8.14847C46.968 8.4435 35.2535 48.309 35.1658 48.6028C34.5804 50.5662 33.9476 52.4272 32.5578 53.5597C31.9265 54.0741 31.139 54.4382 30.1287 54.5931V54.5932C30.1089 54.5965 30.0938 54.6138 30.0938 54.6345C30.0938 54.6576 30.1125 54.6763 30.1355 54.6763H31.9702C33.561 54.6763 34.7005 54.2555 35.5545 53.5597C36.9444 52.4272 37.5771 50.5663 38.1625 48.6028C38.2502 48.309 49.8795 8.74957 49.958 8.45443C50.7002 5.66447 51.9481 3.7429 53.4565 2.44848C53.8916 2.07499 54.3488 1.75505 54.8217 1.48077C54.8141 1.47817 54.7985 1.47344 54.7756 1.4669"
152
- fill={yellowColor}
155
+ d="M27.0349 51.2629C26.519 50.5125 26.0823 49.6082 25.7735 48.5189C25.328 46.9472 13.0878 5.22074 13.0878 5.22074C12.0376 1.58696 10.3878 0.0684204 7.355 0.0684204H5.50276C5.47965 0.0684204 5.46094 0.0872471 5.46094 0.110245C5.46094 0.131101 5.47616 0.148237 5.49589 0.151506C7.81439 0.512821 9.17375 2.0733 10.0835 5.22074L22.7739 48.5189C23.4303 50.835 24.3325 52.3205 25.3258 53.2511C26.0299 52.8441 26.6295 52.1809 27.0349 51.2629"
156
+ fill={blueColor}
153
157
  />
154
- </g>
155
- <path
156
- fillRule="evenodd"
157
- clipRule="evenodd"
158
- d="M27.0349 51.2629C26.519 50.5125 26.0823 49.6082 25.7735 48.5189C25.328 46.9472 13.0878 5.22074 13.0878 5.22074C12.0376 1.58696 10.3878 0.0684204 7.355 0.0684204H5.50276C5.47965 0.0684204 5.46094 0.0872471 5.46094 0.110245C5.46094 0.131101 5.47616 0.148237 5.49589 0.151506C7.81439 0.512821 9.17375 2.0733 10.0835 5.22074L22.7739 48.5189C23.4303 50.835 24.3325 52.3205 25.3258 53.2511C26.0299 52.8441 26.6295 52.1809 27.0349 51.2629"
159
- fill={blueColor}
160
- />
161
- </svg>
162
- </Box>
163
- );
164
- };
158
+ </svg>
159
+ </SvgBox>
160
+ );
161
+ },
162
+ );
@@ -1,18 +1,30 @@
1
- import { BoxProps, Center, useMultiStyleConfig } from "@chakra-ui/react";
2
- import React from "react";
1
+ "use client";
2
+ import {
3
+ BoxProps,
4
+ Center,
5
+ RecipeVariantProps,
6
+ useSlotRecipe,
7
+ } from "@chakra-ui/react";
8
+ import React, { forwardRef, PropsWithChildren } from "react";
3
9
  import { createTexts, useTranslation } from "..";
4
10
  import {
5
11
  Backward15MediaControllerFill30Icon,
6
12
  Forward15MediaControllerFill30Icon,
7
13
  } from "@vygruppen/spor-icon-react";
14
+ import { mediaControllerSlotRecipe } from "../theme/slot-recipes/media-controller-button";
15
+
16
+ export type MediaControllerVariantProps = RecipeVariantProps<
17
+ typeof mediaControllerSlotRecipe
18
+ >;
8
19
 
9
- type JumpButtonProps = BoxProps & {
10
- onClick: () => void;
11
- "aria-label"?: string;
12
- isDisabled?: boolean;
13
- direction: "backward" | "forward";
14
- size: "sm" | "lg";
15
- };
20
+ type JumpButtonProps = BoxProps &
21
+ PropsWithChildren<MediaControllerVariantProps> & {
22
+ onClick: () => void;
23
+ "aria-label"?: string;
24
+ disabled?: boolean;
25
+ direction: "backward" | "forward";
26
+ size: "sm" | "lg";
27
+ };
16
28
 
17
29
  /**
18
30
  * A jump button.
@@ -25,36 +37,34 @@ type JumpButtonProps = BoxProps & {
25
37
  * <JumpButton direction="forward" onClick={onGoForward} />
26
38
  * ```
27
39
  */
28
- export const JumpButton = ({
29
- direction,
30
- isDisabled,
31
- size = "sm",
32
- ...props
33
- }: JumpButtonProps) => {
34
- const { t } = useTranslation();
35
- const styles = useMultiStyleConfig("MediaControllerButton", {
36
- variant: "jumpSkip",
37
- size,
38
- });
40
+ export const JumpButton = forwardRef<HTMLButtonElement, JumpButtonProps>(
41
+ (props, ref) => {
42
+ const { direction, disabled, size = "sm" } = props;
43
+ const { t } = useTranslation();
39
44
 
40
- return (
41
- <Center
42
- as="button"
43
- sx={styles.container}
44
- aria-label={
45
- direction === "forward" ? t(texts.forward) : t(texts.backward)
46
- }
47
- disabled={isDisabled}
48
- {...props}
49
- >
50
- {direction === "forward" ? (
51
- <Forward15MediaControllerFill30Icon sx={styles.icon} />
52
- ) : (
53
- <Backward15MediaControllerFill30Icon sx={styles.icon} />
54
- )}
55
- </Center>
56
- );
57
- };
45
+ const recipe = useSlotRecipe({ key: "mediaControllerButton" });
46
+ const styles = recipe({ variant: "jumpSkip", size });
47
+
48
+ return (
49
+ <Center
50
+ as="button"
51
+ ref={ref}
52
+ css={styles.root}
53
+ aria-label={
54
+ direction === "forward" ? t(texts.forward) : t(texts.backward)
55
+ }
56
+ disabled={disabled}
57
+ {...props}
58
+ >
59
+ {direction === "forward" ? (
60
+ <Forward15MediaControllerFill30Icon css={styles.icon} />
61
+ ) : (
62
+ <Backward15MediaControllerFill30Icon css={styles.icon} />
63
+ )}
64
+ </Center>
65
+ );
66
+ },
67
+ );
58
68
 
59
69
  const texts = createTexts({
60
70
  forward: {
@@ -1,58 +1,60 @@
1
- import { BoxProps, Center, useMultiStyleConfig } from "@chakra-ui/react";
2
- import React from "react";
3
- import { createTexts, useTranslation } from "..";
1
+ "use client";
2
+ import { BoxProps, Center, useSlotRecipe } from "@chakra-ui/react";
3
+ import React, { forwardRef, PropsWithChildren } from "react";
4
+ import { createTexts, MediaControllerVariantProps, useTranslation } from "..";
4
5
  import {
5
6
  PauseMediaControllerFill24Icon,
6
7
  PlayMediaControllerFill24Icon,
7
8
  } from "@vygruppen/spor-icon-react";
8
9
 
9
- type PlayPauseButtonProps = BoxProps & {
10
- onClick: () => void;
11
- "aria-label"?: string;
12
- isDisabled?: boolean;
13
- isPlaying: boolean;
14
- size: "sm" | "lg";
15
- };
10
+ type PlayPauseButtonProps = BoxProps &
11
+ PropsWithChildren<MediaControllerVariantProps> & {
12
+ onClick: () => void;
13
+ "aria-label"?: string;
14
+ disabled?: boolean;
15
+ playing: boolean;
16
+ size: "sm" | "lg";
17
+ };
16
18
 
17
19
  /**
18
20
  * A playback button.
19
21
  *
20
22
  * Intended to start or pause playback of a video, podcast, audiobook or similar.
21
23
  *
22
- * Specify the current playing state with `isPlaying`.
24
+ * Specify the current playing state with `playing`.
23
25
  *
24
26
  * ```tsx
25
- * <PlayPauseButton isPlaying={isPlaying} onClick={onPlaybackClick} />
27
+ * <PlayPauseButton playing={playing} onClick={onPlaybackClick} />
26
28
  * ```
27
29
  */
28
- export const PlayPauseButton = ({
29
- size = "lg",
30
- isPlaying,
31
- isDisabled,
32
- ...props
33
- }: PlayPauseButtonProps) => {
30
+ export const PlayPauseButton = forwardRef<
31
+ HTMLButtonElement,
32
+ PlayPauseButtonProps
33
+ >((props, ref) => {
34
+ const { playing, disabled, size = "sm" } = props;
35
+
34
36
  const { t } = useTranslation();
35
- const styles = useMultiStyleConfig("MediaControllerButton", {
36
- variant: "play",
37
- size,
38
- });
37
+
38
+ const recipe = useSlotRecipe({ key: "mediaControllerButton" });
39
+ const styles = recipe({ variant: "play", size });
39
40
 
40
41
  return (
41
42
  <Center
43
+ ref={ref}
42
44
  as="button"
43
- sx={styles.container}
44
- aria-label={isPlaying ? t(texts.pause) : t(texts.play)}
45
- disabled={isDisabled}
45
+ css={styles.root}
46
+ aria-label={playing ? t(texts.pause) : t(texts.play)}
47
+ disabled={disabled}
46
48
  {...props}
47
49
  >
48
- {isPlaying ? (
49
- <PauseMediaControllerFill24Icon sx={styles.icon} />
50
+ {playing ? (
51
+ <PauseMediaControllerFill24Icon css={styles.icon} />
50
52
  ) : (
51
- <PlayMediaControllerFill24Icon sx={styles.icon} />
53
+ <PlayMediaControllerFill24Icon css={styles.icon} />
52
54
  )}
53
55
  </Center>
54
56
  );
55
- };
57
+ });
56
58
 
57
59
  const texts = createTexts({
58
60
  pause: {
@@ -1,18 +1,20 @@
1
- import { BoxProps, Center, useMultiStyleConfig } from "@chakra-ui/react";
2
- import React from "react";
3
- import { createTexts, useTranslation } from "..";
1
+ "use client";
2
+ import { BoxProps, Center, useSlotRecipe } from "@chakra-ui/react";
3
+ import React, { forwardRef, PropsWithChildren } from "react";
4
+ import { createTexts, MediaControllerVariantProps, useTranslation } from "..";
4
5
  import {
5
6
  NextMediaControllerFill30Icon,
6
7
  PreviousMediaControllerFill30Icon,
7
8
  } from "@vygruppen/spor-icon-react";
8
9
 
9
- type SkipButtonProps = BoxProps & {
10
- onClick: () => void;
11
- "aria-label"?: string;
12
- isDisabled?: boolean;
13
- direction: "backward" | "forward";
14
- size: "sm" | "lg";
15
- };
10
+ type SkipButtonProps = BoxProps &
11
+ PropsWithChildren<MediaControllerVariantProps> & {
12
+ onClick: () => void;
13
+ "aria-label"?: string;
14
+ disabled?: boolean;
15
+ direction: "backward" | "forward";
16
+ size: "sm" | "lg";
17
+ };
16
18
  /**
17
19
  * A skip button.
18
20
  *
@@ -24,34 +26,33 @@ type SkipButtonProps = BoxProps & {
24
26
  * <SkipButton direction="forward" onClick={onNextChapter} />
25
27
  * ```
26
28
  */
27
- export const SkipButton = ({
28
- direction,
29
- isDisabled,
30
- size = "sm",
31
- ...props
32
- }: SkipButtonProps) => {
33
- const { t } = useTranslation();
34
- const styles = useMultiStyleConfig("MediaControllerButton", {
35
- variant: "jumpSkip",
36
- size,
37
- });
29
+ export const SkipButton = forwardRef<HTMLButtonElement, SkipButtonProps>(
30
+ (props, ref) => {
31
+ const { direction, disabled, size = "sm" } = props;
38
32
 
39
- return (
40
- <Center
41
- as="button"
42
- sx={styles.container}
43
- aria-label={direction === "forward" ? t(texts.next) : t(texts.previous)}
44
- disabled={isDisabled}
45
- {...props}
46
- >
47
- {direction === "forward" ? (
48
- <NextMediaControllerFill30Icon sx={styles.icon} />
49
- ) : (
50
- <PreviousMediaControllerFill30Icon sx={styles.icon} />
51
- )}
52
- </Center>
53
- );
54
- };
33
+ const { t } = useTranslation();
34
+
35
+ const recipe = useSlotRecipe({ key: "mediaControllerButton" });
36
+ const styles = recipe({ variant: "jumpSkip", size });
37
+
38
+ return (
39
+ <Center
40
+ ref={ref}
41
+ as="button"
42
+ css={styles.root}
43
+ aria-label={direction === "forward" ? t(texts.next) : t(texts.previous)}
44
+ disabled={disabled}
45
+ {...props}
46
+ >
47
+ {direction === "forward" ? (
48
+ <NextMediaControllerFill30Icon css={styles.icon} />
49
+ ) : (
50
+ <PreviousMediaControllerFill30Icon css={styles.icon} />
51
+ )}
52
+ </Center>
53
+ );
54
+ },
55
+ );
55
56
 
56
57
  const texts = createTexts({
57
58
  next: {