@helsenorge/designsystem-react 12.0.0-beta.1 → 12.0.0-beta.2

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 (155) hide show
  1. package/CHANGELOG.md +90 -9
  2. package/Checkbox.js +1 -1
  3. package/Checkbox.js.map +1 -1
  4. package/Duolist.js +92 -0
  5. package/Duolist.js.map +1 -0
  6. package/ElementHeader.js +150 -0
  7. package/ElementHeader.js.map +1 -0
  8. package/ElementHeaderText.js +35 -0
  9. package/ElementHeaderText.js.map +1 -0
  10. package/HelpDetails.js +1 -1
  11. package/HelpDetails.js.map +1 -1
  12. package/HelpTriggerIcon.js +4 -4
  13. package/HelpTriggerIcon.js.map +1 -1
  14. package/HelpTriggerStandalone.js +5 -2
  15. package/HelpTriggerStandalone.js.map +1 -1
  16. package/Highlighter.js +44 -0
  17. package/Highlighter.js.map +1 -0
  18. package/LazyIcon.js +1 -1
  19. package/LazyIcon.js.map +1 -1
  20. package/LinkList.js +47 -9
  21. package/LinkList.js.map +1 -1
  22. package/NotificationBadge.js +1 -1
  23. package/NotificationBadge.js.map +1 -1
  24. package/Panel.js +38 -18
  25. package/Panel.js.map +1 -1
  26. package/PanelTitle.js +3 -2
  27. package/PanelTitle.js.map +1 -1
  28. package/PopOver.js +6 -0
  29. package/PopOver.js.map +1 -1
  30. package/StatusDot.js +15 -6
  31. package/StatusDot.js.map +1 -1
  32. package/StatusDotMultiComposition.js +27 -0
  33. package/StatusDotMultiComposition.js.map +1 -0
  34. package/components/AnchorLink/styles.module.scss +7 -7
  35. package/components/ArticleTeaser/styles.module.scss +7 -3
  36. package/components/Checkbox/styles.module.scss +7 -1
  37. package/components/Checkbox/styles.module.scss.d.ts +1 -0
  38. package/components/Close/styles.module.scss +10 -6
  39. package/components/DictionaryTrigger/styles.module.scss +12 -5
  40. package/components/Dropdown/styles.module.scss +9 -1
  41. package/components/Duolist/index.js +3 -88
  42. package/components/Duolist/index.js.map +1 -1
  43. package/components/ElementHeader/ElementHeader.d.ts +59 -0
  44. package/components/ElementHeader/ElementHeaderText/ElementHeaderText.d.ts +25 -0
  45. package/components/ElementHeader/ElementHeaderText/index.d.ts +3 -0
  46. package/components/ElementHeader/ElementHeaderText/index.js +6 -0
  47. package/components/ElementHeader/StatusDotMultiComposition/StatusDotMultiComposition.d.ts +23 -0
  48. package/components/ElementHeader/StatusDotMultiComposition/index.d.ts +3 -0
  49. package/components/ElementHeader/StatusDotMultiComposition/index.js +6 -0
  50. package/components/{ListHeader → ElementHeader/StatusDotMultiComposition}/index.js.map +1 -1
  51. package/components/ElementHeader/StatusDotMultiComposition/styles.module.scss +28 -0
  52. package/components/ElementHeader/StatusDotMultiComposition/styles.module.scss.d.ts +11 -0
  53. package/components/ElementHeader/index.d.ts +3 -0
  54. package/components/ElementHeader/index.js +9 -0
  55. package/components/ElementHeader/index.js.map +1 -0
  56. package/components/{ListHeader → ElementHeader}/styles.module.scss +46 -9
  57. package/components/ElementHeader/styles.module.scss.d.ts +22 -0
  58. package/components/ExpanderList/ExpanderList.d.ts +9 -2
  59. package/components/ExpanderList/index.js +40 -23
  60. package/components/ExpanderList/index.js.map +1 -1
  61. package/components/ExpanderList/styles.module.scss +288 -47
  62. package/components/ExpanderList/styles.module.scss.d.ts +22 -2
  63. package/components/HelpBubble/HelpBubble.d.ts +7 -0
  64. package/components/HelpBubble/index.js +43 -8
  65. package/components/HelpBubble/index.js.map +1 -1
  66. package/components/HelpBubble/resourceHelper.d.ts +3 -0
  67. package/components/HelpBubble/styles.module.scss +0 -2
  68. package/components/HelpDetails/styles.module.scss +3 -2
  69. package/components/HelpDrawer/HelpDrawer.d.ts +3 -0
  70. package/components/HelpDrawer/index.js +31 -1
  71. package/components/HelpDrawer/index.js.map +1 -1
  72. package/components/HelpDrawer/resourceHelper.d.ts +3 -0
  73. package/components/HelpDrawer/styles.module.scss +1 -11
  74. package/components/HelpDrawer/styles.module.scss.d.ts +0 -1
  75. package/components/HelpPanel/styles.module.scss +2 -2
  76. package/components/HelpTeaser/styles.module.scss +5 -5
  77. package/components/HelpTooltip/HelpTooltip.d.ts +2 -2
  78. package/components/HelpTooltip/index.js.map +1 -1
  79. package/components/HelpTriggerIcon/HelpTriggerIcon.d.ts +4 -0
  80. package/components/HelpTriggerIcon/styles.module.scss +10 -10
  81. package/components/HelpTriggerInline/index.js +5 -2
  82. package/components/HelpTriggerInline/index.js.map +1 -1
  83. package/components/HelpTriggerInline/styles.module.scss +8 -4
  84. package/components/HelpTriggerStandalone/styles.module.scss +8 -4
  85. package/components/Highlighter/Highlighter.d.ts +7 -0
  86. package/components/Highlighter/Highlighter.test.d.ts +1 -0
  87. package/components/Highlighter/index.d.ts +3 -0
  88. package/components/Highlighter/index.js +6 -0
  89. package/components/Highlighter/index.js.map +1 -0
  90. package/components/Highlighter/styles.module.scss +4 -0
  91. package/components/Highlighter/styles.module.scss.d.ts +9 -0
  92. package/components/Icons/AdditionalIconInformation.d.ts +4 -0
  93. package/components/Icons/AdditionalIconInformation.js +2 -1
  94. package/components/Icons/AdditionalIconInformation.js.map +1 -1
  95. package/components/Icons/DotActive.d.ts +4 -0
  96. package/components/Icons/DotActive.js +16 -0
  97. package/components/Icons/DotActive.js.map +1 -0
  98. package/components/Icons/DotInactive.d.ts +4 -0
  99. package/components/Icons/DotInactive.js +30 -0
  100. package/components/Icons/DotInactive.js.map +1 -0
  101. package/components/Icons/DotPending.d.ts +4 -0
  102. package/components/Icons/DotPending.js +16 -0
  103. package/components/Icons/DotPending.js.map +1 -0
  104. package/components/Icons/IconNames.d.ts +1 -1
  105. package/components/Icons/IconNames.js +4 -0
  106. package/components/Icons/IconNames.js.map +1 -1
  107. package/components/Icons/TreatmentAids.d.ts +4 -0
  108. package/components/Icons/TreatmentAids.js +41 -0
  109. package/components/Icons/TreatmentAids.js.map +1 -0
  110. package/components/LinkList/LinkList.d.ts +9 -2
  111. package/components/LinkList/styles.module.scss +70 -0
  112. package/components/LinkList/styles.module.scss.d.ts +11 -0
  113. package/components/NotificationPanel/styles.module.scss +1 -1
  114. package/components/Panel/Panel.d.ts +16 -8
  115. package/components/Panel/PanelTitle/PanelTitle.d.ts +3 -1
  116. package/components/Panel/styles.module.scss +10 -1
  117. package/components/Panel/styles.module.scss.d.ts +2 -0
  118. package/components/PanelList/PanelList.d.ts +2 -0
  119. package/components/PanelList/index.js +3 -2
  120. package/components/PanelList/index.js.map +1 -1
  121. package/components/PopOver/PopOver.d.ts +4 -0
  122. package/components/PopOver/styles.module.scss +6 -3
  123. package/components/PopOver/styles.module.scss.d.ts +1 -0
  124. package/components/RadioButton/styles.module.scss +7 -1
  125. package/components/StatusDot/StatusDot.d.ts +6 -2
  126. package/components/StatusDot/index.js +3 -3
  127. package/components/StatusDot/styles.module.scss +12 -6
  128. package/components/StatusDot/styles.module.scss.d.ts +3 -0
  129. package/components/Step/Step.d.ts +4 -0
  130. package/components/Step/index.js +5 -2
  131. package/components/Step/index.js.map +1 -1
  132. package/components/Toggle/index.js +2 -1
  133. package/components/Toggle/index.js.map +1 -1
  134. package/constants.d.ts +1 -0
  135. package/constants.js +1 -0
  136. package/constants.js.map +1 -1
  137. package/designsystem-react.css +1 -1
  138. package/package.json +1 -1
  139. package/resources/HN.Designsystem.HelpBubble.nb-NO.json.d.ts +6 -0
  140. package/resources/HN.Designsystem.HelpDrawer.nb-NO.json.d.ts +6 -0
  141. package/scss/helsenorge.scss +2 -0
  142. package/scss/supernova/styles/colors.css +1 -1
  143. package/scss/typography.stories.tsx +1 -1
  144. package/ListHeader.js +0 -94
  145. package/ListHeader.js.map +0 -1
  146. package/ListHeaderText.js +0 -39
  147. package/ListHeaderText.js.map +0 -1
  148. package/components/ListHeader/ListHeader.d.ts +0 -43
  149. package/components/ListHeader/ListHeaderText/ListHeaderText.d.ts +0 -26
  150. package/components/ListHeader/ListHeaderText/index.d.ts +0 -3
  151. package/components/ListHeader/ListHeaderText/index.js +0 -6
  152. package/components/ListHeader/index.d.ts +0 -4
  153. package/components/ListHeader/index.js +0 -11
  154. package/components/ListHeader/styles.module.scss.d.ts +0 -21
  155. /package/components/{ListHeader/ListHeaderText → ElementHeader/ElementHeaderText}/index.js.map +0 -0
@@ -10,14 +10,18 @@
10
10
  padding: 0 var(--core-space-4xs);
11
11
  background-color: transparent;
12
12
 
13
- // The background svg consists of a circle with empty space to the right, making up a dotted pattern when repeated horizontally
14
- background-image: url("data:image/svg+xml,<svg width='8' height='3' viewBox='0 0 8 3' xmlns='http://www.w3.org/2000/svg'><circle cx='1.5' cy='1.5' r='1.5' fill='%236A2ABF' /></svg>");
15
- background-position: bottom left;
13
+ --dot-color: var(--color-help-border-normal);
14
+
15
+ // The radial-gradient consists of a circle with empty space to the right, making up a dotted pattern when repeated horizontally
16
+ background-image: radial-gradient(circle at 1.5px 1.5px, var(--dot-color) 1.5px, transparent 1.5px);
16
17
  background-repeat: repeat-x;
18
+ background-size: 8px 3px;
19
+ background-position: bottom left;
17
20
 
18
21
  &:hover {
19
22
  background-color: var(--color-help-background-transparent-onlight-hover);
20
- background-image: url("data:image/svg+xml,<svg width='8' height='3' viewBox='0 0 8 3' xmlns='http://www.w3.org/2000/svg'><circle cx='1.5' cy='1.5' r='1.5' fill='%236A2ABF' /></svg>");
23
+
24
+ --dot-color: var(--color-help-border-dark);
21
25
  }
22
26
 
23
27
  &:focus-visible {
@@ -27,7 +31,8 @@
27
31
 
28
32
  &[aria-expanded='true'] {
29
33
  background-color: var(--color-help-background-transparent-onlight-hover);
30
- background-image: url("data:image/svg+xml,<svg width='8' height='3' viewBox='0 0 8 3' xmlns='http://www.w3.org/2000/svg'><circle cx='1.5' cy='1.5' r='1.5' fill='%236A2ABF' /></svg>");
34
+
35
+ --dot-color: var(--color-help-border-dark);
31
36
 
32
37
  &:hover,
33
38
  &:focus-visible {
@@ -41,5 +46,7 @@
41
46
 
42
47
  &:active {
43
48
  background-color: var(--color-help-background-transparent-onlight-hover-selected);
49
+
50
+ --dot-color: var(--color-help-border-dark);
44
51
  }
45
52
  }
@@ -209,7 +209,15 @@
209
209
 
210
210
  &__input {
211
211
  border-bottom: 1px solid palette.$neutral300;
212
- padding: spacers.getSpacer(2xs) spacers.getSpacer(s);
212
+ padding: 0 spacers.getSpacer(s);
213
+
214
+ &[role='menuitemradio'] {
215
+ padding: 0 spacers.getSpacer(s);
216
+ }
217
+
218
+ &[role='menuitemcheckbox'] {
219
+ padding: 1px spacers.getSpacer(s) spacers.getSpacer(2xs) spacers.getSpacer(s);
220
+ }
213
221
 
214
222
  @media (min-width: map.get(breakpoints.$grid-breakpoints, md)) {
215
223
  padding: spacers.getSpacer(s);
@@ -1,93 +1,8 @@
1
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import React__default from "react";
3
- import classNames from "classnames";
4
- import { AnalyticsId } from "../../constants.js";
5
- import { useBreakpoint, Breakpoint } from "../../hooks/useBreakpoint.js";
6
- import { S as Spacer } from "../../Spacer.js";
7
- import duolistStyles from "./styles.module.scss";
8
- const DuolistGroup = (props) => {
9
- const { format = "formatted", boldColumn = format === "non-formatted" ? "none" : "first", description, separator = ": ", term } = props;
10
- const firstBold = boldColumn === "first";
11
- const secondBold = boldColumn === "second";
12
- const nonFormatted = format === "non-formatted";
13
- const dtClassNames = classNames(duolistStyles["duolist__dt"], {
14
- [duolistStyles["duolist__dt--bold"]]: firstBold,
15
- [duolistStyles["duolist__dt--non-formatted"]]: nonFormatted
16
- });
17
- const ddClassNames = classNames(duolistStyles["duolist__dd"], {
18
- [duolistStyles["duolist__dd--bold"]]: secondBold,
19
- [duolistStyles["duolist__dd--non-formatted"]]: nonFormatted
20
- });
21
- const renderContent = () => {
22
- return /* @__PURE__ */ jsxs(Fragment, { children: [
23
- /* @__PURE__ */ jsx("dt", { "data-separator": nonFormatted ? separator : void 0, className: dtClassNames, children: term }),
24
- /* @__PURE__ */ jsx("dd", { className: ddClassNames, children: description })
25
- ] });
26
- };
27
- return nonFormatted ? /* @__PURE__ */ jsx("div", { children: renderContent() }) : /* @__PURE__ */ jsx(Fragment, { children: renderContent() });
28
- };
29
- const Duolist = (props) => {
30
- const {
31
- boldColumn,
32
- border = "no-border",
33
- descriptionWidth,
34
- label,
35
- format = "formatted",
36
- separator,
37
- variant = "normal",
38
- children,
39
- className,
40
- testId,
41
- useCollapsedFromAndBelowBreakpoint
42
- } = props;
43
- const hasBorder = border === "border";
44
- const hasLines = variant === "line";
45
- const extraPaddingTop = hasBorder && (label || hasLines);
46
- const nonFormatted = format === "non-formatted";
47
- const breakpoint = useBreakpoint();
48
- const useCollapsedMode = useCollapsedFromAndBelowBreakpoint && breakpoint <= Breakpoint[useCollapsedFromAndBelowBreakpoint];
49
- const duolistWrapperClasses = classNames(
50
- {
51
- [duolistStyles["duolist-wrapper--border"]]: hasBorder,
52
- [duolistStyles["duolist-wrapper--extra-padding-top"]]: extraPaddingTop
53
- },
54
- className
55
- );
56
- const duolistClasses = classNames(duolistStyles.duolist, {
57
- [duolistStyles["duolist--line"]]: hasLines,
58
- [duolistStyles["duolist--non-formatted"]]: nonFormatted,
59
- [duolistStyles["duolist--collapsed"]]: useCollapsedMode,
60
- [duolistStyles["duolist--not-collapsed"]]: !useCollapsedMode
61
- });
62
- const duolistColumnStyle = descriptionWidth ? descriptionWidth + "%" : "minmax(60%, 1fr)";
63
- return /* @__PURE__ */ jsxs("div", { className: duolistWrapperClasses, "data-testid": testId, "data-analyticsid": AnalyticsId.Duolist, children: [
64
- label && /* @__PURE__ */ jsxs(Fragment, { children: [
65
- label,
66
- /* @__PURE__ */ jsx(Spacer, {})
67
- ] }),
68
- /* @__PURE__ */ jsx(
69
- "dl",
70
- {
71
- style: !nonFormatted ? { gridTemplateColumns: useCollapsedMode ? `1fr` : `auto ${duolistColumnStyle}` } : void 0,
72
- className: duolistClasses,
73
- children: React__default.Children.map(children, (child) => {
74
- if (child === null || typeof child === "undefined") return;
75
- const duolistGroup = child;
76
- if (duolistGroup.type === DuolistGroup) {
77
- return React__default.cloneElement(child, {
78
- boldColumn: duolistGroup.props.boldColumn ?? boldColumn,
79
- format: duolistGroup.props.format ?? format,
80
- separator: duolistGroup.props.separator ?? separator
81
- });
82
- }
83
- })
84
- }
85
- )
86
- ] });
87
- };
1
+ import { D as Duolist } from "../../Duolist.js";
2
+ import { a } from "../../Duolist.js";
88
3
  export {
89
4
  Duolist,
90
- DuolistGroup,
5
+ a as DuolistGroup,
91
6
  Duolist as default
92
7
  };
93
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Duolist/Duolist.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { Breakpoint, useBreakpoint } from '../../hooks/useBreakpoint';\nimport Spacer from '../Spacer';\nimport { TitleProps } from '../Title';\n\nimport duolistStyles from './styles.module.scss';\n\nexport type DuolistVariants = 'normal' | 'line';\nexport type BoldColumn = 'first' | 'second' | 'none';\nexport type Border = 'no-border' | 'border';\nexport type Formats = 'formatted' | 'non-formatted';\n\nexport interface DuolistProps {\n /** Determines which column is bold */\n boldColumn?: BoldColumn;\n /** Label of the Duolist */\n border?: Border;\n /** Label of the Duolist */\n label?: React.ReactElement<TitleProps>;\n /** Formatted or non-formatted visual variants */\n format?: Formats;\n /** Character separator for non-formatted format */\n separator?: string;\n /** Sets the visual variant of the Duolist. */\n variant?: DuolistVariants;\n /** Sets the content of the Duolist. */\n children: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Width of the description column in percentage */\n descriptionWidth?: number;\n /** Use collapsed mode on columns from chosen breakpoint and below. */\n useCollapsedFromAndBelowBreakpoint?: keyof typeof Breakpoint;\n}\n\nexport interface DuolistGroupProps {\n /** Determines which column is bold */\n boldColumn?: BoldColumn;\n /** Sets content of the <dd> tag. */\n description: React.ReactNode;\n /** Formatted or non-formatted visual variants */\n format?: Formats;\n /** Character separator for non-formatted format */\n separator?: string;\n /** Sets content of the <dt> tag. */\n term: React.ReactNode;\n}\n\nexport const DuolistGroup: React.FC<DuolistGroupProps> = props => {\n const { format = 'formatted', boldColumn = format === 'non-formatted' ? 'none' : 'first', description, separator = ': ', term } = props;\n\n const firstBold = boldColumn === 'first';\n const secondBold = boldColumn === 'second';\n const nonFormatted = format === 'non-formatted';\n\n const dtClassNames = classNames(duolistStyles['duolist__dt'], {\n [duolistStyles['duolist__dt--bold']]: firstBold,\n [duolistStyles['duolist__dt--non-formatted']]: nonFormatted,\n });\n const ddClassNames = classNames(duolistStyles['duolist__dd'], {\n [duolistStyles['duolist__dd--bold']]: secondBold,\n [duolistStyles['duolist__dd--non-formatted']]: nonFormatted,\n });\n\n const renderContent = () => {\n return (\n <>\n <dt data-separator={nonFormatted ? separator : undefined} className={dtClassNames}>\n {term}\n </dt>\n <dd className={ddClassNames}>{description}</dd>\n </>\n );\n };\n\n return nonFormatted ? <div>{renderContent()}</div> : <>{renderContent()}</>;\n};\n\nexport const Duolist: React.FC<DuolistProps> = props => {\n const {\n boldColumn,\n border = 'no-border',\n descriptionWidth,\n label,\n format = 'formatted',\n separator,\n variant = 'normal',\n children,\n className,\n testId,\n useCollapsedFromAndBelowBreakpoint,\n } = props;\n\n const hasBorder = border === 'border';\n const hasLines = variant === 'line';\n const extraPaddingTop = hasBorder && (label || hasLines);\n const nonFormatted = format === 'non-formatted';\n const breakpoint = useBreakpoint();\n const useCollapsedMode = useCollapsedFromAndBelowBreakpoint && breakpoint <= Breakpoint[useCollapsedFromAndBelowBreakpoint];\n\n const duolistWrapperClasses = classNames(\n {\n [duolistStyles['duolist-wrapper--border']]: hasBorder,\n [duolistStyles['duolist-wrapper--extra-padding-top']]: extraPaddingTop,\n },\n className\n );\n\n const duolistClasses = classNames(duolistStyles.duolist, {\n [duolistStyles['duolist--line']]: hasLines,\n [duolistStyles['duolist--non-formatted']]: nonFormatted,\n [duolistStyles['duolist--collapsed']]: useCollapsedMode,\n [duolistStyles['duolist--not-collapsed']]: !useCollapsedMode,\n });\n\n const duolistColumnStyle = descriptionWidth ? descriptionWidth + '%' : 'minmax(60%, 1fr)';\n\n return (\n <div className={duolistWrapperClasses} data-testid={testId} data-analyticsid={AnalyticsId.Duolist}>\n {label && (\n <>\n {label}\n <Spacer />\n </>\n )}\n <dl\n style={!nonFormatted ? { gridTemplateColumns: useCollapsedMode ? `1fr` : `auto ${duolistColumnStyle}` } : undefined}\n className={duolistClasses}\n >\n {React.Children.map(children, (child: React.ReactNode | React.ReactElement<DuolistGroupProps>) => {\n if (child === null || typeof child === 'undefined') return;\n const duolistGroup = child as React.ReactElement<DuolistGroupProps>;\n if (duolistGroup.type === DuolistGroup) {\n return React.cloneElement(child as React.ReactElement<DuolistGroupProps>, {\n boldColumn: duolistGroup.props.boldColumn ?? boldColumn,\n format: duolistGroup.props.format ?? format,\n separator: duolistGroup.props.separator ?? separator,\n });\n }\n })}\n </dl>\n </div>\n );\n};\n\nexport default Duolist;\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,59 @@
1
+ import { default as React } from 'react';
2
+ import { ElementHeaderTextProps, ElementHeaderTextType } from './ElementHeaderText/ElementHeaderText';
3
+ import { AvatarProps, AvatarType } from '../Avatar';
4
+ import { BadgeProps, BadgeType } from '../Badge';
5
+ import { SvgIcon } from '../Icon';
6
+ import { StatusDotProps, StatusDotType } from '../StatusDot';
7
+ import { TitleTags } from '../Title';
8
+ import { StatusDotMultiCompositionProps, StatusDotMultiCompositionType } from './StatusDotMultiComposition';
9
+ export type ElementHeaderSize = 'small' | 'medium' | 'large';
10
+ export type ParentType = 'linklist' | 'expanderlist';
11
+ export interface ElementHeaderType extends React.FC<ElementHeaderProps> {
12
+ Avatar?: AvatarType;
13
+ Badge?: BadgeType;
14
+ ElementHeaderText?: ElementHeaderTextType;
15
+ StatusDot?: StatusDotType;
16
+ StatusDotMultiComposition?: StatusDotMultiCompositionType;
17
+ }
18
+ export declare const renderElementHeader: (element: React.ReactNode, options: Pick<ElementHeaderProps, "titleHtmlMarkup" | "isHovered" | "size" | "parentType" | "chevronIcon" | "icon" | "highlightText">) => React.ReactElement | undefined;
19
+ export interface ElementHeaderProps {
20
+ /** Adds custom classes to the ElementHeader element. */
21
+ className?: string;
22
+ /** Chevron to render inside of the ElementHeader */
23
+ chevronIcon?: SvgIcon;
24
+ /** Children to be rendered inside of ElementHeader */
25
+ children: React.ReactNode;
26
+ /** Changes the underlying element of the title. Default: h2*/
27
+ titleHtmlMarkup?: TitleTags;
28
+ /** icon to be rendered inside of ElementHeader */
29
+ icon?: React.ReactElement;
30
+ /** whether or not the parent is hovered */
31
+ isHovered?: boolean;
32
+ /** Adjusts styling based on parent */
33
+ parentType?: ParentType;
34
+ /** Changes size of the ElementHeader. */
35
+ size?: ElementHeaderSize;
36
+ /** Sets the data-testid attribute. */
37
+ testId?: string;
38
+ /** Highlights text in title. Used for search results */
39
+ highlightText?: string;
40
+ }
41
+ interface ElementHeaderChildren {
42
+ avatarChild?: React.ReactElement<AvatarProps>;
43
+ elementHeaderTextChildren: React.ReactElement<ElementHeaderTextProps>[];
44
+ badgeChildren?: React.ReactElement<BadgeProps>[];
45
+ statusDotChildren?: React.ReactElement<StatusDotProps>[];
46
+ statusDotMCChild?: React.ReactElement<StatusDotMultiCompositionProps>;
47
+ elementChild?: React.ReactElement;
48
+ stringChildren: string[];
49
+ remainingChildren: React.ReactNode[];
50
+ }
51
+ type ChildrenMapper = (children: React.ReactNode, isJsxChild?: boolean) => ElementHeaderChildren | undefined;
52
+ export declare const mapChildren: ChildrenMapper;
53
+ export declare const ElementHeaderRoot: ElementHeaderType;
54
+ type ElementHeaderComponent = typeof ElementHeaderRoot & {
55
+ Text: React.FC<ElementHeaderTextProps>;
56
+ StatusDotMultiComposition: React.FC<StatusDotMultiCompositionProps>;
57
+ };
58
+ declare const ElementHeader: ElementHeaderComponent;
59
+ export default ElementHeader;
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ import { TitleTags } from '../../Title';
3
+ export type ElementHeaderTextType = React.FC<ElementHeaderTextProps>;
4
+ export interface ElementHeaderTextProps {
5
+ /** The first text in the ElementHeaderText Component */
6
+ firstText: string;
7
+ /** Will style the first text as bold */
8
+ firstTextEmphasised?: boolean;
9
+ /** The second text in the ElementHeaderText Component */
10
+ secondText?: string;
11
+ /** Will style the second text as bold */
12
+ secondTextEmphasised?: boolean;
13
+ /** Whether or not this ElementHeaderText is a sub text */
14
+ subText?: boolean;
15
+ /** Adds custom classes to the ElementHeaderText component. */
16
+ className?: string;
17
+ /** Sets the data-testid attribute. */
18
+ testId?: string;
19
+ /** Changes the underlying element of the text. Default: span*/
20
+ titleHtmlMarkup?: TitleTags;
21
+ /** Highlights text. Used for search results */
22
+ highlightText?: string;
23
+ }
24
+ export declare const ElementHeaderText: ElementHeaderTextType;
25
+ export default ElementHeaderText;
@@ -0,0 +1,3 @@
1
+ import { default as ElementHeaderText } from './ElementHeaderText';
2
+ export * from './ElementHeaderText';
3
+ export default ElementHeaderText;
@@ -0,0 +1,6 @@
1
+ import { E as ElementHeaderText } from "../../../ElementHeaderText.js";
2
+ export {
3
+ ElementHeaderText,
4
+ ElementHeaderText as default
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ import { StatusDotProps } from '../../StatusDot';
3
+ export type StatusDotMultiCompositionType = React.FC<StatusDotMultiCompositionProps>;
4
+ export interface StatusDotMultiCompositionProps {
5
+ /** Additional text to the bottom statusdot */
6
+ additionalText?: string;
7
+ /** StatusDot that is under the others and outside the stacking */
8
+ bottomStatusDot?: React.ReactElement<StatusDotProps>;
9
+ /** Stacking of the statusdots */
10
+ stacking?: 'vertical' | 'horizontal';
11
+ /** StatusDots as children */
12
+ children?: React.ReactNode;
13
+ /** Adds custom classes */
14
+ className?: string;
15
+ /** Show a hidden for child statusdot over the other */
16
+ hiddenForChild?: boolean;
17
+ /** Sets the data-testid attribute. */
18
+ testId?: string;
19
+ /** StatusDot that is over the others and outside the stacking */
20
+ topStatusDot?: React.ReactElement<StatusDotProps>;
21
+ }
22
+ export declare const StatusDotMultiComposition: StatusDotMultiCompositionType;
23
+ export default StatusDotMultiComposition;
@@ -0,0 +1,3 @@
1
+ import { default as StatusDotMultiComposition } from './StatusDotMultiComposition';
2
+ export * from './StatusDotMultiComposition';
3
+ export default StatusDotMultiComposition;
@@ -0,0 +1,6 @@
1
+ import { S as StatusDotMultiComposition } from "../../../StatusDotMultiComposition.js";
2
+ export {
3
+ StatusDotMultiComposition,
4
+ StatusDotMultiComposition as default
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,28 @@
1
+ @use '../../../scss/font-mixins' as fonts;
2
+
3
+ .statusdotmulticomposition {
4
+ display: flex;
5
+ flex-flow: column;
6
+
7
+ &__children {
8
+ display: flex;
9
+
10
+ &[data-stacking='horizontal'] {
11
+ flex-flow: row;
12
+ column-gap: 1rem;
13
+ flex-wrap: wrap;
14
+ }
15
+
16
+ &[data-stacking='vertical'] {
17
+ flex-flow: column;
18
+ flex-wrap: wrap;
19
+ }
20
+ }
21
+
22
+ &__additional-text {
23
+ @include fonts.sublabel-subdued;
24
+
25
+ padding-left: 1.5rem;
26
+ color: var(--core-color-neutral-800);
27
+ }
28
+ }
@@ -0,0 +1,11 @@
1
+ export type Styles = {
2
+ statusdotmulticomposition: string;
3
+ 'statusdotmulticomposition__additional-text': string;
4
+ statusdotmulticomposition__children: string;
5
+ };
6
+
7
+ export type ClassNames = keyof Styles;
8
+
9
+ declare const styles: Styles;
10
+
11
+ export default styles;
@@ -0,0 +1,3 @@
1
+ import { default as ElementHeader } from './ElementHeader';
2
+ export * from './ElementHeader';
3
+ export default ElementHeader;
@@ -0,0 +1,9 @@
1
+ import { E as ElementHeader } from "../../ElementHeader.js";
2
+ import { a, m, r } from "../../ElementHeader.js";
3
+ export {
4
+ a as ElementHeaderRoot,
5
+ ElementHeader as default,
6
+ m as mapChildren,
7
+ r as renderElementHeader
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -3,12 +3,13 @@
3
3
  @use '../../scss/palette' as palette;
4
4
  @use '../../scss/breakpoints' as breakpoints;
5
5
 
6
- .list-header {
6
+ .element-header {
7
+ margin: 0.5rem;
7
8
  display: grid;
8
9
  grid-template:
9
- 'icon text badge chevron' 4rem
10
- '. text . .' auto / min-content auto min-content min-content;
11
- column-gap: spacers.getSpacer(2xs);
10
+ '. statusdots badge chevron' auto
11
+ 'icon text badge chevron' 3rem
12
+ '. text badge chevron' auto / min-content auto min-content min-content;
12
13
  margin-left: spacers.getSpacer(2xs);
13
14
  margin-right: spacers.getSpacer(2xs);
14
15
  width: 100%;
@@ -28,8 +29,23 @@
28
29
  height: 100%;
29
30
  grid-area: text;
30
31
  align-self: center;
31
- padding-top: 1.125rem;
32
- padding-bottom: 1.125rem;
32
+ padding-top: 0.625rem;
33
+ padding-bottom: 0.625rem;
34
+ padding-left: 0.5rem;
35
+
36
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, md)) {
37
+ padding-top: 0.75rem;
38
+ padding-bottom: 0.75rem;
39
+ }
40
+
41
+ &[data-hasstatusdots='true'] {
42
+ padding-top: 0.125rem;
43
+ padding-bottom: 0;
44
+
45
+ @media (min-width: map.get(breakpoints.$grid-breakpoints, md)) {
46
+ padding-top: 0;
47
+ }
48
+ }
33
49
 
34
50
  &--element {
35
51
  display: flex;
@@ -47,6 +63,10 @@
47
63
  }
48
64
  }
49
65
 
66
+ &__statusdot-container {
67
+ grid-area: statusdots;
68
+ }
69
+
50
70
  &__icon,
51
71
  &__icon svg,
52
72
  &__avatar,
@@ -67,7 +87,15 @@
67
87
 
68
88
  &__chevron {
69
89
  grid-area: chevron;
70
- height: 100%;
90
+
91
+ &[data-parenttype='linklist'] {
92
+ align-self: center;
93
+ height: 100%;
94
+ }
95
+
96
+ &[data-parenttype='expanderlist'] {
97
+ align-self: start;
98
+ }
71
99
  }
72
100
 
73
101
  &__chevron svg,
@@ -79,9 +107,18 @@
79
107
  grid-area: badge;
80
108
  display: flex;
81
109
  flex-flow: row;
82
- align-items: center;
83
- gap: 0.5rem;
84
110
  height: 100%;
111
+ gap: 0.5rem;
112
+ }
113
+
114
+ &__badge {
115
+ &[data-parenttype='linklist'] {
116
+ align-self: center;
117
+ }
118
+
119
+ &[data-parenttype='expanderlist'] {
120
+ align-self: start;
121
+ }
85
122
  }
86
123
 
87
124
  &__badge:has(svg),
@@ -0,0 +1,22 @@
1
+ export type Styles = {
2
+ 'element-header': string;
3
+ 'element-header__avatar': string;
4
+ 'element-header__badge': string;
5
+ 'element-header__badge-container': string;
6
+ 'element-header__chevron': string;
7
+ 'element-header__content': string;
8
+ 'element-header__content--element': string;
9
+ 'element-header__content--spacing': string;
10
+ 'element-header__icon': string;
11
+ 'element-header__statusdot-container': string;
12
+ 'element-header__title': string;
13
+ 'text-wrapper': string;
14
+ 'text-wrapper__text--emphasised': string;
15
+ 'text-wrapper--sub-level': string;
16
+ };
17
+
18
+ export type ClassNames = keyof Styles;
19
+
20
+ declare const styles: Styles;
21
+
22
+ export default styles;
@@ -1,15 +1,16 @@
1
1
  import { default as React } from 'react';
2
2
  import { PaletteNames } from '../../theme/palette';
3
- import { ListHeaderType } from '../ListHeader/ListHeader';
3
+ import { ElementHeaderType } from '../ElementHeader/ElementHeader';
4
4
  import { TitleTags } from '../Title';
5
5
  export type ExpanderListColors = Extract<PaletteNames, 'white' | 'blueberry' | 'cherry' | 'neutral'>;
6
6
  export interface ExpanderType extends React.ForwardRefExoticComponent<ExpanderProps & React.RefAttributes<HTMLLIElement>> {
7
- ListHeader?: ListHeaderType;
7
+ ElementHeader?: ElementHeaderType;
8
8
  }
9
9
  export interface ExpanderListCompound extends React.ForwardRefExoticComponent<ExpanderListProps & React.RefAttributes<HTMLUListElement>> {
10
10
  Expander: ExpanderType;
11
11
  }
12
12
  export type ExpanderListVariant = 'line' | 'outline' | 'fill' | 'fill-negative';
13
+ export type ExpanderListStatus = 'none' | 'new';
13
14
  interface ExpanderListProps {
14
15
  /** Toggles accordion functionality for the expanders. */
15
16
  accordion?: boolean;
@@ -31,6 +32,8 @@ interface ExpanderListProps {
31
32
  variant?: ExpanderListVariant;
32
33
  /** Overrides the default z-index of the expander header */
33
34
  zIndex?: number;
35
+ /** Highlights text in title and content. Used for search results */
36
+ highlightText?: string;
34
37
  }
35
38
  type Modify<T, R> = Omit<T, keyof R> & R;
36
39
  type ExpanderProps = Modify<React.HTMLAttributes<HTMLButtonElement>, {
@@ -51,6 +54,10 @@ type ExpanderProps = Modify<React.HTMLAttributes<HTMLButtonElement>, {
51
54
  onExpand?: (isExpanded: boolean) => void;
52
55
  /** Overrides the default z-index of the expander header */
53
56
  zIndex?: number;
57
+ /** Highlights text in title and content. Override if different from list. */
58
+ highlightText?: string;
59
+ /** Displays a status on the left side: default none */
60
+ status?: ExpanderListStatus;
54
61
  }> & Pick<ExpanderListProps, 'renderChildrenWhenClosed' | 'variant'>;
55
62
  export declare const ExpanderList: ExpanderListCompound;
56
63
  export default ExpanderList;