@rikstv/shared-components 0.8.0 → 1.1.79

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 (151) hide show
  1. package/README.md +1 -3
  2. package/dist/{accordion → components/accordion}/Accordion.d.ts +1 -2
  3. package/dist/components/accordion/Accordion.js +34 -0
  4. package/dist/{accordion → components/accordion}/accordion.scss +58 -39
  5. package/dist/components/breadcrumb/Breadcrumb.d.ts +13 -0
  6. package/dist/components/breadcrumb/Breadcrumb.js +39 -0
  7. package/dist/components/breadcrumb/breadcrumb.scss +75 -0
  8. package/dist/components/button/ArrowButton.d.ts +12 -0
  9. package/dist/components/button/ArrowButton.js +44 -0
  10. package/dist/components/button/BaseButton.d.ts +18 -0
  11. package/dist/components/button/BaseButton.js +42 -0
  12. package/dist/components/button/BaseDecoratedButton.d.ts +11 -0
  13. package/dist/components/button/BaseDecoratedButton.js +32 -0
  14. package/dist/components/button/BaseLinkButton.d.ts +20 -0
  15. package/dist/components/button/BaseLinkButton.js +44 -0
  16. package/dist/{button → components/button}/Button.d.ts +2 -0
  17. package/dist/components/button/Button.js +29 -0
  18. package/dist/components/button/DecoratedButton.d.ts +7 -0
  19. package/dist/components/button/DecoratedButton.js +23 -0
  20. package/dist/{button → components/button}/IconButton.d.ts +2 -3
  21. package/dist/components/button/IconButton.js +24 -0
  22. package/dist/components/button/LinkButton.d.ts +5 -0
  23. package/dist/components/button/LinkButton.js +10 -0
  24. package/dist/components/button/arrow-button.scss +37 -0
  25. package/dist/{button → components/button}/button-shared.scss +14 -3
  26. package/dist/components/button/button.scss +93 -0
  27. package/dist/{button → components/button}/icon-button.scss +0 -0
  28. package/dist/components/button/link-button.scss +6 -0
  29. package/dist/components/checkbox/Checkbox.d.ts +9 -0
  30. package/dist/components/checkbox/Checkbox.js +40 -0
  31. package/dist/components/checkbox/checkbox.scss +116 -0
  32. package/dist/{core → components/core}/Core.d.ts +0 -0
  33. package/dist/{core → components/core}/Core.js +0 -0
  34. package/dist/{core → components/core}/LightMode.d.ts +0 -0
  35. package/dist/components/core/LightMode.js +14 -0
  36. package/dist/{core → components/core}/RiksTV.d.ts +0 -0
  37. package/dist/components/core/RiksTV.js +116 -0
  38. package/dist/{core → components/core}/Strim.d.ts +0 -0
  39. package/dist/components/core/Strim.js +10 -0
  40. package/dist/components/core/core.scss +102 -0
  41. package/dist/components/core/docs/Spacing.scss +12 -0
  42. package/dist/components/core/docs/componets/ColorSwatch/ColorSwatch.scss +66 -0
  43. package/dist/components/core/docs/componets/ColorSwatch/ColorSwatchBtn.scss +19 -0
  44. package/dist/components/core/docs/componets/ExampleGrid/ExampleGrid.scss +12 -0
  45. package/dist/components/core/docs/componets/SpacingBlock/SpacingBlock.scss +6 -0
  46. package/dist/components/core/docs/hooks/animated.scss +12 -0
  47. package/dist/components/core/docs/hooks/clickOutside.scss +11 -0
  48. package/dist/components/core/docs/hooks/intersection.scss +14 -0
  49. package/dist/components/core/hooks/useAnimatedHeight.d.ts +19 -0
  50. package/dist/components/core/hooks/useBrowserPreferences.d.ts +5 -0
  51. package/dist/components/core/hooks/useClickOutsideListener.d.ts +8 -0
  52. package/dist/components/core/hooks/useIntersectionObserver.d.ts +2 -0
  53. package/dist/components/core/hooks/useMutationObserver.d.ts +2 -0
  54. package/dist/components/core/mixin/breakpoints.scss +44 -0
  55. package/dist/{core → components/core}/mixin/fluid.scss +0 -0
  56. package/dist/{core → components/core}/mixin/focus.scss +0 -0
  57. package/dist/{core → components/core}/mixin/navigation.scss +0 -0
  58. package/dist/{core → components/core}/mixin/rem.scss +0 -0
  59. package/dist/components/core/rikstvColors.scss +71 -0
  60. package/dist/components/core/rtv.scss +75 -0
  61. package/dist/components/core/spacing/Gutter.d.ts +2 -0
  62. package/dist/components/core/spacing/GutterPadding.d.ts +2 -0
  63. package/dist/components/core/strimColors.scss +48 -0
  64. package/dist/components/core/strm.scss +79 -0
  65. package/dist/{core → components/core}/utils/detectUserInputMethod.d.ts +0 -0
  66. package/dist/components/icons/Arrow.d.ts +2 -0
  67. package/dist/components/icons/Arrow.js +12 -0
  68. package/dist/{icons → components/icons}/Chevron.d.ts +0 -0
  69. package/dist/{icons → components/icons}/Chevron.js +0 -0
  70. package/dist/{icons → components/icons}/heartToggle.scss +12 -6
  71. package/dist/components/index.d.ts +31 -0
  72. package/dist/components/list/CheckmarkListItem.d.ts +8 -0
  73. package/dist/components/list/CheckmarkListItem.js +32 -0
  74. package/dist/components/list/CheckmarkListItem.scss +41 -0
  75. package/dist/components/list/CrossmarkListItem.d.ts +8 -0
  76. package/dist/components/list/CrossmarkListItem.js +23 -0
  77. package/dist/components/list/CrossmarkListItem.scss +42 -0
  78. package/dist/components/list/List.d.ts +8 -0
  79. package/dist/components/list/List.js +28 -0
  80. package/dist/components/list/List.scss +15 -0
  81. package/dist/components/list/ListItem.d.ts +8 -0
  82. package/dist/components/list/ListItem.js +19 -0
  83. package/dist/components/list/ListItem.scss +25 -0
  84. package/dist/components/list/OrderedListItem.d.ts +7 -0
  85. package/dist/components/list/OrderedListItem.js +15 -0
  86. package/dist/components/list/OrderedListItem.scss +21 -0
  87. package/dist/components/list/internal/getMarkColor.d.ts +3 -0
  88. package/dist/components/loader/Loader.d.ts +7 -0
  89. package/dist/components/loader/Loader.js +31 -0
  90. package/dist/components/loader/Loader.scss +148 -0
  91. package/dist/components/loader/RawLoader.d.ts +10 -0
  92. package/dist/components/loader/RawLoader.js +30 -0
  93. package/dist/components/panel/Info.d.ts +2 -0
  94. package/dist/components/panel/Info.js +25 -0
  95. package/dist/components/panel/Panel.d.ts +15 -0
  96. package/dist/components/panel/Panel.js +55 -0
  97. package/dist/components/panel/Success.d.ts +2 -0
  98. package/dist/components/panel/Success.js +80 -0
  99. package/dist/components/panel/Warning.d.ts +2 -0
  100. package/dist/components/panel/Warning.js +14 -0
  101. package/dist/components/panel/panel.scss +95 -0
  102. package/dist/components/progress/CircularProgress.d.ts +11 -0
  103. package/dist/components/progress/CircularProgress.js +87 -0
  104. package/dist/components/progress/Progress.d.ts +11 -0
  105. package/dist/components/progress/Progress.js +42 -0
  106. package/dist/components/progress/Progress.scss +76 -0
  107. package/dist/components/progress/circularProgress.scss +70 -0
  108. package/dist/components/spacing/Gutter.js +13 -0
  109. package/dist/components/spacing/GutterPadding.js +13 -0
  110. package/dist/{textfield → components/textfield}/TextField.d.ts +6 -5
  111. package/dist/components/textfield/TextField.js +57 -0
  112. package/dist/components/textfield/textfield.scss +178 -0
  113. package/dist/{toggle → components/toggle}/FieldSet.d.ts +0 -0
  114. package/dist/components/toggle/FieldSet.js +29 -0
  115. package/dist/{toggle → components/toggle}/RadioContext.d.ts +0 -0
  116. package/dist/{toggle → components/toggle}/RadioToggle.d.ts +0 -0
  117. package/dist/components/toggle/RadioToggle.js +30 -0
  118. package/dist/{toggle → components/toggle}/radioToggle.scss +2 -1
  119. package/dist/{toggleButton → components/toggleButton}/ToggleButton.d.ts +1 -0
  120. package/dist/components/toggleButton/ToggleButton.js +70 -0
  121. package/dist/{toggleButton → components/toggleButton}/toggleButton.scss +16 -8
  122. package/dist/components/toggleLinkButton/ToggleLinkButton.d.ts +10 -0
  123. package/dist/components/toggleLinkButton/ToggleLinkButton.js +60 -0
  124. package/dist/components/toggleLinkButton/toggleLinkButton.scss +54 -0
  125. package/dist/{typography → components/typography}/Typography.d.ts +3 -1
  126. package/dist/components/typography/Typography.js +67 -0
  127. package/dist/{typography → components/typography}/typography.scss +30 -1
  128. package/dist/shared-components.es.js +210 -15
  129. package/dist/style.css +1 -1
  130. package/dist/{core/utils → utils}/generateId.d.ts +0 -0
  131. package/package.json +12 -17
  132. package/dist/accordion/Accordion.js +0 -73
  133. package/dist/button/BaseButton.d.ts +0 -15
  134. package/dist/button/BaseButton.js +0 -80
  135. package/dist/button/Button.js +0 -40
  136. package/dist/button/IconButton.js +0 -40
  137. package/dist/button/button.scss +0 -46
  138. package/dist/core/LightMode.js +0 -50
  139. package/dist/core/RiksTV.js +0 -115
  140. package/dist/core/Strim.js +0 -10
  141. package/dist/core/core.scss +0 -29
  142. package/dist/core/rtv.scss +0 -58
  143. package/dist/core/strm.scss +0 -62
  144. package/dist/index.d.ts +0 -11
  145. package/dist/textfield/TextField.js +0 -87
  146. package/dist/textfield/textfield.scss +0 -101
  147. package/dist/toggle/FieldSet.js +0 -66
  148. package/dist/toggle/RadioToggle.js +0 -65
  149. package/dist/toggleButton/ToggleButton.js +0 -106
  150. package/dist/toggleButton/internal/generateId.d.ts +0 -1
  151. package/dist/typography/Typography.js +0 -95
package/README.md CHANGED
@@ -4,9 +4,7 @@ Wrap your app with you preferred brand. The css needs to be imported manually on
4
4
 
5
5
  ```
6
6
  import { Strim, PrimaryButton, DisplayTitle } from '@rikstv/shared-components";
7
- import '@rikstv/shared-components/dist/core/Strim.css";
8
- import '@rikstv/shared-components/dist/button/Button.css";
9
- import '@rikstv/shared-components/dist/typography/Typography.css";
7
+ import '@rikstv/shared-components/components/dist/style.css";
10
8
 
11
9
  const Root = () => (
12
10
  <Strim>
@@ -3,8 +3,7 @@ import "./accordion.scss";
3
3
  interface Props extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
4
4
  heading: ReactNode;
5
5
  initialOpen?: boolean;
6
- alignChevronLeft?: boolean;
7
- lightBackground?: boolean;
6
+ lightBackground?: boolean | "white";
8
7
  }
9
8
  export declare const Accordion: FC<Props>;
10
9
  export {};
@@ -0,0 +1,34 @@
1
+ import { useRef, useEffect } from "react";
2
+ import { C as Chevron } from "../icons/Chevron.js";
3
+ import { a as jsxs, j as jsx } from "../core/RiksTV.js";
4
+ var accordion = /* @__PURE__ */ (() => ".rtv{--sub-body-color--light: var(--rds-foreground-solid-soft)}.strm{--sub-body-color--light: var(--rds-button-primary-fg)}.rds-link{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;color:var(--rds-foreground-primary);transition:75ms ease color}.rds-link:visited{color:var(--rds-foreground-primary)}.rds-link:hover{text-decoration-thickness:2px;color:var(--rds-heading-accent)}.rds-link:active{text-decoration:none;text-shadow:0px 0px 1px var(--rds-foreground-primary)}.rds-link--active,.rds-link[aria-current=page]{text-shadow:0px 0px 1px var(--rds-foreground-primary)}.rds-link:focus::-moz-focus-inner{border-style:none;outline:0}.rds-link:focus button::-moz-focus-inner,.rds-link:focus [type=button]::-moz-focus-inner,.rds-link:focus [type=reset]::-moz-focus-inner,.rds-link:focus [type=submit]::-moz-focus-inner{border-style:none}.rds-link:focus input[type=button]::-moz-focus-inner{outline:0}html:not([data-mousenavigation]):not([data-touchnavigation]) .rds-link:focus{outline-offset:2px;outline:2px solid var(--rds-feedback-info);transition:outline-offset .25s ease}.rds-display-title{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(2.5rem,calc(1.4285714286rem + 2.9761904762vw),5rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-title-1{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(1.875rem,calc(1.1785714286rem + 1.9345238095vw),3.5rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-title-2{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(1.5rem,calc(1.0714285714rem + 1.1904761905vw),2.5rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-sub-title-2{font-family:var(--rds-font-family-lg-headlines);font-size:clamp(1.375rem,calc(1.1071428571rem + .744047619vw),2rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-title-3{font-family:var(--rds-font-family-m-headlines);font-size:clamp(1.25rem,calc(1.1964285714rem + .1488095238vw),1.375rem);font-weight:400;line-height:1.2;color:var(--rds-heading-accent)}.rds-title-4{font-family:var(--rds-font-family-m-headlines);font-size:clamp(1rem,calc(.9464285714rem + .1488095238vw),1.125rem);font-weight:400;line-height:1.2;color:var(--rds-foreground-primary)}.rds-lead{font-family:var(--rds-font-family-m-headlines);font-size:clamp(1.25rem,calc(1.1964285714rem + .1488095238vw),1.375rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-body,.rds-span{font-family:var(--rds-font-family-body);font-size:clamp(1rem,calc(.9464285714rem + .1488095238vw),1.125rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-sub-body{font-family:var(--rds-font-family-body);font-size:clamp(.875rem,calc(.8214285714rem + .1488095238vw),1rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-tag{font-family:var(--rds-font-family-headlines);text-transform:uppercase;font-size:clamp(.75rem,calc(.6964285714rem + .1488095238vw),.875rem);line-height:1.2;font-weight:400;letter-spacing:.09375rem;color:var(--rds-foreground-primary)}.rds-bold,.rds-accordion-details__summary{font-family:var(--rds-font-family-headlines);font-size:clamp(1.125rem,calc(1.125rem + 0vw),1.125rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-primary)}.rds-meta{font-family:var(--rds-font-family-body);font-size:clamp(.75rem,calc(.6964285714rem + .1488095238vw),.875rem);font-weight:400;line-height:1.5;color:var(--rds-foreground-overlay-heavy)}.rds-link--light,.rds-light .rds-link{color:var(--rds-background-primary)}.rds-link--light:hover,.rds-light .rds-link:hover{color:var(--rds-foreground-tertiary)}.rds-link--light:active,.rds-light .rds-link:active{text-shadow:0px 0px 1px var(--rds-background-primary)}.rds-link--light:visited,.rds-light .rds-link:visited{color:var(--rds-background-primary)}.rds-link--light--active,.rds-link--light[aria-current=page],.rds-light [aria-current=page].rds-link{text-shadow:0px 0px 1px var(--rds-background-primary)}.rds-light .rds-display-title,.rds-display-title--light{color:var(--rds-foreground-tertiary)}.rds-light .rds-title-1,.rds-title-1--light,.rds-light .rds-title-2,.rds-title-2--light,.rds-light .rds-title-3,.rds-title-3--light,.rds-light .rds-title-4,.rds-title-4--light,.rds-light .rds-subtite-2,.rds-subtite-2--light{color:var(--rds-button-primary-fg)}.rds-light .rds-body,.rds-light .rds-span,.rds-body--light{color:var(--rds-background-primary)}.rds-light .rds-sub-body,.rds-sub-body--light{color:var(--sub-body-color--light)}.rds-light .rds-tag,.rds-tag--light,.rds-light .rds-bold,.rds-light .rds-accordion-details__summary,.rds-bold--light{color:var(--rds-background-primary)}.rds-light .rds-meta,.rds-meta--light{color:var(--rds-button-primary-fg)}@keyframes details-sweep{0%{opacity:0}to{opacity:1}}.rtv{--accordion-border-color: #d9d9d9}.strm{--accordion-border-color: #99b7b9}.rds-accordion-details{--accordion-hover-bg: var(--rds-background-tertiary);--accordion-active-bg: var(--rds-background-card);--accordion-color: var(--rds-foreground-primary);--accordion-shadow: 0px 8px 18px rgba(0, 0, 0, .3);border-radius:var(--rds-roundness--default);transition:125ms ease-in-out;transition-property:box-shadow,background-color;border:1.5px solid var(--accordion-border-color)}@media (hover: hover){.rds-accordion-details[open]:hover,.rds-accordion-details:hover{background-color:var(--accordion-hover-bg);box-shadow:0 8px 18px #0000004d}}.rds-accordion-details[open]:active,.rds-accordion-details:active{background-color:var(--accordion-active-bg)}.rds-accordion-details[open]{--chevron-direction: 180deg;background-color:transparent;overflow:hidden}.rds-accordion-details[open] summary~*{animation:details-sweep .5s ease-in-out forwards}.rds-accordion-details[open] summary~*>*{--toggle-sweep-delay: 0;opacity:0;animation:details-sweep .5s ease-in-out forwards;animation-delay:var(--toggle-sweep-delay)}.rds-accordion-details:not([open]){--chevron-direction: 0;height:fit-content}@media (hover: hover){.rds-accordion-details:not([open]):hover{box-shadow:none}.rds-accordion-details:not([open]):hover .rds-accordion-details__summary{box-shadow:var(--accordion-shadow)}}.rds-accordion-details__summary{transition:125ms ease-in-out box-shadow;border-radius:var(--rds-roundness--default);background-color:transparent;color:var(--accordion-color)!important;cursor:pointer;list-style:none;user-select:none;height:fit-content;display:flex;align-items:center;align-self:center;position:relative;padding-block:clamp(9px,2vw,16px);padding-right:56px;padding-left:16px}.rds-accordion-details__summary:focus::-moz-focus-inner{border-style:none;outline:0}.rds-accordion-details__summary:focus button::-moz-focus-inner,.rds-accordion-details__summary:focus [type=button]::-moz-focus-inner,.rds-accordion-details__summary:focus [type=reset]::-moz-focus-inner,.rds-accordion-details__summary:focus [type=submit]::-moz-focus-inner{border-style:none}.rds-accordion-details__summary:focus input[type=button]::-moz-focus-inner{outline:0}html:not([data-mousenavigation]):not([data-touchnavigation]) .rds-accordion-details__summary:focus{outline-offset:2px;outline:2px solid var(--rds-feedback-info);transition:outline-offset .25s ease}.rds-accordion-details__summary>svg{height:100%;transform:rotate(var(--chevron-direction));transition:transform 125ms ease-in-out;transform-origin:center;position:absolute;right:18px;top:0}.rds-accordion-details__summary>svg>path{fill:var(--accordion-color)}.rds-accordion-details__summary__content{box-sizing:border-box;display:flex;align-items:center;height:100%}.rds-accordion-details__summary::marker,.rds-accordion-details__summary::-webkit-details-marker{display:none}.rds-accordion-details__summary~*{padding-right:32px;padding-left:16px}.rds-accordion-details--light,.rds-light .rds-accordion-details{--accordion-color: var(--rds-background-tertiary);--accordion-hover-bg: #d6ffec;--accordion-active-bg: #bcfbde;--accordion-border-color: #5d8b82;--accordion-shadow: 0px 4px 8px rgba(0, 75, 80, .2)}.rds-accordion-details--white{--accordion-hover-bg: #edfef6}\n")();
5
+ const Accordion = ({
6
+ initialOpen = true,
7
+ children,
8
+ heading,
9
+ className = "",
10
+ lightBackground = false,
11
+ ...rest
12
+ }) => {
13
+ const ref = useRef(null);
14
+ useEffect(() => {
15
+ if (ref.current) {
16
+ ref.current.open = initialOpen;
17
+ }
18
+ }, [initialOpen]);
19
+ return /* @__PURE__ */ jsxs("details", {
20
+ ref,
21
+ "data-testid": "rds-accordion",
22
+ className: `rds-accordion-details ${lightBackground ? "rds-accordion-details--light" : ""} ${lightBackground === "white" ? "rds-accordion-details--white" : ""} ${className}`,
23
+ ...rest,
24
+ children: [/* @__PURE__ */ jsxs("summary", {
25
+ "data-testid": "rds-accordion-summary",
26
+ className: "rds-accordion-details__summary",
27
+ children: [/* @__PURE__ */ jsx(Chevron, {}), /* @__PURE__ */ jsx("div", {
28
+ className: "rds-accordion-details__summary__content",
29
+ children: heading
30
+ })]
31
+ }), children]
32
+ });
33
+ };
34
+ export { Accordion as A };
@@ -10,17 +10,43 @@
10
10
  }
11
11
  }
12
12
 
13
+ // TODO: DO THIS PROPERLY, NOT LIKE THIS
14
+ .rtv {
15
+ --accordion-border-color: #d9d9d9;
16
+ }
17
+
18
+ .strm {
19
+ --accordion-border-color: #99b7b9;
20
+ }
21
+
13
22
  .rds-accordion-details {
23
+ // TODO: USE COLORS FROM CORE
24
+ --accordion-hover-bg: var(--rds-background-tertiary);
25
+ --accordion-active-bg: var(--rds-background-card);
26
+ --accordion-color: var(--rds-foreground-primary);
27
+ --accordion-shadow: 0px 8px 18px rgba(0, 0, 0, 0.3);
28
+
14
29
  border-radius: var(--rds-roundness--default);
15
- transition: 125ms ease-in-out box-shadow;
30
+ transition: 125ms ease-in-out;
31
+ transition-property: box-shadow, background-color;
32
+ border: 1.5px solid var(--accordion-border-color);
16
33
 
17
- &:hover {
18
- box-shadow: 0px 8px 18px rgba(0, 0, 0, 0.3);
34
+ @media (hover: hover) {
35
+ &[open]:hover,
36
+ &:hover {
37
+ background-color: var(--accordion-hover-bg);
38
+ box-shadow: 0px 8px 18px rgba(0, 0, 0, 0.3);
39
+ }
40
+ }
41
+
42
+ &[open]:active,
43
+ &:active {
44
+ background-color: var(--accordion-active-bg);
19
45
  }
20
46
 
21
47
  &[open] {
22
48
  --chevron-direction: 180deg;
23
- background-color: var(--rds-foreground-solid-soft);
49
+ background-color: transparent;
24
50
  overflow: hidden;
25
51
 
26
52
  & summary ~ * {
@@ -32,17 +58,18 @@
32
58
  animation-delay: var(--toggle-sweep-delay);
33
59
  }
34
60
  }
35
- &:hover {
36
- box-shadow: 0px 8px 18px rgba(0, 0, 0, 0.3);
37
- }
38
61
  }
39
62
 
40
63
  &:not([open]) {
41
64
  --chevron-direction: 0;
42
- &:hover {
43
- box-shadow: none;
44
- .rds-accordion-details__summary {
45
- box-shadow: 0px 8px 18px rgba(0, 0, 0, 0.3);
65
+ height: fit-content;
66
+
67
+ @media (hover: hover) {
68
+ &:hover {
69
+ box-shadow: none;
70
+ .rds-accordion-details__summary {
71
+ box-shadow: var(--accordion-shadow);
72
+ }
46
73
  }
47
74
  }
48
75
  }
@@ -52,22 +79,24 @@
52
79
  @extend .rds-bold;
53
80
  transition: 125ms ease-in-out box-shadow;
54
81
  border-radius: var(--rds-roundness--default);
55
- background-color: var(--rds-foreground-solid-soft);
56
- color: var(--rds-foreground-primary) !important;
82
+ background-color: transparent;
83
+ color: var(--accordion-color) !important;
57
84
  cursor: pointer;
58
85
  list-style: none;
59
86
  user-select: none;
60
- height: 3rem;
87
+ height: fit-content;
61
88
  display: flex;
62
89
  align-items: center;
63
90
  align-self: center;
64
91
  position: relative;
65
- padding: 8px 32px 8px 16px;
92
+ padding-block: clamp(9px, 2vw, 16px);
93
+ padding-right: 56px;
94
+ padding-left: 16px;
66
95
 
67
96
  & > svg {
68
97
  height: 100%;
69
98
  & > path {
70
- fill: var(--rds-foreground-primary);
99
+ fill: var(--accordion-color);
71
100
  }
72
101
  transform: rotate(var(--chevron-direction));
73
102
  transition: transform 125ms ease-in-out;
@@ -89,34 +118,24 @@
89
118
  }
90
119
 
91
120
  & ~ * {
92
- padding: 0px 32px 16px 16px;
93
- }
94
- }
95
-
96
- &--left > summary {
97
- padding: 8px 32px 8px 64px;
98
-
99
- & > svg {
100
- right: initial;
101
- left: 18px;
121
+ padding-right: 32px;
122
+ padding-left: 16px;
102
123
  }
103
124
  }
104
-
105
- &--hide-default-text > summary {
106
- max-width: 100%;
107
- height: 100%;
108
- background-color: transparent;
109
- margin-bottom: 0;
110
- }
111
125
  }
112
126
 
113
127
  .rds-accordion-details--light {
114
- &[open] {
115
- background-color: var(--rds-surface-foreground);
116
- }
117
- .rds-accordion-details__summary {
118
- background-color: var(--rds-surface-foreground);
119
- }
128
+ // TODO: USE COLORS FROM CORE
129
+ --accordion-color: var(--rds-background-tertiary);
130
+ --accordion-hover-bg: #d6ffec;
131
+ --accordion-active-bg: #bcfbde;
132
+ --accordion-border-color: #5d8b82;
133
+ --accordion-shadow: 0px 4px 8px rgba(0, 75, 80, 0.2);
134
+ }
135
+
136
+ .rds-accordion-details--white {
137
+ // TODO: USE COLORS FROM CORE
138
+ --accordion-hover-bg: #edfef6;
120
139
  }
121
140
 
122
141
  .rds-light {
@@ -0,0 +1,13 @@
1
+ import { FC, HTMLAttributes, ReactNode } from "react";
2
+ import "./breadcrumb.scss";
3
+ interface Props extends HTMLAttributes<HTMLElement> {
4
+ crumbs: Array<{
5
+ name: string;
6
+ href: string;
7
+ }>;
8
+ render: (name: string, href: string, current: boolean) => ReactNode;
9
+ className?: string;
10
+ }
11
+ export declare const Breadcrumb: import("react").ForwardRefExoticComponent<Props & import("react").RefAttributes<HTMLElement>>;
12
+ export declare const BreadcrumbCurrent: FC;
13
+ export {};
@@ -0,0 +1,39 @@
1
+ import { forwardRef } from "react";
2
+ import { S as Span } from "../typography/Typography.js";
3
+ import { j as jsx } from "../core/RiksTV.js";
4
+ var breadcrumb = /* @__PURE__ */ (() => '.rds-breadcrumb{--rds-crumb-separator: "/"}.rds-breadcrumb__list{list-style:none;padding:0;display:flex;flex-wrap:nowrap}.rds-breadcrumb__list-item{padding-inline-end:var(--rds-spacing--24);position:relative;display:flex;flex-wrap:nowrap;white-space:nowrap}.rds-breadcrumb__list-item:after{content:var(--rds-crumb-separator);position:absolute;right:var(--rds-spacing--8)}.rds-breadcrumb__list-item:last-of-type:after{display:none}@media (max-width: 768px){.rds-breadcrumb__list-item--truncate{display:none}.rds-breadcrumb__list-item--truncate:after{display:none}.rds-breadcrumb__list-item--truncate:first-of-type{display:flex;padding-inline-end:var(--rds-spacing--48)}.rds-breadcrumb__list-item--truncate:first-of-type:after{content:var(--rds-crumb-separator) " ... " var(--rds-crumb-separator);display:initial;position:absolute;right:var(--rds-spacing--8)}.rds-breadcrumb__list-item--truncate:nth-last-child(2){display:flex}}.rds-breadcrumb__current{color:var(--rds-foreground-overlay-heavy)}\n')();
5
+ const Breadcrumb = forwardRef(({
6
+ className = "",
7
+ crumbs,
8
+ render,
9
+ ...rest
10
+ }, ref) => /* @__PURE__ */ jsx("nav", {
11
+ className: `rds-breadcrumb ${className}`,
12
+ ref,
13
+ ...rest,
14
+ children: /* @__PURE__ */ jsx(Span, {
15
+ children: /* @__PURE__ */ jsx("ol", {
16
+ className: "rds-breadcrumb__list",
17
+ children: crumbs.map(({
18
+ name,
19
+ href
20
+ }, idx) => {
21
+ const isCurrent = idx === crumbs.length - 1;
22
+ return /* @__PURE__ */ jsx("li", {
23
+ className: `rds-breadcrumb__list-item ${crumbs.length >= 4 ? "rds-breadcrumb__list-item--truncate" : ""}`,
24
+ "data-testid": `rds-breadcrumb-${name}`,
25
+ "aria-current": isCurrent ? "page" : "false",
26
+ children: render(name, href, isCurrent)
27
+ }, name);
28
+ })
29
+ })
30
+ })
31
+ }));
32
+ const BreadcrumbCurrent = ({
33
+ children
34
+ }) => /* @__PURE__ */ jsx(Span, {
35
+ className: "rds-breadcrumb__current",
36
+ children
37
+ });
38
+ Breadcrumb.displayName = "Breadcrumb";
39
+ export { Breadcrumb as B, BreadcrumbCurrent as a };
@@ -0,0 +1,75 @@
1
+ @use "../core/mixin/breakpoints" as break;
2
+
3
+ .rds-breadcrumb {
4
+ --rds-crumb-separator: "/";
5
+ // --rds-crumb-separator: "›";
6
+
7
+ &__list {
8
+ list-style: none;
9
+ padding: 0;
10
+ display: flex;
11
+ flex-wrap: nowrap;
12
+ }
13
+
14
+ &__list-item {
15
+ padding-inline-end: var(--rds-spacing--24);
16
+ position: relative;
17
+ display: flex;
18
+ flex-wrap: nowrap;
19
+ white-space: nowrap;
20
+
21
+ &::after {
22
+ content: var(--rds-crumb-separator);
23
+ position: absolute;
24
+ right: var(--rds-spacing--8);
25
+ }
26
+
27
+ &:last-of-type::after {
28
+ display: none;
29
+ }
30
+
31
+ // This only occurs when more than 4 elements in crumb-path and small screen
32
+ // step 1 step 2 step 3 step 4
33
+ // visible hidden visible hidden
34
+
35
+ // step 1 step 2 step 3 step 4 step 5
36
+ // visible hidden hidden visible hidden
37
+
38
+ // The reasoning for this is that the last is current-page, you know this, so we can hide it
39
+ // you're most likely to either go all the way back to the start, or back one step, so that's
40
+ // the ones we show
41
+ &--truncate {
42
+ @include break.breakpoint("sm") {
43
+ // Flip everything to be not visible
44
+ display: none;
45
+ &::after {
46
+ // Also remove separator, handled by first-of-type
47
+ display: none;
48
+ }
49
+
50
+ // Flip the first element back visible
51
+ &:first-of-type {
52
+ display: flex;
53
+ padding-inline-end: var(--rds-spacing--48);
54
+
55
+ &::after {
56
+ // Custom separator to indicate truncating
57
+ content: var(--rds-crumb-separator) " ... " var(--rds-crumb-separator);
58
+ display: initial;
59
+ position: absolute;
60
+ right: var(--rds-spacing--8);
61
+ }
62
+ }
63
+
64
+ // Flip second to last element to be visible
65
+ &:nth-last-child(2) {
66
+ display: flex;
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ &__current {
73
+ color: var(--rds-foreground-overlay-heavy);
74
+ }
75
+ }
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { DecoratedButtonProps } from "./BaseDecoratedButton";
3
+ import "./button.scss";
4
+ import "./arrow-button.scss";
5
+ import "./button-shared.scss";
6
+ interface ArrowButtonProps extends Omit<DecoratedButtonProps, "arrow"> {
7
+ forwards?: boolean;
8
+ }
9
+ export declare const PrimaryArrowButton: import("react").ForwardRefExoticComponent<ArrowButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
10
+ export declare const SecondaryArrowButton: import("react").ForwardRefExoticComponent<ArrowButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
11
+ export declare const TertiaryArrowButton: import("react").ForwardRefExoticComponent<ArrowButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
12
+ export {};
@@ -0,0 +1,44 @@
1
+ import { forwardRef } from "react";
2
+ import { P as PrimaryDecoratedButton, S as SecondaryDecoratedButton, T as TertiaryDecoratedButton } from "./DecoratedButton.js";
3
+ import { A as Arrow } from "../icons/Arrow.js";
4
+ import "./Button.js";
5
+ import { j as jsx } from "../core/RiksTV.js";
6
+ var arrowButton = /* @__PURE__ */ (() => ".rds-arrow-button{--default-arrow-size: 1.125rem;--default-arrow-margin: .75rem;align-items:center}.rds-arrow-button>svg{width:100%}.rds-arrow-button .rds-button__arrow{margin:0;box-sizing:border-box;margin-inline:var(--default-arrow-margin) -6px;height:var(--default-arrow-size);width:var(--default-arrow-size)}.rds-arrow-button .rds-button__arrow>svg{width:100%}.rds-arrow-button--backwards .rds-button__arrow{margin-inline:-6px var(--default-arrow-margin)}.rds-arrow-button--backwards .rds-button__arrow>svg{transform:rotate(180deg)}.rds-arrow-button--forwards{flex-direction:row-reverse}\n")();
7
+ const A = () => /* @__PURE__ */ jsx(Arrow, {});
8
+ const PrimaryArrowButton = forwardRef(({
9
+ forwards = true,
10
+ className = "",
11
+ ...props
12
+ }, ref) => /* @__PURE__ */ jsx(PrimaryDecoratedButton, {
13
+ className: `${className} ${forwards ? "rds-arrow-button--forwards" : "rds-arrow-button--backwards"}`,
14
+ arrow: A,
15
+ buttonStyle: "rds-arrow-button",
16
+ ref,
17
+ ...props
18
+ }));
19
+ PrimaryArrowButton.displayName = "PrimaryArrowButton";
20
+ const SecondaryArrowButton = forwardRef(({
21
+ forwards = true,
22
+ className = "",
23
+ ...props
24
+ }, ref) => /* @__PURE__ */ jsx(SecondaryDecoratedButton, {
25
+ className: `${className} ${forwards ? "rds-arrow-button--forwards" : "rds-arrow-button--backwards"}`,
26
+ arrow: A,
27
+ buttonStyle: "rds-arrow-button",
28
+ ref,
29
+ ...props
30
+ }));
31
+ SecondaryArrowButton.displayName = "SecondaryArrowButton";
32
+ const TertiaryArrowButton = forwardRef(({
33
+ forwards = true,
34
+ className = "",
35
+ ...props
36
+ }, ref) => /* @__PURE__ */ jsx(TertiaryDecoratedButton, {
37
+ className: `${className} ${forwards ? "rds-arrow-button--forwards" : "rds-arrow-button--backwards"}`,
38
+ arrow: A,
39
+ buttonStyle: "rds-arrow-button",
40
+ ref,
41
+ ...props
42
+ }));
43
+ TertiaryArrowButton.displayName = "TertiaryArrowButton";
44
+ export { PrimaryArrowButton as P, SecondaryArrowButton as S, TertiaryArrowButton as T };
@@ -0,0 +1,18 @@
1
+ import { ButtonHTMLAttributes } from "react";
2
+ export declare type ButtonVariants = "primary" | "secondary" | "tertiary";
3
+ export declare type ButtonBackgroundStyles = boolean | "white";
4
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
+ isLoading?: boolean;
6
+ className?: string;
7
+ lightBackground?: ButtonBackgroundStyles;
8
+ transparent?: boolean;
9
+ /** @deprecated */
10
+ icon?: () => JSX.Element;
11
+ /** @deprecated */
12
+ iconClass?: string;
13
+ }
14
+ export interface BaseButtonProps extends ButtonProps {
15
+ buttonType: ButtonVariants;
16
+ buttonStyle: "rds-button" | "rds-arrow-button" | "rds-icon-button";
17
+ }
18
+ export declare const BaseButton: import("react").ForwardRefExoticComponent<BaseButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,42 @@
1
+ import { forwardRef } from "react";
2
+ import { j as jsx, a as jsxs, F as Fragment } from "../core/RiksTV.js";
3
+ const BaseButton = forwardRef(({
4
+ children,
5
+ buttonType,
6
+ buttonStyle,
7
+ type = "button",
8
+ isLoading = false,
9
+ lightBackground = false,
10
+ transparent = false,
11
+ disabled,
12
+ className = "",
13
+ "aria-busy": ariaBusy,
14
+ icon: Icon,
15
+ iconClass = "",
16
+ ...rest
17
+ }, ref) => /* @__PURE__ */ jsx("button", {
18
+ type,
19
+ ...rest,
20
+ ref,
21
+ disabled: isLoading || disabled,
22
+ "aria-busy": isLoading || ariaBusy,
23
+ className: `
24
+ ${buttonStyle}
25
+ rds-button__shared
26
+ rds-button__shared--${buttonType}
27
+ rds-button--${buttonType}
28
+ ${isLoading ? "rds-button--loading" : ""}
29
+ ${lightBackground ? "rds-light" : ""}
30
+ ${lightBackground === "white" ? "rds-white" : ""}
31
+ ${transparent ? "rds-transparent" : ""}
32
+ ${className}`,
33
+ children: /* @__PURE__ */ jsxs(Fragment, {
34
+ children: [Icon && /* @__PURE__ */ jsx("span", {
35
+ "data-testid": "rds-button__icon",
36
+ className: `rds-button__icon ${iconClass}`,
37
+ children: /* @__PURE__ */ jsx(Icon, {})
38
+ }), children]
39
+ })
40
+ }));
41
+ BaseButton.displayName = "BaseButton";
42
+ export { BaseButton as B };
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { BaseButtonProps, ButtonProps } from "./BaseButton";
3
+ export interface DecoratedButtonProps extends ButtonProps {
4
+ postfix?: string;
5
+ icon?: () => JSX.Element;
6
+ arrow?: () => JSX.Element;
7
+ iconClass?: string;
8
+ }
9
+ export interface BaseDecoratedButtonProps extends BaseButtonProps, DecoratedButtonProps {
10
+ }
11
+ export declare const BaseDecoratedButton: import("react").ForwardRefExoticComponent<BaseDecoratedButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,32 @@
1
+ import { forwardRef } from "react";
2
+ import { B as BaseButton } from "./BaseButton.js";
3
+ import { j as jsx, a as jsxs, F as Fragment } from "../core/RiksTV.js";
4
+ const BaseDecoratedButton = forwardRef(({
5
+ children,
6
+ buttonStyle,
7
+ postfix,
8
+ icon: Icon,
9
+ arrow: Arrow,
10
+ iconClass = "",
11
+ ...rest
12
+ }, ref) => /* @__PURE__ */ jsx(BaseButton, {
13
+ buttonStyle,
14
+ ref,
15
+ ...rest,
16
+ children: /* @__PURE__ */ jsxs(Fragment, {
17
+ children: [Icon && /* @__PURE__ */ jsx("span", {
18
+ "data-testid": "rds-button__icon",
19
+ className: `rds-button__icon ${iconClass}`,
20
+ children: /* @__PURE__ */ jsx(Icon, {})
21
+ }), Arrow && /* @__PURE__ */ jsx("span", {
22
+ "data-testid": "rds-button__arrow",
23
+ className: `rds-button__arrow ${iconClass}`,
24
+ children: /* @__PURE__ */ jsx(Arrow, {})
25
+ }), children, !!postfix && buttonStyle !== "rds-icon-button" && /* @__PURE__ */ jsx("span", {
26
+ className: "rds-button__postfix",
27
+ children: postfix
28
+ })]
29
+ })
30
+ }));
31
+ BaseDecoratedButton.displayName = "BaseDecoratedButton";
32
+ export { BaseDecoratedButton as B };
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import { ButtonBackgroundStyles, ButtonVariants } from "./BaseButton";
3
+ import "./button.scss";
4
+ import "./button-shared.scss";
5
+ import "./link-button.scss";
6
+ import "./arrow-button.scss";
7
+ interface BaseLinkButtonPropsWithElement<ElementProps> {
8
+ element: (props: ElementProps) => JSX.Element;
9
+ variant?: ButtonVariants;
10
+ lightBackground?: ButtonBackgroundStyles;
11
+ transparent?: boolean;
12
+ className?: string;
13
+ withArrow?: boolean;
14
+ arrowForward?: boolean;
15
+ iconClass?: string;
16
+ }
17
+ declare type Props<ElementProps> = BaseLinkButtonPropsWithElement<ElementProps> & ElementProps;
18
+ export declare type BaseLinkButtonProps<ElementProps> = Omit<Props<ElementProps>, "element">;
19
+ export declare const BaseLinkButton: import("react").ForwardRefExoticComponent<Pick<any, string | number | symbol> & import("react").RefAttributes<HTMLAnchorElement>>;
20
+ export {};
@@ -0,0 +1,44 @@
1
+ import { forwardRef } from "react";
2
+ import "./Button.js";
3
+ import "./ArrowButton.js";
4
+ import { A as Arrow } from "../icons/Arrow.js";
5
+ import { j as jsx, a as jsxs, F as Fragment } from "../core/RiksTV.js";
6
+ var linkButton = /* @__PURE__ */ (() => ".rds-link-button{width:fit-content}.rds-link-button>*{text-decoration:none}\n")();
7
+ const A = () => /* @__PURE__ */ jsx(Arrow, {});
8
+ const BaseLinkButton = forwardRef(({
9
+ element: Element,
10
+ variant = "primary",
11
+ className = "",
12
+ withArrow,
13
+ arrowForward,
14
+ iconClass = "",
15
+ children,
16
+ lightBackground,
17
+ transparent = false,
18
+ ...rest
19
+ }, ref) => /* @__PURE__ */ jsx("div", {
20
+ className: `rds-link-button ${className}`,
21
+ children: /* @__PURE__ */ jsx(Element, {
22
+ className: `
23
+ rds-button rds-button__shared
24
+ rds-button__shared--${variant}
25
+ rds-button--${variant}
26
+ ${lightBackground ? "rds-light" : ""}
27
+ ${lightBackground === "white" ? "rds-white" : ""}
28
+ ${transparent ? "rds-transparent" : ""}
29
+ ${withArrow ? "rds-arrow-button" : ""}
30
+ ${arrowForward === void 0 ? "" : arrowForward ? "rds-arrow-button--forwards" : "rds-arrow-button--backwards"}
31
+ `,
32
+ ref,
33
+ ...rest,
34
+ children: /* @__PURE__ */ jsxs(Fragment, {
35
+ children: [withArrow && /* @__PURE__ */ jsx("span", {
36
+ "data-testid": "rds-button__arrow",
37
+ className: `rds-button__arrow ${iconClass}`,
38
+ children: /* @__PURE__ */ jsx(A, {})
39
+ }), children]
40
+ })
41
+ })
42
+ }));
43
+ BaseLinkButton.displayName = "BaseLinkButton";
44
+ export { BaseLinkButton as B };
@@ -5,3 +5,5 @@ import "./button-shared.scss";
5
5
  export declare const PrimaryButton: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
6
6
  export declare const SecondaryButton: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
7
7
  export declare const TertiaryButton: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
8
+ export { LinkButton } from "./LinkButton";
9
+ export { BaseLinkButton } from "./BaseLinkButton";
@@ -0,0 +1,29 @@
1
+ import { forwardRef } from "react";
2
+ import { B as BaseButton } from "./BaseButton.js";
3
+ import { j as jsx } from "../core/RiksTV.js";
4
+ import "./LinkButton.js";
5
+ import "./BaseLinkButton.js";
6
+ var button = /* @__PURE__ */ (() => '.rds-arrow-button,.rds-button{--fluid-block: clamp(.65625rem, 2vw, .78125rem);--fluid-inline: clamp(1rem, 2vw, 1.5rem);padding:var(--fluid-block) var(--fluid-inline);border-radius:var(--rds-roundness--button);overflow-y:hidden;cursor:pointer;font-size:1.125rem}.rds-arrow-button__icon,.rds-button__icon{display:flex;align-items:center;align-self:center;margin-right:var(--rds-spacing--16);width:1.125rem}.rds-arrow-button__icon>svg,.rds-button__icon>svg{width:100%}.rds-arrow-button__postfix,.rds-button__postfix{position:relative;display:flex;align-items:center;margin-left:var(--rds-spacing--16);padding-left:var(--rds-spacing--16)}.rds-arrow-button__postfix:before,.rds-button__postfix:before{content:" ";position:absolute;width:1px;background-color:currentColor;height:220%;left:0}.rds-arrow-button--loading:disabled,.rds-button--loading:disabled{cursor:wait!important;position:relative;overflow:hidden}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rds-arrow-button--loading:disabled:before,.rds-button--loading:disabled:before{content:"";position:absolute;inset:0;background-color:var(--rds-background-overlay-medium)}.rds-arrow-button--loading:disabled:after,.rds-button--loading:disabled:after{--button-spinner-size: 24px;--button-spinner-width: 3px;--calculated-spinner-size: calc( calc(var(--button-spinner-size) + var(--button-spinner-width) + var(--button-spinner-width)) / 2 );content:"";position:absolute;left:calc(50% - var(--calculated-spinner-size));top:calc(50% - var(--calculated-spinner-size));height:var(--button-spinner-size);width:var(--button-spinner-size);background-color:transparent;border-top:var(--button-spinner-width) solid var(--rds-accent-color-dark);border-left:var(--button-spinner-width) solid var(--rds-accent-color-dark);border-right:var(--button-spinner-width) solid var(--rds-accent-color-dark);border-bottom:var(--button-spinner-width) solid transparent;border-radius:50px;animation-duration:1s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:spin;animation-timing-function:linear}.rds-arrow-button--loading:disabled:hover,.rds-button--loading:disabled:hover{box-shadow:none}\n')();
7
+ var buttonShared = /* @__PURE__ */ (() => ".rds-button__shared{--common-button--primary-color: var(--rds-button-primary-fg);--common-button--primary-bg: var(--rds-accent-color);--common-button--primary-hover-bg: var(--rds-accent-hover);--common-button--primary-pressed-bg: var(--rds-accent-color);--common-button--secondary-border-color: var(--rds-foreground-primary);--common-button--secondary-color: var(--rds-foreground-primary);--common-button--secondary-bg: var(--rds-background-primary);--common-button--secondary-hover-color: var(--rds-background-primary);--common-button--secondary-hover-bg: var(--rds-foreground-primary);--common-button--secondary-pressed-color: var(--rds-button-secondary-pressed-fg);--common-button--secondary-pressed-bg: var(--rds-button-secondary-pressed-bg);--common-button--tertiary-bg: var(--rds-button-tertirary-bg);--common-button--tertiary-color: var(--rds-foreground-primary);--common-button--tertiary-hover-bg: var(--rds-button-tertiary-hover-bg);--common-button--tertiary-hover-color: var(--rds-foreground-primary);--common-button--tertiary-pressed-bg: var(--rds-background-secondary);--common-button--tertiary-pressed-color: var(--rds-foreground-primary);--common-button--disabled-bg: var(--rds-foreground-secondary);--common-button--disabled-color: var(--rds-foreground-tertiary);border:none;width:auto;background:transparent;line-height:normal;-webkit-appearance:none;display:flex;transition:125ms ease-in-out;transition-property:color,box-shadow,background-color;font-family:var(--rds-font-family-m-headlines)}.rds-button__shared::-moz-focus-inner{border:0;padding:0}.rds-button__shared--primary{color:var(--common-button--primary-color);background-color:var(--common-button--primary-bg)}.rds-button__shared--primary:hover{background-color:var(--common-button--primary-hover-bg)}.rds-button__shared--primary:active{box-shadow:none;background-color:var(--common-button--primary-pressed-bg)}.rds-button__shared--secondary{background-color:var(--common-button--secondary-bg);box-shadow:inset 0 0 0 2px var(--common-button--secondary-border-color);color:var(--common-button--secondary-color)}.rds-button__shared--secondary:hover{background-color:var(--common-button--secondary-hover-bg);color:var(--common-button--secondary-hover-color)}.rds-button__shared--secondary:active{background-color:var(--common-button--secondary-pressed-bg);color:var(--common-button--secondary-pressed-color);border-color:var(--common-button--secondary-pressed-bg)}.rds-button__shared--tertiary{background-color:var(--common-button--tertiary-bg);color:var(--common-button--tertiary-color)}.rds-button__shared--tertiary:hover{background-color:var(--common-button--tertiary-hover-bg);color:var(--common-button--tertiary-hover-color)}.rds-button__shared--tertiary:active{background-color:var(--common-button--tertiary-pressed-bg);color:var(--common-button--tertiary-pressed-color)}.rds-button__shared:disabled{background-color:var(--common-button--disabled-bg);color:var(--common-button--disabled-color);box-shadow:none;cursor:not-allowed;border:none}.rds-button__shared:hover{box-shadow:var(--rds-box-shadow--default)}.rds-button__shared:active{box-shadow:none}.rds-button__shared:focus::-moz-focus-inner{border-style:none;outline:0}.rds-button__shared:focus button::-moz-focus-inner,.rds-button__shared:focus [type=button]::-moz-focus-inner,.rds-button__shared:focus [type=reset]::-moz-focus-inner,.rds-button__shared:focus [type=submit]::-moz-focus-inner{border-style:none}.rds-button__shared:focus input[type=button]::-moz-focus-inner{outline:0}html:not([data-mousenavigation]):not([data-touchnavigation]) .rds-button__shared:focus{outline-offset:2px;outline:2px solid var(--rds-feedback-info);transition:outline-offset .25s ease}.rds-light .rds-button__shared--primary,.rds-light.rds-button__shared--primary{--common-button--primary-color: var(--rds-foreground-primary);--common-button--primary-bg: var(--rds-button-primary-fg)}.rds-light .rds-button__shared--primary:hover,.rds-light.rds-button__shared--primary:hover{--common-button--primary-hover-bg: var(--rds-foreground-tertiary)}.rds-light .rds-button__shared--primary:active,.rds-light.rds-button__shared--primary:active{box-shadow:none;--common-button--primary-pressed-bg: var(--rds-background-primary)}.rds-light .rds-button__shared--primary:disabled,.rds-light.rds-button__shared--primary:disabled{--common-button--disabled-color: var(--rds-button-tertiary-hover-bg)}.rds-light .rds-button__shared--secondary,.rds-light.rds-button__shared--secondary{--common-button--secondary-color: var(--rds-button-tertiary-hover-bg);--common-button--secondary-border-color: var(--rds-button-tertiary-hover-bg);--common-button--secondary-bg: var(--surface-background)}.rds-light .rds-button__shared--secondary:hover,.rds-light.rds-button__shared--secondary:hover{--common-button--secondary-hover-bg: var(--rds-button-primary-fg);--common-button--secondary-hover-color: var(--rds-foreground-primary)}.rds-light .rds-button__shared--secondary:active,.rds-light.rds-button__shared--secondary:active{--common-button--secondary-pressed-color: var(--rds-foreground-primary);--common-button--secondary-pressed-bg: var(--rds-button-primary-fg)}.rds-light .rds-button__shared--secondary:disabled,.rds-light.rds-button__shared--secondary:disabled{--common-button--disabled-color: var(--rds-button-primary-fg)}.rds-light.rds-white.rds-button__shared--secondary{--common-button--secondary-bg: var(--rds-foreground-primary)}.rds-transparent.rds-button__shared--secondary{--common-button--secondary-bg: transparent}\n")();
8
+ const PrimaryButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(BaseButton, {
9
+ buttonStyle: "rds-button",
10
+ buttonType: "primary",
11
+ ref,
12
+ ...props
13
+ }));
14
+ PrimaryButton.displayName = "PrimaryButton";
15
+ const SecondaryButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(BaseButton, {
16
+ buttonStyle: "rds-button",
17
+ buttonType: "secondary",
18
+ ref,
19
+ ...props
20
+ }));
21
+ SecondaryButton.displayName = "SecondaryButton";
22
+ const TertiaryButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(BaseButton, {
23
+ buttonStyle: "rds-button",
24
+ buttonType: "tertiary",
25
+ ref,
26
+ ...props
27
+ }));
28
+ TertiaryButton.displayName = "TertiaryButton";
29
+ export { PrimaryButton as P, SecondaryButton as S, TertiaryButton as T };
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { BaseDecoratedButtonProps } from "./BaseDecoratedButton";
3
+ import "./button.scss";
4
+ import "./button-shared.scss";
5
+ export declare const PrimaryDecoratedButton: import("react").ForwardRefExoticComponent<Omit<BaseDecoratedButtonProps, "buttonType"> & import("react").RefAttributes<HTMLButtonElement>>;
6
+ export declare const SecondaryDecoratedButton: import("react").ForwardRefExoticComponent<Omit<BaseDecoratedButtonProps, "buttonType"> & import("react").RefAttributes<HTMLButtonElement>>;
7
+ export declare const TertiaryDecoratedButton: import("react").ForwardRefExoticComponent<Omit<BaseDecoratedButtonProps, "buttonType"> & import("react").RefAttributes<HTMLButtonElement>>;