@helsenorge/designsystem-react 10.1.0 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/AnchorLink.js +2 -2
  2. package/AnchorLink.js.map +1 -1
  3. package/Avatar.js +2 -2
  4. package/Avatar.js.map +1 -1
  5. package/Badge.js +3 -3
  6. package/Badge.js.map +1 -1
  7. package/Button.js +4 -4
  8. package/Button.js.map +1 -1
  9. package/CHANGELOG.md +1392 -801
  10. package/Checkbox.js +2 -2
  11. package/Checkbox.js.map +1 -1
  12. package/Close.js +2 -2
  13. package/Close.js.map +1 -1
  14. package/ErrorBoundary.js +2 -2
  15. package/ErrorBoundary.js.map +1 -1
  16. package/FormGroup.js +12 -12
  17. package/FormGroup.js.map +1 -1
  18. package/FormLayout.js +3 -3
  19. package/FormLayout.js.map +1 -1
  20. package/HelpBubble.js +2 -2
  21. package/HelpBubble.js.map +1 -1
  22. package/HighlightPanel.js +2 -2
  23. package/HighlightPanel.js.map +1 -1
  24. package/Icon.js +3 -3
  25. package/Icon.js.map +1 -1
  26. package/Illustration.js +3 -3
  27. package/Illustration.js.map +1 -1
  28. package/Input.js +2 -2
  29. package/Input.js.map +1 -1
  30. package/Label.js +8 -8
  31. package/Label.js.map +1 -1
  32. package/LazyIcon.js +1 -1
  33. package/LazyIllustration.js +3 -3
  34. package/LazyIllustration.js.map +1 -1
  35. package/LinkList.js +6 -6
  36. package/LinkList.js.map +1 -1
  37. package/ListHeader.js +7 -7
  38. package/ListHeader.js.map +1 -1
  39. package/Panel.js +2 -2
  40. package/Panel.js.map +1 -1
  41. package/PopOver.js +2 -2
  42. package/PopOver.js.map +1 -1
  43. package/RadioButton.js +2 -2
  44. package/RadioButton.js.map +1 -1
  45. package/Select.js +2 -2
  46. package/Select.js.map +1 -1
  47. package/Slider.js +3 -3
  48. package/Slider.js.map +1 -1
  49. package/Spacer.js +2 -2
  50. package/Spacer.js.map +1 -1
  51. package/StatusDot.js +1 -1
  52. package/StepButtons.js +4 -4
  53. package/StepButtons.js.map +1 -1
  54. package/TabList.js +4 -4
  55. package/TabList.js.map +1 -1
  56. package/Table.js +2 -2
  57. package/Table.js.map +1 -1
  58. package/TableBody.js +2 -2
  59. package/TableBody.js.map +1 -1
  60. package/TableExpandedRow.js +2 -2
  61. package/TableExpandedRow.js.map +1 -1
  62. package/TableHead.js +2 -2
  63. package/TableHead.js.map +1 -1
  64. package/TableRow.js +2 -2
  65. package/TableRow.js.map +1 -1
  66. package/Textarea.js +2 -2
  67. package/Textarea.js.map +1 -1
  68. package/Title.js +2 -2
  69. package/Title.js.map +1 -1
  70. package/TooltipWord.js +2 -2
  71. package/TooltipWord.js.map +1 -1
  72. package/Trigger.js +3 -3
  73. package/Trigger.js.map +1 -1
  74. package/components/AnchorLink/styles.module.scss +8 -9
  75. package/components/Avatar/styles.module.scss +9 -9
  76. package/components/Badge/styles.module.scss +9 -9
  77. package/components/Button/styles.module.scss +68 -57
  78. package/components/Checkbox/styles.module.scss +103 -103
  79. package/components/Chip/styles.module.scss +22 -22
  80. package/components/Close/styles.module.scss +4 -4
  81. package/components/DictionaryTrigger/index.js +2 -2
  82. package/components/DictionaryTrigger/index.js.map +1 -1
  83. package/components/DictionaryTrigger/styles.module.scss +5 -5
  84. package/components/Drawer/Drawer.d.ts +41 -0
  85. package/components/Drawer/Drawer.test.d.ts +1 -0
  86. package/components/Drawer/index.d.ts +3 -0
  87. package/components/Drawer/index.js +350 -0
  88. package/components/Drawer/index.js.map +1 -0
  89. package/components/Drawer/styles.module.scss +127 -0
  90. package/components/Drawer/styles.module.scss.d.ts +16 -0
  91. package/components/Dropdown/index.js +3 -3
  92. package/components/Dropdown/index.js.map +1 -1
  93. package/components/Dropdown/styles.module.scss +51 -51
  94. package/components/Duolist/index.js +6 -5
  95. package/components/Duolist/index.js.map +1 -1
  96. package/components/Duolist/styles.module.scss +57 -35
  97. package/components/Duolist/styles.module.scss.d.ts +1 -0
  98. package/components/EmptyState/styles.module.scss +12 -12
  99. package/components/ErrorWrapper/styles.module.scss +11 -21
  100. package/components/ErrorWrapper/styles.module.scss.d.ts +0 -1
  101. package/components/Expander/styles.module.scss +46 -46
  102. package/components/ExpanderHierarchy/expander.module.scss +29 -29
  103. package/components/ExpanderHierarchy/index.js +5 -5
  104. package/components/ExpanderHierarchy/index.js.map +1 -1
  105. package/components/ExpanderHierarchy/styles.module.scss +4 -5
  106. package/components/ExpanderList/index.js +8 -8
  107. package/components/ExpanderList/index.js.map +1 -1
  108. package/components/ExpanderList/styles.module.scss +30 -30
  109. package/components/EyebrowHeader/styles.module.scss +0 -2
  110. package/components/FormGroup/styles.module.scss +9 -9
  111. package/components/FormLayout/styles.module.scss +4 -5
  112. package/components/HelpBubble/styles.module.scss +13 -13
  113. package/components/HelpPanel/styles.module.scss +2 -2
  114. package/components/HelpQuestion/index.js +2 -2
  115. package/components/HelpQuestion/index.js.map +1 -1
  116. package/components/HelpQuestion/styles.module.scss +19 -19
  117. package/components/HighlightPanel/styles.module.scss +22 -54
  118. package/components/HighlightPanel/styles.module.scss.d.ts +1 -2
  119. package/components/HorizontalScroll/styles.module.scss +4 -3
  120. package/components/Icons/EuropeanHealthCard.js +1 -1
  121. package/components/Icons/GroupTwins.js +1 -1
  122. package/components/Icons/Inbox.js +1 -1
  123. package/components/Icons/LawBook.js +1 -1
  124. package/components/Icons/PersonCancel.js +1 -1
  125. package/components/Icons/PersonWithBrain.js +1 -1
  126. package/components/Icons/Puzzle.js +1 -1
  127. package/components/Icons/Snapchat.js +1 -1
  128. package/components/Illustrations/IllustrationNames.d.ts +1 -1
  129. package/components/Illustrations/IllustrationNames.js +4 -2
  130. package/components/Illustrations/IllustrationNames.js.map +1 -1
  131. package/components/Illustrations/ReadLetters.d.ts +9 -0
  132. package/components/Illustrations/ReadLetters.js +11 -0
  133. package/components/Illustrations/ReadLetters.js.map +1 -0
  134. package/components/Illustrations/ReadLettersMedium.d.ts +4 -0
  135. package/components/Illustrations/ReadLettersMedium.js +110 -0
  136. package/components/Illustrations/ReadLettersMedium.js.map +1 -0
  137. package/components/Illustrations/Support2.d.ts +9 -0
  138. package/components/Illustrations/Support2.js +11 -0
  139. package/components/Illustrations/Support2.js.map +1 -0
  140. package/components/Illustrations/Support2Medium.d.ts +4 -0
  141. package/components/Illustrations/Support2Medium.js +232 -0
  142. package/components/Illustrations/Support2Medium.js.map +1 -0
  143. package/components/Input/styles.module.scss +12 -12
  144. package/components/Label/styles.module.scss +28 -24
  145. package/components/Label/styles.module.scss.d.ts +3 -1
  146. package/components/LinkList/styles.module.scss +33 -33
  147. package/components/List/styles.module.scss +7 -7
  148. package/components/ListHeader/styles.module.scss +8 -8
  149. package/components/Loader/styles.module.scss +14 -14
  150. package/components/MaxCharacters/styles.module.scss +11 -11
  151. package/components/Modal/index.js +71 -82
  152. package/components/Modal/index.js.map +1 -1
  153. package/components/Modal/styles.module.scss +45 -39
  154. package/components/NotificationPanel/index.js +3 -3
  155. package/components/NotificationPanel/index.js.map +1 -1
  156. package/components/NotificationPanel/styles.module.scss +33 -33
  157. package/components/Panel/styles.module.scss +45 -45
  158. package/components/PanelList/index.js +5 -5
  159. package/components/PanelList/index.js.map +1 -1
  160. package/components/PanelList/styles.module.scss +5 -5
  161. package/components/PopMenu/index.js +5 -5
  162. package/components/PopMenu/index.js.map +1 -1
  163. package/components/PopMenu/styles.module.scss +15 -15
  164. package/components/PopOver/styles.module.scss +13 -14
  165. package/components/PopOver/styles.module.scss.d.ts +0 -3
  166. package/components/Portal/index.js +3 -3
  167. package/components/Portal/index.js.map +1 -1
  168. package/components/Progressbar/styles.module.scss +4 -4
  169. package/components/PromoPanel/index.js +2 -2
  170. package/components/PromoPanel/index.js.map +1 -1
  171. package/components/PromoPanel/styles.module.scss +22 -22
  172. package/components/RadioButton/styles.module.scss +99 -99
  173. package/components/Select/styles.module.scss +21 -21
  174. package/components/ServiceMessage/styles.module.scss +49 -49
  175. package/components/SharingStatus/styles.module.scss +13 -13
  176. package/components/Slider/styles.module.scss +24 -24
  177. package/components/Spacer/styles.module.scss +14 -14
  178. package/components/StatusDot/styles.module.scss +22 -22
  179. package/components/Step/styles.module.scss +3 -3
  180. package/components/StepButtons/styles.module.scss +9 -9
  181. package/components/Stepper/styles.module.scss +23 -15
  182. package/components/StickyNote/styles.module.scss +3 -3
  183. package/components/Table/styles.module.scss +32 -32
  184. package/components/Tabs/TabList/styles.module.scss +1 -1
  185. package/components/Tabs/TabPanel/styles.module.scss +5 -5
  186. package/components/Tabs/index.js +3 -3
  187. package/components/Tabs/index.js.map +1 -1
  188. package/components/Tabs/styles.module.scss +1 -1
  189. package/components/Tag/styles.module.scss +16 -16
  190. package/components/TagList/index.js +2 -2
  191. package/components/TagList/index.js.map +1 -1
  192. package/components/TagList/styles.module.scss +4 -4
  193. package/components/Textarea/styles.module.scss +9 -9
  194. package/components/Tile/index.js +6 -6
  195. package/components/Tile/index.js.map +1 -1
  196. package/components/Tile/styles.module.scss +25 -25
  197. package/components/Title/styles.module.scss +8 -8
  198. package/components/Toggle/index.js +3 -3910
  199. package/components/Toggle/index.js.map +1 -1
  200. package/components/Toggle/styles.module.scss +14 -14
  201. package/components/Tooltip/TooltipWord/styles.module.scss +4 -4
  202. package/components/Tooltip/index.js +2 -2
  203. package/components/Tooltip/index.js.map +1 -1
  204. package/components/Trigger/styles.module.scss +21 -21
  205. package/components/Validation/index.js +6 -6
  206. package/components/Validation/index.js.map +1 -1
  207. package/components/Validation/styles.module.scss +10 -10
  208. package/constants.d.ts +1 -0
  209. package/constants.js +1 -0
  210. package/constants.js.map +1 -1
  211. package/hoc/withBreakpoint/withBreakpoint.js +2 -2
  212. package/hoc/withBreakpoint/withBreakpoint.js.map +1 -1
  213. package/hooks/useBreakpoint.d.ts +0 -4
  214. package/hooks/useBreakpoint.js +23 -18
  215. package/hooks/useBreakpoint.js.map +1 -1
  216. package/hooks/useEventListenerState.js +3 -3
  217. package/hooks/useEventListenerState.js.map +1 -1
  218. package/hooks/useReturnFocusOnUnmount.d.ts +5 -0
  219. package/hooks/useReturnFocusOnUnmount.js +20 -0
  220. package/hooks/useReturnFocusOnUnmount.js.map +1 -0
  221. package/package.json +1 -1
  222. package/scss/_body.scss +5 -6
  223. package/scss/_breakpoints.scss +8 -2
  224. package/scss/_font-mixins.scss +57 -2
  225. package/scss/_fonts.scss +0 -2
  226. package/scss/_input.scss +53 -50
  227. package/scss/_print.scss +2 -2
  228. package/scss/layout.module.scss +2 -2
  229. package/scss/typography.module.scss +62 -37
  230. package/scss/typography.module.scss.d.ts +6 -0
  231. package/scss/typography.stories.tsx +24 -0
  232. package/theme/index.js +2 -2
  233. package/use-animate.js +3952 -0
  234. package/use-animate.js.map +1 -0
  235. package/utils/accessibility.d.ts +1 -0
  236. package/utils/accessibility.js +6 -1
  237. package/utils/accessibility.js.map +1 -1
  238. package/utils/component.js +4 -4
  239. package/utils/component.js.map +1 -1
@@ -1,13 +1,13 @@
1
- @import '../../scss/spacers';
2
- @import '../../scss/breakpoints';
3
- @import '../../scss/palette';
1
+ @use '../../scss/spacers' as spacers;
2
+ @use '../../scss/palette' as palette;
3
+ @use '../../scss/breakpoints' as *;
4
4
 
5
5
  .tag-list {
6
6
  all: unset;
7
7
  display: inline-flex;
8
8
  align-items: center;
9
9
  flex-wrap: wrap;
10
- gap: getSpacer(2xs);
10
+ gap: spacers.getSpacer(2xs);
11
11
 
12
12
  &__item {
13
13
  all: unset;
@@ -1,22 +1,22 @@
1
- @import '../../scss/spacers';
2
- @import '../../scss/breakpoints';
3
- @import '../../scss/palette';
4
- @import '../../scss/input';
5
- @import '../../scss/font-mixins';
1
+ @use '../../scss/spacers' as spacers;
2
+ @use '../../scss/palette' as palette;
3
+ @use '../../scss/font-mixins' as fonts;
4
+ @use '../../scss/input' as input;
5
+ @use '../../scss/breakpoints' as *;
6
6
 
7
7
  .textarea {
8
- @include input-wrapper;
8
+ @include input.input-wrapper;
9
9
 
10
10
  &--gutterBottom {
11
- margin-bottom: getSpacer(s);
11
+ margin-bottom: spacers.getSpacer(s);
12
12
  }
13
13
  }
14
14
 
15
15
  .input-container {
16
- @include input-container;
16
+ @include input.input-container;
17
17
 
18
18
  &__input {
19
- @include input-text;
19
+ @include fonts.input-text;
20
20
 
21
21
  height: auto;
22
22
  padding: 16px;
@@ -1,12 +1,12 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import React from "react";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import React__default from "react";
3
3
  import classNames from "classnames";
4
4
  import { AnalyticsId, IconSize } from "../../constants.js";
5
5
  import { useBreakpoint, Breakpoint } from "../../hooks/useBreakpoint.js";
6
6
  import { useHover } from "../../hooks/useHover.js";
7
7
  import { mergeRefs } from "../../utils/refs.js";
8
8
  import tileStyles from "./styles.module.scss";
9
- const Title = React.forwardRef((props, ref) => {
9
+ const Title = React__default.forwardRef((props, ref) => {
10
10
  const { compact, children, className, htmlMarkup = "span", highlighted } = props;
11
11
  const titleClasses = classNames(
12
12
  tileStyles["tile__title"],
@@ -20,7 +20,7 @@ const Title = React.forwardRef((props, ref) => {
20
20
  return /* @__PURE__ */ jsx(CustomTag, { className: titleClasses, ref, children });
21
21
  });
22
22
  Title.displayName = "Title";
23
- const Tile = React.forwardRef((props, ref) => {
23
+ const Tile = React__default.forwardRef((props, ref) => {
24
24
  const {
25
25
  children,
26
26
  icon,
@@ -65,8 +65,8 @@ const Tile = React.forwardRef((props, ref) => {
65
65
  onClick,
66
66
  children: [
67
67
  /* @__PURE__ */ jsxs("div", { className: tileTitleWrapperClasses, children: [
68
- React.cloneElement(icon, { size: mobile ? IconSize.Small : IconSize.Medium, isHovered, color: highlighted ? "white" : "black" }),
69
- React.cloneElement(title, { highlighted, compact })
68
+ React__default.cloneElement(icon, { size: mobile ? IconSize.Small : IconSize.Medium, isHovered, color: highlighted ? "white" : "black" }),
69
+ React__default.cloneElement(title, { highlighted, compact })
70
70
  ] }),
71
71
  !compact && !mobile && /* @__PURE__ */ jsx("p", { className: tileStyles.tile__description, children: description }),
72
72
  children && /* @__PURE__ */ jsx("div", { className: tileStyles.tile__children, children })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Tile/Tile.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { TitleTags } from './../Title/Title';\nimport { useBreakpoint, Breakpoint } from '../../hooks/useBreakpoint';\nimport { useHover } from '../../hooks/useHover';\nimport { mergeRefs } from '../../utils/refs';\nimport { IconSize } from '../Icon';\n\nimport tileStyles from './styles.module.scss';\n\nexport type TileVariants = 'normal' | 'compact';\n\ninterface TileProps extends Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick' | 'rel'> {\n children?: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /**\tSets the icon to be displayed inside the tile. */\n icon: React.ReactElement;\n /**\tSets the title to be displayed inside the tile. */\n title: React.ReactElement;\n /** Toggles the highlighted style of the tile. */\n highlighted?: boolean;\n /** Sets the description to be displayed inside the tile. */\n description?: string;\n /** Sets a fixed max and min width for the tile. */\n fixed?: boolean;\n /** Sets the visual variant of the component */\n variant?: TileVariants;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\ninterface TileTitleProps {\n children: React.ReactNode;\n className?: string;\n htmlMarkup?: TitleTags;\n highlighted?: boolean;\n compact?: boolean;\n}\n\nexport interface TileCompound extends React.ForwardRefExoticComponent<TileProps & React.RefAttributes<HTMLAnchorElement>> {\n Title: React.ForwardRefExoticComponent<TileTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n}\n\nconst Title = React.forwardRef<HTMLHeadingElement, TileTitleProps>((props, ref) => {\n const { compact, children, className, htmlMarkup = 'span', highlighted } = props;\n const titleClasses = classNames(\n tileStyles['tile__title'],\n {\n [tileStyles['tile__title--highlighted']]: highlighted,\n [tileStyles['tile__title--compact']]: compact,\n },\n className\n );\n const CustomTag = htmlMarkup;\n\n return (\n <CustomTag className={titleClasses} ref={ref}>\n {children}\n </CustomTag>\n );\n});\n\nTitle.displayName = 'Title';\n\nexport const Tile = React.forwardRef<HTMLAnchorElement, TileProps>((props, ref) => {\n const {\n children,\n icon,\n title,\n className = '',\n description,\n fixed = false,\n highlighted = false,\n testId,\n target,\n rel,\n variant = 'normal',\n href,\n onClick,\n } = props;\n const { hoverRef, isHovered } = useHover<HTMLAnchorElement>();\n const breakpoint = useBreakpoint();\n const mobile = breakpoint < Breakpoint.md;\n const compact = variant === 'compact';\n const tileClasses = classNames(\n tileStyles.tile,\n {\n [tileStyles['tile--fixed']]: fixed,\n [tileStyles['tile--compact']]: compact,\n [tileStyles['tile--highlighted']]: highlighted,\n },\n className\n );\n const tileTitleWrapperClasses = classNames(tileStyles['title-wrapper'], {\n [tileStyles['title-wrapper--compact']]: compact,\n });\n\n return (\n <a\n ref={mergeRefs([ref, hoverRef])}\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : rel}\n className={tileClasses}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Tile}\n onClick={onClick}\n >\n <div className={tileTitleWrapperClasses}>\n {React.cloneElement(icon, { size: mobile ? IconSize.Small : IconSize.Medium, isHovered, color: highlighted ? 'white' : 'black' })}\n {React.cloneElement(title, { highlighted: highlighted, compact: compact })}\n </div>\n {!compact && !mobile && <p className={tileStyles.tile__description}>{description}</p>}\n {children && <div className={tileStyles.tile__children}>{children}</div>}\n </a>\n );\n}) as TileCompound;\n\nTile.displayName = 'Tile';\nTile.Title = Title;\n\nexport default Tile;\n"],"names":[],"mappings":";;;;;;;;AA+CA,MAAM,QAAQ,MAAM,WAA+C,CAAC,OAAO,QAAQ;AACjF,QAAM,EAAE,SAAS,UAAU,WAAW,aAAa,QAAQ,gBAAgB;AAC3E,QAAM,eAAe;AAAA,IACnB,WAAW,aAAa;AAAA,IACxB;AAAA,MACE,CAAC,WAAW,0BAA0B,CAAC,GAAG;AAAA,MAC1C,CAAC,WAAW,sBAAsB,CAAC,GAAG;AAAA,IACxC;AAAA,IACA;AAAA,EACF;AACA,QAAM,YAAY;AAElB,SACG,oBAAA,WAAA,EAAU,WAAW,cAAc,KACjC,UACH;AAEJ,CAAC;AAED,MAAM,cAAc;AAEb,MAAM,OAAO,MAAM,WAAyC,CAAC,OAAO,QAAQ;AAC3E,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EAAA,IACE;AACJ,QAAM,EAAE,UAAU,UAAU,IAAI,SAA4B;AAC5D,QAAM,aAAa,cAAc;AAC3B,QAAA,SAAS,aAAa,WAAW;AACvC,QAAM,UAAU,YAAY;AAC5B,QAAM,cAAc;AAAA,IAClB,WAAW;AAAA,IACX;AAAA,MACE,CAAC,WAAW,aAAa,CAAC,GAAG;AAAA,MAC7B,CAAC,WAAW,eAAe,CAAC,GAAG;AAAA,MAC/B,CAAC,WAAW,mBAAmB,CAAC,GAAG;AAAA,IACrC;AAAA,IACA;AAAA,EACF;AACA,QAAM,0BAA0B,WAAW,WAAW,eAAe,GAAG;AAAA,IACtE,CAAC,WAAW,wBAAwB,CAAC,GAAG;AAAA,EAAA,CACzC;AAGC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK,UAAU,CAAC,KAAK,QAAQ,CAAC;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,KAAK,WAAW,WAAW,wBAAwB;AAAA,MACnD,WAAW;AAAA,MACX,eAAa;AAAA,MACb,oBAAkB,YAAY;AAAA,MAC9B;AAAA,MAEA,UAAA;AAAA,QAAC,qBAAA,OAAA,EAAI,WAAW,yBACb,UAAA;AAAA,UAAA,MAAM,aAAa,MAAM,EAAE,MAAM,SAAS,SAAS,QAAQ,SAAS,QAAQ,WAAW,OAAO,cAAc,UAAU,SAAS;AAAA,UAC/H,MAAM,aAAa,OAAO,EAAE,aAA0B,QAAkB,CAAA;AAAA,QAAA,GAC3E;AAAA,QACC,CAAC,WAAW,CAAC,8BAAW,KAAE,EAAA,WAAW,WAAW,mBAAoB,UAAY,YAAA,CAAA;AAAA,QAChF,YAAa,oBAAA,OAAA,EAAI,WAAW,WAAW,gBAAiB,SAAS,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACpE;AAEJ,CAAC;AAED,KAAK,cAAc;AACnB,KAAK,QAAQ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Tile/Tile.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { TitleTags } from './../Title/Title';\nimport { useBreakpoint, Breakpoint } from '../../hooks/useBreakpoint';\nimport { useHover } from '../../hooks/useHover';\nimport { mergeRefs } from '../../utils/refs';\nimport { IconSize } from '../Icon';\n\nimport tileStyles from './styles.module.scss';\n\nexport type TileVariants = 'normal' | 'compact';\n\ninterface TileProps extends Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick' | 'rel'> {\n children?: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /**\tSets the icon to be displayed inside the tile. */\n icon: React.ReactElement;\n /**\tSets the title to be displayed inside the tile. */\n title: React.ReactElement;\n /** Toggles the highlighted style of the tile. */\n highlighted?: boolean;\n /** Sets the description to be displayed inside the tile. */\n description?: string;\n /** Sets a fixed max and min width for the tile. */\n fixed?: boolean;\n /** Sets the visual variant of the component */\n variant?: TileVariants;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\ninterface TileTitleProps {\n children: React.ReactNode;\n className?: string;\n htmlMarkup?: TitleTags;\n highlighted?: boolean;\n compact?: boolean;\n}\n\nexport interface TileCompound extends React.ForwardRefExoticComponent<TileProps & React.RefAttributes<HTMLAnchorElement>> {\n Title: React.ForwardRefExoticComponent<TileTitleProps & React.RefAttributes<HTMLHeadingElement>>;\n}\n\nconst Title = React.forwardRef<HTMLHeadingElement, TileTitleProps>((props, ref) => {\n const { compact, children, className, htmlMarkup = 'span', highlighted } = props;\n const titleClasses = classNames(\n tileStyles['tile__title'],\n {\n [tileStyles['tile__title--highlighted']]: highlighted,\n [tileStyles['tile__title--compact']]: compact,\n },\n className\n );\n const CustomTag = htmlMarkup;\n\n return (\n <CustomTag className={titleClasses} ref={ref}>\n {children}\n </CustomTag>\n );\n});\n\nTitle.displayName = 'Title';\n\nexport const Tile = React.forwardRef<HTMLAnchorElement, TileProps>((props, ref) => {\n const {\n children,\n icon,\n title,\n className = '',\n description,\n fixed = false,\n highlighted = false,\n testId,\n target,\n rel,\n variant = 'normal',\n href,\n onClick,\n } = props;\n const { hoverRef, isHovered } = useHover<HTMLAnchorElement>();\n const breakpoint = useBreakpoint();\n const mobile = breakpoint < Breakpoint.md;\n const compact = variant === 'compact';\n const tileClasses = classNames(\n tileStyles.tile,\n {\n [tileStyles['tile--fixed']]: fixed,\n [tileStyles['tile--compact']]: compact,\n [tileStyles['tile--highlighted']]: highlighted,\n },\n className\n );\n const tileTitleWrapperClasses = classNames(tileStyles['title-wrapper'], {\n [tileStyles['title-wrapper--compact']]: compact,\n });\n\n return (\n <a\n ref={mergeRefs([ref, hoverRef])}\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : rel}\n className={tileClasses}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Tile}\n onClick={onClick}\n >\n <div className={tileTitleWrapperClasses}>\n {React.cloneElement(icon, { size: mobile ? IconSize.Small : IconSize.Medium, isHovered, color: highlighted ? 'white' : 'black' })}\n {React.cloneElement(title, { highlighted: highlighted, compact: compact })}\n </div>\n {!compact && !mobile && <p className={tileStyles.tile__description}>{description}</p>}\n {children && <div className={tileStyles.tile__children}>{children}</div>}\n </a>\n );\n}) as TileCompound;\n\nTile.displayName = 'Tile';\nTile.Title = Title;\n\nexport default Tile;\n"],"names":["React"],"mappings":";;;;;;;;AA+CA,MAAM,QAAQA,eAAM,WAA+C,CAAC,OAAO,QAAQ;AACjF,QAAM,EAAE,SAAS,UAAU,WAAW,aAAa,QAAQ,gBAAgB;AAC3E,QAAM,eAAe;AAAA,IACnB,WAAW,aAAa;AAAA,IACxB;AAAA,MACE,CAAC,WAAW,0BAA0B,CAAC,GAAG;AAAA,MAC1C,CAAC,WAAW,sBAAsB,CAAC,GAAG;AAAA,IACxC;AAAA,IACA;AAAA,EACF;AACA,QAAM,YAAY;AAElB,SACG,oBAAA,WAAA,EAAU,WAAW,cAAc,KACjC,UACH;AAEJ,CAAC;AAED,MAAM,cAAc;AAEb,MAAM,OAAOA,eAAM,WAAyC,CAAC,OAAO,QAAQ;AAC3E,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,IACR,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EAAA,IACE;AACJ,QAAM,EAAE,UAAU,UAAU,IAAI,SAA4B;AAC5D,QAAM,aAAa,cAAc;AAC3B,QAAA,SAAS,aAAa,WAAW;AACvC,QAAM,UAAU,YAAY;AAC5B,QAAM,cAAc;AAAA,IAClB,WAAW;AAAA,IACX;AAAA,MACE,CAAC,WAAW,aAAa,CAAC,GAAG;AAAA,MAC7B,CAAC,WAAW,eAAe,CAAC,GAAG;AAAA,MAC/B,CAAC,WAAW,mBAAmB,CAAC,GAAG;AAAA,IACrC;AAAA,IACA;AAAA,EACF;AACA,QAAM,0BAA0B,WAAW,WAAW,eAAe,GAAG;AAAA,IACtE,CAAC,WAAW,wBAAwB,CAAC,GAAG;AAAA,EAAA,CACzC;AAGC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK,UAAU,CAAC,KAAK,QAAQ,CAAC;AAAA,MAC9B;AAAA,MACA;AAAA,MACA,KAAK,WAAW,WAAW,wBAAwB;AAAA,MACnD,WAAW;AAAA,MACX,eAAa;AAAA,MACb,oBAAkB,YAAY;AAAA,MAC9B;AAAA,MAEA,UAAA;AAAA,QAAC,qBAAA,OAAA,EAAI,WAAW,yBACb,UAAA;AAAA,UAAAA,eAAM,aAAa,MAAM,EAAE,MAAM,SAAS,SAAS,QAAQ,SAAS,QAAQ,WAAW,OAAO,cAAc,UAAU,SAAS;AAAA,UAC/HA,eAAM,aAAa,OAAO,EAAE,aAA0B,QAAkB,CAAA;AAAA,QAAA,GAC3E;AAAA,QACC,CAAC,WAAW,CAAC,8BAAW,KAAE,EAAA,WAAW,WAAW,mBAAoB,UAAY,YAAA,CAAA;AAAA,QAChF,YAAa,oBAAA,OAAA,EAAI,WAAW,WAAW,gBAAiB,SAAS,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACpE;AAEJ,CAAC;AAED,KAAK,cAAc;AACnB,KAAK,QAAQ;"}
@@ -1,9 +1,9 @@
1
1
  @use 'sass:map';
2
- @import '../../scss/font-settings';
3
- @import '../../scss/palette';
4
- @import '../../scss/spacers';
5
- @import '../../scss/breakpoints';
6
- @import '../../scss/screen-reader';
2
+ @use '../../scss/font-settings' as font-settings;
3
+ @use '../../scss/palette' as palette;
4
+ @use '../../scss/spacers' as spacers;
5
+ @use '../../scss/screen-reader' as *;
6
+ @use '../../scss/breakpoints' as *;
7
7
  @import '../../scss/supernova/styles/colors';
8
8
 
9
9
  .tile {
@@ -12,23 +12,23 @@
12
12
 
13
13
  display: flex;
14
14
  width: inherit;
15
- padding: getSpacer(2xs) getSpacer(2xs) getSpacer(xs);
15
+ padding: spacers.getSpacer(2xs) spacers.getSpacer(2xs) spacers.getSpacer(xs);
16
16
  flex-direction: column;
17
17
  justify-content: center;
18
18
  background-color: var(--core-color-white);
19
- color: $black;
19
+ color: palette.$black;
20
20
  text-decoration: none;
21
21
  cursor: pointer;
22
22
  border: 1px solid var(--color-base-border-blueberry);
23
23
  outline: none;
24
24
 
25
25
  @media (min-width: map.get($grid-breakpoints, md)) {
26
- padding: getSpacer(l) getSpacer(m) getSpacer(l) getSpacer(s);
26
+ padding: spacers.getSpacer(l) spacers.getSpacer(m) spacers.getSpacer(l) spacers.getSpacer(s);
27
27
  justify-content: flex-start;
28
28
  }
29
29
 
30
30
  @media print {
31
- border: 1px solid $black;
31
+ border: 1px solid palette.$black;
32
32
  }
33
33
 
34
34
  &--fixed {
@@ -37,10 +37,10 @@
37
37
  }
38
38
 
39
39
  &--compact {
40
- padding: getSpacer(2xs) getSpacer(2xs) getSpacer(xs);
40
+ padding: spacers.getSpacer(2xs) spacers.getSpacer(2xs) spacers.getSpacer(xs);
41
41
 
42
42
  @media (min-width: map.get($grid-breakpoints, md)) {
43
- padding: getSpacer(s) getSpacer(m) getSpacer(s) getSpacer(s);
43
+ padding: spacers.getSpacer(s) spacers.getSpacer(m) spacers.getSpacer(s) spacers.getSpacer(s);
44
44
  }
45
45
  }
46
46
 
@@ -59,14 +59,14 @@
59
59
  }
60
60
 
61
61
  &--highlighted {
62
- background-color: $blueberry500;
63
- border-color: $blueberry500;
64
- color: $white;
62
+ background-color: palette.$blueberry500;
63
+ border-color: palette.$blueberry500;
64
+ color: palette.$white;
65
65
 
66
66
  &:hover,
67
67
  &:active {
68
- background-color: $blueberry700;
69
- border-color: $blueberry700;
68
+ background-color: palette.$blueberry700;
69
+ border-color: palette.$blueberry700;
70
70
  }
71
71
 
72
72
  &:focus-visible {
@@ -78,26 +78,26 @@
78
78
  overflow-wrap: break-word;
79
79
  word-wrap: break-word;
80
80
  word-break: break-word;
81
- font-size: $font-size-sm;
81
+ font-size: font-settings.$font-size-sm;
82
82
  text-align: center;
83
83
  line-height: 1.74rem;
84
84
  font-weight: 400;
85
- margin: getSpacer(3xs) 0 0;
85
+ margin: spacers.getSpacer(3xs) 0 0;
86
86
 
87
87
  @media (min-width: map.get($grid-breakpoints, md)) {
88
88
  text-align: left;
89
89
  font-weight: 600;
90
- font-size: $font-size-md;
90
+ font-size: font-settings.$font-size-md;
91
91
  line-height: 1.625rem;
92
- margin: getSpacer(s) 0 0 getSpacer(2xs);
92
+ margin: spacers.getSpacer(s) 0 0 spacers.getSpacer(2xs);
93
93
  }
94
94
 
95
95
  &--compact {
96
- margin: 0 0 0 getSpacer(3xs);
96
+ margin: 0 0 0 spacers.getSpacer(3xs);
97
97
  text-align: left;
98
98
 
99
99
  @media (min-width: map.get($grid-breakpoints, md)) {
100
- margin-left: getSpacer(2xs);
100
+ margin-left: spacers.getSpacer(2xs);
101
101
  }
102
102
  }
103
103
  }
@@ -113,11 +113,11 @@
113
113
  &__description {
114
114
  font-size: 1.125rem;
115
115
  line-height: 1.75rem;
116
- margin: getSpacer(2xs) 0 0 getSpacer(2xs);
116
+ margin: spacers.getSpacer(2xs) 0 0 spacers.getSpacer(2xs);
117
117
  }
118
118
 
119
119
  &__children {
120
- margin: getSpacer(s) 0 0 getSpacer(2xs);
120
+ margin: spacers.getSpacer(s) 0 0 spacers.getSpacer(2xs);
121
121
  }
122
122
  }
123
123
 
@@ -137,7 +137,7 @@
137
137
  &--compact {
138
138
  flex-direction: row;
139
139
  align-items: center;
140
- padding-right: getSpacer(s);
140
+ padding-right: spacers.getSpacer(s);
141
141
  padding-bottom: 0;
142
142
 
143
143
  svg {
@@ -1,4 +1,4 @@
1
- @import '../../scss/font-mixins';
1
+ @use '../../scss/font-mixins' as fonts;
2
2
 
3
3
  .title {
4
4
  overflow-wrap: break-word;
@@ -7,30 +7,30 @@
7
7
  margin-right: 0;
8
8
 
9
9
  &--feature {
10
- @include title-feature;
10
+ @include fonts.title-feature;
11
11
  }
12
12
 
13
13
  &--title1 {
14
- @include title1;
14
+ @include fonts.title1;
15
15
  }
16
16
 
17
17
  &--title2 {
18
- @include title2;
18
+ @include fonts.title2;
19
19
  }
20
20
 
21
21
  &--title3 {
22
- @include title3;
22
+ @include fonts.title3;
23
23
  }
24
24
 
25
25
  &--title4 {
26
- @include title4;
26
+ @include fonts.title4;
27
27
  }
28
28
 
29
29
  &--title5 {
30
- @include title5;
30
+ @include fonts.title5;
31
31
  }
32
32
 
33
33
  &--title6 {
34
- @include title6;
34
+ @include fonts.title6;
35
35
  }
36
36
  }