@orangesk/orange-design-system 2.0.0-beta.46 → 2.0.0-beta.48

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 (129) hide show
  1. package/build/components/BlockAction/style.css +1 -1
  2. package/build/components/BlockAction/style.css.map +1 -1
  3. package/build/components/Breadcrumbs/style.css +1 -1
  4. package/build/components/Breadcrumbs/style.css.map +1 -1
  5. package/build/components/Carousel/style.css +1 -1
  6. package/build/components/Carousel/style.css.map +1 -1
  7. package/build/components/DocumentationSidebar/style.css +1 -1
  8. package/build/components/DocumentationSidebar/style.css.map +1 -1
  9. package/build/components/Footer/style.css +1 -1
  10. package/build/components/Footer/style.css.map +1 -1
  11. package/build/components/Icon/style.css +1 -1
  12. package/build/components/Icon/style.css.map +1 -1
  13. package/build/components/Link/style.css +1 -1
  14. package/build/components/Link/style.css.map +1 -1
  15. package/build/components/Loader/style.css +1 -1
  16. package/build/components/Loader/style.css.map +1 -1
  17. package/build/components/Megamenu/style.css +1 -1
  18. package/build/components/Megamenu/style.css.map +1 -1
  19. package/build/components/Pagination/style.css +1 -1
  20. package/build/components/Pagination/style.css.map +1 -1
  21. package/build/components/PromotionCard/style.css +1 -1
  22. package/build/components/PromotionCard/style.css.map +1 -1
  23. package/build/components/Section/style.css +1 -1
  24. package/build/components/Section/style.css.map +1 -1
  25. package/build/components/SocialButton/style.css +1 -1
  26. package/build/components/SocialButton/style.css.map +1 -1
  27. package/build/components/Stepbar/style.css +1 -1
  28. package/build/components/Stepbar/style.css.map +1 -1
  29. package/build/components/Table/style.css +1 -1
  30. package/build/components/Table/style.css.map +1 -1
  31. package/build/components/Tabs/style.css +1 -1
  32. package/build/components/Tabs/style.css.map +1 -1
  33. package/build/components/Tag/style.css +1 -1
  34. package/build/components/Tag/style.css.map +1 -1
  35. package/build/components/Tile/style.css +1 -1
  36. package/build/components/Tile/style.css.map +1 -1
  37. package/build/components/index.js +1 -1
  38. package/build/components/index.js.map +1 -1
  39. package/build/components/tsconfig.tsbuildinfo +1 -1
  40. package/build/components/types/index.d.ts +4 -15
  41. package/build/components/types/src/components/Carousel/Carousel.static.d.ts +4 -1
  42. package/build/components/types/src/components/Forms/Autocomplete/Autocomplete.static.d.ts +11 -0
  43. package/build/components/types/src/components/Forms/Group/Group.d.ts +1 -1
  44. package/build/components/types/src/components/Preview/CodeExample.d.ts +1 -0
  45. package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -0
  46. package/build/components/types/src/components/Preview/getElementDisplayName.d.ts +1 -0
  47. package/build/components/types/src/components/Tabs/Tabs.d.ts +0 -4
  48. package/build/components/types/src/components/Tabs/Tabs.static.d.ts +12 -0
  49. package/build/components/types/src/components/Tile/Tile.d.ts +3 -11
  50. package/build/lib/base.css +1 -1
  51. package/build/lib/base.css.map +1 -1
  52. package/build/lib/components.css +1 -1
  53. package/build/lib/components.css.map +1 -1
  54. package/build/lib/footer.css +1 -1
  55. package/build/lib/footer.css.map +1 -1
  56. package/build/lib/megamenu.css +1 -1
  57. package/build/lib/megamenu.css.map +1 -1
  58. package/build/lib/scripts.js +1 -1
  59. package/build/lib/scripts.js.map +1 -1
  60. package/build/lib/style.css +1 -1
  61. package/build/lib/style.css.map +1 -1
  62. package/build/lib/tsconfig.tsbuildinfo +1 -1
  63. package/build/lib/utilities.css +1 -1
  64. package/build/lib/utilities.css.map +1 -1
  65. package/build/search-index.json +6 -6
  66. package/package.json +24 -24
  67. package/src/components/BlockAction/styles/style.scss +6 -4
  68. package/src/components/Breadcrumbs/styles/mixins.scss +15 -8
  69. package/src/components/Breadcrumbs/styles/style.scss +2 -1
  70. package/src/components/Carousel/Carousel.static.ts +29 -1
  71. package/src/components/Carousel/styles/mixins.scss +22 -2
  72. package/src/components/Carousel/tests/Carousel.static.test.jsx +50 -0
  73. package/src/components/DocumentationSidebar/DocumentationSidebar.tsx +21 -34
  74. package/src/components/DocumentationSidebar/styles/style.scss +0 -6
  75. package/src/components/Footer/styles/mixins.scss +2 -1
  76. package/src/components/Forms/Autocomplete/Autocomplete.static.ts +190 -14
  77. package/src/components/Forms/Autocomplete/styles/style.scss +61 -8
  78. package/src/components/Forms/Autocomplete/tests/Autocomplete.static.test.ts +187 -0
  79. package/src/components/Forms/Checkbox/styles/style.scss +13 -6
  80. package/src/components/Forms/DatePicker/styles/style.scss +1 -2
  81. package/src/components/Forms/Group/Group.tsx +4 -1
  82. package/src/components/Forms/Group/styles/config.scss +1 -1
  83. package/src/components/Forms/Group/styles/mixins.scss +17 -0
  84. package/src/components/Forms/Group/tests/Group.unit.test.jsx +9 -0
  85. package/src/components/Forms/InputStepper/styles/style.scss +15 -8
  86. package/src/components/Forms/TextArea/styles/config.scss +1 -0
  87. package/src/components/Forms/TextArea/styles/mixins.scss +7 -1
  88. package/src/components/Forms/TextInput/styles/config.scss +3 -1
  89. package/src/components/Forms/TextInput/styles/mixins.scss +7 -1
  90. package/src/components/Forms/TextInput/styles/style.scss +17 -12
  91. package/src/components/Forms/styles/config.scss +3 -2
  92. package/src/components/Icon/styles/style.scss +2 -1
  93. package/src/components/Link/styles/mixins.scss +0 -1
  94. package/src/components/Loader/styles/style.scss +0 -2
  95. package/src/components/Megamenu/Megamenu.tsx +2 -2
  96. package/src/components/Megamenu/MegamenuBlog.tsx +2 -2
  97. package/src/components/Megamenu/styles/mixins.scss +20 -12
  98. package/src/components/Pagination/styles/mixins.scss +8 -6
  99. package/src/components/Pagination/styles/style.scss +0 -4
  100. package/src/components/Preview/CodeExample.tsx +66 -25
  101. package/src/components/Preview/Preview.tsx +26 -13
  102. package/src/components/Preview/PreviewGenerator.tsx +72 -34
  103. package/src/components/Preview/getElementDisplayName.ts +25 -0
  104. package/src/components/PromotionCard/styles/mixins.scss +2 -1
  105. package/src/components/Section/styles/mixins.scss +27 -5
  106. package/src/components/SocialButton/styles/config.scss +2 -2
  107. package/src/components/Stepbar/styles/config.scss +34 -17
  108. package/src/components/Stepbar/styles/mixins.scss +5 -3
  109. package/src/components/Stepbar/styles/style.scss +4 -2
  110. package/src/components/Table/styles/mixins.scss +6 -3
  111. package/src/components/Tabs/Tabs.static.ts +157 -30
  112. package/src/components/Tabs/Tabs.tsx +62 -67
  113. package/src/components/Tabs/styles/config.scss +18 -25
  114. package/src/components/Tabs/styles/mixins.scss +93 -28
  115. package/src/components/Tabs/styles/style.scss +4 -15
  116. package/src/components/Tabs/tests/Tabs.unit.test.jsx +111 -0
  117. package/src/components/Tag/styles/config.scss +1 -1
  118. package/src/components/Tag/styles/style.scss +22 -5
  119. package/src/components/Tile/Tile.tsx +18 -42
  120. package/src/components/Tile/styles/mixins.scss +45 -47
  121. package/src/components/Tile/styles/style.scss +5 -17
  122. package/src/components/Tile/tests/Tile.unit.test.jsx +9 -78
  123. package/src/styles/base/globals.scss +2 -0
  124. package/src/styles/tokens/color-vars.scss +0 -2
  125. package/src/styles/utilities/color.scss +0 -153
  126. package/src/styles/utilities/horizontal-scroll.scss +7 -2
  127. package/src/styles/utilities/text.scss +0 -1
  128. package/src/components/Tile/CHANGELOG.md +0 -28
  129. package/src/components/Tile/styles/config.scss +0 -7
@@ -17,6 +17,7 @@ import { Card } from "../Card";
17
17
  import { Dropdown, DropdownItem } from "../Dropdown";
18
18
  import { Icon } from "../Icon";
19
19
  import CodeExample from "./CodeExample";
20
+ import { getElementDisplayName } from "./getElementDisplayName";
20
21
  import PreviewTitleBar from "./PreviewTitleBar";
21
22
 
22
23
  import "./styles/style.scss";
@@ -32,16 +33,7 @@ const generateJSXString = (
32
33
  showDefaultProps: false,
33
34
  showFunctions: true,
34
35
  functionValue: (fn: any) => fn.name || "Function",
35
- displayName: (el: any) => {
36
- // More robust display name handling
37
- if (!el) return "Unknown";
38
- return (
39
- el?.props?.mdxType ||
40
- el?.type?.displayName ||
41
- el?.type?.name ||
42
- (typeof el?.type === "string" ? el.type : "Component")
43
- );
44
- },
36
+ displayName: getElementDisplayName,
45
37
  filterProps: ["mdxType", "originalType"],
46
38
  useBooleanShorthandSyntax: false,
47
39
  sortProps: false,
@@ -116,7 +108,6 @@ const PREVIEW_BREAKPOINTS: PreviewBreakpoint[] = [
116
108
  ];
117
109
 
118
110
  const IFRAME_VIEWPORT_GUTTER = 16;
119
-
120
111
  const getScreenLikeMinHeight = (width: number | null): number => {
121
112
  if (width === null) {
122
113
  return 1;
@@ -284,6 +275,7 @@ interface PreviewProps {
284
275
  codeTypes?: string[];
285
276
  enableFullscreen?: boolean;
286
277
  hasCodePreview?: boolean;
278
+ hasMultipleCodeRoots?: boolean;
287
279
  html?: string;
288
280
  jsxCode?: string; // Pre-generated JSX string (from server component)
289
281
  disableBreakpoints?: boolean;
@@ -305,11 +297,10 @@ const getBackgroundsAsArray = (
305
297
  return acc;
306
298
  }, []);
307
299
 
308
- // Map names to only the 6 allowed background classes
300
+ // Map names to allowed background/surface classes
309
301
  const getBgClassFromName = (name: string): string => {
310
302
  const normalized = name.toLowerCase().replace(/\s+/g, "-");
311
303
 
312
- // Only allow these background classes
313
304
  const allowedBackgrounds = [
314
305
  "background-primary",
315
306
  "background-secondary",
@@ -318,6 +309,13 @@ const getBgClassFromName = (name: string): string => {
318
309
  "background-accent1-blog",
319
310
  "background-accent2-blog",
320
311
  "background-none",
312
+ "surface-primary",
313
+ "surface-secondary",
314
+ "surface-tertiary",
315
+ "surface-subtle",
316
+ "surface-moderate",
317
+ "surface-contrast",
318
+ "surface-accent",
321
319
  ];
322
320
 
323
321
  // Return the class if it's in the allowed list, otherwise default to background-primary
@@ -335,6 +333,13 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
335
333
  "Background Accent": "background-accent",
336
334
  "Background Accent1 Blog": "background-accent1-blog",
337
335
  "Background Accent2 Blog": "background-accent2-blog",
336
+ "Surface Primary": "surface-primary",
337
+ "Surface Secondary": "surface-secondary",
338
+ "Surface Tertiary": "surface-tertiary",
339
+ "Surface Subtle": "surface-subtle",
340
+ "Surface Moderate": "surface-moderate",
341
+ "Surface Contrast": "surface-contrast",
342
+ "Surface Accent": "surface-accent",
338
343
  },
339
344
  bgThemeExcludedColors = [],
340
345
  children,
@@ -344,6 +349,7 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
344
349
  codeTypes = ["html", "jsx"],
345
350
  enableFullscreen = true,
346
351
  hasCodePreview = true,
352
+ hasMultipleCodeRoots = false,
347
353
  html,
348
354
  jsxCode,
349
355
  isDark = false,
@@ -419,6 +425,33 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
419
425
 
420
426
  const themeClass = isDarkMode ? "is-dark" : "is-light";
421
427
  const bgClass = getBgClassFromName(previewBackground.label);
428
+ const applyThemeClassToJsxCode = (value?: string): string | undefined => {
429
+ if (!value) return value;
430
+
431
+ const trimmedValue = value.trim();
432
+ if (!trimmedValue) return trimmedValue;
433
+
434
+ if (hasMultipleCodeRoots) {
435
+ return `<div className="${themeClass}">\n${trimmedValue}\n</div>`;
436
+ }
437
+
438
+ return trimmedValue.replace(
439
+ /^<([A-Za-z][\w.]*)((?:\s+[\s\S]*?)?)\s*(\/?)>/,
440
+ (_, tagName: string, rawAttrs = "", selfClosing = "") => {
441
+ const attrs = rawAttrs || "";
442
+
443
+ if (/\sclassName=/.test(attrs)) {
444
+ return `<${tagName}${attrs.replace(
445
+ /className=(['"])(.*?)\1/,
446
+ (_match: string, quote: string, className: string) =>
447
+ `className=${quote}${className} ${themeClass}${quote}`,
448
+ )}${selfClosing ? " /" : ""}>`;
449
+ }
450
+
451
+ return `<${tagName}${attrs}\n className="${themeClass}"${selfClosing ? " /" : ""}>`;
452
+ },
453
+ );
454
+ };
422
455
 
423
456
  const classes = cx(CLASS_ROOT, themeClass, bgClass, className);
424
457
  const wrapperClasses = cx("previewWrapper", {
@@ -534,28 +567,36 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
534
567
  ? children(renderAsFunctionContext)
535
568
  : children;
536
569
 
537
- // Wrap the component to ensure theme classes are applied to the root element
538
- const wrapComponentWithTheme = (component: ReactNode) => {
570
+ const wrapRenderedComponentWithTheme = (component: ReactNode) => {
539
571
  if (!component) return component;
540
572
 
541
- // If it's a single React element, clone it with additional classes
542
- if (React.isValidElement(component)) {
543
- const props = component.props as any;
544
- const existingClassName = props.className || "";
545
- const newClassName = cx(existingClassName, themeClass);
573
+ // Keep wrapper shape stable across SSR/hydration and avoid cloning RSC children.
574
+ return <div className={cx(themeClass)}>{component}</div>;
575
+ };
546
576
 
547
- return React.cloneElement(component, {
577
+ const wrapCodeWithTheme = (component: ReactNode) => {
578
+ if (!component) return component;
579
+
580
+ const normalizedChildren = React.Children.toArray(component);
581
+
582
+ if (
583
+ normalizedChildren.length === 1 &&
584
+ React.isValidElement(normalizedChildren[0])
585
+ ) {
586
+ const element = normalizedChildren[0] as React.ReactElement<any>;
587
+ const props = element.props as { className?: string };
588
+
589
+ return React.cloneElement(element, {
548
590
  ...props,
549
- className: newClassName,
550
- } as any);
591
+ className: cx(props.className, themeClass),
592
+ });
551
593
  }
552
594
 
553
- // For multiple elements or other cases, wrap in a div with theme classes
554
595
  return <div className={cx(themeClass)}>{component}</div>;
555
596
  };
556
597
 
557
598
  const toRender = childrenToRender ? (
558
- wrapComponentWithTheme(childrenToRender)
599
+ wrapRenderedComponentWithTheme(childrenToRender)
559
600
  ) : html ? (
560
601
  <div
561
602
  className={cx(themeClass)}
@@ -574,22 +615,18 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
574
615
  html;
575
616
 
576
617
  // Apply the exact same wrapping logic for code display
577
- const toCode = codeContent
578
- ? wrapComponentWithTheme(codeContent)
579
- : codeContent;
618
+ const toCode = codeContent ? wrapCodeWithTheme(codeContent) : codeContent;
580
619
 
581
620
  // Generate JSX string for the JSX tab
582
621
  // Use pre-generated JSX if provided (from server), otherwise generate client-side
583
622
  const generatedJSXCode =
584
- jsxCode ||
585
- (typeof code === "string"
623
+ typeof code === "string"
586
624
  ? code
587
- : toCode
588
- ? generateJSXString(toCode, codeJSXOptions)
589
- : "");
625
+ : applyThemeClassToJsxCode(jsxCode) ||
626
+ (toCode ? generateJSXString(toCode, codeJSXOptions) : "");
590
627
 
591
628
  // Use toCode for HTML rendering
592
- const codeForHTML = toCode;
629
+ const codeForHTML = codeContent;
593
630
 
594
631
  const previewViewportWidth = disableBreakpoints
595
632
  ? null
@@ -636,6 +673,7 @@ const PreviewGenerator: FunctionComponent<PreviewProps> = ({
636
673
  <CodeExample
637
674
  codeJSXOptions={codeJSXOptions}
638
675
  codeTypes={codeTypes}
676
+ htmlThemeClass={themeClass}
639
677
  jsxCode={generatedJSXCode}
640
678
  htmlCode={codeForHTML}
641
679
  >
@@ -0,0 +1,25 @@
1
+ export const getElementDisplayName = (element: any): string => {
2
+ if (!element) return "Unknown";
3
+
4
+ const type = element.type;
5
+ const clientReferenceId =
6
+ typeof type?.$$id === "string" ? type.$$id.split("#").pop() : undefined;
7
+ const payloadValue = type?._payload?.value;
8
+ const payloadName =
9
+ typeof payloadValue === "string"
10
+ ? payloadValue.split("#").pop()
11
+ : payloadValue?.name;
12
+
13
+ return (
14
+ element?.props?.mdxType ||
15
+ type?.displayName ||
16
+ type?.render?.displayName ||
17
+ type?.render?.name ||
18
+ type?.name ||
19
+ type?.type?.displayName ||
20
+ type?.type?.name ||
21
+ clientReferenceId ||
22
+ payloadName ||
23
+ (typeof type === "string" ? type : "Component")
24
+ );
25
+ };
@@ -12,7 +12,8 @@
12
12
  flex-direction: column;
13
13
  border: 1px solid var(--color-border-subtle);
14
14
 
15
- &.bg-black {
15
+ &.background-contrast,
16
+ &.surface-contrast {
16
17
  border: 1px solid var(--color-icon-default);
17
18
  }
18
19
 
@@ -4,6 +4,23 @@
4
4
  @use "../../../styles/tools/map";
5
5
  @use "./config";
6
6
 
7
+ $section-spacing-colors: (
8
+ background-primary,
9
+ background-secondary,
10
+ background-contrast,
11
+ background-accent,
12
+ background-accent1-blog,
13
+ background-accent2-blog,
14
+ background-none,
15
+ surface-primary,
16
+ surface-secondary,
17
+ surface-tertiary,
18
+ surface-subtle,
19
+ surface-moderate,
20
+ surface-contrast,
21
+ surface-accent
22
+ );
23
+
7
24
  @mixin base {
8
25
  background-color: var(--color-background-primary);
9
26
  }
@@ -13,15 +30,20 @@
13
30
  }
14
31
 
15
32
  @mixin spacing-rules($config: config.$spacing) {
16
- &:not([class*="bg-"]) + &:not([class*="bg-"]),
17
- &[class~="bg-black"] + &[class~="bg-black"],
18
- &[class~="bg-white"] + &[class~="bg-white"],
19
- &[class~="bg-orange"] + &[class~="bg-orange"],
20
- &[class~="bg-gray"] + &[class~="bg-gray"] {
33
+ &:not([class*="background-"]):not([class*="surface-"])
34
+ + &:not([class*="background-"]):not([class*="surface-"]) {
21
35
  &:not(.section--default) {
22
36
  @include spacing("small");
23
37
  }
24
38
  }
39
+
40
+ @each $color in $section-spacing-colors {
41
+ &[class~="#{$color}"] + &[class~="#{$color}"] {
42
+ &:not(.section--default) {
43
+ @include spacing("small");
44
+ }
45
+ }
46
+ }
25
47
  }
26
48
 
27
49
  @mixin image-stuck-to-bottom($config: config.$stuck-image-spacing) {
@@ -160,8 +160,8 @@ $social-colors: (
160
160
  ),
161
161
  hover: (
162
162
  color: color.$white "!important",
163
- background-color: #f16e00,
164
- border-color: #f16e00,
163
+ background-color: var(--color-icon-brand),
164
+ border-color: var(--color-icon-brand),
165
165
  ),
166
166
  pressed: (
167
167
  color: var(--color-text-inverse) "!important",
@@ -5,10 +5,14 @@
5
5
  $item-base: (
6
6
  display: inline-flex,
7
7
  align-items: center,
8
- padding-top: space.get("small"),
9
- padding-bottom: space.get("small"),
8
+ padding-top: convert.to-rem(10px),
9
+ padding-bottom: convert.to-rem(10px),
10
10
  margin: 0 0 0 space.get("xsmall"),
11
- color: var(--color-text-default),
11
+ color: var(--stepbar-item-color),
12
+ background: var(--stepbar-item-background),
13
+ --stepbar-arrow-size: #{convert.to-rem(21px)},
14
+ --stepbar-item-background: var(--color-surface-contrast),
15
+ --stepbar-item-color: var(--color-text-inverse),
12
16
  );
13
17
 
14
18
  $arrow-spacing-small: (
@@ -26,8 +30,8 @@ $arrow-spacing-small: (
26
30
 
27
31
  $arrow-spacing: (
28
32
  default: (
29
- padding-left: convert.to-rem(40px),
30
- padding-right: convert.to-rem(19px),
33
+ padding-left: convert.to-rem(35px),
34
+ padding-right: convert.to-rem(30px),
31
35
  ),
32
36
  first: (
33
37
  padding-left: convert.to-rem(35px),
@@ -40,43 +44,56 @@ $arrow-spacing: (
40
44
  $arrows: (
41
45
  default: (
42
46
  done:
43
- url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H0V40H5L21 20L5 0Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0L16 20L0 40V0Z' fill='%23141414'/%3E%3C/svg%3E"),
47
+ url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0H0V40H5L21 20L5 0Z' fill='white'/%3E%3Cpath d='M0 0L16 20L0 40V0Z' fill='%23141414'/%3E%3C/svg%3E"),
44
48
  current:
45
- url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H0V40H5L21 20L5 0Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0L16 20L0 40V0Z' fill='%23F16E00'/%3E%3C/svg%3E"),
49
+ url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0H0V40H5L21 20L5 0Z' fill='white'/%3E%3Cpath d='M0 0L16 20L0 40V0Z' fill='%23f15e00'/%3E%3C/svg%3E"),
46
50
  next:
47
- url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H0V40H5L21 20L5 0Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0L16 20L0 40V0Z' fill='%23eee'/%3E%3C/svg%3E"),
51
+ url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0H0V40H5L21 20L5 0Z' fill='white'/%3E%3Cpath d='M0 0L16 20L0 40V0Z' fill='%23dddddd'/%3E%3C/svg%3E"),
48
52
  ),
49
53
  inverse: (
50
54
  done:
51
- url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H0V40H5L21 20L5 0Z' fill='%23141414'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0L16 20L0 40V0Z' fill='white'/%3E%3C/svg%3E"),
55
+ url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0H0V40H5L21 20L5 0Z' fill='%23141414'/%3E%3Cpath d='M0 0L16 20L0 40V0Z' fill='white'/%3E%3C/svg%3E"),
52
56
  current:
53
- url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H0V40H5L21 20L5 0Z' fill='%23141414'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0L16 20L0 40V0Z' fill='%23F16E00'/%3E%3C/svg%3E"),
57
+ url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0H0V40H5L21 20L5 0Z' fill='%23141414'/%3E%3Cpath d='M0 0L16 20L0 40V0Z' fill='%23f15e00'/%3E%3C/svg%3E"),
54
58
  next:
55
- url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5 0H0V40H5L21 20L5 0Z' fill='%23141414'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 0L16 20L0 40V0Z' fill='%23eee'/%3E%3C/svg%3E"),
59
+ url("data:image/svg+xml,%3Csvg width='21' height='40' viewBox='0 0 21 40' fill='none' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0H0V40H5L21 20L5 0Z' fill='%23141414'/%3E%3Cpath d='M0 0L16 20L0 40V0Z' fill='%23595959'/%3E%3C/svg%3E"),
56
60
  ),
57
61
  );
58
62
 
59
63
  $item-done-colors: (
60
64
  default: (
61
- background: var(--color-surface-contrast),
65
+ --stepbar-item-background: var(--color-surface-contrast),
66
+ --stepbar-item-color: var(--color-text-inverse),
67
+ ),
68
+ inverse: (
69
+ --stepbar-item-background: var(--color-surface-contrast),
70
+ --stepbar-item-color: var(--color-text-inverse),
62
71
  ),
63
72
  );
64
73
 
65
74
  $item-colors: (
66
75
  current: (
67
- background: var(--color-surface-tertiary),
68
- color: var(--color-text-default),
76
+ --stepbar-item-background: var(--color-surface-tertiary),
77
+ --stepbar-item-color: #{color.$white},
69
78
  ),
70
79
  next: (
71
- background: var(--color-surface-subtle),
72
- color: var(--color-surface-contrast),
80
+ --stepbar-item-background: var(--color-surface-moderate),
81
+ --stepbar-item-color: var(--color-text-default),
73
82
  ),
74
83
  );
75
84
 
76
85
  $link-colors: (
77
86
  default: (
78
87
  base: (
79
- color: var(--color-text-inverse),
88
+ color: var(--stepbar-item-color),
89
+ ),
90
+ interaction: (
91
+ color: var(--color-text-accent),
92
+ ),
93
+ ),
94
+ inverse: (
95
+ base: (
96
+ color: var(--stepbar-item-color),
80
97
  ),
81
98
  interaction: (
82
99
  color: var(--color-text-accent),
@@ -4,7 +4,7 @@
4
4
  @use "../../../styles/tools/generate";
5
5
  @use "../../../styles/tools/map";
6
6
  @use "../../../styles/tokens/breakpoint";
7
- @use "../../../styles/typography/mixins" as typoMixins;
7
+ @use "../../../styles/typography/config" as typographyConfig;
8
8
  @use "./config";
9
9
 
10
10
  @mixin list-base {
@@ -14,6 +14,7 @@
14
14
  padding-left: 0;
15
15
  margin: 0 0 space.get("large") 0;
16
16
  max-width: none;
17
+ @include generate.css-map(sass-map.get(typographyConfig.$caption, "large"));
17
18
  font-weight: bold;
18
19
  }
19
20
 
@@ -65,10 +66,11 @@
65
66
  position: absolute;
66
67
  z-index: 1;
67
68
  top: 0;
68
- right: -21px;
69
- width: 21px;
69
+ right: calc(var(--stepbar-arrow-size) * -1);
70
+ width: var(--stepbar-arrow-size);
70
71
  height: 100%;
71
72
  background-size: 100% 100%;
73
+ pointer-events: none;
72
74
  }
73
75
  }
74
76
 
@@ -37,7 +37,8 @@
37
37
  @include mixins.item-color("default", "next");
38
38
  }
39
39
 
40
- .bg-black &,
40
+ .background-contrast &,
41
+ .surface-contrast &,
41
42
  .is-dark & {
42
43
  @include mixins.item-color("inverse", "done");
43
44
 
@@ -68,7 +69,8 @@
68
69
  @include mixins.link-overlay();
69
70
  @include mixins.link-underline();
70
71
 
71
- .bg-black &,
72
+ .background-contrast &,
73
+ .surface-contrast &,
72
74
  .is-dark & {
73
75
  @include mixins.link-color("inverse");
74
76
  }
@@ -1,7 +1,9 @@
1
+ @use "sass:map";
1
2
  @use "./config";
2
3
  @use "../../../styles/tokens/color";
3
4
  @use "../../../styles/tokens/space";
4
- @use "../../../styles/tools/convert";
5
+ @use "../../../styles/tools/generate";
6
+ @use "../../../styles/typography/config" as typography;
5
7
 
6
8
  @mixin base {
7
9
  width: 100%;
@@ -12,8 +14,9 @@
12
14
  @mixin cells {
13
15
  padding: space.get("medium");
14
16
  vertical-align: middle;
15
- font-size: inherit;
16
- line-height: inherit;
17
+ @include generate.responsive-css-map(
18
+ map.get(typography.$body-text, "default")
19
+ );
17
20
  }
18
21
 
19
22
  @mixin header-cells {