@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.
- package/lib/Button.js +24 -19
- package/lib/Button.js.map +1 -1
- package/lib/CHANGELOG.md +25 -0
- package/lib/Drawer.js +46 -18
- package/lib/Drawer.js.map +1 -1
- package/lib/Expander.js +4 -4
- package/lib/Expander.js.map +1 -1
- package/lib/FilterButtonAndChipsWrapper.js +15 -3
- package/lib/FilterButtonAndChipsWrapper.js.map +1 -1
- package/lib/FilterLinkList.js +3 -2
- package/lib/FilterLinkList.js.map +1 -1
- package/lib/FilterOverviewLinkList.js +10 -1
- package/lib/FilterOverviewLinkList.js.map +1 -1
- package/lib/InfoTeaser.js +1 -1
- package/lib/InfoTeaser.js.map +1 -1
- package/lib/components/Button/styles.module.scss +39 -16
- package/lib/components/Button/styles.module.scss.d.ts +3 -2
- package/lib/components/Drawer/DrawerBackButton.d.ts +10 -0
- package/lib/components/Drawer/DrawerBackButton.module.scss +52 -0
- package/lib/components/Drawer/DrawerBackButton.module.scss.d.ts +10 -0
- package/lib/components/Drawer/styles.module.scss +0 -9
- package/lib/components/Expander/Expander.d.ts +2 -0
- package/lib/components/Expander/styles.module.scss +24 -12
- package/lib/components/Expander/styles.module.scss.d.ts +5 -2
- package/lib/components/Filter/FilterButtonAndChipsWrapper/FilterButtonAndChipsWrapper.d.ts +3 -0
- package/lib/components/Filter/FilterButtonAndChipsWrapper/styles.module.scss +18 -2
- package/lib/components/Filter/FilterButtonAndChipsWrapper/styles.module.scss.d.ts +1 -0
- package/lib/components/Filter/FilterLinkList/FilterLinkList.d.ts +2 -0
- package/lib/components/Filter/FilterLinkList/FilterLinkList.module.scss +10 -0
- package/lib/components/Filter/FilterOverviewLinkList/FilterOverviewLinkList.d.ts +4 -1
- package/lib/components/InfoTeaser/InfoTeaser.d.ts +1 -1
- package/lib/components/InfoTeaser/styles.module.scss +13 -16
- package/lib/components/Panel/styles.module.scss.d.ts +3 -2
- package/lib/components/Tabs/index.js +5 -0
- package/lib/components/Tabs/index.js.map +1 -1
- package/lib/components/VisualContentgroupWithImage/VisualContentgroupWithImage.d.ts +13 -0
- package/lib/components/VisualContentgroupWithImage/index.d.ts +3 -0
- package/lib/components/VisualContentgroupWithImage/index.js +22 -0
- package/lib/components/VisualContentgroupWithImage/index.js.map +1 -0
- package/lib/components/VisualContentgroupWithImage/styles.module.scss +50 -0
- package/lib/components/VisualContentgroupWithImage/styles.module.scss.d.ts +12 -0
- package/lib/getFilterChips.js +3 -3
- package/lib/getFilterChips.js.map +1 -1
- package/lib/resourceHelper.js +32 -2
- package/lib/resourceHelper.js.map +1 -1
- package/lib/resources/HN.Designsystem.Drawer.se-NO.json.d.ts +7 -0
- package/lib/resources/HN.Designsystem.Filter.en-GB.json.d.ts +2 -1
- package/lib/resources/HN.Designsystem.Filter.nb-NO.json.d.ts +2 -1
- package/lib/resources/HN.Designsystem.Filter.nn-NO.json.d.ts +16 -0
- package/lib/resources/HN.Designsystem.Filter.se-NO.json.d.ts +16 -0
- package/lib/resources/HN.Designsystem.Tabs.se-NO.json.d.ts +7 -0
- package/lib/resources/Resources.d.ts +4 -0
- 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-
|
|
35
|
+
grid-column: content;
|
|
36
|
+
grid-row: 1;
|
|
45
37
|
align-self: center;
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
&__icon {
|
|
49
|
-
grid-
|
|
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-
|
|
48
|
+
grid-column: 1 / -1;
|
|
55
49
|
overflow: hidden;
|
|
56
50
|
height: inherit;
|
|
57
|
-
|
|
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%;
|
|
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--
|
|
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":"
|
|
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,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;
|
package/lib/getFilterChips.js
CHANGED
|
@@ -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
|
|
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
|
|
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"}
|
package/lib/resourceHelper.js
CHANGED
|
@@ -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":"
|
|
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"}
|
|
@@ -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
|
|
|
@@ -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;
|
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.
|
|
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}\"",
|