@helsenorge/designsystem-react 5.7.0 → 5.9.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 (218) hide show
  1. package/AnchorLink.js +1 -1
  2. package/Badge.js +1 -1
  3. package/Button.js +1 -1
  4. package/CHANGELOG.md +813 -469
  5. package/Checkbox.js +1 -1
  6. package/Close.js +1 -1
  7. package/FormLayout.js +1 -1
  8. package/HighlightBox.js +1 -1
  9. package/HorizontalScroll.js +1 -1
  10. package/Input.js +1 -1
  11. package/Label.js +1 -1
  12. package/LinkList.js +1 -1
  13. package/ListHeader.js +1 -1
  14. package/ListHeaderText.js +1 -1
  15. package/MaxCharacters.js +1 -1
  16. package/Panel.js +1 -1
  17. package/PopOver.js +1 -1
  18. package/RadioButton.js +1 -1
  19. package/Select.js +1 -1
  20. package/Spacer.js +1 -1
  21. package/StepButtons.js +1 -1
  22. package/Table.js +1 -1
  23. package/TableBody.js +1 -1
  24. package/TableCell.js +1 -1
  25. package/TableExpandedRow.js +1 -1
  26. package/TableExpanderCell.js +1 -1
  27. package/TableHeadCell.js +1 -1
  28. package/TableHeadCell.js.map +1 -1
  29. package/TableRow.js +1 -1
  30. package/Textarea.js +1 -1
  31. package/Title.js +1 -1
  32. package/Tooltip.js +1 -1
  33. package/TooltipWord.js +1 -1
  34. package/Trigger.js +1 -1
  35. package/Validation.js +1 -1
  36. package/components/AnchorLink/styles.module.scss +0 -11
  37. package/components/ButtonWithModal/index.js +1 -1
  38. package/components/DictionaryTrigger/index.js +1 -1
  39. package/components/Dropdown/index.js.map +1 -1
  40. package/components/Duolist/index.js +1 -1
  41. package/components/EmptyState/EmptyState.d.ts +13 -0
  42. package/components/EmptyState/EmptyState.d.ts.map +1 -0
  43. package/components/EmptyState/NobodyHome.d.ts +4 -0
  44. package/components/EmptyState/NobodyHome.d.ts.map +1 -0
  45. package/components/EmptyState/componentdata.json +1 -0
  46. package/components/EmptyState/index.d.ts +4 -0
  47. package/components/EmptyState/index.d.ts.map +1 -0
  48. package/components/EmptyState/index.js +2 -0
  49. package/components/EmptyState/index.js.map +1 -0
  50. package/components/EmptyState/styles.module.scss +26 -0
  51. package/components/EmptyState/styles.module.scss.d.ts +10 -0
  52. package/components/Expander/index.js +1 -1
  53. package/components/ExpanderList/index.js.map +1 -1
  54. package/components/HelpBubbleExample/index.js +1 -1
  55. package/components/HelpPanel/index.js +1 -1
  56. package/components/HelpQuestion/index.js +1 -1
  57. package/components/Icons/ActiveMonitoring.js +1 -1
  58. package/components/Icons/AlertSignFill.js +1 -1
  59. package/components/Icons/Archive.js +1 -1
  60. package/components/Icons/ArmFlexing.js +1 -1
  61. package/components/Icons/ArrowLeft.js +1 -1
  62. package/components/Icons/ArrowRight.js +1 -1
  63. package/components/Icons/ArrowUpRight.js +1 -1
  64. package/components/Icons/Attachment.js +1 -1
  65. package/components/Icons/Bell.js +1 -1
  66. package/components/Icons/BirthdayCake.js +1 -1
  67. package/components/Icons/Brain.js +1 -1
  68. package/components/Icons/BreastRemoval.js +1 -1
  69. package/components/Icons/BrokenHeart.js +1 -1
  70. package/components/Icons/BrokenPuzzle.js +1 -1
  71. package/components/Icons/CalendarChange.js +1 -1
  72. package/components/Icons/CalendarEvent.js +1 -1
  73. package/components/Icons/Candle.js +1 -1
  74. package/components/Icons/Change.js +1 -1
  75. package/components/Icons/Check.js +1 -1
  76. package/components/Icons/CheckFill.js +1 -1
  77. package/components/Icons/ChevronDown.js +1 -1
  78. package/components/Icons/ChevronLeft.js +1 -1
  79. package/components/Icons/ChevronRight.js +1 -1
  80. package/components/Icons/ChevronUp.js +1 -1
  81. package/components/Icons/ChevronsUp.js +1 -1
  82. package/components/Icons/Cigarette.js +1 -1
  83. package/components/Icons/Cough.js +1 -1
  84. package/components/Icons/Cross.js +1 -1
  85. package/components/Icons/Documents.js +1 -1
  86. package/components/Icons/DonorCard.js +1 -1
  87. package/components/Icons/Download.js +1 -1
  88. package/components/Icons/EarDeaf.js +1 -1
  89. package/components/Icons/EmoticonDelighted.js +1 -1
  90. package/components/Icons/EmoticonDisappointed.js +1 -1
  91. package/components/Icons/Epilepsy.js +1 -1
  92. package/components/Icons/ErrorSignFill.js +1 -1
  93. package/components/Icons/ErrorSignStroke.js +1 -1
  94. package/components/Icons/ExitFullScreen.js +1 -1
  95. package/components/Icons/Facebook.js +1 -1
  96. package/components/Icons/File.js +1 -1
  97. package/components/Icons/Filter.js +1 -1
  98. package/components/Icons/FingerBleed.js +1 -1
  99. package/components/Icons/Garden.js +1 -1
  100. package/components/Icons/GenderIdentity.js +1 -1
  101. package/components/Icons/HTMLFile.js +1 -1
  102. package/components/Icons/HandsAndHeart.js +1 -1
  103. package/components/Icons/HealthcarePerson.js +1 -1
  104. package/components/Icons/HelpingHand.js +1 -1
  105. package/components/Icons/Hiker.js +1 -1
  106. package/components/Icons/Hipprosthesis.js +1 -1
  107. package/components/Icons/History.js +1 -1
  108. package/components/Icons/HivAndAids.js +1 -1
  109. package/components/Icons/Hormone.js +1 -1
  110. package/components/Icons/Hourglass.js +1 -1
  111. package/components/Icons/Icon.js +1 -1
  112. package/components/Icons/ImgFile.js +1 -1
  113. package/components/Icons/InfoSignFill.js +1 -1
  114. package/components/Icons/InfoSignStroke.js +1 -1
  115. package/components/Icons/JointPain.js +1 -1
  116. package/components/Icons/JpgFile.js +1 -1
  117. package/components/Icons/KitchenScale.js +1 -1
  118. package/components/Icons/LawBook.js +1 -1
  119. package/components/Icons/LegalDocument.js +1 -1
  120. package/components/Icons/Location.js +1 -1
  121. package/components/Icons/Lock.js +1 -1
  122. package/components/Icons/Lungs.js +1 -1
  123. package/components/Icons/Menu.js +1 -1
  124. package/components/Icons/Microscope.js +1 -1
  125. package/components/Icons/Minus.js +1 -1
  126. package/components/Icons/Mirror.js +1 -1
  127. package/components/Icons/Mushroom.js +1 -1
  128. package/components/Icons/NoAccess.js +1 -1
  129. package/components/Icons/NoEye.js +1 -1
  130. package/components/Icons/NoFilter.js +1 -1
  131. package/components/Icons/Osteotomy.js +1 -1
  132. package/components/Icons/PaintRoller.js +1 -1
  133. package/components/Icons/PaperPlane.js +1 -1
  134. package/components/Icons/PersonWithMagnifyingGlass.js +1 -1
  135. package/components/Icons/PizzaSlice.js +1 -1
  136. package/components/Icons/Play.js +1 -1
  137. package/components/Icons/PngFile.js +1 -1
  138. package/components/Icons/Podcast.js +1 -1
  139. package/components/Icons/QrCode.js +1 -1
  140. package/components/Icons/Quarrel.js +1 -1
  141. package/components/Icons/RadioTherapy.js +1 -1
  142. package/components/Icons/Recovery.js +1 -1
  143. package/components/Icons/Refresh.js +1 -1
  144. package/components/Icons/RtfFile.js +1 -1
  145. package/components/Icons/STDs.js +1 -1
  146. package/components/Icons/Search.js +1 -1
  147. package/components/Icons/SectionSign.js +1 -1
  148. package/components/Icons/Sexualorientation.js +1 -1
  149. package/components/Icons/ShakingHand.js +1 -1
  150. package/components/Icons/Shield.js +1 -1
  151. package/components/Icons/Snake.js +1 -1
  152. package/components/Icons/Spray.js +1 -1
  153. package/components/Icons/Stopwatch.js +1 -1
  154. package/components/Icons/Surgery.js +1 -1
  155. package/components/Icons/Syringe.js +1 -1
  156. package/components/Icons/TeddyBear.js +1 -1
  157. package/components/Icons/ThinkingAboutBaby.js +1 -1
  158. package/components/Icons/TimePassing.js +1 -1
  159. package/components/Icons/Toolbox.js +1 -1
  160. package/components/Icons/TriangleX.js +1 -1
  161. package/components/Icons/Undo.js +1 -1
  162. package/components/Icons/UniProsthesis.js +1 -1
  163. package/components/Icons/VerticalDots.js +1 -1
  164. package/components/Icons/Wheelchair.js +1 -1
  165. package/components/Icons/Window.js +1 -1
  166. package/components/Icons/WorkSuitcase.js +1 -1
  167. package/components/Icons/X.js +1 -1
  168. package/components/Icons/XOutline.js +1 -1
  169. package/components/Icons/XmlFile.js +1 -1
  170. package/components/Icons/YouTube.js +1 -1
  171. package/components/Icons/Zoom.js +1 -1
  172. package/components/Illustration/Illustration.d.ts +6 -0
  173. package/components/Illustration/Illustration.d.ts.map +1 -0
  174. package/components/Illustration/index.d.ts +2 -0
  175. package/components/Illustration/index.d.ts.map +1 -0
  176. package/components/Illustration/index.js +2 -0
  177. package/components/Illustration/index.js.map +1 -0
  178. package/components/Input/index.d.ts.map +1 -1
  179. package/components/Label/componentdata.json +1 -1
  180. package/components/List/index.js +1 -1
  181. package/components/Logo/index.js +1 -1
  182. package/components/PanelList/index.js +1 -1
  183. package/components/PopMenu/index.js +1 -1
  184. package/components/Portal/index.js +1 -1
  185. package/components/PromoPanel/PromoPanel.d.ts +33 -0
  186. package/components/PromoPanel/PromoPanel.d.ts.map +1 -0
  187. package/components/PromoPanel/componentdata.json +1 -0
  188. package/components/PromoPanel/index.d.ts +4 -0
  189. package/components/PromoPanel/index.d.ts.map +1 -0
  190. package/components/PromoPanel/index.js +2 -0
  191. package/components/PromoPanel/index.js.map +1 -0
  192. package/components/PromoPanel/styles.module.scss +114 -0
  193. package/components/PromoPanel/styles.module.scss.d.ts +16 -0
  194. package/components/ServiceMessage/index.js +1 -1
  195. package/components/SharingStatus/index.js +1 -1
  196. package/components/Slider/Slider.d.ts +1 -0
  197. package/components/Slider/Slider.d.ts.map +1 -1
  198. package/components/Slider/index.js +1 -1
  199. package/components/Slider/index.js.map +1 -1
  200. package/components/Slider/styles.module.scss +2 -3
  201. package/components/Step/index.js +1 -1
  202. package/components/Table/TableHeadCell/TableHeadCell.d.ts.map +1 -1
  203. package/components/Table/styles.module.scss +0 -12
  204. package/components/Table/styles.module.scss.d.ts +0 -1
  205. package/components/Tag/index.js +1 -1
  206. package/components/TagList/index.js +1 -1
  207. package/components/Tile/index.js +1 -1
  208. package/components/TooltipExample/index.js +1 -1
  209. package/constants.d.ts +2 -0
  210. package/constants.d.ts.map +1 -1
  211. package/constants.js +1 -1
  212. package/constants.js.map +1 -1
  213. package/hoc/withBreakpoint/withBreakpoint.js +1 -1
  214. package/hooks/usePseudoClasses.d.ts.map +1 -1
  215. package/hooks/usePseudoClasses.js +1 -1
  216. package/hooks/usePseudoClasses.js.map +1 -1
  217. package/package.json +1 -1
  218. package/utils/component.js +1 -1
@@ -1,2 +1,2 @@
1
- import c from"react";import{createPortal as l}from"react-dom";import{AnalyticsId as n}from"../../constants.js";function p({children:s,parent:e,className:o,testId:i}){const t=c.useMemo(()=>document.createElement("div"),[]);return t.setAttribute("data-analyticsid",n.Portal),i&&t.setAttribute("data-testid",i),c.useEffect(()=>{const a=e&&e.appendChild?e:document.body,d=["portal-container"];return o&&o.split(" ").forEach(r=>d.push(r)),d.forEach(r=>t.classList.add(r)),a.appendChild(t),()=>{a.removeChild(t)}},[t,e,o]),l(s,t)}export{p as default};
1
+ import c from"react";import{createPortal as s}from"react-dom";import{AnalyticsId as n}from"../../constants.js";function p({children:l,parent:e,className:o,testId:i}){const t=c.useMemo(()=>document.createElement("div"),[]);return t.setAttribute("data-analyticsid",n.Portal),i&&t.setAttribute("data-testid",i),c.useEffect(()=>{const a=e&&e.appendChild?e:document.body,d=["portal-container"];return o&&o.split(" ").forEach(r=>d.push(r)),d.forEach(r=>t.classList.add(r)),a.appendChild(t),()=>{a.removeChild(t)}},[t,e,o]),s(l,t)}export{p as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { PaletteNames } from '../../theme/palette';
3
+ import { AnchorLinkTags, AnchorLinkTargets } from '../AnchorLink';
4
+ import { IllustrationProps } from '../Illustration/Illustration';
5
+ import { TitleTags } from '../Title';
6
+ export type PromoPanelColors = Extract<PaletteNames, 'neutral' | 'blueberry' | 'cherry'>;
7
+ interface PromoPanelProps {
8
+ /** Used as the link text if set. title or children must be set for the link to have accessible text. */
9
+ title?: string;
10
+ /** Used as the link text if title is not set. */
11
+ children?: string;
12
+ /** Illustration element */
13
+ illustration?: React.FC<IllustrationProps>;
14
+ /** Changes the underlying element of the title. */
15
+ titleHtmlMarkup?: TitleTags;
16
+ /** Changes the background color. Default: white */
17
+ color?: PromoPanelColors;
18
+ /** Not used if linkComponent is set */
19
+ href?: string;
20
+ /** Anchor link target. If linkComponent is set, this prop is only used to display the right icon for external links. */
21
+ target?: AnchorLinkTargets;
22
+ /** HTML markup for anchor link. Not used if linkComponent is set. Default: a */
23
+ linkHtmlMarkup?: AnchorLinkTags;
24
+ /** Function that is called when clicked. Not used if linkComponent is set. */
25
+ linkOnClick?: () => void;
26
+ /** Custom link component. Must be "a" a or "button" element with no styling. */
27
+ linkComponent?: React.ReactElement;
28
+ /** Sets the data-testid attribute. */
29
+ testId?: string;
30
+ }
31
+ declare const PromoPanel: React.FC<PromoPanelProps>;
32
+ export default PromoPanel;
33
+ //# sourceMappingURL=PromoPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromoPanel.d.ts","sourceRoot":"","sources":["../../../src/components/PromoPanel/PromoPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIlE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAc,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC;AAEzF,UAAU,eAAe;IACvB,wGAAwG;IACxG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC3C,mDAAmD;IACnD,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,mDAAmD;IACnD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wHAAwH;IACxH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,gFAAgF;IAChF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gFAAgF;IAChF,aAAa,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IACnC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8BD,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgDzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ {"props":{"title":{"defaultValue":null,"description":"Used as the link text if set. title or children must be set for the link to have accessible text.","name":"title","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"string"}},"children":{"defaultValue":null,"description":"Used as the link text if title is not set.","name":"children","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"TypeLiteral"}],"required":false,"type":{"name":"(string & (boolean | ReactChild | ReactFragment | ReactPortal | null))"}},"illustration":{"defaultValue":null,"description":"Illustration element","name":"illustration","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"FC<IllustrationProps>"}},"titleHtmlMarkup":{"defaultValue":null,"description":"Changes the underlying element of the title.","name":"titleHtmlMarkup","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"enum","raw":"TitleTags","value":[{"value":"\"h1\""},{"value":"\"h2\""},{"value":"\"h3\""},{"value":"\"h4\""},{"value":"\"h5\""},{"value":"\"span\""}]}},"color":{"defaultValue":null,"description":"Changes the background color. Default: white","name":"color","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"enum","raw":"PromoPanelColors","value":[{"value":"\"blueberry\""},{"value":"\"cherry\""},{"value":"\"neutral\""}]}},"href":{"defaultValue":null,"description":"Not used if linkComponent is set","name":"href","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"string"}},"target":{"defaultValue":null,"description":"Anchor link target. If linkComponent is set, this prop is only used to display the right icon for external links.","name":"target","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"enum","raw":"AnchorLinkTargets","value":[{"value":"\"_self\""},{"value":"\"_blank\""},{"value":"\"_parent\""}]}},"linkHtmlMarkup":{"defaultValue":null,"description":"HTML markup for anchor link. Not used if linkComponent is set. Default: a","name":"linkHtmlMarkup","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"enum","raw":"AnchorLinkTags","value":[{"value":"\"a\""},{"value":"\"button\""}]}},"linkOnClick":{"defaultValue":null,"description":"Function that is called when clicked. Not used if linkComponent is set.","name":"linkOnClick","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"(() => void)"}},"linkComponent":{"defaultValue":null,"description":"Custom link component. Must be \"a\" a or \"button\" element with no styling.","name":"linkComponent","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"ReactElement<any, string | JSXElementConstructor<any>>"}},"testId":{"defaultValue":null,"description":"Sets the data-testid attribute.","name":"testId","parent":{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"},"declarations":[{"fileName":"src/components/PromoPanel/PromoPanel.tsx","name":"PromoPanelProps"}],"required":false,"type":{"name":"string"}}}}
@@ -0,0 +1,4 @@
1
+ import PromoPanel from './PromoPanel';
2
+ export * from './PromoPanel';
3
+ export default PromoPanel;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PromoPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,eAAe,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import d from"classnames";import{AnalyticsId as s,IconSize as o}from"../../constants.js";import{useBreakpoint as h,Breakpoint as C}from"../../hooks/useBreakpoint.js";import{useHover as E}from"../../hooks/useHover.js";import{getColor as r}from"../../theme/currys/color.js";import{Icon as P}from"../Icons/Icon.js";import b from"../Icons/ArrowRight.js";import g from"../Icons/ArrowUpRight.js";import{T as _}from"../../Title.js";import n from"./styles.module.scss";import"../../theme/grid.js";import"../../hooks/usePseudoClasses.js";import"../../theme/index.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../Title/styles.module.scss";const v=t=>t.linkComponent?e.cloneElement(t.linkComponent,{children:t.children}):t.linkHtmlMarkup==="button"?e.createElement("button",{type:"button",onClick:t.linkOnClick},t.children):e.createElement("a",{href:t.href,target:t.target,onClick:t.linkOnClick},t.children),y=t=>{const{isHovered:i,hoverRef:a}=E(),{color:m="neutral",titleHtmlMarkup:c="h2",linkHtmlMarkup:k="a"}=t,u=h(),f=d(n.promopanel,n[`promopanel--${m}`],!t.illustration&&n["promopanel--no-illustration"]),l=e.createElement(v,{href:t.href,target:t.target,linkComponent:t.linkComponent,linkHtmlMarkup:k,linkOnClick:t.linkOnClick},t.title||t.children);return e.createElement("div",{className:f,"data-testid":t.testId,"data-analyticsid":s.PromoPanel,ref:a},e.isValidElement(t.illustration)&&e.cloneElement(t.illustration,{className:n.promopanel__illustration}),e.createElement("div",{className:n.promopanel__content},t.title&&e.createElement(_,{htmlMarkup:c,appearance:"title3"},l),t.title?t.children:l),e.createElement("div",{className:n.promopanel__icon},e.createElement(P,{svgIcon:t.target==="_blank"?g:b,size:u>=C.md?o.Small:o.XSmall,isHovered:i,color:r("blueberry",500),hoverColor:r("blueberry",600)})))},q=y;export{q as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/PromoPanel/PromoPanel.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId, IconSize } from '../../constants';\nimport { Breakpoint, useBreakpoint } from '../../hooks/useBreakpoint';\nimport { useHover } from '../../hooks/useHover';\nimport { getColor } from '../../theme/currys/color';\nimport { PaletteNames } from '../../theme/palette';\nimport { AnchorLinkTags, AnchorLinkTargets } from '../AnchorLink';\nimport Icon from '../Icons';\nimport ArrowRight from '../Icons/ArrowRight';\nimport ArrowUpRight from '../Icons/ArrowUpRight';\nimport { IllustrationProps } from '../Illustration/Illustration';\nimport Title, { TitleTags } from '../Title';\n\nimport styles from './styles.module.scss';\n\nexport type PromoPanelColors = Extract<PaletteNames, 'neutral' | 'blueberry' | 'cherry'>;\n\ninterface PromoPanelProps {\n /** Used as the link text if set. title or children must be set for the link to have accessible text. */\n title?: string;\n /** Used as the link text if title is not set. */\n children?: string;\n /** Illustration element */\n illustration?: React.FC<IllustrationProps>;\n /** Changes the underlying element of the title. */\n titleHtmlMarkup?: TitleTags;\n /** Changes the background color. Default: white */\n color?: PromoPanelColors;\n /** Not used if linkComponent is set */\n href?: string;\n /** Anchor link target. If linkComponent is set, this prop is only used to display the right icon for external links. */\n target?: AnchorLinkTargets;\n /** HTML markup for anchor link. Not used if linkComponent is set. Default: a */\n linkHtmlMarkup?: AnchorLinkTags;\n /** Function that is called when clicked. Not used if linkComponent is set. */\n linkOnClick?: () => void;\n /** Custom link component. Must be \"a\" a or \"button\" element with no styling. */\n linkComponent?: React.ReactElement;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\ninterface PromoPanelLinkProps {\n children?: string;\n href?: string;\n target?: AnchorLinkTargets;\n linkComponent?: React.ReactElement;\n linkHtmlMarkup?: AnchorLinkTags;\n linkOnClick?: () => void;\n}\n\nconst PromoPanelLink: React.FC<PromoPanelLinkProps> = props => {\n if (props.linkComponent) {\n return React.cloneElement(props.linkComponent, { children: props.children });\n }\n\n if (props.linkHtmlMarkup === 'button') {\n return (\n <button type={'button'} onClick={props.linkOnClick}>\n {props.children}\n </button>\n );\n }\n return (\n <a href={props.href} target={props.target} onClick={props.linkOnClick}>\n {props.children}\n </a>\n );\n};\n\nconst PromoPanel: React.FC<PromoPanelProps> = props => {\n const { isHovered, hoverRef } = useHover<HTMLDivElement>();\n\n const { color = 'neutral', titleHtmlMarkup = 'h2', linkHtmlMarkup = 'a' } = props;\n\n const breakpoint = useBreakpoint();\n\n const promoPanelClasses = classNames(\n styles.promopanel,\n styles[`promopanel--${color}`],\n !props.illustration && styles['promopanel--no-illustration']\n );\n\n const promoPanelLink = (\n <PromoPanelLink\n href={props.href}\n target={props.target}\n linkComponent={props.linkComponent}\n linkHtmlMarkup={linkHtmlMarkup}\n linkOnClick={props.linkOnClick}\n >\n {props.title || props.children}\n </PromoPanelLink>\n );\n\n return (\n <div className={promoPanelClasses} data-testid={props.testId} data-analyticsid={AnalyticsId.PromoPanel} ref={hoverRef}>\n {React.isValidElement<IllustrationProps>(props.illustration) &&\n React.cloneElement(props.illustration, { className: styles.promopanel__illustration })}\n <div className={styles.promopanel__content}>\n {props.title && (\n <Title htmlMarkup={titleHtmlMarkup} appearance={'title3'}>\n {promoPanelLink}\n </Title>\n )}\n {!props.title ? promoPanelLink : props.children}\n </div>\n <div className={styles.promopanel__icon}>\n <Icon\n svgIcon={props.target === '_blank' ? ArrowUpRight : ArrowRight}\n size={breakpoint >= Breakpoint.md ? IconSize.Small : IconSize.XSmall}\n isHovered={isHovered}\n color={getColor('blueberry', 500)}\n hoverColor={getColor('blueberry', 600)}\n />\n </div>\n </div>\n );\n};\n\nexport default PromoPanel;\n"],"names":["PromoPanelLink","props","React","PromoPanel","isHovered","hoverRef","useHover","color","titleHtmlMarkup","linkHtmlMarkup","breakpoint","useBreakpoint","promoPanelClasses","classNames","styles","promoPanelLink","AnalyticsId","Title","Icon","ArrowUpRight","ArrowRight","Breakpoint","IconSize","getColor","PromoPanel$1"],"mappings":"6vBAsDA,MAAMA,EAAyDC,GACzDA,EAAM,cACDC,EAAM,aAAaD,EAAM,cAAe,CAAE,SAAUA,EAAM,SAAU,EAGzEA,EAAM,iBAAmB,SAEzBC,EAAA,cAAC,UAAO,KAAM,SAAU,QAASD,EAAM,WAAA,EACpCA,EAAM,QACT,EAIDC,EAAA,cAAA,IAAA,CAAE,KAAMD,EAAM,KAAM,OAAQA,EAAM,OAAQ,QAASA,EAAM,WACvD,EAAAA,EAAM,QACT,EAIEE,EAAiDF,GAAA,CACrD,KAAM,CAAE,UAAAG,EAAW,SAAAC,CAAS,EAAIC,EAAyB,EAEnD,CAAE,MAAAC,EAAQ,UAAW,gBAAAC,EAAkB,KAAM,eAAAC,EAAiB,GAAQ,EAAAR,EAEtES,EAAaC,IAEbC,EAAoBC,EACxBC,EAAO,WACPA,EAAO,eAAeP,CAAK,EAAE,EAC7B,CAACN,EAAM,cAAgBa,EAAO,6BAA6B,CAAA,EAGvDC,EACJb,EAAA,cAACF,EAAA,CACC,KAAMC,EAAM,KACZ,OAAQA,EAAM,OACd,cAAeA,EAAM,cACrB,eAAAQ,EACA,YAAaR,EAAM,WAAA,EAElBA,EAAM,OAASA,EAAM,QAAA,EAKxB,OAAAC,EAAA,cAAC,MAAI,CAAA,UAAWU,EAAmB,cAAaX,EAAM,OAAQ,mBAAkBe,EAAY,WAAY,IAAKX,CAAA,EAC1GH,EAAM,eAAkCD,EAAM,YAAY,GACzDC,EAAM,aAAaD,EAAM,aAAc,CAAE,UAAWa,EAAO,wBAA0B,CAAA,EACtFZ,EAAA,cAAA,MAAA,CAAI,UAAWY,EAAO,mBACpB,EAAAb,EAAM,OACJC,EAAA,cAAAe,EAAA,CAAM,WAAYT,EAAiB,WAAY,QAAA,EAC7CO,CACH,EAEAd,EAAM,MAAyBA,EAAM,SAAvBc,CAClB,EACCb,EAAA,cAAA,MAAA,CAAI,UAAWY,EAAO,gBACrB,EAAAZ,EAAA,cAACgB,EAAA,CACC,QAASjB,EAAM,SAAW,SAAWkB,EAAeC,EACpD,KAAMV,GAAcW,EAAW,GAAKC,EAAS,MAAQA,EAAS,OAC9D,UAAAlB,EACA,MAAOmB,EAAS,YAAa,GAAG,EAChC,WAAYA,EAAS,YAAa,GAAG,CAAA,CAEzC,CAAA,CACF,CAEJ,EAEAC,EAAerB"}
@@ -0,0 +1,114 @@
1
+ @use 'sass:map';
2
+ @import '../../scss/palette';
3
+ @import '../../scss/spacers';
4
+ @import '../../scss/breakpoints';
5
+
6
+ $colors: 'neutral', 'blueberry', 'cherry';
7
+
8
+ .promopanel {
9
+ width: 100%;
10
+ display: flex;
11
+ align-items: center;
12
+ border-radius: 8px;
13
+ padding-left: getSpacer(s);
14
+ padding-right: getSpacer(s);
15
+ transition: background-color 0.15s ease-in-out;
16
+
17
+ &:focus-within {
18
+ box-shadow: 0 0 0 2px $black, inset 0 0 0 2px $black;
19
+ }
20
+
21
+ @media (min-width: map.get($grid-breakpoints, xs)) {
22
+ padding-left: 0;
23
+ }
24
+
25
+ @media (min-width: map.get($grid-breakpoints, md)) {
26
+ padding-right: getSpacer(l);
27
+ }
28
+
29
+ &--no-illustration {
30
+ padding-left: getSpacer(s);
31
+
32
+ @media (min-width: map.get($grid-breakpoints, md)) {
33
+ padding-left: getSpacer(l);
34
+ }
35
+ }
36
+
37
+ @each $color in $colors {
38
+ &--#{$color} {
39
+ background-color: map.get($palette-map, #{$color}50);
40
+
41
+ &:hover {
42
+ background-color: map.get($palette-map, #{$color}100);
43
+ }
44
+ }
45
+ }
46
+
47
+ &__illustration {
48
+ display: none;
49
+ flex-shrink: 0;
50
+
51
+ @media (min-width: map.get($grid-breakpoints, xs)) {
52
+ display: inline;
53
+ width: 120px;
54
+ height: auto;
55
+ }
56
+
57
+ @media (min-width: map.get($grid-breakpoints, md)) {
58
+ width: 156px;
59
+ }
60
+
61
+ @media (min-width: map.get($grid-breakpoints, lg)) {
62
+ width: 180px;
63
+ }
64
+ }
65
+
66
+ &__content {
67
+ display: flex;
68
+ flex-direction: column;
69
+ gap: getSpacer(3xs);
70
+ max-width: 696px;
71
+ padding-top: getSpacer(m);
72
+ padding-bottom: getSpacer(m);
73
+
74
+ @media (min-width: map.get($grid-breakpoints, md)) {
75
+ gap: getSpacer(2xs);
76
+ padding-top: getSpacer(l);
77
+ padding-bottom: getSpacer(l);
78
+ }
79
+
80
+ @media (min-width: map.get($grid-breakpoints, lg)) {
81
+ padding-top: getSpacer(xl);
82
+ padding-bottom: getSpacer(xl);
83
+ }
84
+
85
+ a,
86
+ button {
87
+ all: unset;
88
+ cursor: pointer;
89
+
90
+ &::after {
91
+ inset: 0;
92
+ content: '';
93
+ position: absolute;
94
+ }
95
+ }
96
+ }
97
+
98
+ &__icon {
99
+ margin-left: auto;
100
+ padding-left: getSpacer(s);
101
+
102
+ @media (min-width: map.get($grid-breakpoints, xs)) {
103
+ display: none;
104
+ }
105
+
106
+ @media (min-width: map.get($grid-breakpoints, sm)) {
107
+ display: block;
108
+ }
109
+
110
+ @media (min-width: map.get($grid-breakpoints, lg)) {
111
+ padding-left: getSpacer(l);
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,16 @@
1
+ export type Styles = {
2
+ promopanel: string;
3
+ promopanel__content: string;
4
+ promopanel__icon: string;
5
+ promopanel__illustration: string;
6
+ 'promopanel--blueberry': string;
7
+ 'promopanel--cherry': string;
8
+ 'promopanel--neutral': string;
9
+ 'promopanel--no-illustration': string;
10
+ };
11
+
12
+ export type ClassNames = keyof Styles;
13
+
14
+ declare const styles: Styles;
15
+
16
+ export default styles;
@@ -1,2 +1,2 @@
1
- import e,{useState as R}from"react";import u from"classnames";import{useBreakpoint as w}from"../../hooks/useBreakpoint.js";import{useHover as h}from"../../hooks/useHover.js";import{useUuid as y}from"../../hooks/useUuid.js";import{getColor as I}from"../../theme/currys/color.js";import{breakpoints as M}from"../../theme/grid.js";import{palette as c}from"../../theme/palette.js";import{getAriaLabelAttributes as X}from"../../utils/accessibility.js";import{C as F}from"../../Close.js";import{Icon as n}from"../Icons/Icon.js";import{IconSize as N}from"../../constants.js";import L from"../Icons/CheckFill.js";import A from"../Icons/ChevronDown.js";import U from"../Icons/ChevronUp.js";import $ from"../Icons/ErrorSignFill.js";import j from"../Icons/Forward.js";import B from"../Icons/InfoSignFill.js";import q from"../Icons/TriangleX.js";import D from"../Icons/X.js";import r from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../uuid.js";import"../../utils/environment.js";import"../../theme/index.js";import"../../theme/spacers.js";import"../../utils/refs.js";import"../Close/styles.module.scss";const G=({label:m,variant:t,id:i,hasExpander:s,isExpanded:l,dismissable:_,onExpand:v,onDismiss:p,closeBtnText:g})=>{const f=w(),{isHovered:a,hoverRef:d}=h(),o=f<M.lg?N.XSmall:N.Small,C={info:e.createElement(n,{svgIcon:B,color:c.blueberry700,hoverColor:c.blueberry700,size:o,isHovered:a}),warn:e.createElement(n,{svgIcon:$,color:c.banana700,hoverColor:c.banana700,size:o,isHovered:a}),alert:e.createElement(n,{svgIcon:q,color:c.cherry700,hoverColor:c.cherry700,size:o,isHovered:a}),success:e.createElement(n,{svgIcon:L,color:c.kiwi900,hoverColor:c.kiwi900,size:o,isHovered:a})},b=s?"button":"span",E=u(r["service-message__label-container"],r[`service-message__label-container--${t}`],s&&r["service-message__label-container--has-expander"]);return e.createElement("div",{className:E,ref:d},e.createElement("div",{className:r["service-message__container"]},e.createElement("div",{className:r["service-message__row"]},e.createElement("div",{className:r["service-message__col"]},e.createElement("div",{className:r["service-message__label"]},C[t],e.createElement("h1",{className:r["service-message__title"],id:i},e.createElement(b,{className:r["service-message__toggle"],onClick:s?v:void 0,"aria-expanded":s?l:void 0},m)),s&&e.createElement(n,{size:o,svgIcon:l?U:A,isHovered:a}),!s&&_&&e.createElement(F,{onClick:p,ariaLabel:g,className:r["service-message__close"]}))))))},J=({info:m,extraInfo:t,urlTitle:i,url:s,target:l,dismissable:_,closeBtnText:v,onDismiss:p})=>{const{hoverRef:g,isHovered:f}=h(),{hoverRef:a,isHovered:d}=h(),o=s&&i;return e.createElement("div",{className:r["service-message__container"]},e.createElement("div",{className:r["service-message__row"]},e.createElement("div",{className:r["service-message__col"]},e.createElement("div",{className:r["service-message__content"]},m&&e.createElement("p",{className:r["service-message__info"]},m),t&&e.createElement("p",{className:u(r["service-message__info"],r["service-message__info--extra"])},t),e.createElement("div",{className:r["service-message__actions"]},o&&e.createElement("a",{className:r["service-message__action"],href:s,ref:g,target:l},i,e.createElement(n,{size:N.XSmall,svgIcon:j,color:I("blueberry",700),isHovered:f})),_&&e.createElement("button",{ref:a,className:u(r["service-message__action"],r["service-message__action--close"]),"aria-label":v,onClick:p},v,e.createElement(n,{size:N.XSmall,svgIcon:D,color:I("blueberry",700),isHovered:d})))))))},K=({label:m,dismissable:t=!0,onDismiss:i,info:s,extraInfo:l,urlTitle:_,url:v,target:p="_self",closeBtnText:g="fjern melding",expanderOpenFromStart:f=!1,variant:a="alert",testId:d})=>{const[o,C]=R(f),b=y(),E=!!s||!!l,S=a==="alert"?"alert":"region",k=X({label:m,id:b}),z=()=>{E&&C(!o)},H=u(r["service-message"],r[`service-message--${a}`],o&&r["service-message--expanded"]);return e.createElement("div",{className:H,role:S,...k,"data-testid":d},e.createElement(G,{label:m,variant:a,id:b,hasExpander:E,isExpanded:o,dismissable:t,onExpand:z,onDismiss:i,closeBtnText:g}),E&&o&&e.createElement(J,{info:s,extraInfo:l,urlTitle:_,url:v,target:p,dismissable:t,onDismiss:i,closeBtnText:g}))},ue=K;export{ue as default};
1
+ import e,{useState as R}from"react";import u from"classnames";import{useBreakpoint as w}from"../../hooks/useBreakpoint.js";import{useHover as h}from"../../hooks/useHover.js";import{useUuid as y}from"../../hooks/useUuid.js";import{getColor as I}from"../../theme/currys/color.js";import{breakpoints as M}from"../../theme/grid.js";import{palette as c}from"../../theme/palette.js";import{getAriaLabelAttributes as X}from"../../utils/accessibility.js";import{C as F}from"../../Close.js";import{Icon as n}from"../Icons/Icon.js";import{IconSize as N}from"../../constants.js";import L from"../Icons/CheckFill.js";import A from"../Icons/ChevronDown.js";import U from"../Icons/ChevronUp.js";import $ from"../Icons/ErrorSignFill.js";import j from"../Icons/Forward.js";import B from"../Icons/InfoSignFill.js";import q from"../Icons/TriangleX.js";import D from"../Icons/X.js";import r from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../uuid.js";import"../../utils/environment.js";import"../../theme/index.js";import"../../theme/spacers.js";import"../../utils/refs.js";import"../Close/styles.module.scss";const G=({label:m,variant:t,id:i,hasExpander:s,isExpanded:l,dismissable:g,onExpand:v,onDismiss:p,closeBtnText:_})=>{const f=w(),{isHovered:a,hoverRef:d}=h(),o=f<M.lg?N.XSmall:N.Small,C={info:e.createElement(n,{svgIcon:B,color:c.blueberry700,hoverColor:c.blueberry700,size:o,isHovered:a}),warn:e.createElement(n,{svgIcon:$,color:c.banana700,hoverColor:c.banana700,size:o,isHovered:a}),alert:e.createElement(n,{svgIcon:q,color:c.cherry700,hoverColor:c.cherry700,size:o,isHovered:a}),success:e.createElement(n,{svgIcon:L,color:c.kiwi900,hoverColor:c.kiwi900,size:o,isHovered:a})},b=s?"button":"span",E=u(r["service-message__label-container"],r[`service-message__label-container--${t}`],s&&r["service-message__label-container--has-expander"]);return e.createElement("div",{className:E,ref:d},e.createElement("div",{className:r["service-message__container"]},e.createElement("div",{className:r["service-message__row"]},e.createElement("div",{className:r["service-message__col"]},e.createElement("div",{className:r["service-message__label"]},C[t],e.createElement("h1",{className:r["service-message__title"],id:i},e.createElement(b,{className:r["service-message__toggle"],onClick:s?v:void 0,"aria-expanded":s?l:void 0},m)),s&&e.createElement(n,{size:o,svgIcon:l?U:A,isHovered:a}),!s&&g&&e.createElement(F,{onClick:p,ariaLabel:_,className:r["service-message__close"]}))))))},J=({info:m,extraInfo:t,urlTitle:i,url:s,target:l,dismissable:g,closeBtnText:v,onDismiss:p})=>{const{hoverRef:_,isHovered:f}=h(),{hoverRef:a,isHovered:d}=h(),o=s&&i;return e.createElement("div",{className:r["service-message__container"]},e.createElement("div",{className:r["service-message__row"]},e.createElement("div",{className:r["service-message__col"]},e.createElement("div",{className:r["service-message__content"]},m&&e.createElement("p",{className:r["service-message__info"]},m),t&&e.createElement("p",{className:u(r["service-message__info"],r["service-message__info--extra"])},t),e.createElement("div",{className:r["service-message__actions"]},o&&e.createElement("a",{className:r["service-message__action"],href:s,ref:_,target:l},i,e.createElement(n,{size:N.XSmall,svgIcon:j,color:I("blueberry",700),isHovered:f})),g&&e.createElement("button",{ref:a,className:u(r["service-message__action"],r["service-message__action--close"]),"aria-label":v,onClick:p},v,e.createElement(n,{size:N.XSmall,svgIcon:D,color:I("blueberry",700),isHovered:d})))))))},K=({label:m,dismissable:t=!0,onDismiss:i,info:s,extraInfo:l,urlTitle:g,url:v,target:p="_self",closeBtnText:_="fjern melding",expanderOpenFromStart:f=!1,variant:a="alert",testId:d})=>{const[o,C]=R(f),b=y(),E=!!s||!!l,S=a==="alert"?"alert":"region",k=X({label:m,id:b}),z=()=>{E&&C(!o)},H=u(r["service-message"],r[`service-message--${a}`],o&&r["service-message--expanded"]);return e.createElement("div",{className:H,role:S,...k,"data-testid":d},e.createElement(G,{label:m,variant:a,id:b,hasExpander:E,isExpanded:o,dismissable:t,onExpand:z,onDismiss:i,closeBtnText:_}),E&&o&&e.createElement(J,{info:s,extraInfo:l,urlTitle:g,url:v,target:p,dismissable:t,onDismiss:i,closeBtnText:_}))},ue=K;export{ue as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import s from"react";import a from"classnames";import{AnalyticsId as h,IconSize as d}from"../../constants.js";import{palette as g}from"../../theme/palette.js";import{Icon as _}from"../Icons/Icon.js";import t from"./styles.module.scss";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";const S=r=>{const{color:e="blueberry",icon:o,children:l,className:n,testId:i,wrapText:c}=r,m=a(t["sharing-status"],n),p=a(t["sharing-status__dot"],t[`sharing-status__dot--${e}`]),u=a(t["sharing-status__label"],t[`sharing-status__label--${e}`],{[t["sharing-status__label--wrap"]]:c});return s.createElement("span",{className:m,"data-testid":i,"data-analyticsid":h.SharingStatus},s.createElement("span",{className:p},s.createElement(_,{color:g.white,svgIcon:o,size:d.XXSmall})),s.createElement("span",{className:u},l))},x=S;export{x as default};
1
+ import s from"react";import a from"classnames";import{AnalyticsId as d,IconSize as h}from"../../constants.js";import{palette as _}from"../../theme/palette.js";import{Icon as g}from"../Icons/Icon.js";import t from"./styles.module.scss";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";const S=r=>{const{color:e="blueberry",icon:o,children:l,className:n,testId:i,wrapText:c}=r,m=a(t["sharing-status"],n),p=a(t["sharing-status__dot"],t[`sharing-status__dot--${e}`]),u=a(t["sharing-status__label"],t[`sharing-status__label--${e}`],{[t["sharing-status__label--wrap"]]:c});return s.createElement("span",{className:m,"data-testid":i,"data-analyticsid":d.SharingStatus},s.createElement("span",{className:p},s.createElement(g,{color:_.white,svgIcon:o,size:h.XXSmall})),s.createElement("span",{className:u},l))},x=S;export{x as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  export type SliderStep = {
3
3
  label?: number | string;
4
+ /** Start emojicode with &# - otherwise it will render as a regular string */
4
5
  emojiUniCode?: string;
5
6
  };
6
7
  interface SliderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgC3D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,UAAU,WAAW;IACnB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmPxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgC3D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,UAAU,WAAW;IACnB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2RxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,2 +1,2 @@
1
- import a,{useState as U,useRef as C,useEffect as E}from"react";import S from"classnames";import{AnalyticsId as q}from"../../constants.js";import{useSize as F}from"../../hooks/useSize.js";import{useUuid as b}from"../../hooks/useUuid.js";import{getAriaLabelAttributes as G}from"../../utils/accessibility.js";import{T as J}from"../../Title.js";import o from"./styles.module.scss";import"../../utils/debounce.js";import"../../uuid.js";import"../../utils/environment.js";import"../Title/styles.module.scss";const Q=(l,m,c)=>{const[f,n]=U(l),k=t=>{t>c?n(c):t<m?n(m):n(t)};return E(()=>{n((c-m)/2+m)},[m,c]),[f,k]},Y=({title:l,ariaLabel:m,labelLeft:c,labelRight:f,disabled:n=!1,onChange:k,steps:t,step:g=1,minValue:i=0,maxValue:s=t?t.length-1:100,testId:R})=>{const[A,j]=U(!1),[d,u]=Q((s-i)/2+i,i,s),_=b(),y=b(),h=b(),w=C(null),N=C(null),{width:I}=F(w)||{width:0},D=s/10;E(()=>{const r=()=>{j(!1)};return document.addEventListener("pointerup",r),()=>{document.removeEventListener("pointerup",r)}},[]);const L=r=>{var M;const e=((M=w.current)==null?void 0:M.getBoundingClientRect().x)??0,v=(r-e)/I,W=s-i;let p=v*W+i;return p=Math.round(p/g)*g,p=Math.max(i,Math.min(s,p)),p};E(()=>{const r=e=>{if(!n&&A){const v=L(e.clientX);u(v)}};return document.addEventListener("pointermove",r),()=>{document.removeEventListener("pointermove",r)}},[A]),E(()=>{!n&&k&&k(d)},[d]);const B=r=>{if(n)return;let e=!1;switch(r.key){case"ArrowLeft":case"ArrowDown":u(d-g),e=!0;break;case"PageDown":u(d-D),e=!0;break;case"ArrowRight":case"ArrowUp":u(d+g),e=!0;break;case"PageUp":u(d+D),e=!0;break;case"Home":u(i),e=!0;break;case"End":u(s),e=!0;break}e&&(r.preventDefault(),r.stopPropagation())},X=r=>{var v;if(n)return;const e=L(r.clientX);u(e),(v=N.current)==null||v.focus()},T=r=>{var e;n||(j(!0),r.preventDefault(),r.stopPropagation(),(e=N.current)==null||e.focus())},$=s!==i?I/(s-i)*(d-i):0,z=G({label:m,id:(()=>{if(l&&c&&f)return[_,y,h].join(" ");if(l&&c)return[_,y].join(" ");if(l&&f)return[_,h].join(" ");if(l)return _})(),prefer:"label"}),P=(r,e)=>({left:`${r/(e-1)*100}%`}),K=()=>a.createElement("div",{className:o["slider__emoji-container"]},t==null?void 0:t.map((r,e)=>r.emojiUniCode&&a.createElement("div",{key:"emoji"+e,className:o.slider__emoji,style:P(e,t.length)},String.fromCodePoint(parseInt(r.emojiUniCode,16))))),H=()=>t==null?void 0:t.map((r,e)=>a.createElement("div",{key:"step"+e,className:o.slider__track__step,style:P(e,t.length)})),O=()=>a.createElement("div",{className:o["slider__value-container"]},t==null?void 0:t.map((r,e)=>typeof r.label<"u"&&a.createElement("div",{key:"label"+e,className:o.slider__value,style:P(e,t.length)},r.label)));return a.createElement("div",{className:o.slider,"data-testid":R,"data-analyticsid":q.Slider},l&&a.createElement(J,{className:o.slider__title,htmlMarkup:"h3",margin:0,appearance:"title3",id:_},l),a.createElement("div",{className:o["slider__content-container"]},K(),a.createElement("div",{ref:w,className:S(o["slider__track-wrapper"],n&&o["slider__track-wrapper--disabled"]),onClick:X,onPointerDown:T},a.createElement("div",{className:S(o.slider__track,n&&o["slider__track--disabled"])},H()),a.createElement("div",{role:n?void 0:"slider",ref:N,className:S(o.slider__marker,n&&o["slider__marker--disabled"]),style:{left:`${$}px`},onKeyDown:B,"aria-valuenow":d,"aria-valuemin":i,"aria-valuemax":s,tabIndex:n?void 0:0,"aria-disabled":n,...z})),O()),(c||f)&&a.createElement("span",{className:o.slider__options},a.createElement("span",{id:y},c),a.createElement("span",{id:h},f)))},ue=Y;export{Y as Slider,ue as default};
1
+ import a,{useState as T,useRef as U,useEffect as E}from"react";import b from"classnames";import{AnalyticsId as G}from"../../constants.js";import{useSize as J}from"../../hooks/useSize.js";import{useUuid as S}from"../../hooks/useUuid.js";import{getAriaLabelAttributes as Q}from"../../utils/accessibility.js";import{T as Y}from"../../Title.js";import o from"./styles.module.scss";import"../../utils/debounce.js";import"../../uuid.js";import"../../utils/environment.js";import"../Title/styles.module.scss";const Z=(m,v,l)=>{const[_,n]=T(m),h=r=>{r>l?n(l):r<v?n(v):n(r)};return E(()=>{n((l-v)/2+v)},[v,l]),[_,h]},x=({title:m,ariaLabel:v,labelLeft:l,labelRight:_,disabled:n=!1,onChange:h,steps:r,step:p=1,minValue:i=0,maxValue:s=r?r.length-1:100,testId:$})=>{const[A,I]=T(!1),[d,f]=Z((s-i)/2+i,i,s),g=S(),y=S(),w=S(),j=U(null),N=U(null),{width:C}=J(j)||{width:0},M=s/10;E(()=>{const e=()=>{I(!1)};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e)}},[]);const D=e=>{var R;const t=((R=j.current)==null?void 0:R.getBoundingClientRect().x)??0,c=(e-t)/C,k=s-i;let u=c*k+i;return u=Math.round(u/p)*p,u=Math.max(i,Math.min(s,u)),u};E(()=>{const e=t=>{if(!n&&A){const c=D(t.clientX);f(c)}};return document.addEventListener("pointermove",e),()=>{document.removeEventListener("pointermove",e)}},[A]),E(()=>{!n&&h&&h(d)},[d]);const B=e=>{if(n)return;let t=!1;switch(e.key){case"ArrowLeft":case"ArrowDown":f(d-p),t=!0;break;case"PageDown":f(d-M),t=!0;break;case"ArrowRight":case"ArrowUp":f(d+p),t=!0;break;case"PageUp":f(d+M),t=!0;break;case"Home":f(i),t=!0;break;case"End":f(s),t=!0;break}t&&(e.preventDefault(),e.stopPropagation())},X=e=>{var c;if(n)return;const t=D(e.clientX);f(t),(c=N.current)==null||c.focus()},z=e=>{var t;n||(I(!0),e.preventDefault(),e.stopPropagation(),(t=N.current)==null||t.focus())},K=s!==i?C/(s-i)*(d-i):0,W=()=>{const e=r?Math.round((d-i)/p):null;if(r&&e!==null&&e>=0&&e<r.length){const t=r[e],c=t.emojiUniCode,k=c?L(c):void 0,u=typeof t.label<"u"?t.label.toString():void 0;return k&&u?`${k} ${u}`:k||u}},H=Q({label:v,id:(()=>{if(m&&l&&_)return[g,y,w].join(" ");if(m&&l)return[g,y].join(" ");if(m&&_)return[g,w].join(" ");if(m)return g})(),prefer:"label"}),P=(e,t)=>({left:`${e/(t-1)*100}%`}),L=e=>{try{if(/^&#\d+/.test(e)){const c=e.replace(/^&#/,"");return String.fromCodePoint(parseInt(c,16))}else return e}catch{return e}},O=()=>a.createElement("div",{className:o["slider__emoji-container"]},r==null?void 0:r.map((e,t)=>e.emojiUniCode&&a.createElement("div",{"aria-hidden":!0,key:"emoji"+t,className:o.slider__emoji,style:P(t,r.length)},L(e.emojiUniCode)))),q=()=>r==null?void 0:r.map((e,t)=>a.createElement("div",{key:"step"+t,className:o.slider__track__step,style:P(t,r.length)})),F=()=>a.createElement("div",{className:o["slider__value-container"]},r==null?void 0:r.map((e,t)=>typeof e.label<"u"&&a.createElement("div",{"aria-hidden":!0,key:"label"+t,className:o.slider__value,style:P(t,r.length)},e.label)));return a.createElement("div",{className:o.slider,"data-testid":$,"data-analyticsid":G.Slider},m&&a.createElement(Y,{className:o.slider__title,htmlMarkup:"h3",margin:0,appearance:"title3",id:g},m),a.createElement("div",{className:o["slider__content-container"]},O(),a.createElement("div",{ref:j,className:b(o["slider__track-wrapper"],n&&o["slider__track-wrapper--disabled"]),onClick:X,onPointerDown:z},a.createElement("div",{className:b(o.slider__track,n&&o["slider__track--disabled"])},q()),a.createElement("div",{role:n?void 0:"slider",ref:N,className:b(o.slider__marker,n&&o["slider__marker--disabled"]),style:{left:`${K}px`},onKeyDown:B,"aria-valuenow":d,"aria-valuetext":W(),"aria-valuemin":i,"aria-valuemax":s,tabIndex:n?void 0:0,"aria-disabled":n,...H})),F()),(l||_)&&a.createElement("span",{className:o.slider__options},a.createElement("span",{id:y},l),a.createElement("span",{id:w},_)))},fe=x;export{x as Slider,fe as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { useSize } from '../../hooks/useSize';\nimport { useUuid } from '../../hooks/useUuid';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\nimport Title from '../Title';\n\nimport styles from './styles.module.scss';\n\nconst useSafeNumberValue = (initial: number, min: number, max: number): [number, (value: number) => void] => {\n const [value, setValue] = useState(initial);\n\n const setSafeValue = (newValue: number): void => {\n if (newValue > max) {\n setValue(max);\n } else if (newValue < min) {\n setValue(min);\n } else {\n setValue(newValue);\n }\n };\n\n useEffect(() => {\n setValue((max - min) / 2 + min);\n }, [min, max]);\n\n return [value, setSafeValue];\n};\n\nexport type SliderStep = {\n label?: number | string;\n emojiUniCode?: string;\n};\n\ninterface SliderProps {\n /**\tSets the title of the slider. */\n title?: string;\n /** Adds the left hand label to the element. */\n labelLeft?: string;\n /** Adds the right hand label to the element. */\n labelRight?: string;\n /**\tSets aria-label of the slider. */\n ariaLabel?: string;\n /** Disables the slider element. */\n disabled?: boolean;\n /** Sets the minimum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n minValue?: number;\n /** Sets the maximum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n maxValue?: number;\n /** Function to be called when the value state has changed. */\n onChange?: (value: number) => void;\n /** Sets the steps data for the slider*/\n steps?: SliderStep[];\n /** Sets the step to move per point in the slider */\n step?: number;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nexport const Slider: React.FC<SliderProps> = ({\n title,\n ariaLabel,\n labelLeft,\n labelRight,\n disabled = false,\n onChange,\n steps,\n step = 1,\n minValue = 0,\n maxValue = steps ? steps.length - 1 : 100,\n testId,\n}) => {\n const [isMoving, setIsMoving] = useState(false);\n const [value, setValue] = useSafeNumberValue((maxValue - minValue) / 2 + minValue, minValue, maxValue);\n\n const titleId = useUuid();\n const labelLeftId = useUuid();\n const labelRightId = useUuid();\n const trackRef = useRef<HTMLDivElement>(null);\n const markerRef = useRef<HTMLDivElement>(null);\n const { width: trackWidth } = useSize(trackRef) || { width: 0 };\n const largeStep = maxValue / 10;\n\n useEffect(() => {\n const handlePointerUp = (): void => {\n setIsMoving(false);\n };\n\n document.addEventListener('pointerup', handlePointerUp);\n\n return () => {\n document.removeEventListener('pointerup', handlePointerUp);\n };\n }, []);\n\n const getValueBasedOnMarkerPosition = (markerPosition: number): number => {\n const trackPosition = trackRef.current?.getBoundingClientRect().x ?? 0;\n\n // Calculate the normalized position (0 to 1) of the marker along the track\n const normalizedPosition = (markerPosition - trackPosition) / trackWidth;\n const valueRange = maxValue - minValue;\n // Calculate the value without considering the step\n let value = normalizedPosition * valueRange + minValue;\n // Adjust the value to account for the step increment\n const stepCount = Math.round(value / step);\n value = stepCount * step;\n value = Math.max(minValue, Math.min(maxValue, value));\n\n return value;\n };\n\n useEffect(() => {\n const handlePointerMove = (e: PointerEvent): void => {\n if (!disabled && isMoving) {\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n }\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n\n return () => {\n document.removeEventListener('pointermove', handlePointerMove);\n };\n }, [isMoving]);\n\n useEffect(() => {\n if (!disabled && onChange) {\n onChange(value);\n }\n }, [value]);\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n let flag = false;\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n setValue(value - step);\n flag = true;\n break;\n case 'PageDown':\n setValue(value - largeStep);\n flag = true;\n break;\n case 'ArrowRight':\n case 'ArrowUp':\n setValue(value + step);\n flag = true;\n break;\n case 'PageUp':\n setValue(value + largeStep);\n flag = true;\n break;\n case 'Home':\n setValue(minValue);\n flag = true;\n break;\n case 'End':\n setValue(maxValue);\n flag = true;\n break;\n default:\n break;\n }\n\n if (flag) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const handleTrackClick: React.MouseEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n markerRef.current?.focus();\n };\n\n const handlePointerDown: React.PointerEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n setIsMoving(true);\n\n e.preventDefault();\n e.stopPropagation();\n\n markerRef.current?.focus();\n };\n\n const markerXPos = maxValue !== minValue ? (trackWidth / (maxValue - minValue)) * (value - minValue) : 0;\n\n const getAriaLabeledById = (): string | undefined => {\n if (title && labelLeft && labelRight) {\n return [titleId, labelLeftId, labelRightId].join(' ');\n }\n if (title && labelLeft) {\n return [titleId, labelLeftId].join(' ');\n }\n if (title && labelRight) {\n return [titleId, labelRightId].join(' ');\n }\n if (title) {\n return titleId;\n }\n };\n\n const ariaLabelAttributes = getAriaLabelAttributes({\n label: ariaLabel,\n id: getAriaLabeledById(),\n prefer: 'label',\n });\n\n const getXPostionStyling = (index: number, stepsLength: number): { left: string } => {\n return { left: `${(index / (stepsLength - 1)) * 100}%` };\n };\n\n const renderEmojies = (): React.ReactNode => {\n return (\n <div className={styles['slider__emoji-container']}>\n {steps?.map((step, index) => {\n return (\n step.emojiUniCode && (\n <div key={'emoji' + index} className={styles['slider__emoji']} style={getXPostionStyling(index, steps.length)}>\n {String.fromCodePoint(parseInt(step.emojiUniCode, 16))}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n const renderSteps = (): React.ReactNode => {\n return steps?.map((_step, index) => {\n return <div key={'step' + index} className={styles['slider__track__step']} style={getXPostionStyling(index, steps.length)} />;\n });\n };\n\n const renderStepLabels = (): React.ReactNode => {\n return (\n <div className={styles['slider__value-container']}>\n {steps?.map((step, index) => {\n return (\n typeof step.label !== 'undefined' && (\n <div key={'label' + index} className={styles['slider__value']} style={getXPostionStyling(index, steps.length)}>\n {step.label}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={styles.slider} data-testid={testId} data-analyticsid={AnalyticsId.Slider}>\n {title && (\n <Title className={styles['slider__title']} htmlMarkup={'h3'} margin={0} appearance={'title3'} id={titleId}>\n {title}\n </Title>\n )}\n <div className={styles['slider__content-container']}>\n {renderEmojies()}\n {/* Komponenten er tilgjengelig for mus/keyboard gjennom bruk av slideren */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n ref={trackRef}\n className={classNames(styles['slider__track-wrapper'], disabled && styles['slider__track-wrapper--disabled'])}\n onClick={handleTrackClick}\n onPointerDown={handlePointerDown}\n >\n <div className={classNames(styles.slider__track, disabled && styles['slider__track--disabled'])}>{renderSteps()}</div>\n <div\n role={disabled ? undefined : 'slider'}\n ref={markerRef}\n className={classNames(styles.slider__marker, disabled && styles['slider__marker--disabled'])}\n style={{\n left: `${markerXPos}px`,\n }}\n onKeyDown={handleKeyDown}\n aria-valuenow={value}\n aria-valuemin={minValue}\n aria-valuemax={maxValue}\n tabIndex={disabled ? undefined : 0}\n aria-disabled={disabled}\n {...ariaLabelAttributes}\n />\n </div>\n {renderStepLabels()}\n </div>\n {(labelLeft || labelRight) && (\n <span className={styles.slider__options}>\n <span id={labelLeftId}>{labelLeft}</span>\n <span id={labelRightId}>{labelRight}</span>\n </span>\n )}\n </div>\n );\n};\n\nexport default Slider;\n"],"names":["useSafeNumberValue","initial","min","max","value","setValue","useState","setSafeValue","newValue","useEffect","Slider","title","ariaLabel","labelLeft","labelRight","disabled","onChange","steps","step","minValue","maxValue","testId","isMoving","setIsMoving","titleId","useUuid","labelLeftId","labelRightId","trackRef","useRef","markerRef","trackWidth","useSize","largeStep","handlePointerUp","getValueBasedOnMarkerPosition","markerPosition","trackPosition","_a","normalizedPosition","valueRange","handlePointerMove","handleKeyDown","e","flag","handleTrackClick","handlePointerDown","markerXPos","ariaLabelAttributes","getAriaLabelAttributes","getXPostionStyling","index","stepsLength","renderEmojies","React","styles","renderSteps","_step","renderStepLabels","AnalyticsId","Title","classNames","Slider$1"],"mappings":"sfAYA,MAAMA,EAAqB,CAACC,EAAiBC,EAAaC,IAAmD,CAC3G,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAASL,CAAO,EAEpCM,EAAgBC,GAA2B,CAC3CA,EAAWL,EACbE,EAASF,CAAG,EACHK,EAAWN,EACpBG,EAASH,CAAG,EAEZG,EAASG,CAAQ,CACnB,EAGF,OAAAC,EAAU,IAAM,CACJJ,GAAAF,EAAMD,GAAO,EAAIA,CAAG,CAAA,EAC7B,CAACA,EAAKC,CAAG,CAAC,EAEN,CAACC,EAAOG,CAAY,CAC7B,EAgCaG,EAAgC,CAAC,CAC5C,MAAAC,EACA,UAAAC,EACA,UAAAC,EACA,WAAAC,EACA,SAAAC,EAAW,GACX,SAAAC,EACA,MAAAC,EACA,KAAAC,EAAO,EACP,SAAAC,EAAW,EACX,SAAAC,EAAWH,EAAQA,EAAM,OAAS,EAAI,IACtC,OAAAI,CACF,IAAM,CACJ,KAAM,CAACC,EAAUC,CAAW,EAAIjB,EAAS,EAAK,EACxC,CAACF,EAAOC,CAAQ,EAAIL,GAAoBoB,EAAWD,GAAY,EAAIA,EAAUA,EAAUC,CAAQ,EAE/FI,EAAUC,IACVC,EAAcD,IACdE,EAAeF,IACfG,EAAWC,EAAuB,IAAI,EACtCC,EAAYD,EAAuB,IAAI,EACvC,CAAE,MAAOE,GAAeC,EAAQJ,CAAQ,GAAK,CAAE,MAAO,GACtDK,EAAYb,EAAW,GAE7BX,EAAU,IAAM,CACd,MAAMyB,EAAkB,IAAY,CAClCX,EAAY,EAAK,CAAA,EAGV,gBAAA,iBAAiB,YAAaW,CAAe,EAE/C,IAAM,CACF,SAAA,oBAAoB,YAAaA,CAAe,CAAA,CAE7D,EAAG,CAAE,CAAA,EAEC,MAAAC,EAAiCC,GAAmC,OACxE,MAAMC,IAAgBC,EAAAV,EAAS,UAAT,YAAAU,EAAkB,wBAAwB,IAAK,EAG/DC,GAAsBH,EAAiBC,GAAiBN,EACxDS,EAAapB,EAAWD,EAE1Bf,IAAAA,EAAQmC,EAAqBC,EAAarB,EAG9Cf,OAAAA,EADkB,KAAK,MAAMA,EAAQc,CAAI,EACrBA,EACpBd,EAAQ,KAAK,IAAIe,EAAU,KAAK,IAAIC,EAAUhB,CAAK,CAAC,EAE7CA,CAAA,EAGTK,EAAU,IAAM,CACR,MAAAgC,EAAqB,GAA0B,CAC/C,GAAA,CAAC1B,GAAYO,EAAU,CACnB,MAAAd,EAAW2B,EAA8B,EAAE,OAAO,EACxD9B,EAASG,CAAQ,CACnB,CAAA,EAGO,gBAAA,iBAAiB,cAAeiC,CAAiB,EAEnD,IAAM,CACF,SAAA,oBAAoB,cAAeA,CAAiB,CAAA,CAC/D,EACC,CAACnB,CAAQ,CAAC,EAEbb,EAAU,IAAM,CACV,CAACM,GAAYC,GACfA,EAASZ,CAAK,CAChB,EACC,CAACA,CAAK,CAAC,EAEV,MAAMsC,EAAiEC,GAAA,CACjE,GAAA5B,EAAU,OAEd,IAAI6B,EAAO,GAEX,OAAQD,EAAE,IAAK,CACb,IAAK,YACL,IAAK,YACHtC,EAASD,EAAQc,CAAI,EACd0B,EAAA,GACP,MACF,IAAK,WACHvC,EAASD,EAAQ6B,CAAS,EACnBW,EAAA,GACP,MACF,IAAK,aACL,IAAK,UACHvC,EAASD,EAAQc,CAAI,EACd0B,EAAA,GACP,MACF,IAAK,SACHvC,EAASD,EAAQ6B,CAAS,EACnBW,EAAA,GACP,MACF,IAAK,OACHvC,EAASc,CAAQ,EACVyB,EAAA,GACP,MACF,IAAK,MACHvC,EAASe,CAAQ,EACVwB,EAAA,GACP,KAGJ,CAEIA,IACFD,EAAE,eAAe,EACjBA,EAAE,gBAAgB,EACpB,EAGIE,EAAiEF,GAAA,OACjE,GAAA5B,EAAU,OAER,MAAAP,EAAW2B,EAA8BQ,EAAE,OAAO,EACxDtC,EAASG,CAAQ,GACjB8B,EAAAR,EAAU,UAAV,MAAAQ,EAAmB,OAAM,EAGrBQ,EAAoEH,GAAA,OACpE5B,IAEJQ,EAAY,EAAI,EAEhBoB,EAAE,eAAe,EACjBA,EAAE,gBAAgB,GAElBL,EAAAR,EAAU,UAAV,MAAAQ,EAAmB,QAAM,EAGrBS,EAAa3B,IAAaD,EAAYY,GAAcX,EAAWD,IAAcf,EAAQe,GAAY,EAiBjG6B,EAAsBC,EAAuB,CACjD,MAAOrC,EACP,IAjByB,IAA0B,CAC/C,GAAAD,GAASE,GAAaC,EACxB,MAAO,CAACU,EAASE,EAAaC,CAAY,EAAE,KAAK,GAAG,EAEtD,GAAIhB,GAASE,EACX,MAAO,CAACW,EAASE,CAAW,EAAE,KAAK,GAAG,EAExC,GAAIf,GAASG,EACX,MAAO,CAACU,EAASG,CAAY,EAAE,KAAK,GAAG,EAEzC,GAAIhB,EACK,OAAAa,CACT,GAKuB,EACvB,OAAQ,OAAA,CACT,EAEK0B,EAAqB,CAACC,EAAeC,KAClC,CAAE,KAAM,GAAID,GAASC,EAAc,GAAM,GAAG,MAG/CC,EAAgB,IAElBC,EAAA,cAAC,MAAI,CAAA,UAAWC,EAAO,yBAAyB,GAC7CtC,GAAA,YAAAA,EAAO,IAAI,CAACC,EAAMiC,IAEfjC,EAAK,cACHoC,EAAA,cAAC,MAAI,CAAA,IAAK,QAAUH,EAAO,UAAWI,EAAO,cAAkB,MAAOL,EAAmBC,EAAOlC,EAAM,MAAM,CAAA,EACzG,OAAO,cAAc,SAASC,EAAK,aAAc,EAAE,CAAC,CACvD,EAIR,EAIEsC,EAAc,IACXvC,GAAA,YAAAA,EAAO,IAAI,CAACwC,EAAON,IAChBG,EAAA,cAAA,MAAA,CAAI,IAAK,OAASH,EAAO,UAAWI,EAAO,oBAAwB,MAAOL,EAAmBC,EAAOlC,EAAM,MAAM,CAAG,CAAA,GAIzHyC,EAAmB,IAErBJ,EAAA,cAAC,MAAI,CAAA,UAAWC,EAAO,yBAAyB,GAC7CtC,GAAA,YAAAA,EAAO,IAAI,CAACC,EAAMiC,IAEf,OAAOjC,EAAK,MAAU,qBACnB,MAAI,CAAA,IAAK,QAAUiC,EAAO,UAAWI,EAAO,cAAkB,MAAOL,EAAmBC,EAAOlC,EAAM,MAAM,CAAA,EACzGC,EAAK,KACR,EAIR,EAIJ,OACGoC,EAAA,cAAA,MAAA,CAAI,UAAWC,EAAO,OAAQ,cAAalC,EAAQ,mBAAkBsC,EAAY,QAC/EhD,GACC2C,EAAA,cAACM,EAAM,CAAA,UAAWL,EAAO,cAAkB,WAAY,KAAM,OAAQ,EAAG,WAAY,SAAU,GAAI/B,CAC/F,EAAAb,CACH,EAEF2C,EAAA,cAAC,OAAI,UAAWC,EAAO,2BAA2B,GAC/CF,IAGDC,EAAA,cAAC,MAAA,CACC,IAAK1B,EACL,UAAWiC,EAAWN,EAAO,uBAAuB,EAAGxC,GAAYwC,EAAO,iCAAiC,CAAC,EAC5G,QAASV,EACT,cAAeC,CAAA,EAEdQ,EAAA,cAAA,MAAA,CAAI,UAAWO,EAAWN,EAAO,cAAexC,GAAYwC,EAAO,yBAAyB,CAAC,CAAI,EAAAC,EAAA,CAAc,EAChHF,EAAA,cAAC,MAAA,CACC,KAAMvC,EAAW,OAAY,SAC7B,IAAKe,EACL,UAAW+B,EAAWN,EAAO,eAAgBxC,GAAYwC,EAAO,0BAA0B,CAAC,EAC3F,MAAO,CACL,KAAM,GAAGR,CAAU,IACrB,EACA,UAAWL,EACX,gBAAetC,EACf,gBAAee,EACf,gBAAeC,EACf,SAAUL,EAAW,OAAY,EACjC,gBAAeA,EACd,GAAGiC,CAAA,CACN,CACF,EACCU,GACH,GACE7C,GAAaC,IACbwC,EAAA,cAAC,OAAK,CAAA,UAAWC,EAAO,eAAA,kBACrB,OAAK,CAAA,GAAI7B,CAAc,EAAAb,CAAU,EAClCyC,EAAA,cAAC,QAAK,GAAI3B,CAAA,EAAeb,CAAW,CACtC,CAEJ,CAEJ,EAEAgD,GAAepD"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { useSize } from '../../hooks/useSize';\nimport { useUuid } from '../../hooks/useUuid';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\nimport Title from '../Title';\n\nimport styles from './styles.module.scss';\n\nconst useSafeNumberValue = (initial: number, min: number, max: number): [number, (value: number) => void] => {\n const [value, setValue] = useState(initial);\n\n const setSafeValue = (newValue: number): void => {\n if (newValue > max) {\n setValue(max);\n } else if (newValue < min) {\n setValue(min);\n } else {\n setValue(newValue);\n }\n };\n\n useEffect(() => {\n setValue((max - min) / 2 + min);\n }, [min, max]);\n\n return [value, setSafeValue];\n};\n\nexport type SliderStep = {\n label?: number | string;\n /** Start emojicode with &# - otherwise it will render as a regular string */\n emojiUniCode?: string;\n};\n\ninterface SliderProps {\n /**\tSets the title of the slider. */\n title?: string;\n /** Adds the left hand label to the element. */\n labelLeft?: string;\n /** Adds the right hand label to the element. */\n labelRight?: string;\n /**\tSets aria-label of the slider. */\n ariaLabel?: string;\n /** Disables the slider element. */\n disabled?: boolean;\n /** Sets the minimum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n minValue?: number;\n /** Sets the maximum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n maxValue?: number;\n /** Function to be called when the value state has changed. */\n onChange?: (value: number) => void;\n /** Sets the steps data for the slider*/\n steps?: SliderStep[];\n /** Sets the step to move per point in the slider */\n step?: number;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nexport const Slider: React.FC<SliderProps> = ({\n title,\n ariaLabel,\n labelLeft,\n labelRight,\n disabled = false,\n onChange,\n steps,\n step = 1,\n minValue = 0,\n maxValue = steps ? steps.length - 1 : 100,\n testId,\n}) => {\n const [isMoving, setIsMoving] = useState(false);\n const [value, setValue] = useSafeNumberValue((maxValue - minValue) / 2 + minValue, minValue, maxValue);\n\n const titleId = useUuid();\n const labelLeftId = useUuid();\n const labelRightId = useUuid();\n const trackRef = useRef<HTMLDivElement>(null);\n const markerRef = useRef<HTMLDivElement>(null);\n const { width: trackWidth } = useSize(trackRef) || { width: 0 };\n const largeStep = maxValue / 10;\n\n useEffect(() => {\n const handlePointerUp = (): void => {\n setIsMoving(false);\n };\n\n document.addEventListener('pointerup', handlePointerUp);\n\n return () => {\n document.removeEventListener('pointerup', handlePointerUp);\n };\n }, []);\n\n const getValueBasedOnMarkerPosition = (markerPosition: number): number => {\n const trackPosition = trackRef.current?.getBoundingClientRect().x ?? 0;\n\n // Calculate the normalized position (0 to 1) of the marker along the track\n const normalizedPosition = (markerPosition - trackPosition) / trackWidth;\n const valueRange = maxValue - minValue;\n // Calculate the value without considering the step\n let value = normalizedPosition * valueRange + minValue;\n // Adjust the value to account for the step increment\n const stepCount = Math.round(value / step);\n value = stepCount * step;\n value = Math.max(minValue, Math.min(maxValue, value));\n\n return value;\n };\n\n useEffect(() => {\n const handlePointerMove = (e: PointerEvent): void => {\n if (!disabled && isMoving) {\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n }\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n\n return () => {\n document.removeEventListener('pointermove', handlePointerMove);\n };\n }, [isMoving]);\n\n useEffect(() => {\n if (!disabled && onChange) {\n onChange(value);\n }\n }, [value]);\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n let flag = false;\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n setValue(value - step);\n flag = true;\n break;\n case 'PageDown':\n setValue(value - largeStep);\n flag = true;\n break;\n case 'ArrowRight':\n case 'ArrowUp':\n setValue(value + step);\n flag = true;\n break;\n case 'PageUp':\n setValue(value + largeStep);\n flag = true;\n break;\n case 'Home':\n setValue(minValue);\n flag = true;\n break;\n case 'End':\n setValue(maxValue);\n flag = true;\n break;\n default:\n break;\n }\n\n if (flag) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const handleTrackClick: React.MouseEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n markerRef.current?.focus();\n };\n\n const handlePointerDown: React.PointerEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n setIsMoving(true);\n\n e.preventDefault();\n e.stopPropagation();\n\n markerRef.current?.focus();\n };\n\n const markerXPos = maxValue !== minValue ? (trackWidth / (maxValue - minValue)) * (value - minValue) : 0;\n\n const getAriaValueText = (): string | undefined => {\n const stepIndex = steps ? Math.round((value - minValue) / step) : null;\n\n if (steps && stepIndex !== null && stepIndex >= 0 && stepIndex < steps.length) {\n const step = steps[stepIndex];\n const emojiCode = step.emojiUniCode;\n const emojiAsText = emojiCode ? safelyReturnEmoji(emojiCode) : undefined;\n const label = typeof step.label !== 'undefined' ? step.label.toString() : undefined;\n\n return emojiAsText && label ? `${emojiAsText} ${label}` : emojiAsText || label;\n }\n\n return undefined;\n };\n\n const getAriaLabeledById = (): string | undefined => {\n if (title && labelLeft && labelRight) {\n return [titleId, labelLeftId, labelRightId].join(' ');\n }\n if (title && labelLeft) {\n return [titleId, labelLeftId].join(' ');\n }\n if (title && labelRight) {\n return [titleId, labelRightId].join(' ');\n }\n if (title) {\n return titleId;\n }\n };\n\n const ariaLabelAttributes = getAriaLabelAttributes({\n label: ariaLabel,\n id: getAriaLabeledById(),\n prefer: 'label',\n });\n\n const getXPostionStyling = (index: number, stepsLength: number): { left: string } => {\n return { left: `${(index / (stepsLength - 1)) * 100}%` };\n };\n\n const safelyReturnEmoji = (code: string): string => {\n try {\n const regex = /^&#\\d+/;\n if (regex.test(code)) {\n const emojiWithoutRegex = code.replace(/^&#/, '');\n return String.fromCodePoint(parseInt(emojiWithoutRegex, 16));\n } else {\n return code;\n }\n } catch (e) {\n return code;\n }\n };\n\n const renderEmojies = (): React.ReactNode => {\n return (\n <div className={styles['slider__emoji-container']}>\n {steps?.map((step, index) => {\n return (\n step.emojiUniCode && (\n <div\n aria-hidden={true}\n key={'emoji' + index}\n className={styles['slider__emoji']}\n style={getXPostionStyling(index, steps.length)}\n >\n {safelyReturnEmoji(step.emojiUniCode)}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n const renderSteps = (): React.ReactNode => {\n return steps?.map((_step, index) => {\n return <div key={'step' + index} className={styles['slider__track__step']} style={getXPostionStyling(index, steps.length)} />;\n });\n };\n\n const renderStepLabels = (): React.ReactNode => {\n return (\n <div className={styles['slider__value-container']}>\n {steps?.map((step, index) => {\n return (\n typeof step.label !== 'undefined' && (\n <div\n aria-hidden={true}\n key={'label' + index}\n className={styles['slider__value']}\n style={getXPostionStyling(index, steps.length)}\n >\n {step.label}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={styles.slider} data-testid={testId} data-analyticsid={AnalyticsId.Slider}>\n {title && (\n <Title className={styles['slider__title']} htmlMarkup={'h3'} margin={0} appearance={'title3'} id={titleId}>\n {title}\n </Title>\n )}\n <div className={styles['slider__content-container']}>\n {renderEmojies()}\n {/* Komponenten er tilgjengelig for mus/keyboard gjennom bruk av slideren */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n ref={trackRef}\n className={classNames(styles['slider__track-wrapper'], disabled && styles['slider__track-wrapper--disabled'])}\n onClick={handleTrackClick}\n onPointerDown={handlePointerDown}\n >\n <div className={classNames(styles.slider__track, disabled && styles['slider__track--disabled'])}>{renderSteps()}</div>\n <div\n role={disabled ? undefined : 'slider'}\n ref={markerRef}\n className={classNames(styles.slider__marker, disabled && styles['slider__marker--disabled'])}\n style={{\n left: `${markerXPos}px`,\n }}\n onKeyDown={handleKeyDown}\n aria-valuenow={value}\n aria-valuetext={getAriaValueText()}\n aria-valuemin={minValue}\n aria-valuemax={maxValue}\n tabIndex={disabled ? undefined : 0}\n aria-disabled={disabled}\n {...ariaLabelAttributes}\n />\n </div>\n {renderStepLabels()}\n </div>\n {(labelLeft || labelRight) && (\n <span className={styles.slider__options}>\n <span id={labelLeftId}>{labelLeft}</span>\n <span id={labelRightId}>{labelRight}</span>\n </span>\n )}\n </div>\n );\n};\n\nexport default Slider;\n"],"names":["useSafeNumberValue","initial","min","max","value","setValue","useState","setSafeValue","newValue","useEffect","Slider","title","ariaLabel","labelLeft","labelRight","disabled","onChange","steps","step","minValue","maxValue","testId","isMoving","setIsMoving","titleId","useUuid","labelLeftId","labelRightId","trackRef","useRef","markerRef","trackWidth","useSize","largeStep","handlePointerUp","getValueBasedOnMarkerPosition","markerPosition","trackPosition","_a","normalizedPosition","valueRange","handlePointerMove","e","handleKeyDown","flag","handleTrackClick","handlePointerDown","markerXPos","getAriaValueText","stepIndex","emojiCode","emojiAsText","safelyReturnEmoji","label","ariaLabelAttributes","getAriaLabelAttributes","getXPostionStyling","index","stepsLength","code","emojiWithoutRegex","renderEmojies","React","styles","renderSteps","_step","renderStepLabels","AnalyticsId","Title","classNames","Slider$1"],"mappings":"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"}
@@ -55,7 +55,6 @@ $mark-size: getSpacer(l);
55
55
  &__track {
56
56
  padding: 0 getSpacer(s);
57
57
  border-top: 2px solid $black;
58
- width: 100%;
59
58
  position: relative;
60
59
  top: $track-height-offset;
61
60
 
@@ -82,7 +81,7 @@ $mark-size: getSpacer(l);
82
81
  height: $mark-size;
83
82
  background-color: $white;
84
83
  border: 0.15rem solid $black;
85
- border-radius: 1rem;
84
+ border-radius: 10rem;
86
85
  position: absolute;
87
86
  z-index: 9;
88
87
  outline: none;
@@ -97,7 +96,7 @@ $mark-size: getSpacer(l);
97
96
  width: 1.25rem;
98
97
  height: 1.25rem;
99
98
  border: 0.1rem solid $black;
100
- border-radius: 1rem;
99
+ border-radius: 10rem;
101
100
  background-color: $blueberry600;
102
101
 
103
102
  :hover > &,
@@ -1,2 +1,2 @@
1
- import e from"react";import{AnalyticsId as n}from"../../constants.js";import{S as d}from"../../StepButtons.js";import i from"./styles.module.scss";import"classnames";import"../StepButtons/styles.module.scss";const f=({stepper:t,children:p,backButton:s,forwardButton:a,additionalButtons:m,cancelButton:r,stickyButtons:c=!1,testId:o})=>{const l=s||a||m||r;return e.createElement("div",{"data-testid":o,"data-analyticsid":n.Step},t&&e.createElement("div",{className:i.step__stepper},t),e.createElement("div",{className:i.step__content},p),l&&e.createElement(d,{backButton:s,forwardButton:a,additionalButtons:m,cancelButton:r,sticky:c}))},g=f;export{g as default};
1
+ import e from"react";import{AnalyticsId as n}from"../../constants.js";import{S as d}from"../../StepButtons.js";import i from"./styles.module.scss";import"classnames";import"../StepButtons/styles.module.scss";const f=({stepper:t,children:p,backButton:a,forwardButton:s,additionalButtons:m,cancelButton:r,stickyButtons:c=!1,testId:o})=>{const l=a||s||m||r;return e.createElement("div",{"data-testid":o,"data-analyticsid":n.Step},t&&e.createElement("div",{className:i.step__stepper},t),e.createElement("div",{className:i.step__content},p),l&&e.createElement(d,{backButton:a,forwardButton:s,additionalButtons:m,cancelButton:r,sticky:c}))},g=f;export{g as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeadCell.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/TableHeadCell/TableHeadCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,MAAM,WAAW,KAAK;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,0FAA0F;IAC1F,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,8DAAiF,KAAK,KAAG,SAAS,QAgD3H,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"TableHeadCell.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/TableHeadCell/TableHeadCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,MAAM,WAAW,KAAK;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,0FAA0F;IAC1F,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,8DAAiF,KAAK,KAAG,SAAS,QA2C3H,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -43,12 +43,6 @@ table .table-body .table-row {
43
43
  max-width: 100%;
44
44
  }
45
45
 
46
- .table__head-cell:focus {
47
- outline: none;
48
- background-color: $blueberry800;
49
- text-decoration: underline;
50
- }
51
-
52
46
  .table__cell {
53
47
  position: relative;
54
48
  padding: 0.75rem 0 0.75rem 40%;
@@ -212,12 +206,6 @@ table .table-body .table-row {
212
206
  outline-offset: -3px;
213
207
  }
214
208
 
215
- &--sorted {
216
- text-decoration: underline;
217
- text-decoration-thickness: 1px;
218
- text-underline-offset: 0.3125rem;
219
- }
220
-
221
209
  @media (min-width: map.get($grid-breakpoints, lg)) {
222
210
  padding: 1rem;
223
211
  height: 5.5rem;
@@ -21,7 +21,6 @@ export type Styles = {
21
21
  'table__head-cell': string;
22
22
  'table__head-cell--compact': string;
23
23
  'table__head-cell--sortable': string;
24
- 'table__head-cell--sorted': string;
25
24
  'table__head-cell-sort-icon-wrapper': string;
26
25
  'table__row--expandable': string;
27
26
  'table__row--expandable--selected': string;
@@ -1,2 +1,2 @@
1
- import n from"react";import u from"classnames";import{AnalyticsId as g,IconSize as p}from"../../constants.js";import{useHover as I}from"../../hooks/useHover.js";import{palette as v}from"../../theme/palette.js";import{Icon as f}from"../Icons/Icon.js";import y from"../Icons/Undo.js";import b from"../Icons/X.js";import e from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";var E=(t=>(t.medium="medium",t.large="large",t))(E||{}),X=(t=>(t.remove="remove",t.undo="undo",t))(X||{}),z=(t=>(t.normal="normal",t.oncolor="oncolor",t.emphasised="emphasised",t))(z||{});const C=t=>{const{children:s,size:m,color:r,variant:a,action:o,onClick:c,testId:i}=t,{hoverRef:l,isHovered:d}=I(),$=u(e.tag,e[`tag--${m}`],e[`tag--${o}`],e["tag--has-action"],o==="remove"&&[e[`tag--${r}`],e[`tag--${a}`]]),h=()=>{switch(o){case"remove":return b;case"undo":return y}};return n.createElement("button",{className:$,onClick:c,ref:l,type:"button","data-testid":i,"data-analyticsid":g.Tag},s,n.createElement(f,{svgIcon:h(),size:p.XXSmall,color:v[`${o==="undo"?"blueberry":r}800`],isHovered:d}))},N=t=>{const{children:s,size:m="medium",color:r="blueberry",svgIcon:a,variant:o="normal",action:c,onClick:i,testId:l}=t,d=u(e.tag,e[`tag--${m}`],e[`tag--${r}`],e[`tag--${o}`],{[e["tag--has-icon"]]:a});return c&&i?n.createElement(C,{size:m,color:r,variant:o,action:c,onClick:i,testId:l},s):n.createElement("span",{className:d,"data-testid":l,"data-analyticsid":g.Tag},a&&n.createElement(f,{svgIcon:a,size:p.XXSmall,color:v[`${r}800`],className:e.tag__icon}),s)},D=N;export{X as TagAction,E as TagSize,z as TagVariant,D as default};
1
+ import n from"react";import u from"classnames";import{AnalyticsId as g,IconSize as p}from"../../constants.js";import{useHover as I}from"../../hooks/useHover.js";import{palette as f}from"../../theme/palette.js";import{Icon as v}from"../Icons/Icon.js";import y from"../Icons/Undo.js";import b from"../Icons/X.js";import e from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";var E=(t=>(t.medium="medium",t.large="large",t))(E||{}),X=(t=>(t.remove="remove",t.undo="undo",t))(X||{}),z=(t=>(t.normal="normal",t.oncolor="oncolor",t.emphasised="emphasised",t))(z||{});const C=t=>{const{children:s,size:m,color:r,variant:a,action:o,onClick:c,testId:i}=t,{hoverRef:l,isHovered:d}=I(),$=u(e.tag,e[`tag--${m}`],e[`tag--${o}`],e["tag--has-action"],o==="remove"&&[e[`tag--${r}`],e[`tag--${a}`]]),h=()=>{switch(o){case"remove":return b;case"undo":return y}};return n.createElement("button",{className:$,onClick:c,ref:l,type:"button","data-testid":i,"data-analyticsid":g.Tag},s,n.createElement(v,{svgIcon:h(),size:p.XXSmall,color:f[`${o==="undo"?"blueberry":r}800`],isHovered:d}))},N=t=>{const{children:s,size:m="medium",color:r="blueberry",svgIcon:a,variant:o="normal",action:c,onClick:i,testId:l}=t,d=u(e.tag,e[`tag--${m}`],e[`tag--${r}`],e[`tag--${o}`],{[e["tag--has-icon"]]:a});return c&&i?n.createElement(C,{size:m,color:r,variant:o,action:c,onClick:i,testId:l},s):n.createElement("span",{className:d,"data-testid":l,"data-analyticsid":g.Tag},a&&n.createElement(v,{svgIcon:a,size:p.XXSmall,color:f[`${r}800`],className:e.tag__icon}),s)},D=N;export{X as TagAction,E as TagSize,z as TagVariant,D as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import t from"react";import{AnalyticsId as l}from"../../constants.js";import a from"./styles.module.scss";const m=({children:e,testId:s})=>t.createElement("ul",{className:a["tag-list"],"data-testid":s,"data-analyticsid":l.TagList},t.Children.map(e,i=>t.createElement("li",{className:a["tag-list__item"]},i))),n=m;export{n as default};
1
+ import t from"react";import{AnalyticsId as l}from"../../constants.js";import a from"./styles.module.scss";const m=({children:e,testId:s})=>t.createElement("ul",{className:a["tag-list"],"data-testid":s,"data-analyticsid":l.TagList},t.Children.map(e,i=>t.createElement("li",{className:a["tag-list__item"]},i))),d=m;export{d as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import t from"react";import d from"classnames";import{AnalyticsId as C,IconSize as R}from"../../constants.js";import{useHover as k}from"../../hooks/useHover.js";import{mergeRefs as v}from"../../utils/refs.js";import"../Icons/Icon.js";import e from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";const g=t.forwardRef((r,a)=>{const{children:s,className:o,htmlMarkup:c="span",highlighted:i,compact:m}=r,l=d(e.tile__title,{[e["tile__title--highlighted"]]:i,[e["tile__title--compact"]]:m},o),n=c;return t.createElement(n,{className:l,ref:a},s)});g.displayName="Title";const f=t.forwardRef((r,a)=>{const{icon:s,title:o,className:c="",description:i,fixed:m=!1,highlighted:l=!1,testId:n,target:h,rel:N,href:T,onClick:_}=r,{hoverRef:u,isHovered:E}=k(),p=!i,w=d(e.tile,{[e["tile--fixed"]]:m,[e["tile--compact"]]:p,[e["tile--highlighted"]]:l},c),y=d(e["title-wrapper"],{[e["title-wrapper--compact"]]:p});return t.createElement("a",{ref:v([a,u]),href:T,target:h,rel:h==="_blank"?"noopener noreferrer":N,className:w,"data-testid":n,"data-analyticsid":C.Tile,onClick:_},t.createElement("div",{className:y},t.cloneElement(s,{size:R.Medium,isHovered:E,color:l?"white":"black"}),t.cloneElement(o,{highlighted:l,compact:p})),i&&t.createElement("p",{className:e.tile__description},i))});f.displayName="Tile";f.Title=g;const q=f;export{f as Tile,q as default};
1
+ import t from"react";import d from"classnames";import{AnalyticsId as C,IconSize as R}from"../../constants.js";import{useHover as k}from"../../hooks/useHover.js";import{mergeRefs as v}from"../../utils/refs.js";import"../Icons/Icon.js";import e from"./styles.module.scss";import"../../hooks/usePseudoClasses.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";const g=t.forwardRef((a,r)=>{const{children:s,className:o,htmlMarkup:c="span",highlighted:i,compact:m}=a,l=d(e.tile__title,{[e["tile__title--highlighted"]]:i,[e["tile__title--compact"]]:m},o),n=c;return t.createElement(n,{className:l,ref:r},s)});g.displayName="Title";const f=t.forwardRef((a,r)=>{const{icon:s,title:o,className:c="",description:i,fixed:m=!1,highlighted:l=!1,testId:n,target:h,rel:_,href:N,onClick:T}=a,{hoverRef:u,isHovered:E}=k(),p=!i,w=d(e.tile,{[e["tile--fixed"]]:m,[e["tile--compact"]]:p,[e["tile--highlighted"]]:l},c),y=d(e["title-wrapper"],{[e["title-wrapper--compact"]]:p});return t.createElement("a",{ref:v([r,u]),href:N,target:h,rel:h==="_blank"?"noopener noreferrer":_,className:w,"data-testid":n,"data-analyticsid":C.Tile,onClick:T},t.createElement("div",{className:y},t.cloneElement(s,{size:R.Medium,isHovered:E,color:l?"white":"black"}),t.cloneElement(o,{highlighted:l,compact:p})),i&&t.createElement("p",{className:e.tile__description},i))});f.displayName="Tile";f.Title=g;const q=f;export{f as Tile,q as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import t from"react";import{longLoremText as m}from"../../utils/loremtext.js";import{b as i,T as r}from"../../Tooltip.js";import"../../TooltipWord.js";import"../../constants.js";import"../Tooltip/TooltipWord/styles.module.scss";import"../../hooks/useDelayedState.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../../HelpBubble.js";import"classnames";import"../../AnchorLink.js";import"../../hooks/useHover.js";import"../../hooks/usePseudoClasses.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/grid.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../Icons/Icon.js";import"../Icons/ArrowUpRight.js";import"../AnchorLink/styles.module.scss";import"../../Close.js";import"../../hooks/useBreakpoint.js";import"../../utils/refs.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../../PopOver.js";import"../../hooks/useInterval.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";import"../../hooks/useSize.js";import"../PopOver/styles.module.scss";import"../HelpBubble/styles.module.scss";const e=o=>t.createElement(i,null,t.createElement(t.Fragment,null,t.createElement(r,{...o},"Et tooltip her.")," "+m,t.createElement("button",null,"Knapp"),"Dette er ",t.createElement(r,{...o},o.children)," som skal ha nærmere forklaring.",m,t.createElement(r,{...o},"Enda et tooltip her."))),M=e;export{M as default};
1
+ import t from"react";import{longLoremText as m}from"../../utils/loremtext.js";import{b as i,T as r}from"../../Tooltip.js";import"../../TooltipWord.js";import"../../constants.js";import"../Tooltip/TooltipWord/styles.module.scss";import"../../hooks/useDelayedState.js";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../utils/environment.js";import"../../HelpBubble.js";import"classnames";import"../../AnchorLink.js";import"../../hooks/useHover.js";import"../../hooks/usePseudoClasses.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/grid.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../Icons/Icon.js";import"../Icons/ArrowUpRight.js";import"../AnchorLink/styles.module.scss";import"../../Close.js";import"../../hooks/useBreakpoint.js";import"../../utils/refs.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../../PopOver.js";import"../../hooks/useInterval.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../hooks/useLayoutEvent.js";import"../../utils/debounce.js";import"../../hooks/useSize.js";import"../PopOver/styles.module.scss";import"../HelpBubble/styles.module.scss";const e=o=>t.createElement(i,null,t.createElement(t.Fragment,null,t.createElement(r,{...o},"Et tooltip her.")," "+m,t.createElement("button",null,"Knapp"),"Dette er ",t.createElement(r,{...o},o.children)," som skal ha nærmere forklaring.",m,t.createElement(r,{...o},"Enda et tooltip her."))),J=e;export{J as default};
2
2
  //# sourceMappingURL=index.js.map
package/constants.d.ts CHANGED
@@ -58,6 +58,7 @@ export declare enum AnalyticsId {
58
58
  DictionaryTrigger = "dictionary-trigger",
59
59
  Dropdown = "dropdown",
60
60
  Duolist = "duolist",
61
+ EmptyState = "empty-state",
61
62
  Expander = "expander",
62
63
  ExpanderHierarchy = "expander-hierarchy",
63
64
  ExpanderHierarchyExpander = "expander-hierarchy-expander",
@@ -83,6 +84,7 @@ export declare enum AnalyticsId {
83
84
  PopMenu = "pop-menu",
84
85
  PopOver = "pop-over",
85
86
  Portal = "portal",
87
+ PromoPanel = "promo-panel",
86
88
  RadioButton = "radio-button",
87
89
  Select = "select",
88
90
  SharingStatus = "sharing-status",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/constants.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=(r=>(r[r.XXSmall=24]="XXSmall",r[r.XSmall=38]="XSmall",r[r.Small=48]="Small",r[r.Medium=64]="Medium",r[r.Large=80]="Large",r[r.XLarge=130]="XLarge",r))(e||{}),o=(r=>(r[r.Modal=13e5]="Modal",r[r.ExpanderTrigger=1e4]="ExpanderTrigger",r))(o||{});const t=12;var p=(r=>(r.onwhite="onwhite",r.ongrey="ongrey",r.onblueberry="onblueberry",r.ondark="ondark",r.oninvalid="oninvalid",r))(p||{}),a=(r=>(r.normal="normal",r.bigform="bigform",r))(a||{}),u=(r=>(r.AnchorLink="anchor-link",r.Avatar="avatar",r.Badge="badge",r.Button="button",r.Checkbox="checkbox",r.Close="close",r.DictionaryTrigger="dictionary-trigger",r.Dropdown="dropdown",r.Duolist="duolist",r.Expander="expander",r.ExpanderHierarchy="expander-hierarchy",r.ExpanderHierarchyExpander="expander-hierarchy-expander",r.ExpanderList="expander-list",r.ExpanderListExpander="expander-list-expander",r.FormGroup="form-group",r.FormLayout="form-layout",r.HelpBubble="help-bubble",r.HelpQuestion="help-question",r.HighlightBox="highlight-box",r.Icon="icon",r.Input="input",r.Label="label",r.Link="link",r.LinkList="link-list",r.List="list",r.Loader="loader",r.Logo="logo",r.Modal="modal",r.NotificationPanel="notification-panel",r.Panel="panel",r.PanelList="panel-list",r.PopMenu="pop-menu",r.PopOver="pop-over",r.Portal="portal",r.RadioButton="radio-button",r.Select="select",r.SharingStatus="sharing-status",r.Slider="slider",r.Spacer="spacer",r.StatusDot="status-dot",r.Step="step",r.StepButtons="step-buttons",r.Stepper="stepper",r.Sublabel="sublabel",r.Table="table",r.Tag="tag",r.TagList="tag-list",r.Textarea="textarea",r.Tile="tile",r.Title="title",r.Tooltip="tooltip",r.Trigger="trigger",r.Validation="validation",r))(u||{}),g=(r=>(r.Enter="Enter",r.Escape="Escape",r.ArrowDown="ArrowDown",r.ArrowUp="ArrowUp",r.Home="Home",r.End="End",r))(g||{});export{t as AVERAGE_CHARACTER_WIDTH_PX,u as AnalyticsId,p as FormMode,a as FormVariant,e as IconSize,g as KeyboardEventKey,o as ZIndex};
1
+ var e=(r=>(r[r.XXSmall=24]="XXSmall",r[r.XSmall=38]="XSmall",r[r.Small=48]="Small",r[r.Medium=64]="Medium",r[r.Large=80]="Large",r[r.XLarge=130]="XLarge",r))(e||{}),o=(r=>(r[r.Modal=13e5]="Modal",r[r.ExpanderTrigger=1e4]="ExpanderTrigger",r))(o||{});const g=12;var p=(r=>(r.onwhite="onwhite",r.ongrey="ongrey",r.onblueberry="onblueberry",r.ondark="ondark",r.oninvalid="oninvalid",r))(p||{}),a=(r=>(r.normal="normal",r.bigform="bigform",r))(a||{}),t=(r=>(r.AnchorLink="anchor-link",r.Avatar="avatar",r.Badge="badge",r.Button="button",r.Checkbox="checkbox",r.Close="close",r.DictionaryTrigger="dictionary-trigger",r.Dropdown="dropdown",r.Duolist="duolist",r.EmptyState="empty-state",r.Expander="expander",r.ExpanderHierarchy="expander-hierarchy",r.ExpanderHierarchyExpander="expander-hierarchy-expander",r.ExpanderList="expander-list",r.ExpanderListExpander="expander-list-expander",r.FormGroup="form-group",r.FormLayout="form-layout",r.HelpBubble="help-bubble",r.HelpQuestion="help-question",r.HighlightBox="highlight-box",r.Icon="icon",r.Input="input",r.Label="label",r.Link="link",r.LinkList="link-list",r.List="list",r.Loader="loader",r.Logo="logo",r.Modal="modal",r.NotificationPanel="notification-panel",r.Panel="panel",r.PanelList="panel-list",r.PopMenu="pop-menu",r.PopOver="pop-over",r.Portal="portal",r.PromoPanel="promo-panel",r.RadioButton="radio-button",r.Select="select",r.SharingStatus="sharing-status",r.Slider="slider",r.Spacer="spacer",r.StatusDot="status-dot",r.Step="step",r.StepButtons="step-buttons",r.Stepper="stepper",r.Sublabel="sublabel",r.Table="table",r.Tag="tag",r.TagList="tag-list",r.Textarea="textarea",r.Tile="tile",r.Title="title",r.Tooltip="tooltip",r.Trigger="trigger",r.Validation="validation",r))(t||{}),u=(r=>(r.Enter="Enter",r.Escape="Escape",r.ArrowDown="ArrowDown",r.ArrowUp="ArrowUp",r.Home="Home",r.End="End",r))(u||{});export{g as AVERAGE_CHARACTER_WIDTH_PX,t as AnalyticsId,p as FormMode,a as FormVariant,e as IconSize,u as KeyboardEventKey,o as ZIndex};
2
2
  //# sourceMappingURL=constants.js.map