@helsenorge/designsystem-react 15.0.0 → 15.2.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 (53) hide show
  1. package/lib/Button.js +24 -19
  2. package/lib/Button.js.map +1 -1
  3. package/lib/CHANGELOG.md +25 -0
  4. package/lib/Drawer.js +46 -18
  5. package/lib/Drawer.js.map +1 -1
  6. package/lib/Expander.js +4 -4
  7. package/lib/Expander.js.map +1 -1
  8. package/lib/FilterButtonAndChipsWrapper.js +15 -3
  9. package/lib/FilterButtonAndChipsWrapper.js.map +1 -1
  10. package/lib/FilterLinkList.js +3 -2
  11. package/lib/FilterLinkList.js.map +1 -1
  12. package/lib/FilterOverviewLinkList.js +10 -1
  13. package/lib/FilterOverviewLinkList.js.map +1 -1
  14. package/lib/InfoTeaser.js +1 -1
  15. package/lib/InfoTeaser.js.map +1 -1
  16. package/lib/components/Button/styles.module.scss +39 -16
  17. package/lib/components/Button/styles.module.scss.d.ts +3 -2
  18. package/lib/components/Drawer/DrawerBackButton.d.ts +10 -0
  19. package/lib/components/Drawer/DrawerBackButton.module.scss +52 -0
  20. package/lib/components/Drawer/DrawerBackButton.module.scss.d.ts +10 -0
  21. package/lib/components/Drawer/styles.module.scss +0 -9
  22. package/lib/components/Expander/Expander.d.ts +2 -0
  23. package/lib/components/Expander/styles.module.scss +24 -12
  24. package/lib/components/Expander/styles.module.scss.d.ts +5 -2
  25. package/lib/components/Filter/FilterButtonAndChipsWrapper/FilterButtonAndChipsWrapper.d.ts +3 -0
  26. package/lib/components/Filter/FilterButtonAndChipsWrapper/styles.module.scss +18 -2
  27. package/lib/components/Filter/FilterButtonAndChipsWrapper/styles.module.scss.d.ts +1 -0
  28. package/lib/components/Filter/FilterLinkList/FilterLinkList.d.ts +2 -0
  29. package/lib/components/Filter/FilterLinkList/FilterLinkList.module.scss +10 -0
  30. package/lib/components/Filter/FilterOverviewLinkList/FilterOverviewLinkList.d.ts +4 -1
  31. package/lib/components/InfoTeaser/InfoTeaser.d.ts +1 -1
  32. package/lib/components/InfoTeaser/styles.module.scss +13 -16
  33. package/lib/components/Panel/styles.module.scss.d.ts +3 -2
  34. package/lib/components/Tabs/index.js +5 -0
  35. package/lib/components/Tabs/index.js.map +1 -1
  36. package/lib/components/VisualContentgroupWithImage/VisualContentgroupWithImage.d.ts +13 -0
  37. package/lib/components/VisualContentgroupWithImage/index.d.ts +3 -0
  38. package/lib/components/VisualContentgroupWithImage/index.js +22 -0
  39. package/lib/components/VisualContentgroupWithImage/index.js.map +1 -0
  40. package/lib/components/VisualContentgroupWithImage/styles.module.scss +50 -0
  41. package/lib/components/VisualContentgroupWithImage/styles.module.scss.d.ts +12 -0
  42. package/lib/getFilterChips.js +3 -3
  43. package/lib/getFilterChips.js.map +1 -1
  44. package/lib/resourceHelper.js +32 -2
  45. package/lib/resourceHelper.js.map +1 -1
  46. package/lib/resources/HN.Designsystem.Drawer.se-NO.json.d.ts +7 -0
  47. package/lib/resources/HN.Designsystem.Filter.en-GB.json.d.ts +2 -1
  48. package/lib/resources/HN.Designsystem.Filter.nb-NO.json.d.ts +2 -1
  49. package/lib/resources/HN.Designsystem.Filter.nn-NO.json.d.ts +16 -0
  50. package/lib/resources/HN.Designsystem.Filter.se-NO.json.d.ts +16 -0
  51. package/lib/resources/HN.Designsystem.Tabs.se-NO.json.d.ts +7 -0
  52. package/lib/resources/Resources.d.ts +4 -0
  53. package/package.json +19 -3
@@ -9,22 +9,13 @@
9
9
 
10
10
  .infoteaser {
11
11
  display: grid;
12
- grid-template:
13
- 'icon title' auto
14
- '. title' auto
15
- 'text text' min-content / auto 1fr;
12
+ grid-template-columns: [icon] auto [content] 1fr;
16
13
  width: 100%;
17
14
  overflow: hidden;
18
15
  background-color: var(--color-base-background-blueberry);
19
16
  border: 1px solid var(--color-base-border-blueberry);
20
17
  padding: var(--core-space-m) var(--core-space-s) var(--core-space-l) var(--core-space-s);
21
-
22
- @media (min-width: map.get(breakpoints.$grid-breakpoints, md)) {
23
- grid-template:
24
- 'icon title' auto
25
- '. title' auto
26
- '. text' min-content / auto 1fr;
27
- }
18
+ row-gap: var(--core-space-2xs);
28
19
 
29
20
  &--collapsed {
30
21
  &::after {
@@ -41,20 +32,26 @@
41
32
  }
42
33
 
43
34
  &__title {
44
- grid-area: title;
35
+ grid-column: content;
36
+ grid-row: 1;
45
37
  align-self: center;
46
38
  }
47
39
 
48
40
  &__icon {
49
- grid-area: icon;
41
+ grid-column: icon;
42
+ grid-row: 1;
43
+ align-self: center;
50
44
  margin-right: var(--core-space-xs);
51
45
  }
52
46
 
53
47
  &__text {
54
- grid-area: text;
48
+ grid-column: 1 / -1;
55
49
  overflow: hidden;
56
50
  height: inherit;
57
- margin-top: var(--core-space-2xs);
51
+
52
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, md)) {
53
+ grid-column: content;
54
+ }
58
55
  }
59
56
 
60
57
  &__button {
@@ -76,7 +73,7 @@
76
73
  font-size: 1rem;
77
74
  font-style: normal;
78
75
  font-weight: 600;
79
- line-height: 120%; /* 1.2rem */
76
+ line-height: 120%; // 1.2rem
80
77
 
81
78
  &:hover {
82
79
  background-color: var(--color-action-graphics-onlight-hover);
@@ -15,9 +15,10 @@ export type Styles = {
15
15
  'button--borderless': string;
16
16
  'button--both-icons': string;
17
17
  'button--destructive': string;
18
- 'button--large': string;
18
+ 'button--large-borderless': string;
19
+ 'button--large-non-borderless': string;
19
20
  'button--left-icon': string;
20
- 'button--normal': string;
21
+ 'button--medium': string;
21
22
  'button--on-dark': string;
22
23
  'button--only-icon': string;
23
24
  'button--outline': string;
@@ -15,11 +15,16 @@ var HN_Designsystem_Tabs_nb_NO_default = {
15
15
  ariaLabelRightButton: "Scroll til høyre",
16
16
  ariaLabelLeftButton: "Scroll til venstre"
17
17
  };
18
+ var HN_Designsystem_Tabs_se_NO_default = {
19
+ ariaLabelRightButton: "Sirdde olgeš guvlui",
20
+ ariaLabelLeftButton: "Sirdde gurut guvlui"
21
+ };
18
22
  //#endregion
19
23
  //#region src/components/Tabs/resourceHelper.ts
20
24
  var getResources = (language) => {
21
25
  switch (language) {
22
26
  case LanguageLocales.ENGLISH: return HN_Designsystem_Tabs_en_GB_default;
27
+ case LanguageLocales.SAMI_NORTHERN: return HN_Designsystem_Tabs_se_NO_default;
23
28
  case LanguageLocales.NORWEGIAN:
24
29
  default: return HN_Designsystem_Tabs_nb_NO_default;
25
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/resources/HN.Designsystem.Tabs.en-GB.json","../../../src/resources/HN.Designsystem.Tabs.nb-NO.json","../../../src/components/Tabs/resourceHelper.ts","../../../src/components/Tabs/Tabs.tsx","../../../src/components/Tabs/index.ts"],"sourcesContent":["{\n \"ariaLabelRightButton\": \"Scroll right\",\n \"ariaLabelLeftButton\": \"Scroll left\"\n}\n","{\n \"ariaLabelRightButton\": \"Scroll til høyre\",\n \"ariaLabelLeftButton\": \"Scroll til venstre\"\n}\n","import type { HNDesignsystemTabs } from '../../resources/Resources';\n\nimport { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Tabs.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Tabs.nb-NO.json';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemTabs => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { HNDesignsystemTabs } from '../../resources/Resources';\nimport type { PaletteNames } from '../../theme/palette';\n\nimport { getResources } from './resourceHelper';\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport { LanguageLocales } from '../../constants';\nimport { useLanguage } from '../../hooks/useLanguage';\nimport designsystemlayout from '../../scss/layout.module.scss';\n\nimport styles from './styles.module.scss';\n\nexport type { TabProps } from './Tab';\nexport type TabsColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'white'>;\nexport type TabsOnColor = 'onblueberry' | 'onneutral' | 'onwhite';\n\nexport interface TabsProps {\n children?: React.ReactNode;\n /** Controlled state for Tabs component */\n activeTab?: number;\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the color of the tabs. Default: white */\n color?: TabsColors;\n /** Sets wether the component should use the container-breakout class. Default: true */\n containerBreakout?: boolean;\n /** Sets the background color of the tabs. Can only be used when the color is set to white. Default: onwhite */\n onColor?: TabsOnColor;\n /** Whether the tab list should be sticky */\n sticky?: boolean;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Resources for component */\n resources?: Partial<HNDesignsystemTabs>;\n /** Overrides the default z-index of the tabs header */\n zIndex?: number;\n}\n\nexport const TabsRoot: React.FC<TabsProps> = ({\n activeTab,\n children,\n className,\n color = 'white',\n containerBreakout = true,\n onColor = 'onwhite',\n sticky = true,\n testId,\n resources,\n zIndex,\n}) => {\n const isControlled = activeTab !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(0);\n const tabsRef = useRef<HTMLDivElement>(null);\n const tabPanelRef = useRef<HTMLDivElement>(null);\n const tabListRef = useRef<HTMLDivElement>(null);\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemTabs = {\n ...defaultResources,\n ...resources,\n };\n\n let onColorUsed: TabsOnColor = 'onwhite';\n if (color === 'white') {\n onColorUsed = onColor;\n }\n\n const onValueChange = (newValue: number): void => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n };\n\n const activeTabIndex = isControlled ? activeTab : uncontrolledValue;\n\n return (\n <div className={classNames(className, containerBreakout && designsystemlayout['container-breakout'])} data-testid={testId}>\n <div\n ref={tabListRef}\n className={classNames(styles['tab-list-wrapper'], {\n [styles['tab-list-wrapper--sticky']]: sticky,\n })}\n style={{\n zIndex: zIndex,\n }}\n >\n <TabList\n onTabListClick={(index: number) => onValueChange(index)}\n selectedTab={activeTabIndex}\n color={color}\n onColor={onColorUsed}\n ariaLabelLeftButton={mergedResources.ariaLabelLeftButton}\n ariaLabelRightButton={mergedResources.ariaLabelRightButton}\n >\n {children}\n </TabList>\n <div className={classNames(styles['panel-wrapper'], styles[`panel-wrapper--${color}`])}></div>\n </div>\n <div ref={tabsRef} style={{ marginTop: '-50px' }}>\n <TabPanel ref={tabPanelRef} color={color} isFirst={activeTabIndex == 0}>\n {React.Children.toArray(children)[activeTabIndex]}\n </TabPanel>\n </div>\n </div>\n );\n};\n\ntype TabsComponent = typeof TabsRoot & {\n Tab: typeof Tab;\n};\nconst Tabs = TabsRoot as TabsComponent;\nTabsRoot.displayName = 'Tabs';\nTabs.displayName = 'Tabs';\nTabs.Tab = Tab;\nTabs.Tab.displayName = 'Tabs.Tab';\n\nexport default Tabs;\n","import Tabs from './Tabs';\nexport * from './Tabs';\nexport default Tabs;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AEMA,IAAa,gBAAgB,aAAkD;CAC7E,QAAQ,UAAR;EACE,KAAK,gBAAgB,SACnB,OAAO;EACT,KAAK,gBAAgB;EACrB,SACE,OAAO;CACX;AACF;;;AC6BA,IAAa,YAAiC,EAC5C,WACA,UACA,WACA,QAAQ,SACR,oBAAoB,MACpB,UAAU,WACV,SAAS,MACT,QACA,WACA,aACI;CACJ,MAAM,eAAe,cAAc,KAAA;CACnC,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,CAAC;CAC5D,MAAM,UAAU,OAAuB,IAAI;CAC3C,MAAM,cAAc,OAAuB,IAAI;CAC/C,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,EAAE,aAAa,YAA6B,gBAAgB,SAAS;CAG3E,MAAM,kBAAsC;EAC1C,GAHuB,aAAa,QAGjC;EACH,GAAG;CACL;CAEA,IAAI,cAA2B;CAC/B,IAAI,UAAU,SACZ,cAAc;CAGhB,MAAM,iBAAiB,aAA2B;EAChD,IAAI,CAAC,cACH,qBAAqB,QAAQ;CAEjC;CAEA,MAAM,iBAAiB,eAAe,YAAY;CAElD,OACE,qBAAC,OAAD;EAAK,WAAW,WAAW,WAAW,qBAAqB,mBAAmB,qBAAqB;EAAG,eAAa;YAAnH,CACE,qBAAC,OAAD;GACE,KAAK;GACL,WAAW,WAAW,OAAO,qBAAqB,GAC/C,OAAO,8BAA8B,OACxC,CAAC;GACD,OAAO,EACG,OACV;aAPF,CASE,oBAAC,iBAAD;IACE,iBAAiB,UAAkB,cAAc,KAAK;IACtD,aAAa;IACN;IACP,SAAS;IACT,qBAAqB,gBAAgB;IACrC,sBAAsB,gBAAgB;IAErC;GACM,CAAA,GACT,oBAAC,OAAD,EAAK,WAAW,WAAW,OAAO,kBAAkB,OAAO,kBAAkB,QAAQ,EAAQ,CAAA,CAC1F;MACL,oBAAC,OAAD;GAAK,KAAK;GAAS,OAAO,EAAE,WAAW,QAAQ;aAC7C,oBAAC,kBAAD;IAAU,KAAK;IAAoB;IAAO,SAAS,kBAAkB;cAClE,MAAM,SAAS,QAAQ,QAAQ,EAAE;GAC1B,CAAA;EACP,CAAA,CACF;;AAET;AAKA,IAAM,OAAO;AACb,SAAS,cAAc;AACvB,KAAK,cAAc;AACnB,KAAK,MAAM;AACX,KAAK,IAAI,cAAc;;;ACtHvB,IAAA,eAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/resources/HN.Designsystem.Tabs.en-GB.json","../../../src/resources/HN.Designsystem.Tabs.nb-NO.json","../../../src/resources/HN.Designsystem.Tabs.se-NO.json","../../../src/components/Tabs/resourceHelper.ts","../../../src/components/Tabs/Tabs.tsx","../../../src/components/Tabs/index.ts"],"sourcesContent":["{\n \"ariaLabelRightButton\": \"Scroll right\",\n \"ariaLabelLeftButton\": \"Scroll left\"\n}\n","{\n \"ariaLabelRightButton\": \"Scroll til høyre\",\n \"ariaLabelLeftButton\": \"Scroll til venstre\"\n}\n","{\n \"ariaLabelRightButton\": \"Sirdde olgeš guvlui\",\n \"ariaLabelLeftButton\": \"Sirdde gurut guvlui\"\n}\n","import type { HNDesignsystemTabs } from '../../resources/Resources';\n\nimport { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Tabs.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Tabs.nb-NO.json';\nimport seNO from '../../resources/HN.Designsystem.Tabs.se-NO.json';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemTabs => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.SAMI_NORTHERN:\n return seNO;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { HNDesignsystemTabs } from '../../resources/Resources';\nimport type { PaletteNames } from '../../theme/palette';\n\nimport { getResources } from './resourceHelper';\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport { LanguageLocales } from '../../constants';\nimport { useLanguage } from '../../hooks/useLanguage';\nimport designsystemlayout from '../../scss/layout.module.scss';\n\nimport styles from './styles.module.scss';\n\nexport type { TabProps } from './Tab';\nexport type TabsColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'white'>;\nexport type TabsOnColor = 'onblueberry' | 'onneutral' | 'onwhite';\n\nexport interface TabsProps {\n children?: React.ReactNode;\n /** Controlled state for Tabs component */\n activeTab?: number;\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the color of the tabs. Default: white */\n color?: TabsColors;\n /** Sets wether the component should use the container-breakout class. Default: true */\n containerBreakout?: boolean;\n /** Sets the background color of the tabs. Can only be used when the color is set to white. Default: onwhite */\n onColor?: TabsOnColor;\n /** Whether the tab list should be sticky */\n sticky?: boolean;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Resources for component */\n resources?: Partial<HNDesignsystemTabs>;\n /** Overrides the default z-index of the tabs header */\n zIndex?: number;\n}\n\nexport const TabsRoot: React.FC<TabsProps> = ({\n activeTab,\n children,\n className,\n color = 'white',\n containerBreakout = true,\n onColor = 'onwhite',\n sticky = true,\n testId,\n resources,\n zIndex,\n}) => {\n const isControlled = activeTab !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(0);\n const tabsRef = useRef<HTMLDivElement>(null);\n const tabPanelRef = useRef<HTMLDivElement>(null);\n const tabListRef = useRef<HTMLDivElement>(null);\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemTabs = {\n ...defaultResources,\n ...resources,\n };\n\n let onColorUsed: TabsOnColor = 'onwhite';\n if (color === 'white') {\n onColorUsed = onColor;\n }\n\n const onValueChange = (newValue: number): void => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n };\n\n const activeTabIndex = isControlled ? activeTab : uncontrolledValue;\n\n return (\n <div className={classNames(className, containerBreakout && designsystemlayout['container-breakout'])} data-testid={testId}>\n <div\n ref={tabListRef}\n className={classNames(styles['tab-list-wrapper'], {\n [styles['tab-list-wrapper--sticky']]: sticky,\n })}\n style={{\n zIndex: zIndex,\n }}\n >\n <TabList\n onTabListClick={(index: number) => onValueChange(index)}\n selectedTab={activeTabIndex}\n color={color}\n onColor={onColorUsed}\n ariaLabelLeftButton={mergedResources.ariaLabelLeftButton}\n ariaLabelRightButton={mergedResources.ariaLabelRightButton}\n >\n {children}\n </TabList>\n <div className={classNames(styles['panel-wrapper'], styles[`panel-wrapper--${color}`])}></div>\n </div>\n <div ref={tabsRef} style={{ marginTop: '-50px' }}>\n <TabPanel ref={tabPanelRef} color={color} isFirst={activeTabIndex == 0}>\n {React.Children.toArray(children)[activeTabIndex]}\n </TabPanel>\n </div>\n </div>\n );\n};\n\ntype TabsComponent = typeof TabsRoot & {\n Tab: typeof Tab;\n};\nconst Tabs = TabsRoot as TabsComponent;\nTabsRoot.displayName = 'Tabs';\nTabs.displayName = 'Tabs';\nTabs.Tab = Tab;\nTabs.Tab.displayName = 'Tabs.Tab';\n\nexport default Tabs;\n","import Tabs from './Tabs';\nexport * from './Tabs';\nexport default Tabs;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AGOA,IAAa,gBAAgB,aAAkD;CAC7E,QAAQ,UAAR;EACE,KAAK,gBAAgB,SACnB,OAAO;EACT,KAAK,gBAAgB,eACnB,OAAO;EACT,KAAK,gBAAgB;EACrB,SACE,OAAO;CACX;AACF;;;AC0BA,IAAa,YAAiC,EAC5C,WACA,UACA,WACA,QAAQ,SACR,oBAAoB,MACpB,UAAU,WACV,SAAS,MACT,QACA,WACA,aACI;CACJ,MAAM,eAAe,cAAc,KAAA;CACnC,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,CAAC;CAC5D,MAAM,UAAU,OAAuB,IAAI;CAC3C,MAAM,cAAc,OAAuB,IAAI;CAC/C,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,EAAE,aAAa,YAA6B,gBAAgB,SAAS;CAG3E,MAAM,kBAAsC;EAC1C,GAHuB,aAAa,QAGjC;EACH,GAAG;CACL;CAEA,IAAI,cAA2B;CAC/B,IAAI,UAAU,SACZ,cAAc;CAGhB,MAAM,iBAAiB,aAA2B;EAChD,IAAI,CAAC,cACH,qBAAqB,QAAQ;CAEjC;CAEA,MAAM,iBAAiB,eAAe,YAAY;CAElD,OACE,qBAAC,OAAD;EAAK,WAAW,WAAW,WAAW,qBAAqB,mBAAmB,qBAAqB;EAAG,eAAa;YAAnH,CACE,qBAAC,OAAD;GACE,KAAK;GACL,WAAW,WAAW,OAAO,qBAAqB,GAC/C,OAAO,8BAA8B,OACxC,CAAC;GACD,OAAO,EACG,OACV;aAPF,CASE,oBAAC,iBAAD;IACE,iBAAiB,UAAkB,cAAc,KAAK;IACtD,aAAa;IACN;IACP,SAAS;IACT,qBAAqB,gBAAgB;IACrC,sBAAsB,gBAAgB;IAErC;GACM,CAAA,GACT,oBAAC,OAAD,EAAK,WAAW,WAAW,OAAO,kBAAkB,OAAO,kBAAkB,QAAQ,EAAQ,CAAA,CAC1F;MACL,oBAAC,OAAD;GAAK,KAAK;GAAS,OAAO,EAAE,WAAW,QAAQ;aAC7C,oBAAC,kBAAD;IAAU,KAAK;IAAoB;IAAO,SAAS,kBAAkB;cAClE,MAAM,SAAS,QAAQ,QAAQ,EAAE;GAC1B,CAAA;EACP,CAAA,CACF;;AAET;AAKA,IAAM,OAAO;AACb,SAAS,cAAc;AACvB,KAAK,cAAc;AACnB,KAAK,MAAM;AACX,KAAK,IAAI,cAAc;;;ACtHvB,IAAA,eAAe"}
@@ -0,0 +1,13 @@
1
+ export type ImageRatios = 'square' | 'landscape';
2
+ export interface VisualContentgroupWithImageProps {
3
+ /** Set the ratio of the image. */
4
+ imageRatio?: ImageRatios;
5
+ /** Content rendered inside the visualcontent area. */
6
+ visualContent: React.ReactNode;
7
+ /** Content rendered inside the component */
8
+ children: React.ReactNode;
9
+ /** Sets the data-testid attribute. */
10
+ testId?: string;
11
+ }
12
+ declare const VisualContentgroupWithImage: React.FC<VisualContentgroupWithImageProps>;
13
+ export default VisualContentgroupWithImage;
@@ -0,0 +1,3 @@
1
+ import { default as VisualContentgroupWithImage } from './VisualContentgroupWithImage';
2
+ export * from './VisualContentgroupWithImage';
3
+ export default VisualContentgroupWithImage;
@@ -0,0 +1,22 @@
1
+ import classNames from "classnames";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import styles from "./styles.module.scss";
4
+ //#region src/components/VisualContentgroupWithImage/VisualContentgroupWithImage.tsx
5
+ var VisualContentgroupWithImage = (props) => {
6
+ const { imageRatio = "square", visualContent, children, testId } = props;
7
+ return /* @__PURE__ */ jsxs("div", {
8
+ "data-testid": testId,
9
+ className: styles["visual-contentgroup-with-image"],
10
+ children: [/* @__PURE__ */ jsx("div", {
11
+ className: classNames(styles["visual-contentgroup-with-image__frame"], { [styles[`visual-contentgroup-with-image__frame--${imageRatio}`]]: imageRatio }),
12
+ children: visualContent
13
+ }), children]
14
+ });
15
+ };
16
+ //#endregion
17
+ //#region src/components/VisualContentgroupWithImage/index.ts
18
+ var VisualContentgroupWithImage_default = VisualContentgroupWithImage;
19
+ //#endregion
20
+ export { VisualContentgroupWithImage_default as default };
21
+
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/VisualContentgroupWithImage/VisualContentgroupWithImage.tsx","../../../src/components/VisualContentgroupWithImage/index.ts"],"sourcesContent":["import classNames from 'classnames';\n\nimport styles from './styles.module.scss';\n\nexport type ImageRatios = 'square' | 'landscape';\n\nexport interface VisualContentgroupWithImageProps {\n /** Set the ratio of the image. */\n imageRatio?: ImageRatios;\n /** Content rendered inside the visualcontent area. */\n visualContent: React.ReactNode;\n /** Content rendered inside the component */\n children: React.ReactNode;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst VisualContentgroupWithImage: React.FC<VisualContentgroupWithImageProps> = props => {\n const { imageRatio = 'square', visualContent, children, testId } = props;\n\n return (\n <div data-testid={testId} className={styles['visual-contentgroup-with-image']}>\n <div\n className={classNames(styles['visual-contentgroup-with-image__frame'], {\n [styles[`visual-contentgroup-with-image__frame--${imageRatio}`]]: imageRatio,\n })}\n >\n {visualContent}\n </div>\n {children}\n </div>\n );\n};\n\nexport default VisualContentgroupWithImage;\n","import VisualContentgroupWithImage from './VisualContentgroupWithImage';\nexport * from './VisualContentgroupWithImage';\nexport default VisualContentgroupWithImage;\n"],"mappings":";;;;AAiBA,IAAM,+BAA0E,UAAS;CACvF,MAAM,EAAE,aAAa,UAAU,eAAe,UAAU,WAAW;CAEnE,OACE,qBAAC,OAAD;EAAK,eAAa;EAAQ,WAAW,OAAO;YAA5C,CACE,oBAAC,OAAD;GACE,WAAW,WAAW,OAAO,0CAA0C,GACpE,OAAO,0CAA0C,gBAAgB,WACpE,CAAC;aAEA;EACE,CAAA,GACJ,QACE;;AAET;;;AC9BA,IAAA,sCAAe"}
@@ -0,0 +1,50 @@
1
+ @use 'sass:map';
2
+ @use '../../scss/breakpoints' as breakpoints;
3
+ @import '../../scss/supernova/styles/spacers.css';
4
+
5
+ .visual-contentgroup-with-image {
6
+ display: flex;
7
+ flex-direction: column;
8
+ justify-content: start;
9
+ align-items: start;
10
+ gap: var(--core-space-l);
11
+
12
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, sm)) {
13
+ flex-direction: row-reverse;
14
+ }
15
+
16
+ &__frame {
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ overflow: hidden;
21
+ width: 100%;
22
+
23
+ > * {
24
+ width: 100%;
25
+ height: 100%;
26
+ object-fit: cover;
27
+ }
28
+
29
+ &--square {
30
+ aspect-ratio: 1/1;
31
+
32
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, sm)) {
33
+ flex: 0 0 50%;
34
+ }
35
+
36
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, lg)) {
37
+ max-width: 30rem;
38
+ max-height: 30rem;
39
+ }
40
+ }
41
+
42
+ &--landscape {
43
+ aspect-ratio: 3/2;
44
+
45
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, sm)) {
46
+ flex: 0 0 50%;
47
+ }
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,12 @@
1
+ export type Styles = {
2
+ 'visual-contentgroup-with-image': string;
3
+ 'visual-contentgroup-with-image__frame': string;
4
+ 'visual-contentgroup-with-image__frame--landscape': string;
5
+ 'visual-contentgroup-with-image__frame--square': string;
6
+ };
7
+
8
+ export type ClassNames = keyof Styles;
9
+
10
+ declare const styles: Styles;
11
+
12
+ export default styles;
@@ -11,7 +11,7 @@ function getFilterChips({ filter, getLabel, onChipClick, onChipRemove, onOverflo
11
11
  });
12
12
  const visibleChips = allChips.slice(0, maxVisible);
13
13
  const overflowCount = allChips.length - maxVisible;
14
- return [visibleChips.map(({ key, value: v }) => /* @__PURE__ */ jsx(Chip_default, {
14
+ return [...visibleChips.map(({ key, value: v }) => /* @__PURE__ */ jsx(Chip_default, {
15
15
  onChipClick: () => onChipClick(key, v),
16
16
  onCloseClick: () => {
17
17
  if (onChipRemove) onChipRemove(key, v);
@@ -19,11 +19,11 @@ function getFilterChips({ filter, getLabel, onChipClick, onChipRemove, onOverflo
19
19
  },
20
20
  withCloseButton: willShowCloseButton?.(key, v),
21
21
  children: getLabel(key, v)
22
- }, `${key}-${v}`)), overflowCount > 0 && /* @__PURE__ */ jsx(Chip_default, {
22
+ }, `${key}-${v}`)), ...overflowCount > 0 ? [/* @__PURE__ */ jsx(Chip_default, {
23
23
  onChipClick: onOverflowChipClick,
24
24
  withCloseButton: false,
25
25
  children: `+${overflowCount}`
26
- }, "overflow")];
26
+ }, "overflow")] : []];
27
27
  }
28
28
  //#endregion
29
29
  //#region src/components/Filter/getFilterChips/index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"getFilterChips.js","names":[],"sources":["../src/components/Filter/getFilterChips/getFilterChips.tsx","../src/components/Filter/getFilterChips/index.ts"],"sourcesContent":["import type { FilterValues, UseFilterReturn } from '../useFilter';\n\nimport Chip from '../../Chip';\n\nexport interface GetFilterChipsArgs<T extends FilterValues> {\n /** The filter instance from useFilter */\n filter: UseFilterReturn<T>;\n /** Look up the display label for a filter key + value */\n getLabel: (key: keyof T, value: unknown) => string;\n /** Called when a chip is clicked (f.ex. to open the drawer at that filter category) */\n onChipClick: (key: keyof T, value: unknown) => void;\n /** Called when a chip's close button is clicked. If not provided, defaults to filter.removeFilter */\n onChipRemove?: (key: keyof T, value: unknown) => void;\n /** Called when the overflow chip is clicked */\n onOverflowChipClick: () => void;\n /** Function for mapping if close button is shown on chip or not */\n willShowCloseButton?: (key: keyof T, value?: unknown) => boolean;\n}\n\nfunction getFilterChips<T extends FilterValues>({\n filter,\n getLabel,\n onChipClick,\n onChipRemove,\n onOverflowChipClick,\n willShowCloseButton,\n}: GetFilterChipsArgs<T>): React.ReactNode[] {\n const maxVisible = 5;\n\n const allChips = Object.entries(filter.filters).flatMap(([key, raw]) => {\n const values = [raw ?? []].flat();\n return values.map(v => ({ key, value: v }));\n });\n\n const visibleChips = allChips.slice(0, maxVisible);\n const overflowCount = allChips.length - maxVisible;\n\n return [\n visibleChips.map(({ key, value: v }) => (\n <Chip\n key={`${key}-${v}`}\n onChipClick={() => onChipClick(key as keyof T, v)}\n onCloseClick={() => {\n if (onChipRemove) {\n onChipRemove(key as keyof T, v);\n } else {\n filter.removeFilter(key, v);\n }\n }}\n withCloseButton={willShowCloseButton?.(key, v)}\n >\n {getLabel(key as keyof T, v)}\n </Chip>\n )),\n overflowCount > 0 && <Chip key=\"overflow\" onChipClick={onOverflowChipClick} withCloseButton={false}>{`+${overflowCount}`}</Chip>,\n ];\n}\n\nexport default getFilterChips;\n","import getFilterChips from './getFilterChips';\nexport * from './getFilterChips';\nexport default getFilterChips;\n"],"mappings":";;;AAmBA,SAAS,eAAuC,EAC9C,QACA,UACA,aACA,cACA,qBACA,uBAC2C;CAC3C,MAAM,aAAa;CAEnB,MAAM,WAAW,OAAO,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,KAAK,SAAS;EAEtE,OADe,CAAC,OAAO,CAAC,CAAC,EAAE,KACpB,EAAO,KAAI,OAAM;GAAE;GAAK,OAAO;EAAE,EAAE;CAC5C,CAAC;CAED,MAAM,eAAe,SAAS,MAAM,GAAG,UAAU;CACjD,MAAM,gBAAgB,SAAS,SAAS;CAExC,OAAO,CACL,aAAa,KAAK,EAAE,KAAK,OAAO,QAC9B,oBAAC,cAAD;EAEE,mBAAmB,YAAY,KAAgB,CAAC;EAChD,oBAAoB;GAClB,IAAI,cACF,aAAa,KAAgB,CAAC;QAE9B,OAAO,aAAa,KAAK,CAAC;EAE9B;EACA,iBAAiB,sBAAsB,KAAK,CAAC;YAE5C,SAAS,KAAgB,CAAC;CACvB,GAZC,GAAG,IAAI,GAAG,GAYX,CACP,GACD,gBAAgB,KAAK,oBAAC,cAAD;EAAqB,aAAa;EAAqB,iBAAiB;YAAQ,IAAI;CAAsB,GAAhG,UAAgG,CACjI;AACF;;;ACtDA,IAAA,yBAAe"}
1
+ {"version":3,"file":"getFilterChips.js","names":[],"sources":["../src/components/Filter/getFilterChips/getFilterChips.tsx","../src/components/Filter/getFilterChips/index.ts"],"sourcesContent":["import type { FilterValues, UseFilterReturn } from '../useFilter';\n\nimport Chip from '../../Chip';\n\nexport interface GetFilterChipsArgs<T extends FilterValues> {\n /** The filter instance from useFilter */\n filter: UseFilterReturn<T>;\n /** Look up the display label for a filter key + value */\n getLabel: (key: keyof T, value: unknown) => string;\n /** Called when a chip is clicked (f.ex. to open the drawer at that filter category) */\n onChipClick: (key: keyof T, value: unknown) => void;\n /** Called when a chip's close button is clicked. If not provided, defaults to filter.removeFilter */\n onChipRemove?: (key: keyof T, value: unknown) => void;\n /** Called when the overflow chip is clicked */\n onOverflowChipClick: () => void;\n /** Function for mapping if close button is shown on chip or not */\n willShowCloseButton?: (key: keyof T, value?: unknown) => boolean;\n}\n\nfunction getFilterChips<T extends FilterValues>({\n filter,\n getLabel,\n onChipClick,\n onChipRemove,\n onOverflowChipClick,\n willShowCloseButton,\n}: GetFilterChipsArgs<T>): React.ReactNode[] {\n const maxVisible = 5;\n\n const allChips = Object.entries(filter.filters).flatMap(([key, raw]) => {\n const values = [raw ?? []].flat();\n return values.map(v => ({ key, value: v }));\n });\n\n const visibleChips = allChips.slice(0, maxVisible);\n const overflowCount = allChips.length - maxVisible;\n\n return [\n ...visibleChips.map(({ key, value: v }) => (\n <Chip\n key={`${key}-${v}`}\n onChipClick={() => onChipClick(key as keyof T, v)}\n onCloseClick={() => {\n if (onChipRemove) {\n onChipRemove(key as keyof T, v);\n } else {\n filter.removeFilter(key, v);\n }\n }}\n withCloseButton={willShowCloseButton?.(key, v)}\n >\n {getLabel(key as keyof T, v)}\n </Chip>\n )),\n ...(overflowCount > 0\n ? [<Chip key=\"overflow\" onChipClick={onOverflowChipClick} withCloseButton={false}>{`+${overflowCount}`}</Chip>]\n : []),\n ];\n}\n\nexport default getFilterChips;\n","import getFilterChips from './getFilterChips';\nexport * from './getFilterChips';\nexport default getFilterChips;\n"],"mappings":";;;AAmBA,SAAS,eAAuC,EAC9C,QACA,UACA,aACA,cACA,qBACA,uBAC2C;CAC3C,MAAM,aAAa;CAEnB,MAAM,WAAW,OAAO,QAAQ,OAAO,OAAO,EAAE,SAAS,CAAC,KAAK,SAAS;EAEtE,OADe,CAAC,OAAO,CAAC,CAAC,EAAE,KACpB,EAAO,KAAI,OAAM;GAAE;GAAK,OAAO;EAAE,EAAE;CAC5C,CAAC;CAED,MAAM,eAAe,SAAS,MAAM,GAAG,UAAU;CACjD,MAAM,gBAAgB,SAAS,SAAS;CAExC,OAAO,CACL,GAAG,aAAa,KAAK,EAAE,KAAK,OAAO,QACjC,oBAAC,cAAD;EAEE,mBAAmB,YAAY,KAAgB,CAAC;EAChD,oBAAoB;GAClB,IAAI,cACF,aAAa,KAAgB,CAAC;QAE9B,OAAO,aAAa,KAAK,CAAC;EAE9B;EACA,iBAAiB,sBAAsB,KAAK,CAAC;YAE5C,SAAS,KAAgB,CAAC;CACvB,GAZC,GAAG,IAAI,GAAG,GAYX,CACP,GACD,GAAI,gBAAgB,IAChB,CAAC,oBAAC,cAAD;EAAqB,aAAa;EAAqB,iBAAiB;YAAQ,IAAI;CAAsB,GAAhG,UAAgG,CAAC,IAC5G,CAAC,CACP;AACF;;;ACxDA,IAAA,yBAAe"}
@@ -9,7 +9,8 @@ var HN_Designsystem_Filter_en_GB_default = {
9
9
  searchClearButtonAriaLabel: "Reset",
10
10
  searchButtonAriaLabel: "Search",
11
11
  loadingText: "Loading results",
12
- resultsText: "{0} results"
12
+ resultsText: "{0} results",
13
+ activeFiltersListLabel: "Aktive filter"
13
14
  };
14
15
  var HN_Designsystem_Filter_nb_NO_default = {
15
16
  filterButtonText: "Finn ...",
@@ -21,13 +22,42 @@ var HN_Designsystem_Filter_nb_NO_default = {
21
22
  searchClearButtonAriaLabel: "Nullstill",
22
23
  searchButtonAriaLabel: "Søk",
23
24
  loadingText: "Henter treff",
24
- resultsText: "{0} treff"
25
+ resultsText: "{0} treff",
26
+ activeFiltersListLabel: "Aktive filter"
27
+ };
28
+ var HN_Designsystem_Filter_nn_NO_default = {
29
+ filterButtonText: "Finn ...",
30
+ sortLabel: "Sortering",
31
+ resetButtonText: "Nullstill",
32
+ showButtonText: "Vis treff",
33
+ filterOverviewTitle: "Finn ...",
34
+ searchPlaceholder: "Søk i lista",
35
+ searchClearButtonAriaLabel: "Nullstill",
36
+ searchButtonAriaLabel: "Søk",
37
+ loadingText: "Hentar treff",
38
+ resultsText: "{0} treff",
39
+ activeFiltersListLabel: "Aktive filter"
40
+ };
41
+ var HN_Designsystem_Filter_se_NO_default = {
42
+ filterButtonText: "Oza ...",
43
+ sortLabel: "Sirren",
44
+ resetButtonText: "Bija ruovttuluotta",
45
+ showButtonText: "Čájet deaivan",
46
+ filterOverviewTitle: "Oza ...",
47
+ searchPlaceholder: "Oza listtus",
48
+ searchClearButtonAriaLabel: "Bija ruovttuluotta",
49
+ searchButtonAriaLabel: "Oza",
50
+ loadingText: "Viežžá",
51
+ resultsText: "{0} deaivan",
52
+ activeFiltersListLabel: "Aktive filter"
25
53
  };
26
54
  //#endregion
27
55
  //#region src/components/Filter/resourceHelper.ts
28
56
  var getResources = (language) => {
29
57
  switch (language) {
30
58
  case LanguageLocales.ENGLISH: return HN_Designsystem_Filter_en_GB_default;
59
+ case LanguageLocales.NORWEGIAN_NYNORSK: return HN_Designsystem_Filter_nn_NO_default;
60
+ case LanguageLocales.SAMI_NORTHERN: return HN_Designsystem_Filter_se_NO_default;
31
61
  case LanguageLocales.NORWEGIAN:
32
62
  default: return HN_Designsystem_Filter_nb_NO_default;
33
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resourceHelper.js","names":[],"sources":["../src/resources/HN.Designsystem.Filter.en-GB.json","../src/resources/HN.Designsystem.Filter.nb-NO.json","../src/components/Filter/resourceHelper.ts"],"sourcesContent":["{\n \"filterButtonText\": \"Find ...\",\n \"sortLabel\": \"Sorting\",\n \"resetButtonText\": \"Reset\",\n \"showButtonText\": \"Show results\",\n \"filterOverviewTitle\": \"Find ...\",\n \"searchPlaceholder\": \"Search the list\",\n \"searchClearButtonAriaLabel\": \"Reset\",\n \"searchButtonAriaLabel\": \"Search\",\n \"loadingText\": \"Loading results\",\n \"resultsText\": \"{0} results\"\n}\n","{\n \"filterButtonText\": \"Finn ...\",\n \"sortLabel\": \"Sortering\",\n \"resetButtonText\": \"Nullstill\",\n \"showButtonText\": \"Vis treff\",\n \"filterOverviewTitle\": \"Finn ...\",\n \"searchPlaceholder\": \"Søk i listen\",\n \"searchClearButtonAriaLabel\": \"Nullstill\",\n \"searchButtonAriaLabel\": \"Søk\",\n \"loadingText\": \"Henter treff\",\n \"resultsText\": \"{0} treff\"\n}\n","import type { HNDesignsystemFilter } from '../../resources/Resources';\n\nimport { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Filter.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Filter.nb-NO.json';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemFilter => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AEMA,IAAa,gBAAgB,aAAoD;CAC/E,QAAQ,UAAR;EACE,KAAK,gBAAgB,SACnB,OAAO;EACT,KAAK,gBAAgB;EACrB,SACE,OAAO;CACX;AACF"}
1
+ {"version":3,"file":"resourceHelper.js","names":[],"sources":["../src/resources/HN.Designsystem.Filter.en-GB.json","../src/resources/HN.Designsystem.Filter.nb-NO.json","../src/resources/HN.Designsystem.Filter.nn-NO.json","../src/resources/HN.Designsystem.Filter.se-NO.json","../src/components/Filter/resourceHelper.ts"],"sourcesContent":["{\n \"filterButtonText\": \"Find ...\",\n \"sortLabel\": \"Sorting\",\n \"resetButtonText\": \"Reset\",\n \"showButtonText\": \"Show results\",\n \"filterOverviewTitle\": \"Find ...\",\n \"searchPlaceholder\": \"Search the list\",\n \"searchClearButtonAriaLabel\": \"Reset\",\n \"searchButtonAriaLabel\": \"Search\",\n \"loadingText\": \"Loading results\",\n \"resultsText\": \"{0} results\",\n \"activeFiltersListLabel\": \"Aktive filter\"\n}\n","{\n \"filterButtonText\": \"Finn ...\",\n \"sortLabel\": \"Sortering\",\n \"resetButtonText\": \"Nullstill\",\n \"showButtonText\": \"Vis treff\",\n \"filterOverviewTitle\": \"Finn ...\",\n \"searchPlaceholder\": \"Søk i listen\",\n \"searchClearButtonAriaLabel\": \"Nullstill\",\n \"searchButtonAriaLabel\": \"Søk\",\n \"loadingText\": \"Henter treff\",\n \"resultsText\": \"{0} treff\",\n \"activeFiltersListLabel\": \"Aktive filter\"\n}\n","{\n \"filterButtonText\": \"Finn ...\",\n \"sortLabel\": \"Sortering\",\n \"resetButtonText\": \"Nullstill\",\n \"showButtonText\": \"Vis treff\",\n \"filterOverviewTitle\": \"Finn ...\",\n \"searchPlaceholder\": \"Søk i lista\",\n \"searchClearButtonAriaLabel\": \"Nullstill\",\n \"searchButtonAriaLabel\": \"Søk\",\n \"loadingText\": \"Hentar treff\",\n \"resultsText\": \"{0} treff\",\n \"activeFiltersListLabel\": \"Aktive filter\"\n}\n","{\n \"filterButtonText\": \"Oza ...\",\n \"sortLabel\": \"Sirren\",\n \"resetButtonText\": \"Bija ruovttuluotta\",\n \"showButtonText\": \"Čájet deaivan\",\n \"filterOverviewTitle\": \"Oza ...\",\n \"searchPlaceholder\": \"Oza listtus\",\n \"searchClearButtonAriaLabel\": \"Bija ruovttuluotta\",\n \"searchButtonAriaLabel\": \"Oza\",\n \"loadingText\": \"Viežžá\",\n \"resultsText\": \"{0} deaivan\",\n \"activeFiltersListLabel\": \"Aktive filter\"\n}\n","import type { HNDesignsystemFilter } from '../../resources/Resources';\n\nimport { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Filter.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Filter.nb-NO.json';\nimport nnNO from '../../resources/HN.Designsystem.Filter.nn-NO.json';\nimport seNO from '../../resources/HN.Designsystem.Filter.se-NO.json';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemFilter => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN_NYNORSK:\n return nnNO;\n case LanguageLocales.SAMI_NORTHERN:\n return seNO;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AIQA,IAAa,gBAAgB,aAAoD;CAC/E,QAAQ,UAAR;EACE,KAAK,gBAAgB,SACnB,OAAO;EACT,KAAK,gBAAgB,mBACnB,OAAO;EACT,KAAK,gBAAgB,eACnB,OAAO;EACT,KAAK,gBAAgB;EACrB,SACE,OAAO;CACX;AACF"}
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ "ariaLabelCloseBtn": "Gidde",
3
+ "ariaLabelBackButton": "Mana ruovttoluotta"
4
+ }
5
+ ;
6
+
7
+ export default _default;
@@ -8,7 +8,8 @@ declare const _default: {
8
8
  "searchClearButtonAriaLabel": "Reset",
9
9
  "searchButtonAriaLabel": "Search",
10
10
  "loadingText": "Loading results",
11
- "resultsText": "{0} results"
11
+ "resultsText": "{0} results",
12
+ "activeFiltersListLabel": "Aktive filter"
12
13
  }
13
14
  ;
14
15
 
@@ -8,7 +8,8 @@ declare const _default: {
8
8
  "searchClearButtonAriaLabel": "Nullstill",
9
9
  "searchButtonAriaLabel": "Søk",
10
10
  "loadingText": "Henter treff",
11
- "resultsText": "{0} treff"
11
+ "resultsText": "{0} treff",
12
+ "activeFiltersListLabel": "Aktive filter"
12
13
  }
13
14
  ;
14
15
 
@@ -0,0 +1,16 @@
1
+ declare const _default: {
2
+ "filterButtonText": "Finn ...",
3
+ "sortLabel": "Sortering",
4
+ "resetButtonText": "Nullstill",
5
+ "showButtonText": "Vis treff",
6
+ "filterOverviewTitle": "Finn ...",
7
+ "searchPlaceholder": "Søk i lista",
8
+ "searchClearButtonAriaLabel": "Nullstill",
9
+ "searchButtonAriaLabel": "Søk",
10
+ "loadingText": "Hentar treff",
11
+ "resultsText": "{0} treff",
12
+ "activeFiltersListLabel": "Aktive filter"
13
+ }
14
+ ;
15
+
16
+ export default _default;
@@ -0,0 +1,16 @@
1
+ declare const _default: {
2
+ "filterButtonText": "Oza ...",
3
+ "sortLabel": "Sirren",
4
+ "resetButtonText": "Bija ruovttuluotta",
5
+ "showButtonText": "Čájet deaivan",
6
+ "filterOverviewTitle": "Oza ...",
7
+ "searchPlaceholder": "Oza listtus",
8
+ "searchClearButtonAriaLabel": "Bija ruovttuluotta",
9
+ "searchButtonAriaLabel": "Oza",
10
+ "loadingText": "Viežžá",
11
+ "resultsText": "{0} deaivan",
12
+ "activeFiltersListLabel": "Aktive filter"
13
+ }
14
+ ;
15
+
16
+ export default _default;
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ "ariaLabelRightButton": "Sirdde olgeš guvlui",
3
+ "ariaLabelLeftButton": "Sirdde gurut guvlui"
4
+ }
5
+ ;
6
+
7
+ export default _default;
@@ -187,6 +187,10 @@ export type HNDesignsystemFilter = {
187
187
  * {0} treff
188
188
  */
189
189
  resultsText: string;
190
+ /**
191
+ * Aktive filter
192
+ */
193
+ activeFiltersListLabel: string;
190
194
  };
191
195
 
192
196
  export type HNDesignsystemChip = {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@helsenorge/designsystem-react",
3
3
  "sideEffects": false,
4
4
  "private": false,
5
- "version": "15.0.0",
5
+ "version": "15.2.0",
6
6
  "description": "The official design system for Helsenorge built with React.",
7
7
  "repository": {
8
8
  "type": "git",
@@ -834,11 +834,26 @@
834
834
  "import": "./lib/components/VisualRadioGroup/index.js",
835
835
  "require": "./lib/components/VisualRadioGroup/index.js",
836
836
  "default": "./lib/components/VisualRadioGroup/index.js"
837
- }
837
+ },
838
+ "./scss/body": "./scss/_body.scss",
839
+ "./scss/breakpoints": "./scss/_breakpoints.scss",
840
+ "./scss/font-mixins": "./scss/_font-mixins.scss",
841
+ "./scss/font-settings": "./scss/_font-settings.scss",
842
+ "./scss/fonts": "./scss/_fonts.scss",
843
+ "./scss/grid": "./scss/_grid.scss",
844
+ "./scss/icon": "./scss/_icon.scss",
845
+ "./scss/input": "./scss/_input.scss",
846
+ "./scss/palette": "./scss/_palette.scss",
847
+ "./scss/print": "./scss/_print.scss",
848
+ "./scss/radio-reset": "./scss/_radio-reset.scss",
849
+ "./scss/reset": "./scss/_reset.scss",
850
+ "./scss/screen-reader": "./scss/_screen-reader.scss",
851
+ "./scss/spacers": "./scss/_spacers.scss",
852
+ "./scss/visual-form": "./scss/_visual-form.scss"
838
853
  },
839
854
  "scripts": {
840
855
  "start": "storybook dev -p 3000",
841
- "prebuild": "npm-run-all link-scss clean generate:iconnames generate:illustrationnames generate:cssdefinitions",
856
+ "prebuild": "npm-run-all link-scss clean generate:iconnames generate:illustrationnames generate:cssdefinitions generate:scssexports",
842
857
  "build": "vite build",
843
858
  "postbuild": "node ../build-tools/lib/copy.js --root ../../CHANGELOG.md --include \"src/scss/**/*\" \"src/fonts/**/*\" \"src/components/**/*.module.scss*\" && npm run link-scss",
844
859
  "link-scss": "node __scripts__/link-root-scss.mjs",
@@ -851,6 +866,7 @@
851
866
  "generate:iconnames": "node __scripts__/generateIconNames.mjs",
852
867
  "generate:illustrationnames": "node __scripts__/generateIllustrationNames.mjs",
853
868
  "generate:cssdefinitions": "typed-scss-modules \"src/**/*.module.scss\" --nameFormat none --exportType default --includePaths node_modules ../../node_modules",
869
+ "generate:scssexports": "node __scripts__/gen-scss-exports.mjs",
854
870
  "eslint": "eslint \"src/**/*.{ts,tsx}\"",
855
871
  "eslint:fix": "npm run eslint -- --fix",
856
872
  "stylelint": "stylelint \"src/**/*.{css,scss}\"",