@helsenorge/designsystem-react 8.6.0 → 9.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/Button.js +7 -7
  2. package/Button.js.map +1 -1
  3. package/CHANGELOG.md +27 -3
  4. package/Checkbox.js +42 -42
  5. package/Checkbox.js.map +1 -1
  6. package/ErrorWrapper.js.map +1 -1
  7. package/FormGroup.js +47 -40
  8. package/FormGroup.js.map +1 -1
  9. package/Icon.js +21 -21
  10. package/Icon.js.map +1 -1
  11. package/Input.js +98 -88
  12. package/Input.js.map +1 -1
  13. package/Label.js +28 -28
  14. package/Label.js.map +1 -1
  15. package/MaxCharacters.js +2 -2
  16. package/MaxCharacters.js.map +1 -1
  17. package/RadioButton.js +61 -61
  18. package/RadioButton.js.map +1 -1
  19. package/Select.js +34 -33
  20. package/Select.js.map +1 -1
  21. package/Slider.js +218 -0
  22. package/Slider.js.map +1 -0
  23. package/StatusDot.js +15 -15
  24. package/StatusDot.js.map +1 -1
  25. package/TabList.js +88 -53
  26. package/TabList.js.map +1 -1
  27. package/TabPanel.js +7 -7
  28. package/TabPanel.js.map +1 -1
  29. package/Textarea.js +59 -58
  30. package/Textarea.js.map +1 -1
  31. package/Trigger.js +33 -33
  32. package/Trigger.js.map +1 -1
  33. package/components/Button/Button.d.ts +2 -2
  34. package/components/Checkbox/Checkbox.d.ts +4 -3
  35. package/components/Checkbox/styles.module.scss +0 -14
  36. package/components/Checkbox/styles.module.scss.d.ts +0 -1
  37. package/components/Dropdown/Dropdown.d.ts +2 -2
  38. package/components/Dropdown/index.js +25 -25
  39. package/components/Dropdown/index.js.map +1 -1
  40. package/components/ErrorWrapper/ErrorWrapper.d.ts +3 -0
  41. package/components/ExpanderList/ExpanderList.d.ts +4 -6
  42. package/components/ExpanderList/index.js +118 -126
  43. package/components/ExpanderList/index.js.map +1 -1
  44. package/components/ExpanderList/styles.module.scss +165 -49
  45. package/components/ExpanderList/styles.module.scss.d.ts +29 -5
  46. package/components/FormGroup/FormGroup.d.ts +2 -2
  47. package/components/Icon/Icon.d.ts +4 -4
  48. package/components/Icons/NoAccess.js +7 -7
  49. package/components/Icons/NoAccess.js.map +1 -1
  50. package/components/Input/Input.d.ts +4 -3
  51. package/components/Label/Label.d.ts +4 -4
  52. package/components/Label/SubLabel.d.ts +2 -2
  53. package/components/MaxCharacters/MaxCharacters.d.ts +2 -2
  54. package/components/RadioButton/RadioButton.d.ts +5 -4
  55. package/components/RadioButton/styles.module.scss +0 -15
  56. package/components/RadioButton/styles.module.scss.d.ts +0 -1
  57. package/components/Select/Select.d.ts +4 -3
  58. package/components/SharingStatus/SharingStatus.d.ts +1 -1
  59. package/components/SharingStatus/index.js +5 -5
  60. package/components/SharingStatus/index.js.map +1 -1
  61. package/components/SharingStatus/styles.module.scss +0 -16
  62. package/components/SharingStatus/styles.module.scss.d.ts +0 -4
  63. package/components/Slider/Slider.d.ts +9 -4
  64. package/components/Slider/index.js +3 -189
  65. package/components/Slider/index.js.map +1 -1
  66. package/components/Slider/styles.module.scss +19 -6
  67. package/components/Slider/styles.module.scss.d.ts +3 -0
  68. package/components/StatusDot/StatusDot.d.ts +3 -3
  69. package/components/StatusDot/index.js +3 -3
  70. package/components/Tabs/TabList/TabList.d.ts +3 -3
  71. package/components/Tabs/TabList/styles.module.scss +63 -51
  72. package/components/Tabs/TabList/styles.module.scss.d.ts +7 -3
  73. package/components/Tabs/TabPanel/TabPanel.d.ts +1 -2
  74. package/components/Tabs/TabPanel/styles.module.scss +11 -26
  75. package/components/Tabs/TabPanel/styles.module.scss.d.ts +0 -2
  76. package/components/Tabs/Tabs.d.ts +3 -3
  77. package/components/Tabs/index.js +60 -75
  78. package/components/Tabs/index.js.map +1 -1
  79. package/components/Tabs/styles.module.scss +5 -9
  80. package/components/Tabs/styles.module.scss.d.ts +0 -1
  81. package/components/Textarea/Textarea.d.ts +4 -3
  82. package/components/Toggle/index.js +1204 -1170
  83. package/components/Toggle/index.js.map +1 -1
  84. package/components/Trigger/Trigger.d.ts +2 -2
  85. package/components/Validation/index.js +39 -32
  86. package/components/Validation/index.js.map +1 -1
  87. package/constants.d.ts +1 -1
  88. package/constants.js +1 -1
  89. package/constants.js.map +1 -1
  90. package/docs/FormExample/FormExample.d.ts +3 -1
  91. package/index.js +23 -23
  92. package/package.json +4 -4
  93. package/utils/component.d.ts +1 -0
  94. package/utils/component.js +7 -3
  95. package/utils/component.js.map +1 -1
@@ -2,7 +2,7 @@
2
2
  @import '../../scss/spacers';
3
3
  @import '../../scss/breakpoints';
4
4
  @import '../../scss/font-settings';
5
- @import '../../scss/palette';
5
+ @import '../../scss/supernova/styles/colors.css';
6
6
 
7
7
  .expander-list {
8
8
  list-style: none;
@@ -15,21 +15,101 @@
15
15
  position: relative;
16
16
 
17
17
  &--line {
18
- border-bottom: 1px solid $neutral500;
18
+ border-bottom: 1px solid var(--color-base-border-onlight);
19
19
 
20
20
  &:first-of-type {
21
- border-top: 1px solid $neutral500;
21
+ border-top: 1px solid var(--color-base-border-onlight);
22
+ }
23
+
24
+ &--blueberry,
25
+ .expander-list-link--line--blueberry {
26
+ background-color: var(--core-color-blueberry-50);
27
+ }
28
+
29
+ &--cherry,
30
+ .expander-list-link--line--cherry {
31
+ background-color: var(--core-color-cherry-50);
32
+ }
33
+
34
+ &--neutral,
35
+ .expander-list-link--line--neutral {
36
+ background-color: var(--core-color-neutral-50);
37
+ }
38
+
39
+ &--white,
40
+ .expander-list-link--line--white {
41
+ background-color: var(--color-base-background-white);
22
42
  }
23
43
  }
24
44
 
25
45
  &--outline {
26
- border-top: getSpacer(2xs) $neutral100 solid;
27
- border-left: getSpacer(2xs) $neutral100 solid;
28
- border-right: getSpacer(2xs) $neutral100 solid;
46
+ background-color: var(--color-base-background-white);
47
+
48
+ &--white {
49
+ border-top: getSpacer(2xs) var(--core-color-neutral-100) solid;
50
+ border-left: getSpacer(2xs) var(--core-color-neutral-100) solid;
51
+ border-right: getSpacer(2xs) var(--core-color-neutral-100) solid;
29
52
 
30
- &:last-of-type {
31
- border-bottom: getSpacer(2xs) $neutral50 solid;
53
+ &:last-of-type {
54
+ border-bottom: getSpacer(2xs) var(--core-color-neutral-100) solid;
55
+ }
32
56
  }
57
+
58
+ &--blueberry {
59
+ border-top: getSpacer(2xs) var(--core-color-blueberry-100) solid;
60
+ border-left: getSpacer(2xs) var(--core-color-blueberry-100) solid;
61
+ border-right: getSpacer(2xs) var(--core-color-blueberry-100) solid;
62
+
63
+ &:last-of-type {
64
+ border-bottom: getSpacer(2xs) var(--core-color-blueberry-100) solid;
65
+ }
66
+ }
67
+
68
+ &--cherry {
69
+ border-top: getSpacer(2xs) var(--core-color-cherry-100) solid;
70
+ border-left: getSpacer(2xs) var(--core-color-cherry-100) solid;
71
+ border-right: getSpacer(2xs) var(--core-color-cherry-100) solid;
72
+
73
+ &:last-of-type {
74
+ border-bottom: getSpacer(2xs) var(--core-color-cherry-100) solid;
75
+ }
76
+ }
77
+
78
+ &--neutral {
79
+ border-top: getSpacer(2xs) var(--core-color-neutral-100) solid;
80
+ border-left: getSpacer(2xs) var(--core-color-neutral-100) solid;
81
+ border-right: getSpacer(2xs) var(--core-color-neutral-100) solid;
82
+
83
+ &:last-of-type {
84
+ border-bottom: getSpacer(2xs) var(--core-color-neutral-100) solid;
85
+ }
86
+ }
87
+ }
88
+
89
+ &--fill {
90
+ &--blueberry,
91
+ .expander-list-link--fill--blueberry {
92
+ background-color: var(--core-color-blueberry-50);
93
+ }
94
+
95
+ &--cherry,
96
+ .expander-list-link--fill--cherry {
97
+ background-color: var(--core-color-cherry-50);
98
+ }
99
+
100
+ &--neutral,
101
+ .expander-list-link--fill--neutral {
102
+ background-color: var(--core-color-neutral-50);
103
+ }
104
+
105
+ &--white,
106
+ .expander-list-link--fill--white {
107
+ background-color: var(--color-base-background-white);
108
+ }
109
+ }
110
+
111
+ &--fill-negative {
112
+ background-color: var(--color-base-background-white);
33
113
  }
34
114
  }
35
115
  }
@@ -41,13 +121,12 @@
41
121
  line-height: $lineheight-size-sm;
42
122
  display: flex;
43
123
  cursor: pointer;
44
- font-weight: 600;
45
124
  font-family: inherit;
46
125
  text-decoration: none;
47
126
  justify-content: space-between;
48
127
  align-items: center;
49
128
  letter-spacing: unset;
50
- color: $black;
129
+ color: var(--color-base-text-onlight);
51
130
  border: 0;
52
131
  width: 100%;
53
132
  outline: none;
@@ -57,57 +136,104 @@
57
136
  line-height: $lineheight-size-md;
58
137
  }
59
138
 
60
- &--banana {
61
- background-color: $banana100;
139
+ &--open {
140
+ font-weight: 600;
62
141
  }
63
142
 
64
- &--blueberry {
65
- background-color: $blueberry100;
143
+ &--fill,
144
+ &--fill-negative {
145
+ margin-top: getSpacer(s);
66
146
  }
67
147
 
68
- &--cherry {
69
- background-color: $cherry100;
148
+ &--fill-negative {
149
+ background-color: var(--color-base-background-white);
70
150
  }
71
151
 
72
- &--kiwi {
73
- background-color: $kiwi100;
152
+ &--closed#{&}--fill {
153
+ margin-bottom: getSpacer(s);
74
154
  }
75
155
 
76
- &--neutral {
77
- background-color: $neutral100;
156
+ &:focus-visible:not(.expander-list-link--outline) {
157
+ outline: 0.25rem solid var(--color-action-border-onlight-focus);
78
158
  }
79
159
 
80
- &--plum {
81
- background-color: $plum100;
82
- }
160
+ &--white:not(.expander-list-link--outline) {
161
+ &:hover {
162
+ background-color: var(--core-color-blueberry-50);
163
+ }
83
164
 
84
- &--white {
85
- background-color: $neutral50;
165
+ &:active {
166
+ background-color: var(--core-color-blueberry-100);
167
+ }
86
168
  }
87
169
 
88
- &--closed:not(:hover, .expander-list-link--fill) {
89
- background-color: transparent;
90
- }
170
+ &--blueberry:not(.expander-list-link--outline) {
171
+ &:hover {
172
+ background-color: var(--core-color-blueberry-100);
173
+ }
91
174
 
92
- &--fill {
93
- margin-top: getSpacer(s);
175
+ &:active {
176
+ background-color: var(--color-action-background-ondark-hoverselected);
177
+ }
94
178
  }
95
179
 
96
- &--closed#{&}--fill {
97
- margin-bottom: getSpacer(s);
180
+ &--cherry:not(.expander-list-link--outline) {
181
+ &:hover {
182
+ background-color: var(--core-color-cherry-100);
183
+ }
98
184
 
99
- &:not(:hover) {
100
- background-color: $neutral50;
185
+ &:active {
186
+ background-color: var(--core-color-cherry-200);
101
187
  }
102
188
  }
103
189
 
104
- &:hover {
105
- color: $blueberry700;
190
+ &--neutral:not(.expander-list-link--outline) {
191
+ &:hover {
192
+ background-color: var(--core-color-neutral-100);
193
+ }
194
+
195
+ &:active {
196
+ background-color: var(--core-color-neutral-200);
197
+ }
106
198
  }
107
199
 
108
- &:focus,
109
- &:focus-visible {
110
- outline: getSpacer(4xs) solid $black;
200
+ &--outline {
201
+ background-color: var(--color-base-background-white);
202
+
203
+ &:focus-visible {
204
+ outline: 0.5rem solid var(--color-action-border-onlight-focus);
205
+ }
206
+
207
+ &--blueberry {
208
+ &:hover {
209
+ background-color: var(--core-color-blueberry-50);
210
+ }
211
+
212
+ &:active {
213
+ background-color: var(--core-color-blueberry-100);
214
+ }
215
+ }
216
+
217
+ &--cherry {
218
+ &:hover {
219
+ background-color: var(--core-color-cherry-50);
220
+ }
221
+
222
+ &:active {
223
+ background-color: var(--core-color-cherry-100);
224
+ }
225
+ }
226
+
227
+ &--neutral,
228
+ &--white {
229
+ &:hover {
230
+ background-color: var(--core-color-neutral-50);
231
+ }
232
+
233
+ &:active {
234
+ background-color: var(--core-color-neutral-100);
235
+ }
236
+ }
111
237
  }
112
238
 
113
239
  &--large {
@@ -115,16 +241,6 @@
115
241
  line-height: $lineheight-size-lg;
116
242
  }
117
243
 
118
- &--sticky {
119
- position: fixed;
120
- top: 0;
121
- }
122
-
123
- &--absolute {
124
- position: absolute;
125
- bottom: 0;
126
- }
127
-
128
244
  &__icon {
129
245
  display: flex;
130
246
  align-items: center;
@@ -1,25 +1,49 @@
1
1
  export type Styles = {
2
2
  'expander-list': string;
3
3
  'expander-list__item': string;
4
+ 'expander-list__item--fill': string;
5
+ 'expander-list__item--fill--blueberry': string;
6
+ 'expander-list__item--fill--cherry': string;
7
+ 'expander-list__item--fill--neutral': string;
8
+ 'expander-list__item--fill--white': string;
9
+ 'expander-list__item--fill-negative': string;
4
10
  'expander-list__item--line': string;
11
+ 'expander-list__item--line--blueberry': string;
12
+ 'expander-list__item--line--cherry': string;
13
+ 'expander-list__item--line--neutral': string;
14
+ 'expander-list__item--line--white': string;
5
15
  'expander-list__item--outline': string;
16
+ 'expander-list__item--outline--blueberry': string;
17
+ 'expander-list__item--outline--cherry': string;
18
+ 'expander-list__item--outline--neutral': string;
19
+ 'expander-list__item--outline--white': string;
6
20
  'expander-list-link': string;
7
21
  'expander-list-link__chevron': string;
8
22
  'expander-list-link__icon': string;
9
23
  'expander-list-link__main-content': string;
10
24
  'expander-list-link__main-content--expanded': string;
11
25
  'expander-list-link__main-content--padding': string;
12
- 'expander-list-link--absolute': string;
13
- 'expander-list-link--banana': string;
14
26
  'expander-list-link--blueberry': string;
15
27
  'expander-list-link--cherry': string;
16
28
  'expander-list-link--closed': string;
17
29
  'expander-list-link--fill': string;
18
- 'expander-list-link--kiwi': string;
30
+ 'expander-list-link--fill--blueberry': string;
31
+ 'expander-list-link--fill--cherry': string;
32
+ 'expander-list-link--fill--neutral': string;
33
+ 'expander-list-link--fill--white': string;
34
+ 'expander-list-link--fill-negative': string;
19
35
  'expander-list-link--large': string;
36
+ 'expander-list-link--line--blueberry': string;
37
+ 'expander-list-link--line--cherry': string;
38
+ 'expander-list-link--line--neutral': string;
39
+ 'expander-list-link--line--white': string;
20
40
  'expander-list-link--neutral': string;
21
- 'expander-list-link--plum': string;
22
- 'expander-list-link--sticky': string;
41
+ 'expander-list-link--open': string;
42
+ 'expander-list-link--outline': string;
43
+ 'expander-list-link--outline--blueberry': string;
44
+ 'expander-list-link--outline--cherry': string;
45
+ 'expander-list-link--outline--neutral': string;
46
+ 'expander-list-link--outline--white': string;
23
47
  'expander-list-link--white': string;
24
48
  };
25
49
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { FormMode, FormSize } from '../../constants';
2
+ import { FormOnColor, FormSize } from '../../constants';
3
3
  export type FormGroupTags = 'fieldset' | 'div';
4
4
  export interface FormGroupProps {
5
5
  /** title for the the fieldset */
@@ -15,7 +15,7 @@ export interface FormGroupProps {
15
15
  /** Adds custom classes to the fieldset element. */
16
16
  fieldsetClassName?: string;
17
17
  /** Changes the visuals of the formgroup */
18
- mode?: keyof typeof FormMode;
18
+ onColor?: keyof typeof FormOnColor;
19
19
  /** Changes the visuals of the formgroup */
20
20
  size?: keyof typeof FormSize;
21
21
  /** Error message */
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { FormMode, IconSize } from '../../constants';
3
- import { StatusDotModes } from '../StatusDot';
2
+ import { FormOnColor, IconSize } from '../../constants';
3
+ import { StatusDotOnColor } from '../StatusDot';
4
4
  export type SvgIcon = React.FC<SvgPathProps>;
5
5
  export interface BaseIconProps {
6
6
  ariaLabel?: string;
@@ -10,7 +10,7 @@ export interface BaseIconProps {
10
10
  className?: string;
11
11
  isHovered?: boolean;
12
12
  /** Defines the color of the icon */
13
- mode?: keyof typeof FormMode | StatusDotModes;
13
+ onColor?: keyof typeof FormOnColor | StatusDotOnColor;
14
14
  /** Sets the data-testid attribute. */
15
15
  testId?: string;
16
16
  }
@@ -20,7 +20,7 @@ export interface IconProps extends BaseIconProps {
20
20
  export interface SvgPathProps {
21
21
  size: IconSize;
22
22
  isHovered: boolean;
23
- mode?: keyof typeof FormMode | StatusDotModes;
23
+ onColor?: keyof typeof FormOnColor | StatusDotOnColor;
24
24
  }
25
25
  interface IconConfig {
26
26
  size: IconSize;
@@ -1,14 +1,14 @@
1
1
  import { jsxs as a, Fragment as m, jsx as l } from "react/jsx-runtime";
2
- import { FormMode as s } from "../../constants.js";
2
+ import { FormOnColor as s } from "../../constants.js";
3
3
  import { g as h } from "../../Icon.js";
4
- const x = ({ size: o, isHovered: r, mode: t }) => {
5
- const d = /* @__PURE__ */ l(
4
+ const M = ({ size: e, isHovered: r, onColor: t }) => {
5
+ const n = /* @__PURE__ */ l(
6
6
  "path",
7
7
  {
8
8
  fillRule: "evenodd",
9
9
  d: "M11.7 25.3h24.6v-2.6H11.7v2.6ZM24 8.231C15.305 8.231 8.232 15.305 8.232 24S15.305 39.769 24 39.769 39.769 32.695 39.769 24 32.695 8.231 24 8.231Z"
10
10
  }
11
- ), n = /* @__PURE__ */ l(
11
+ ), d = /* @__PURE__ */ l(
12
12
  "path",
13
13
  {
14
14
  fillRule: "evenodd",
@@ -26,7 +26,7 @@ const x = ({ size: o, isHovered: r, mode: t }) => {
26
26
  fillRule: "evenodd",
27
27
  d: "M10.358 25.642h27.284v-3.284H10.358v3.284ZM24 7.958C15.154 7.958 7.957 15.154 7.957 24c0 8.846 7.197 16.043 16.043 16.043S40.044 32.846 40.044 24 32.846 7.958 24 7.958Z"
28
28
  }
29
- ), e = /* @__PURE__ */ a(m, { children: [
29
+ ), o = /* @__PURE__ */ a(m, { children: [
30
30
  t === s.ondark && /* @__PURE__ */ l("circle", { cx: "24", cy: "24", r: "17", fill: "white" }),
31
31
  /* @__PURE__ */ l(
32
32
  "path",
@@ -36,9 +36,9 @@ const x = ({ size: o, isHovered: r, mode: t }) => {
36
36
  }
37
37
  )
38
38
  ] });
39
- return h({ size: o, isHovered: r, normal: d, normalHover: n, xSmall: v, xSmallHover: c, xxSmall: e, xxSmallHover: e });
39
+ return h({ size: e, isHovered: r, normal: n, normalHover: d, xSmall: v, xSmallHover: c, xxSmall: o, xxSmallHover: o });
40
40
  };
41
41
  export {
42
- x as default
42
+ M as default
43
43
  };
44
44
  //# sourceMappingURL=NoAccess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NoAccess.js","sources":["../../../src/components/Icons/NoAccess.tsx"],"sourcesContent":["import React from 'react';\n\nimport { FormMode } from '../../constants';\nimport { getIcon, SvgPathProps } from '../Icon';\n\nconst NoAccess: React.FC<SvgPathProps> = ({ size, isHovered, mode }: SvgPathProps): React.ReactElement => {\n const normal = (\n <path\n fillRule={'evenodd'}\n d=\"M11.7 25.3h24.6v-2.6H11.7v2.6ZM24 8.231C15.305 8.231 8.232 15.305 8.232 24S15.305 39.769 24 39.769 39.769 32.695 39.769 24 32.695 8.231 24 8.231Z\"\n />\n );\n\n const normalHover = (\n <path\n fillRule={'evenodd'}\n d=\"M9.95 25.3h28.1v-2.6H9.95v2.6ZM24 8.231C15.305 8.231 8.231 15.305 8.231 24S15.305 39.769 24 39.769 39.769 32.695 39.769 24 32.695 8.231 24 8.231Z\"\n />\n );\n\n const xSmall = (\n <path\n fillRule={'evenodd'}\n d=\"M12.253 25.642h23.495v-3.284H12.253v3.284ZM24 7.958C15.154 7.958 7.957 15.154 7.957 24c0 8.846 7.197 16.043 16.043 16.043S40.044 32.846 40.044 24 32.846 7.958 24 7.958Z\"\n />\n );\n\n const xSmallHover = (\n <path\n fillRule={'evenodd'}\n d=\"M10.358 25.642h27.284v-3.284H10.358v3.284ZM24 7.958C15.154 7.958 7.957 15.154 7.957 24c0 8.846 7.197 16.043 16.043 16.043S40.044 32.846 40.044 24 32.846 7.958 24 7.958Z\"\n />\n );\n\n const xxSmall = (\n <>\n {mode === FormMode.ondark && <circle cx=\"24\" cy=\"24\" r=\"17\" fill=\"white\" />}\n <path\n fillRule={'evenodd'}\n d=\"M13.4 26.1h21.2v-4.2H13.4v4.2ZM24 9C15.728 9 9 15.728 9 24s6.728 15 15 15c8.27 0 15-6.728 15-15S32.27 9 24 9Z\"\n />\n </>\n );\n\n return getIcon({ size, isHovered, normal, normalHover, xSmall, xSmallHover, xxSmall, xxSmallHover: xxSmall });\n};\n\nexport default NoAccess;\n"],"names":["NoAccess","size","isHovered","mode","normal","jsx","normalHover","xSmall","xSmallHover","xxSmall","jsxs","Fragment","FormMode","getIcon"],"mappings":";;;AAKA,MAAMA,IAAmC,CAAC,EAAE,MAAAC,GAAM,WAAAC,GAAW,MAAAC,QAA6C;AACxG,QAAMC,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAC,IACJ,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAE,IACJ,gBAAAF;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAG,IACJ,gBAAAH;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAI,IAED,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAASR,MAAAS,EAAS,UAAU,gBAAAP,EAAC,UAAO,EAAA,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAK,QAAQ,CAAA;AAAA,IACzE,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,EACF,EAAA,CAAA;AAGK,SAAAQ,EAAQ,EAAE,MAAAZ,GAAM,WAAAC,GAAW,QAAAE,GAAQ,aAAAE,GAAa,QAAAC,GAAQ,aAAAC,GAAa,SAAAC,GAAS,cAAcA,EAAS,CAAA;AAC9G;"}
1
+ {"version":3,"file":"NoAccess.js","sources":["../../../src/components/Icons/NoAccess.tsx"],"sourcesContent":["import React from 'react';\n\nimport { FormOnColor } from '../../constants';\nimport { getIcon, SvgPathProps } from '../Icon';\n\nconst NoAccess: React.FC<SvgPathProps> = ({ size, isHovered, onColor }: SvgPathProps): React.ReactElement => {\n const normal = (\n <path\n fillRule={'evenodd'}\n d=\"M11.7 25.3h24.6v-2.6H11.7v2.6ZM24 8.231C15.305 8.231 8.232 15.305 8.232 24S15.305 39.769 24 39.769 39.769 32.695 39.769 24 32.695 8.231 24 8.231Z\"\n />\n );\n\n const normalHover = (\n <path\n fillRule={'evenodd'}\n d=\"M9.95 25.3h28.1v-2.6H9.95v2.6ZM24 8.231C15.305 8.231 8.231 15.305 8.231 24S15.305 39.769 24 39.769 39.769 32.695 39.769 24 32.695 8.231 24 8.231Z\"\n />\n );\n\n const xSmall = (\n <path\n fillRule={'evenodd'}\n d=\"M12.253 25.642h23.495v-3.284H12.253v3.284ZM24 7.958C15.154 7.958 7.957 15.154 7.957 24c0 8.846 7.197 16.043 16.043 16.043S40.044 32.846 40.044 24 32.846 7.958 24 7.958Z\"\n />\n );\n\n const xSmallHover = (\n <path\n fillRule={'evenodd'}\n d=\"M10.358 25.642h27.284v-3.284H10.358v3.284ZM24 7.958C15.154 7.958 7.957 15.154 7.957 24c0 8.846 7.197 16.043 16.043 16.043S40.044 32.846 40.044 24 32.846 7.958 24 7.958Z\"\n />\n );\n\n const xxSmall = (\n <>\n {onColor === FormOnColor.ondark && <circle cx=\"24\" cy=\"24\" r=\"17\" fill=\"white\" />}\n <path\n fillRule={'evenodd'}\n d=\"M13.4 26.1h21.2v-4.2H13.4v4.2ZM24 9C15.728 9 9 15.728 9 24s6.728 15 15 15c8.27 0 15-6.728 15-15S32.27 9 24 9Z\"\n />\n </>\n );\n\n return getIcon({ size, isHovered, normal, normalHover, xSmall, xSmallHover, xxSmall, xxSmallHover: xxSmall });\n};\n\nexport default NoAccess;\n"],"names":["NoAccess","size","isHovered","onColor","normal","jsx","normalHover","xSmall","xSmallHover","xxSmall","jsxs","Fragment","FormOnColor","getIcon"],"mappings":";;;AAKA,MAAMA,IAAmC,CAAC,EAAE,MAAAC,GAAM,WAAAC,GAAW,SAAAC,QAAgD;AAC3G,QAAMC,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAC,IACJ,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAE,IACJ,gBAAAF;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAG,IACJ,gBAAAH;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,GAAE;AAAA,IAAA;AAAA,EAAA,GAIAI,IAED,gBAAAC,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAYR,MAAAS,EAAY,UAAU,gBAAAP,EAAC,UAAO,EAAA,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAK,QAAQ,CAAA;AAAA,IAC/E,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAU;AAAA,QACV,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,EACF,EAAA,CAAA;AAGK,SAAAQ,EAAQ,EAAE,MAAAZ,GAAM,WAAAC,GAAW,QAAAE,GAAQ,aAAAE,GAAa,QAAAC,GAAQ,aAAAC,GAAa,SAAAC,GAAS,cAAcA,EAAS,CAAA;AAC9G;"}
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { FormMode, FormSize } from '../../constants';
2
+ import { FormOnColor, FormSize } from '../../constants';
3
+ import { ErrorWrapperClassNameProps } from '../ErrorWrapper';
3
4
  import { SvgIcon } from '../Icon';
4
5
  import { IconName } from '../Icons/IconNames';
5
- export interface InputProps extends Pick<React.InputHTMLAttributes<HTMLInputElement>, 'disabled' | 'readOnly' | 'autoComplete' | 'name' | 'placeholder' | 'defaultValue' | 'required' | 'value' | 'min' | 'max' | 'aria-describedby' | 'aria-labelledby' | 'onBlur' | 'onClick' | 'onChange' | 'onFocus' | 'onKeyDown' | 'autoFocus'> {
6
+ export interface InputProps extends ErrorWrapperClassNameProps, Pick<React.InputHTMLAttributes<HTMLInputElement>, 'disabled' | 'readOnly' | 'autoComplete' | 'name' | 'placeholder' | 'defaultValue' | 'required' | 'value' | 'min' | 'max' | 'aria-describedby' | 'aria-labelledby' | 'onBlur' | 'onClick' | 'onChange' | 'onFocus' | 'onKeyDown' | 'autoFocus' | 'inputMode'> {
6
7
  /** The number at which the input field starts when you increment or decrement it */
7
8
  baseIncrementValue?: number;
8
9
  /** Adds custom classes to the element. */
@@ -24,7 +25,7 @@ export interface InputProps extends Pick<React.InputHTMLAttributes<HTMLInputElem
24
25
  /** Ref that is placed on the inputWrapper */
25
26
  inputWrapperRef?: React.RefObject<HTMLDivElement>;
26
27
  /** Changes the color profile of the input */
27
- mode?: keyof typeof FormMode;
28
+ onColor?: keyof typeof FormOnColor;
28
29
  /** Changes the visuals of the input */
29
30
  size?: keyof typeof FormSize;
30
31
  /** Label of the input */
@@ -1,5 +1,5 @@
1
1
  import React, { FunctionComponent } from 'react';
2
- import { FormMode } from '../../constants';
2
+ import { FormOnColor } from '../../constants';
3
3
  export type LabelText = {
4
4
  hideFromScreenReader?: boolean;
5
5
  text: string;
@@ -26,7 +26,7 @@ export interface LabelProps {
26
26
  /** Array of main label strings. Can be of type semibold or normal */
27
27
  labelTexts: LabelText[];
28
28
  /** Array of sublabel strings. Can be of type semibold or normal */
29
- mode?: keyof typeof FormMode;
29
+ onColor?: keyof typeof FormOnColor;
30
30
  /** StatusDot placed underneath the last sublabel */
31
31
  statusDot?: React.ReactNode;
32
32
  /** Sublabel component */
@@ -37,7 +37,7 @@ export interface LabelProps {
37
37
  testId?: string;
38
38
  }
39
39
  export declare const getLabelText: (label: React.ReactNode) => string;
40
- export declare const renderLabel: (label: React.ReactNode, inputId: string, mode: FormMode, markup?: LabelTags) => React.ReactNode;
41
- export declare const renderLabelAsParent: (label: React.ReactNode, children: React.ReactNode, inputId: string, mode: FormMode, labelClassName?: string, labelTextClassName?: string, sublabelWrapperClassName?: string, large?: boolean, markup?: LabelTags) => React.ReactNode;
40
+ export declare const renderLabel: (label: React.ReactNode, inputId: string, onColor: FormOnColor, markup?: LabelTags) => React.ReactNode;
41
+ export declare const renderLabelAsParent: (label: React.ReactNode, children: React.ReactNode, inputId: string, onColor: FormOnColor, labelClassName?: string, labelTextClassName?: string, sublabelWrapperClassName?: string, large?: boolean, markup?: LabelTags) => React.ReactNode;
42
42
  declare const Label: FunctionComponent<LabelProps>;
43
43
  export default Label;
@@ -1,13 +1,13 @@
1
1
  import React from 'react';
2
2
  import { LabelText } from './Label';
3
- import { FormMode } from '../../constants';
3
+ import { FormOnColor } from '../../constants';
4
4
  export interface SublabelProps {
5
5
  /** Adds custom classes to the element. */
6
6
  className?: string;
7
7
  /** id that is placed on the wrapper */
8
8
  id: string;
9
9
  /** Array of sublabel strings. Can be of type semibold or normal */
10
- mode?: FormMode;
10
+ onColor?: FormOnColor;
11
11
  /** Array of sublabel strings. Can be of type semibold or normal */
12
12
  sublabelTexts?: LabelText[];
13
13
  /** Sets the data-testid attribute. */
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { FormMode } from '../../constants';
2
+ import { FormOnColor } from '../../constants';
3
3
  interface MaxCharactersProps {
4
4
  /** Current input length */
5
5
  length: number;
@@ -8,7 +8,7 @@ interface MaxCharactersProps {
8
8
  /** The text is displayed in the end of the text-counter */
9
9
  maxText?: string;
10
10
  /** Changes the visuals of the textarea */
11
- mode?: keyof typeof FormMode;
11
+ onColor?: keyof typeof FormOnColor;
12
12
  /** Max width of the component */
13
13
  maxWidth?: string;
14
14
  }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
- import { FormMode, FormSize } from '../../constants';
3
- export interface RadioButtonProps extends Pick<React.InputHTMLAttributes<HTMLInputElement>, 'aria-describedby' | 'name' | 'value' | 'disabled' | 'checked' | 'defaultChecked' | 'required' | 'onChange'> {
2
+ import { FormOnColor, FormSize } from '../../constants';
3
+ import { ErrorWrapperClassNameProps } from '../ErrorWrapper';
4
+ export interface RadioButtonProps extends ErrorWrapperClassNameProps, Pick<React.InputHTMLAttributes<HTMLInputElement>, 'aria-describedby' | 'name' | 'value' | 'disabled' | 'checked' | 'defaultChecked' | 'required' | 'onChange'> {
4
5
  /** Adds custom classes to the element. */
5
6
  className?: string;
6
7
  /** The <Label/> next to the radioButton - sublabels kan ikke kombineres med large variant */
@@ -10,7 +11,7 @@ export interface RadioButtonProps extends Pick<React.InputHTMLAttributes<HTMLInp
10
11
  /** input id of the radioButton */
11
12
  inputId?: string;
12
13
  /** Changes the visuals of the radioButton */
13
- mode?: keyof typeof FormMode;
14
+ onColor?: keyof typeof FormOnColor;
14
15
  /** Changes the visuals of the radioButton. Large version only works when used inside a FormGroup wrapper. */
15
16
  size?: keyof typeof FormSize;
16
17
  /** Activates Error style for the radioButton - This is can be true while errorText is empty, when in a FormGroup */
@@ -22,6 +23,6 @@ export interface RadioButtonProps extends Pick<React.InputHTMLAttributes<HTMLInp
22
23
  /** Sets the data-testid attribute. */
23
24
  testId?: string;
24
25
  }
25
- export declare const getRadioLabelClasses: (radioId: string, mode: FormMode, large: boolean, checkedRadioId?: string) => string | undefined;
26
+ export declare const getRadioLabelClasses: (radioId: string, onColor: FormOnColor, large: boolean, checkedRadioId?: string) => string | undefined;
26
27
  export declare const RadioButton: React.ForwardRefExoticComponent<RadioButtonProps & React.RefAttributes<HTMLInputElement>>;
27
28
  export default RadioButton;
@@ -25,21 +25,6 @@
25
25
  .radio-button-wrapper {
26
26
  cursor: pointer;
27
27
 
28
- &--with-error {
29
- padding: getSpacer(s) getSpacer(2xs) getSpacer(m);
30
- background-color: $cherry100;
31
- margin-left: -0.75rem;
32
- border-left: 0.25rem solid $cherry600;
33
-
34
- @media (min-width: map.get($grid-breakpoints, md)) {
35
- padding: getSpacer(s) getSpacer(m) getSpacer(l);
36
- }
37
- }
38
-
39
- &--with-error#{&}__large {
40
- padding: getSpacer(m);
41
- }
42
-
43
28
  &__large {
44
29
  margin: getSpacer(2xs) 0;
45
30
 
@@ -24,7 +24,6 @@ export type Styles = {
24
24
  'radio-button-wrapper__large--invalid': string;
25
25
  'radio-button-wrapper__large--on-blueberry': string;
26
26
  'radio-button-wrapper__large--selected': string;
27
- 'radio-button-wrapper--with-error': string;
28
27
  'radiobutton-sublabel-wrapper': string;
29
28
  };
30
29
 
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
- import { FormMode } from '../../constants';
2
+ import { FormOnColor } from '../../constants';
3
+ import { ErrorWrapperClassNameProps } from '../ErrorWrapper';
3
4
  type SelectConcept = 'normal' | 'transparent';
4
- export interface SelectProps extends Pick<React.SelectHTMLAttributes<HTMLSelectElement>, 'aria-describedby' | 'name' | 'disabled' | 'required' | 'value' | 'onChange' | 'autoComplete'> {
5
+ export interface SelectProps extends ErrorWrapperClassNameProps, Pick<React.SelectHTMLAttributes<HTMLSelectElement>, 'aria-describedby' | 'name' | 'disabled' | 'required' | 'value' | 'onChange' | 'autoComplete'> {
5
6
  /** Sets the content of the select element. */
6
7
  children: React.ReactNode;
7
8
  /** Adds custom classes to the element. */
@@ -11,7 +12,7 @@ export interface SelectProps extends Pick<React.SelectHTMLAttributes<HTMLSelectE
11
12
  /** The label text above the select */
12
13
  label?: React.ReactNode;
13
14
  /** Changes the visuals of the component */
14
- mode?: keyof typeof FormMode;
15
+ onColor?: keyof typeof FormOnColor;
15
16
  /** Activates Error style for the select component - This is can be true while errorText is empty, when in a FormGroup */
16
17
  error?: boolean;
17
18
  /** Error text to show above the component */
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { PaletteNames } from '../../theme/palette';
3
3
  import { SvgIcon } from '../Icon';
4
- export type SharingStatusColor = Extract<PaletteNames, 'kiwi' | 'cherry' | 'neutral' | 'blueberry' | 'banana'>;
4
+ export type SharingStatusColor = Extract<PaletteNames, 'kiwi' | 'cherry' | 'neutral'>;
5
5
  export interface SharingStatusProps {
6
6
  /** Color choices represent variants of sharingstatus */
7
7
  color?: SharingStatusColor;
@@ -4,16 +4,16 @@ import { AnalyticsId as u, IconSize as g } from "../../constants.js";
4
4
  import { palette as _ } from "../../theme/palette.js";
5
5
  import { I as f } from "../../Icon.js";
6
6
  import s from "./styles.module.scss";
7
- const w = (e) => {
8
- const { color: r = "blueberry", icon: l, children: o, className: n, testId: i, wrapText: c } = e, m = t(s["sharing-status"], n), d = t(s["sharing-status__dot"], s[`sharing-status__dot--${r}`]), h = t(s["sharing-status__label"], s[`sharing-status__label--${r}`], {
7
+ const y = (l) => {
8
+ const { color: r = "neutral", icon: o, children: e, className: n, testId: i, wrapText: c } = l, m = t(s["sharing-status"], n), d = t(s["sharing-status__dot"], s[`sharing-status__dot--${r}`]), h = t(s["sharing-status__label"], s[`sharing-status__label--${r}`], {
9
9
  [s["sharing-status__label--wrap"]]: c
10
10
  });
11
11
  return /* @__PURE__ */ p("span", { className: m, "data-testid": i, "data-analyticsid": u.SharingStatus, children: [
12
- /* @__PURE__ */ a("span", { className: d, children: /* @__PURE__ */ a(f, { color: _.white, svgIcon: l, size: g.XXSmall }) }),
13
- /* @__PURE__ */ a("span", { className: h, children: o })
12
+ /* @__PURE__ */ a("span", { className: d, children: /* @__PURE__ */ a(f, { color: _.white, svgIcon: o, size: g.XXSmall }) }),
13
+ /* @__PURE__ */ a("span", { className: h, children: e })
14
14
  ] });
15
15
  };
16
16
  export {
17
- w as default
17
+ y as default
18
18
  };
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/SharingStatus/SharingStatus.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId, IconSize } from '../../constants';\nimport { PaletteNames, palette } from '../../theme/palette';\nimport Icon, { SvgIcon } from '../Icon';\n\nimport styles from './styles.module.scss';\n\nexport type SharingStatusColor = Extract<PaletteNames, 'kiwi' | 'cherry' | 'neutral' | 'blueberry' | 'banana'>;\n\nexport interface SharingStatusProps {\n /** Color choices represent variants of sharingstatus */\n color?: SharingStatusColor;\n /** Adds custom classes to the element. */\n className?: string;\n /** Icon to be displayed next to the sharingstatus */\n icon: SvgIcon;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Sets the text placed to the right of the sharingstatus */\n children: string;\n /** turn on and off word wrapping */\n wrapText?: boolean;\n}\n\nconst SharingStatus: React.FC<SharingStatusProps> = props => {\n const { color = 'blueberry', icon, children, className, testId, wrapText } = props;\n\n const sharingStatusClasses = classNames(styles['sharing-status'], className);\n const dotClasses = classNames(styles['sharing-status__dot'], styles[`sharing-status__dot--${color}`]);\n const labelClasses = classNames(styles['sharing-status__label'], styles[`sharing-status__label--${color}`], {\n [styles['sharing-status__label--wrap']]: wrapText,\n });\n\n return (\n <span className={sharingStatusClasses} data-testid={testId} data-analyticsid={AnalyticsId.SharingStatus}>\n <span className={dotClasses}>\n <Icon color={palette.white} svgIcon={icon} size={IconSize.XXSmall} />\n </span>\n <span className={labelClasses}>{children}</span>\n </span>\n );\n};\n\nexport default SharingStatus;\n"],"names":["SharingStatus","props","color","icon","children","className","testId","wrapText","sharingStatusClasses","classNames","styles","dotClasses","labelClasses","jsxs","AnalyticsId","jsx","Icon","palette","IconSize"],"mappings":";;;;;;AA2BA,MAAMA,IAA8C,CAASC,MAAA;AACrD,QAAA,EAAE,OAAAC,IAAQ,aAAa,MAAAC,GAAM,UAAAC,GAAU,WAAAC,GAAW,QAAAC,GAAQ,UAAAC,EAAa,IAAAN,GAEvEO,IAAuBC,EAAWC,EAAO,gBAAgB,GAAGL,CAAS,GACrEM,IAAaF,EAAWC,EAAO,qBAAqB,GAAGA,EAAO,wBAAwBR,CAAK,EAAE,CAAC,GAC9FU,IAAeH,EAAWC,EAAO,uBAAuB,GAAGA,EAAO,0BAA0BR,CAAK,EAAE,GAAG;AAAA,IAC1G,CAACQ,EAAO,6BAA6B,CAAC,GAAGH;AAAA,EAAA,CAC1C;AAGC,SAAA,gBAAAM,EAAC,UAAK,WAAWL,GAAsB,eAAaF,GAAQ,oBAAkBQ,EAAY,eACxF,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAK,EAAA,WAAWJ,GACf,UAAA,gBAAAI,EAACC,GAAK,EAAA,OAAOC,EAAQ,OAAO,SAASd,GAAM,MAAMe,EAAS,QAAS,CAAA,GACrE;AAAA,IACC,gBAAAH,EAAA,QAAA,EAAK,WAAWH,GAAe,UAAAR,EAAS,CAAA;AAAA,EAC3C,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/SharingStatus/SharingStatus.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId, IconSize } from '../../constants';\nimport { PaletteNames, palette } from '../../theme/palette';\nimport Icon, { SvgIcon } from '../Icon';\n\nimport styles from './styles.module.scss';\n\nexport type SharingStatusColor = Extract<PaletteNames, 'kiwi' | 'cherry' | 'neutral'>;\n\nexport interface SharingStatusProps {\n /** Color choices represent variants of sharingstatus */\n color?: SharingStatusColor;\n /** Adds custom classes to the element. */\n className?: string;\n /** Icon to be displayed next to the sharingstatus */\n icon: SvgIcon;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Sets the text placed to the right of the sharingstatus */\n children: string;\n /** turn on and off word wrapping */\n wrapText?: boolean;\n}\n\nconst SharingStatus: React.FC<SharingStatusProps> = props => {\n const { color = 'neutral', icon, children, className, testId, wrapText } = props;\n\n const sharingStatusClasses = classNames(styles['sharing-status'], className);\n const dotClasses = classNames(styles['sharing-status__dot'], styles[`sharing-status__dot--${color}`]);\n const labelClasses = classNames(styles['sharing-status__label'], styles[`sharing-status__label--${color}`], {\n [styles['sharing-status__label--wrap']]: wrapText,\n });\n\n return (\n <span className={sharingStatusClasses} data-testid={testId} data-analyticsid={AnalyticsId.SharingStatus}>\n <span className={dotClasses}>\n <Icon color={palette.white} svgIcon={icon} size={IconSize.XXSmall} />\n </span>\n <span className={labelClasses}>{children}</span>\n </span>\n );\n};\n\nexport default SharingStatus;\n"],"names":["SharingStatus","props","color","icon","children","className","testId","wrapText","sharingStatusClasses","classNames","styles","dotClasses","labelClasses","jsxs","AnalyticsId","jsx","Icon","palette","IconSize"],"mappings":";;;;;;AA2BA,MAAMA,IAA8C,CAASC,MAAA;AACrD,QAAA,EAAE,OAAAC,IAAQ,WAAW,MAAAC,GAAM,UAAAC,GAAU,WAAAC,GAAW,QAAAC,GAAQ,UAAAC,EAAa,IAAAN,GAErEO,IAAuBC,EAAWC,EAAO,gBAAgB,GAAGL,CAAS,GACrEM,IAAaF,EAAWC,EAAO,qBAAqB,GAAGA,EAAO,wBAAwBR,CAAK,EAAE,CAAC,GAC9FU,IAAeH,EAAWC,EAAO,uBAAuB,GAAGA,EAAO,0BAA0BR,CAAK,EAAE,GAAG;AAAA,IAC1G,CAACQ,EAAO,6BAA6B,CAAC,GAAGH;AAAA,EAAA,CAC1C;AAGC,SAAA,gBAAAM,EAAC,UAAK,WAAWL,GAAsB,eAAaF,GAAQ,oBAAkBQ,EAAY,eACxF,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAK,EAAA,WAAWJ,GACf,UAAA,gBAAAI,EAACC,GAAK,EAAA,OAAOC,EAAQ,OAAO,SAASd,GAAM,MAAMe,EAAS,QAAS,CAAA,GACrE;AAAA,IACC,gBAAAH,EAAA,QAAA,EAAK,WAAWH,GAAe,UAAAR,EAAS,CAAA;AAAA,EAC3C,EAAA,CAAA;AAEJ;"}