@norges-domstoler/dds-components 7.0.1 → 7.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 (115) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/components/Button/Button.stories.d.ts +3 -3
  3. package/dist/cjs/components/Checkbox/Checkbox.stories.d.ts +3 -3
  4. package/dist/cjs/components/Grid/Grid.context.d.ts +6 -0
  5. package/dist/cjs/components/Grid/Grid.d.ts +24 -0
  6. package/dist/cjs/components/Grid/Grid.stories.d.ts +8 -0
  7. package/dist/cjs/components/Grid/Grid.tokens.d.ts +82 -0
  8. package/dist/cjs/components/Grid/Grid.utils.d.ts +3 -0
  9. package/dist/cjs/components/Grid/GridChild.d.ts +24 -0
  10. package/dist/cjs/components/Grid/index.d.ts +2 -0
  11. package/dist/cjs/components/ProgressTracker/ProgressTracker.context.d.ts +6 -0
  12. package/dist/cjs/components/ProgressTracker/ProgressTracker.d.ts +12 -0
  13. package/dist/cjs/components/ProgressTracker/ProgressTracker.stories.d.ts +40 -0
  14. package/dist/cjs/components/ProgressTracker/ProgressTracker.tokens.d.ts +69 -0
  15. package/dist/cjs/components/ProgressTracker/ProgressTrackerItem.d.ts +24 -0
  16. package/dist/cjs/components/ProgressTracker/index.d.ts +1 -0
  17. package/dist/cjs/components/RadioButton/RadioButton.stories.d.ts +3 -3
  18. package/dist/cjs/components/Search/Search.d.ts +2 -2
  19. package/dist/cjs/components/Search/Search.stories.d.ts +7 -1
  20. package/dist/cjs/components/Search/Search.tokens.d.ts +4 -1
  21. package/dist/cjs/components/Table/Cell.d.ts +1 -1
  22. package/dist/cjs/components/Table/Table.d.ts +4 -0
  23. package/dist/cjs/components/Table/Table.stories.d.ts +7 -0
  24. package/dist/cjs/components/Table/Table.tokens.d.ts +72 -0
  25. package/dist/cjs/components/Tooltip/Tooltip.stories.d.ts +2 -2
  26. package/dist/cjs/components/Typography/Label/Label.d.ts +6 -2
  27. package/dist/cjs/components/Typography/Label/Label.stories.d.ts +2 -0
  28. package/dist/cjs/index.d.ts +2 -1
  29. package/dist/cjs/index.js +1232 -964
  30. package/dist/components/Breadcrumbs/Breadcrumb.js +7 -0
  31. package/dist/components/Button/Button.stories.d.ts +3 -3
  32. package/dist/components/Checkbox/Checkbox.js +5 -5
  33. package/dist/components/Checkbox/Checkbox.stories.d.ts +3 -3
  34. package/dist/components/Datepicker/Datepicker.js +6 -5
  35. package/dist/components/Drawer/Drawer.js +7 -7
  36. package/dist/components/GlobalMessage/GlobalMessage.js +7 -0
  37. package/dist/components/Grid/Grid.context.d.ts +6 -0
  38. package/dist/components/Grid/Grid.context.js +12 -0
  39. package/dist/components/Grid/Grid.d.ts +24 -0
  40. package/dist/components/Grid/Grid.js +61 -0
  41. package/dist/components/Grid/Grid.stories.d.ts +8 -0
  42. package/dist/components/Grid/Grid.tokens.d.ts +82 -0
  43. package/dist/components/Grid/Grid.tokens.js +89 -0
  44. package/dist/components/Grid/Grid.utils.d.ts +3 -0
  45. package/dist/components/Grid/Grid.utils.js +24 -0
  46. package/dist/components/Grid/GridChild.d.ts +24 -0
  47. package/dist/components/Grid/GridChild.js +46 -0
  48. package/dist/components/Grid/index.d.ts +2 -0
  49. package/dist/components/InputMessage/InputMessage.js +7 -0
  50. package/dist/components/InternalHeader/InternalHeader.js +7 -0
  51. package/dist/components/LocalMessage/LocalMessage.js +7 -0
  52. package/dist/components/Modal/Modal.js +2 -2
  53. package/dist/components/Pagination/Pagination.js +7 -0
  54. package/dist/components/Popover/Popover.js +7 -0
  55. package/dist/components/ProgressTracker/ProgressTracker.context.d.ts +6 -0
  56. package/dist/components/ProgressTracker/ProgressTracker.context.js +10 -0
  57. package/dist/components/ProgressTracker/ProgressTracker.d.ts +12 -0
  58. package/dist/components/ProgressTracker/ProgressTracker.js +93 -0
  59. package/dist/components/ProgressTracker/ProgressTracker.stories.d.ts +40 -0
  60. package/dist/components/ProgressTracker/ProgressTracker.tokens.d.ts +69 -0
  61. package/dist/components/ProgressTracker/ProgressTracker.tokens.js +80 -0
  62. package/dist/components/ProgressTracker/ProgressTrackerItem.d.ts +24 -0
  63. package/dist/components/ProgressTracker/ProgressTrackerItem.js +168 -0
  64. package/dist/components/ProgressTracker/index.d.ts +1 -0
  65. package/dist/components/RadioButton/RadioButton.js +3 -3
  66. package/dist/components/RadioButton/RadioButton.stories.d.ts +3 -3
  67. package/dist/components/Search/Search.d.ts +2 -2
  68. package/dist/components/Search/Search.js +36 -28
  69. package/dist/components/Search/Search.stories.d.ts +7 -1
  70. package/dist/components/Search/Search.tokens.d.ts +4 -1
  71. package/dist/components/Search/Search.tokens.js +6 -2
  72. package/dist/components/Select/Select.js +6 -12
  73. package/dist/components/Table/Cell.d.ts +1 -1
  74. package/dist/components/Table/Cell.js +6 -4
  75. package/dist/components/Table/Row.js +12 -5
  76. package/dist/components/Table/SortCell.js +8 -11
  77. package/dist/components/Table/Table.d.ts +4 -0
  78. package/dist/components/Table/Table.js +8 -3
  79. package/dist/components/Table/Table.stories.d.ts +7 -0
  80. package/dist/components/Table/Table.tokens.d.ts +72 -0
  81. package/dist/components/Table/Table.tokens.js +69 -0
  82. package/dist/components/Tag/Tag.js +7 -0
  83. package/dist/components/TextInput/CharCounter.js +7 -0
  84. package/dist/components/TextInput/TextInput.js +8 -7
  85. package/dist/components/ToggleBar/ToggleBar.js +7 -0
  86. package/dist/components/ToggleButton/ToggleButtonGroup.js +7 -0
  87. package/dist/components/Tooltip/Tooltip.stories.d.ts +2 -2
  88. package/dist/components/Typography/Label/Label.d.ts +6 -2
  89. package/dist/components/Typography/Label/Label.js +13 -5
  90. package/dist/components/Typography/Label/Label.stories.d.ts +2 -0
  91. package/dist/index.d.ts +2 -1
  92. package/dist/index.js +3 -2
  93. package/package.json +1 -1
  94. package/dist/cjs/components/Stepper/Step.d.ts +0 -20
  95. package/dist/cjs/components/Stepper/Stepper.context.d.ts +0 -6
  96. package/dist/cjs/components/Stepper/Stepper.d.ts +0 -11
  97. package/dist/cjs/components/Stepper/Stepper.stories.d.ts +0 -25
  98. package/dist/cjs/components/Stepper/Stepper.tokens.d.ts +0 -39
  99. package/dist/cjs/components/Stepper/index.d.ts +0 -2
  100. package/dist/cjs/components/Table/Cell.tokens.d.ts +0 -31
  101. package/dist/cjs/components/Table/Row.tokens.d.ts +0 -32
  102. package/dist/components/Stepper/Step.d.ts +0 -20
  103. package/dist/components/Stepper/Step.js +0 -118
  104. package/dist/components/Stepper/Stepper.context.d.ts +0 -6
  105. package/dist/components/Stepper/Stepper.context.js +0 -10
  106. package/dist/components/Stepper/Stepper.d.ts +0 -11
  107. package/dist/components/Stepper/Stepper.js +0 -66
  108. package/dist/components/Stepper/Stepper.stories.d.ts +0 -25
  109. package/dist/components/Stepper/Stepper.tokens.d.ts +0 -39
  110. package/dist/components/Stepper/Stepper.tokens.js +0 -49
  111. package/dist/components/Stepper/index.d.ts +0 -2
  112. package/dist/components/Table/Cell.tokens.d.ts +0 -31
  113. package/dist/components/Table/Cell.tokens.js +0 -60
  114. package/dist/components/Table/Row.tokens.d.ts +0 -32
  115. package/dist/components/Table/Row.tokens.js +0 -73
@@ -7,7 +7,7 @@ import { searchTokens } from './Search.tokens.js';
7
7
  import '../../helpers/Backdrop/Backdrop.js';
8
8
  import '../../helpers/Chevron/AnimatedChevronUpDown.styles.js';
9
9
  import '../../helpers/HiddenInput/HiddenInput.js';
10
- import { Input as Input$1, OuterInputContainer } from '../../helpers/Input/Input.styles.js';
10
+ import { Input as Input$1 } from '../../helpers/Input/Input.styles.js';
11
11
  import '../../helpers/Input/Input.tokens.js';
12
12
  import '../../helpers/Paper/Paper.js';
13
13
  import '../../helpers/RequiredMarker/RequiredMarker.js';
@@ -17,9 +17,13 @@ import '../../utils/color.js';
17
17
  import { Icon } from '../Icon/Icon.js';
18
18
  import '../../icons/utils/StyledSvg.js';
19
19
  import { SearchIcon } from '../../icons/tsx/search.js';
20
+ import '../Typography/Typography/Typography.js';
21
+ import { Label } from '../Typography/Label/Label.js';
22
+ import '../Typography/Link/Link.js';
20
23
 
21
24
  var input = searchTokens.input,
22
- container = searchTokens.container,
25
+ outerContainer = searchTokens.outerContainer,
26
+ horisontalContainer = searchTokens.horisontalContainer,
23
27
  icon = searchTokens.icon;
24
28
 
25
29
  var getIconSize = function getIconSize(size) {
@@ -49,32 +53,34 @@ var StyledIcon = styled(Icon).withConfig({
49
53
  var size = _ref2.size;
50
54
  return css(["top:", ";"], searchTokens.icon[size].top);
51
55
  });
52
- var Container = styled.div.withConfig({
53
- displayName: "Search__Container",
56
+ var OuterContainer = styled.div.withConfig({
57
+ displayName: "Search__OuterContainer",
54
58
  componentId: "sc-1ax3s9s-2"
55
- })(["display:flex;flex-direction:row;gap:", ";"], container.gap);
59
+ })(["display:flex;flex-direction:column;gap:", ";"], outerContainer.gap);
60
+ var HorisontalContainer = styled.div.withConfig({
61
+ displayName: "Search__HorisontalContainer",
62
+ componentId: "sc-1ax3s9s-3"
63
+ })(["display:grid;grid-template-columns:1fr auto;gap:", ";"], horisontalContainer.gap);
56
64
  var InputContainer = styled.div.withConfig({
57
65
  displayName: "Search__InputContainer",
58
- componentId: "sc-1ax3s9s-3"
59
- })(["position:relative;"]);
60
- var ButtonWrapper = styled.div.withConfig({
61
- displayName: "Search__ButtonWrapper",
62
66
  componentId: "sc-1ax3s9s-4"
63
- })([""]);
67
+ })(["position:relative;"]);
64
68
  var Search = /*#__PURE__*/forwardRef(function (_a, ref) {
65
69
  var _a$componentSize = _a.componentSize,
66
70
  componentSize = _a$componentSize === void 0 ? 'medium' : _a$componentSize,
67
71
  buttonProps = _a.buttonProps,
68
72
  name = _a.name,
73
+ label = _a.label,
69
74
  tip = _a.tip,
70
75
  id = _a.id,
71
76
  className = _a.className,
72
77
  style = _a.style,
73
78
  ariaDescribedby = _a['aria-describedby'],
74
- rest = __rest(_a, ["componentSize", "buttonProps", "name", "tip", "id", "className", "style", 'aria-describedby']);
79
+ rest = __rest(_a, ["componentSize", "buttonProps", "name", "label", "tip", "id", "className", "style", 'aria-describedby']);
75
80
 
76
81
  var generatedId = useId();
77
82
  var uniqueId = id !== null && id !== void 0 ? id : "".concat(generatedId, "-searchInput");
83
+ var hasLabel = !!label;
78
84
  var hasTip = !!tip;
79
85
  var tipId = derivativeIdGenerator(uniqueId, 'tip', tip);
80
86
  var containerProps = {
@@ -92,33 +98,35 @@ var Search = /*#__PURE__*/forwardRef(function (_a, ref) {
92
98
  });
93
99
 
94
100
  var _b = buttonProps || {},
95
- label = _b.label,
101
+ buttonLabel = _b.label,
96
102
  onClick = _b.onClick,
97
103
  otherButtonProps = __rest(_b, ["label", "onClick"]);
98
104
 
99
- return jsxs(Container, Object.assign({}, containerProps, {
100
- children: [jsxs(OuterInputContainer, Object.assign({
101
- width: "100%"
105
+ return jsxs(OuterContainer, {
106
+ children: [hasLabel && jsx(Label, Object.assign({
107
+ htmlFor: uniqueId
102
108
  }, {
103
- children: [jsxs(InputContainer, {
104
- children: [jsx(StyledIcon, {
105
- icon: SearchIcon,
109
+ children: label
110
+ })), jsxs("div", {
111
+ children: [jsxs(HorisontalContainer, Object.assign({}, containerProps, {
112
+ children: [jsxs(InputContainer, {
113
+ children: [jsx(StyledIcon, {
114
+ icon: SearchIcon,
115
+ size: componentSize,
116
+ iconSize: getIconSize(componentSize)
117
+ }), jsx(Input, Object.assign({}, inputProps))]
118
+ }), buttonProps && onClick && jsx(Button, Object.assign({
106
119
  size: componentSize,
107
- iconSize: getIconSize(componentSize)
108
- }), jsx(Input, Object.assign({}, inputProps))]
109
- }), hasTip && jsx(InputMessage, {
120
+ label: buttonLabel || 'Søk',
121
+ onClick: onClick
122
+ }, otherButtonProps))]
123
+ })), hasTip && jsx(InputMessage, {
110
124
  id: tipId,
111
125
  messageType: "tip",
112
126
  message: tip
113
127
  })]
114
- })), buttonProps && onClick && jsx(ButtonWrapper, {
115
- children: jsx(Button, Object.assign({
116
- size: componentSize,
117
- label: label || 'Søk',
118
- onClick: onClick
119
- }, otherButtonProps))
120
128
  })]
121
- }));
129
+ });
122
130
  });
123
131
 
124
132
  export { Search };
@@ -1,7 +1,7 @@
1
1
  import { SearchProps } from './Search';
2
2
  declare const _default: {
3
3
  title: string;
4
- component: import("react").ForwardRefExoticComponent<Pick<import("../../helpers").InputProps, "tip"> & {
4
+ component: import("react").ForwardRefExoticComponent<Pick<import("../../helpers").InputProps, "label" | "tip"> & {
5
5
  componentSize?: import("./Search").SearchSize | undefined;
6
6
  buttonProps?: ({
7
7
  onClick: (event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => void;
@@ -15,6 +15,11 @@ declare const _default: {
15
15
  type: string;
16
16
  };
17
17
  };
18
+ label: {
19
+ control: {
20
+ type: string;
21
+ };
22
+ };
18
23
  };
19
24
  parameters: {
20
25
  controls: {
@@ -24,5 +29,6 @@ declare const _default: {
24
29
  };
25
30
  export default _default;
26
31
  export declare const Overview: (args: SearchProps) => JSX.Element;
32
+ export declare const OverviewSizes: (args: SearchProps) => JSX.Element;
27
33
  export declare const Default: (args: SearchProps) => JSX.Element;
28
34
  export declare const WithButton: (args: SearchProps) => JSX.Element;
@@ -61,7 +61,10 @@ export declare const searchTokens: {
61
61
  top: string;
62
62
  };
63
63
  };
64
- container: {
64
+ horisontalContainer: {
65
+ gap: string;
66
+ };
67
+ outerContainer: {
65
68
  gap: string;
66
69
  };
67
70
  };
@@ -33,9 +33,12 @@ var input = {
33
33
  }
34
34
  }
35
35
  };
36
- var container = {
36
+ var horisontalContainer = {
37
37
  gap: spacing.SizesDdsSpacingLocalX05
38
38
  };
39
+ var outerContainer = {
40
+ gap: spacing.SizesDdsSpacingLocalX0125
41
+ };
39
42
  var icon = {
40
43
  base: {
41
44
  left: spacing.SizesDdsSpacingLocalX075,
@@ -54,7 +57,8 @@ var icon = {
54
57
  var searchTokens = {
55
58
  input: input,
56
59
  icon: icon,
57
- container: container
60
+ horisontalContainer: horisontalContainer,
61
+ outerContainer: outerContainer
58
62
  };
59
63
 
60
64
  export { searchTokens };
@@ -2,14 +2,6 @@ import { __rest } from 'tslib';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import React, { useId } from 'react';
4
4
  import ReactSelect, { components } from 'react-select';
5
- import '../../helpers/Backdrop/Backdrop.js';
6
- import '../../helpers/Chevron/AnimatedChevronUpDown.styles.js';
7
- import '../../helpers/HiddenInput/HiddenInput.js';
8
- import '../../helpers/Input/Input.styles.js';
9
- import '../../helpers/Input/Input.tokens.js';
10
- import { getFormInputIconSize } from '../../helpers/Input/Input.utils.js';
11
- import '../../helpers/Paper/Paper.js';
12
- import { RequiredMarker } from '../../helpers/RequiredMarker/RequiredMarker.js';
13
5
  import '../../icons/utils/StyledSvg.js';
14
6
  import { CheckIcon } from '../../icons/tsx/check.js';
15
7
  import { ChevronDownIcon } from '../../icons/tsx/chevronDown.js';
@@ -22,6 +14,7 @@ import { prefix, getCustomStyles, Container, InnerSingleValue, StyledIcon } from
22
14
  import '../Typography/Typography/Typography.js';
23
15
  import { Label } from '../Typography/Label/Label.js';
24
16
  import '../Typography/Link/Link.js';
17
+ import { getFormInputIconSize } from '../../helpers/Input/Input.utils.js';
25
18
 
26
19
  var Option = components.Option,
27
20
  NoOptionsMessage = components.NoOptionsMessage,
@@ -166,7 +159,7 @@ var SelectInner = function SelectInner(props, ref) {
166
159
  var singleValueId = !isMulti ? "".concat(uniqueId, "-singleValue") : undefined;
167
160
  var hasLabel = !!label;
168
161
  var hasErrorMessage = !!errorMessage;
169
- var showRequiredMarker = required || ariaRequired;
162
+ var showRequiredStyling = !!(required || ariaRequired);
170
163
  var tipId = derivativeIdGenerator(uniqueId, 'tip', tip);
171
164
  var errorMessageId = derivativeIdGenerator(uniqueId, 'errorMessage', errorMessage);
172
165
  var containerProps = {
@@ -224,10 +217,11 @@ var SelectInner = function SelectInner(props, ref) {
224
217
  'aria-invalid': hasErrorMessage ? true : undefined
225
218
  }, rest);
226
219
  return jsxs(Container, Object.assign({}, containerProps, {
227
- children: [hasLabel && jsxs(Label, Object.assign({
228
- htmlFor: uniqueId
220
+ children: [hasLabel && jsx(Label, Object.assign({
221
+ htmlFor: uniqueId,
222
+ showRequiredStyling: showRequiredStyling
229
223
  }, {
230
- children: [label, " ", showRequiredMarker && jsx(RequiredMarker, {})]
224
+ children: label
231
225
  })), jsx(ReactSelect, Object.assign({}, reactSelectProps, {
232
226
  ref: ref
233
227
  })), errorMessage && jsx(InputMessage, {
@@ -4,7 +4,7 @@ export declare type TableCellLayout = 'left' | 'right' | 'center' | 'text and ic
4
4
  export declare type TableCellProps = {
5
5
  /**Type celle. Returnerer enten `<td>` eller `<th>`. */
6
6
  type?: TableCellType;
7
- /**Layout av innholdet i cellen. 'tekst and icon' legger margin mellom første barnet og andre barnet i cellen, og skal hovedsakelig brukes når innholdet er tekst og ikon; tekst må bli wrappet i `<span>` hvis det er det første barnet. */
7
+ /**Layout av innholdet i cellen. 'tekst and icon' legger `gap` mellom barna og andre barnet i cellen. */
8
8
  layout?: TableCellLayout;
9
9
  } & (TdHTMLAttributes<HTMLTableCellElement> | ThHTMLAttributes<HTMLTableCellElement>);
10
10
  export declare const Cell: import("react").ForwardRefExoticComponent<TableCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
@@ -2,7 +2,9 @@ import { __rest } from 'tslib';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import styled, { css } from 'styled-components';
5
- import { cellTokens } from './Cell.tokens.js';
5
+ import { tableTokens } from './Table.tokens.js';
6
+
7
+ var cell = tableTokens.cell;
6
8
 
7
9
  var layoutStyle = function layoutStyle(layout) {
8
10
  switch (layout) {
@@ -13,7 +15,7 @@ var layoutStyle = function layoutStyle(layout) {
13
15
  return css(["justify-content:flex-end;"]);
14
16
 
15
17
  case 'text and icon':
16
- return css(["& > *:first-of-type{", "}"], cellTokens.data.layout.textAndIcon.base);
18
+ return css(["gap:", ";"], cell.layout.textAndIcon.gap);
17
19
 
18
20
  default:
19
21
  case 'left':
@@ -24,9 +26,9 @@ var layoutStyle = function layoutStyle(layout) {
24
26
  var StyledCell = styled.td.withConfig({
25
27
  displayName: "Cell__StyledCell",
26
28
  componentId: "sc-ghfpfs-0"
27
- })(["", " ", ""], cellTokens.base, function (_ref) {
29
+ })(["", ""], function (_ref) {
28
30
  var type = _ref.type;
29
- return type && css(["", ""], cellTokens[type].base);
31
+ return type === 'head' && css(["background-color:", ";"], cell.head.backgroundColor);
30
32
  });
31
33
  var InnerCell = styled.div.withConfig({
32
34
  displayName: "Cell__InnerCell",
@@ -2,24 +2,31 @@ import { __rest } from 'tslib';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import styled, { css } from 'styled-components';
5
- import { rowTokens } from './Row.tokens.js';
5
+ import { focusVisibleInset } from '../../helpers/styling/focusVisible.js';
6
+ import '../../helpers/styling/hover.js';
7
+ import '../../helpers/styling/focus.js';
8
+ import '../../helpers/styling/danger.js';
9
+ import '../../helpers/styling/selection.js';
10
+ import { tableTokens } from './Table.tokens.js';
11
+
12
+ var row = tableTokens.row;
6
13
 
7
14
  var bodyStyles = function bodyStyles(mode, selected) {
8
- return css(["", " ", ""], mode && css(["", ""], rowTokens.body.mode[mode].base), selected && css(["", ""], rowTokens.body.selected.base));
15
+ return css(["", " ", ""], mode === 'sum' && css(["font-weight:600;border-top:", ";border-bottom:", ";background-color:", ";"], row.body.mode.sum.borderTop, row.body.mode.sum.borderBottom, row.body.mode.sum.backgroundColor), selected && css(["background-color:", ";"], row.body.selected.backgroundColor));
9
16
  };
10
17
 
11
18
  var StyledRow = styled.tr.withConfig({
12
19
  displayName: "Row__StyledRow",
13
20
  componentId: "sc-15vvjkk-0"
14
- })(["@media (prefers-reduced-motion:no-preference){transition:background-color 0.2s,border-color 0.2s,box-shadow 0.2s;}", " ", ""], function (_ref) {
21
+ })(["@media (prefers-reduced-motion:no-preference){transition:background-color 0.2s,border-color 0.2s,box-shadow 0.2s;}", " color:", ";", " ", ""], row.base.font, row.base.color, function (_ref) {
15
22
  var type = _ref.type;
16
- return type && css(["", ""], rowTokens[type].base);
23
+ return type === 'head' && css(["font-weight:600;text-align:left;"]);
17
24
  }, function (_ref2) {
18
25
  var type = _ref2.type,
19
26
  mode = _ref2.mode,
20
27
  selected = _ref2.selected,
21
28
  hoverable = _ref2.hoverable;
22
- return type === 'body' && css(["&:nth-of-type(even){", " ", "}&:nth-of-type(odd){", " ", "}", " &:focus-visible,&.focus-visible{", "}"], rowTokens.body.even.base, bodyStyles(mode, selected), rowTokens.body.odd.base, bodyStyles(mode, selected), hoverable && css(["&:hover{", "}"], rowTokens.body.hover.base), rowTokens.body.focus.base);
29
+ return type === 'body' && css(["&:nth-of-type(even){background-color:", ";", "}&:nth-of-type(odd){background-color:", ";", "}", " &:focus-visible,&.focus-visible{", "}"], row.body.even.backgroundColor, bodyStyles(mode, selected), row.body.odd.backgroundColor, bodyStyles(mode, selected), hoverable && css(["&:hover{background-color:", ";}"], row.body.hover.backgroundColor), focusVisibleInset);
23
30
  });
24
31
  var Row = /*#__PURE__*/forwardRef(function (_a, ref) {
25
32
  var _a$type = _a.type,
@@ -2,7 +2,7 @@ import { __rest } from 'tslib';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
4
  import { Cell } from './Cell.js';
5
- import { cellTokens } from './Cell.tokens.js';
5
+ import { tableTokens } from './Table.tokens.js';
6
6
  import { Icon } from '../Icon/Icon.js';
7
7
  import '../../icons/utils/StyledSvg.js';
8
8
  import { ChevronDownIcon } from '../../icons/tsx/chevronDown.js';
@@ -10,33 +10,30 @@ import { ChevronUpIcon } from '../../icons/tsx/chevronUp.js';
10
10
  import { UnfoldMoreIcon } from '../../icons/tsx/unfoldMore.js';
11
11
  import styled from 'styled-components';
12
12
  import { removeButtonStyling } from '../../helpers/styling/removeButtonStyling.js';
13
- import '../../helpers/styling/focusVisible.js';
13
+ import { focusVisible } from '../../helpers/styling/focusVisible.js';
14
14
  import '../../helpers/styling/hover.js';
15
15
  import '../../helpers/styling/focus.js';
16
16
  import '../../helpers/styling/danger.js';
17
17
  import '../../helpers/styling/selection.js';
18
18
 
19
- var SortIcon = styled(Icon).withConfig({
20
- displayName: "SortCell__SortIcon",
21
- componentId: "sc-1l3jzvh-0"
22
- })(["", ""], cellTokens.head.sortCell.icon.base);
19
+ var cell = tableTokens.cell;
23
20
  var StyledButton = styled.button.withConfig({
24
21
  displayName: "SortCell__StyledButton",
25
- componentId: "sc-1l3jzvh-1"
26
- })(["", " display:flex;align-items:center;&:focus-visible{", "}"], removeButtonStyling, cellTokens.head.sortCell.focus.base);
22
+ componentId: "sc-1l3jzvh-0"
23
+ })(["", " display:flex;align-items:center;gap:", ";&:focus-visible{", "}"], removeButtonStyling, cell.sort.gap, focusVisible);
27
24
 
28
25
  var makeSortIcon = function makeSortIcon(isSorted, sortOrder) {
29
26
  if (!isSorted || !sortOrder) {
30
- return jsx(SortIcon, {
27
+ return jsx(Icon, {
31
28
  icon: UnfoldMoreIcon,
32
29
  iconSize: "inherit"
33
30
  });
34
31
  }
35
32
 
36
- return sortOrder === 'ascending' ? jsx(SortIcon, {
33
+ return sortOrder === 'ascending' ? jsx(Icon, {
37
34
  icon: ChevronDownIcon,
38
35
  iconSize: "inherit"
39
- }) : jsx(SortIcon, {
36
+ }) : jsx(Icon, {
40
37
  icon: ChevronUpIcon,
41
38
  iconSize: "inherit"
42
39
  });
@@ -5,10 +5,14 @@ export declare type TableProps = {
5
5
  density?: TableDensity;
6
6
  /**Spesifiserer om cellene i `<Head>` skal bli sticky ved scrolling. */
7
7
  stickyHeader?: boolean;
8
+ /**Legger skillelinjer mellom radene. */
9
+ withDividers?: boolean;
8
10
  } & HTMLAttributes<HTMLTableElement>;
9
11
  export declare const Table: import("react").ForwardRefExoticComponent<{
10
12
  /**Spesifiserer hvor romslige cellene i tabellen skal være. */
11
13
  density?: TableDensity | undefined;
12
14
  /**Spesifiserer om cellene i `<Head>` skal bli sticky ved scrolling. */
13
15
  stickyHeader?: boolean | undefined;
16
+ /**Legger skillelinjer mellom radene. */
17
+ withDividers?: boolean | undefined;
14
18
  } & HTMLAttributes<HTMLTableElement> & import("react").RefAttributes<HTMLTableElement>>;
@@ -10,17 +10,22 @@ import { selection } from '../../helpers/styling/selection.js';
10
10
  import '../ScrollableContainer/Scrollbar.js';
11
11
  import '../ScrollableContainer/ScrollableContainer.js';
12
12
  import { scrollbarStyling } from '../ScrollableContainer/scrollbarStyling.js';
13
- import { cellTokens } from './Cell.tokens.js';
13
+ import { tableTokens } from './Table.tokens.js';
14
14
 
15
+ var cell = tableTokens.cell,
16
+ row = tableTokens.row;
15
17
  var StyledTable = styled.table.withConfig({
16
18
  displayName: "Table__StyledTable",
17
19
  componentId: "sc-bw0w0a-0"
18
- })(["border-spacing:0;border-collapse:collapse;*::selection{", "}", " ", " ", " ", ""], selection, scrollbarStyling.webkit, scrollbarStyling.firefox, function (_ref) {
20
+ })(["border-spacing:0;border-collapse:collapse;*::selection{", "}", " ", " ", " ", " ", ""], selection, scrollbarStyling.webkit, scrollbarStyling.firefox, function (_ref) {
19
21
  var density = _ref.density;
20
- return density && css(["td,th{", "}"], cellTokens.density[density].base);
22
+ return css(["td,th{padding:", ";}"], cell.density[density].padding);
21
23
  }, function (_ref2) {
22
24
  var stickyHeader = _ref2.stickyHeader;
23
25
  return stickyHeader && css(["tr[type='head']{th[type='head']{position:sticky;top:0;}}"]);
26
+ }, function (_ref3) {
27
+ var withDividers = _ref3.withDividers;
28
+ return withDividers && css(["tr[type='body']{border-bottom:", ";}"], row.body.withDividers.borderBottom);
24
29
  });
25
30
  var Table = /*#__PURE__*/forwardRef(function (_a, ref) {
26
31
  var _a$density = _a.density,
@@ -4,6 +4,7 @@ declare const _default: {
4
4
  component: import("react").ForwardRefExoticComponent<{
5
5
  density?: import("./Table").TableDensity | undefined;
6
6
  stickyHeader?: boolean | undefined;
7
+ withDividers?: boolean | undefined;
7
8
  } & import("react").HTMLAttributes<HTMLTableElement> & import("react").RefAttributes<HTMLTableElement>>;
8
9
  argTypes: {
9
10
  stickyHeader: {
@@ -11,10 +12,16 @@ declare const _default: {
11
12
  type: string;
12
13
  };
13
14
  };
15
+ withDividers: {
16
+ control: {
17
+ type: string;
18
+ };
19
+ };
14
20
  };
15
21
  };
16
22
  export default _default;
17
23
  export declare const Default: (args: TableProps) => JSX.Element;
24
+ export declare const withDividers: (args: TableProps) => JSX.Element;
18
25
  export declare const Focusable: (args: TableProps) => JSX.Element;
19
26
  export declare const Compact: (args: TableProps) => JSX.Element;
20
27
  export declare const StickyHeader: (args: TableProps) => JSX.Element;
@@ -0,0 +1,72 @@
1
+ export declare const tableTokens: {
2
+ row: {
3
+ base: {
4
+ color: string;
5
+ font: {
6
+ lineHeight: any;
7
+ fontSize: string;
8
+ letterSpacing: any;
9
+ fontFamily: any;
10
+ fontWeight: any;
11
+ fontStyle: any;
12
+ };
13
+ };
14
+ body: {
15
+ odd: {
16
+ backgroundColor: string;
17
+ };
18
+ even: {
19
+ backgroundColor: string;
20
+ };
21
+ hover: {
22
+ backgroundColor: string;
23
+ };
24
+ selected: {
25
+ backgroundColor: string;
26
+ };
27
+ mode: {
28
+ sum: {
29
+ font: {
30
+ lineHeight: any;
31
+ fontSize: string;
32
+ letterSpacing: any;
33
+ fontFamily: any;
34
+ fontWeight: any;
35
+ fontStyle: any;
36
+ };
37
+ borderTop: string;
38
+ borderBottom: string;
39
+ backgroundColor: string;
40
+ };
41
+ };
42
+ withDividers: {
43
+ borderBottom: string;
44
+ };
45
+ };
46
+ };
47
+ cell: {
48
+ density: {
49
+ normal: {
50
+ padding: string;
51
+ };
52
+ compact: {
53
+ padding: string;
54
+ };
55
+ };
56
+ head: {
57
+ backgroundColor: string;
58
+ };
59
+ sort: {
60
+ gap: string;
61
+ icon: {
62
+ marginInlineStart: string;
63
+ };
64
+ };
65
+ layout: {
66
+ textAndIcon: {
67
+ gap: string;
68
+ marginRight: string;
69
+ };
70
+ };
71
+ };
72
+ };
@@ -0,0 +1,69 @@
1
+ import { ddsBaseTokens, ddsReferenceTokens } from '@norges-domstoler/dds-design-tokens';
2
+
3
+ var colors = ddsBaseTokens.colors,
4
+ fontPackages = ddsBaseTokens.fontPackages,
5
+ border = ddsBaseTokens.border,
6
+ spacing = ddsBaseTokens.spacing;
7
+ var textDefault = ddsReferenceTokens.textDefault;
8
+ var row = {
9
+ base: {
10
+ color: textDefault.textColor,
11
+ font: fontPackages.body_sans_02.base
12
+ },
13
+ body: {
14
+ odd: {
15
+ backgroundColor: colors.DdsColorNeutralsWhite
16
+ },
17
+ even: {
18
+ backgroundColor: colors.DdsColorNeutralsGray1
19
+ },
20
+ hover: {
21
+ backgroundColor: colors.DdsColorInteractiveLightest
22
+ },
23
+ selected: {
24
+ backgroundColor: colors.DdsColorInteractiveLightest
25
+ },
26
+ mode: {
27
+ sum: {
28
+ font: fontPackages.body_sans_02.base,
29
+ borderTop: "".concat(border.BordersDdsBorderStyleLightStrokeWeight, " solid ").concat(colors.DdsColorNeutralsGray4),
30
+ borderBottom: "".concat(border.BordersDdsBorderStyleLightStrokeWeight, " solid ").concat(colors.DdsColorNeutralsGray4),
31
+ backgroundColor: colors.DdsColorNeutralsWhite
32
+ }
33
+ },
34
+ withDividers: {
35
+ borderBottom: "1px solid ".concat(colors.DdsColorNeutralsGray4)
36
+ }
37
+ }
38
+ };
39
+ var cell = {
40
+ density: {
41
+ normal: {
42
+ padding: "".concat(spacing.SizesDdsSpacingLocalX15, " ").concat(spacing.SizesDdsSpacingLocalX075)
43
+ },
44
+ compact: {
45
+ padding: "".concat(spacing.SizesDdsSpacingLocalX075)
46
+ }
47
+ },
48
+ head: {
49
+ backgroundColor: colors.DdsColorPrimaryLightest
50
+ },
51
+ sort: {
52
+ gap: spacing.SizesDdsSpacingLocalX05,
53
+ icon: {
54
+ marginInlineStart: spacing.SizesDdsSpacingLocalX05
55
+ }
56
+ },
57
+ layout: {
58
+ textAndIcon: {
59
+ gap: spacing.SizesDdsSpacingLocalX075,
60
+ marginRight: spacing.SizesDdsSpacingLocalX075
61
+ }
62
+ }
63
+ };
64
+ var tableTokens = {
65
+ row: row,
66
+ cell: cell
67
+ };
68
+
69
+ export { tableTokens };
@@ -4,6 +4,13 @@ import { forwardRef } from 'react';
4
4
  import styled, { css } from 'styled-components';
5
5
  import { tagTokens } from './Tag.tokens.js';
6
6
  import { Typography } from '../Typography/Typography/Typography.js';
7
+ import '../../helpers/Backdrop/Backdrop.js';
8
+ import '../../helpers/Chevron/AnimatedChevronUpDown.styles.js';
9
+ import '../../helpers/HiddenInput/HiddenInput.js';
10
+ import '../../helpers/Input/Input.styles.js';
11
+ import '../../helpers/Input/Input.tokens.js';
12
+ import '../../helpers/Paper/Paper.js';
13
+ import '../../helpers/RequiredMarker/RequiredMarker.js';
7
14
  import { getBaseHTMLProps } from '../../types/BaseComponentProps.js';
8
15
  import '../Typography/Link/Link.js';
9
16
 
@@ -4,6 +4,13 @@ import { useId } from 'react';
4
4
  import styled from 'styled-components';
5
5
  import { getBaseHTMLProps } from '../../types/BaseComponentProps.js';
6
6
  import { Typography } from '../Typography/Typography/Typography.js';
7
+ import '../../helpers/Backdrop/Backdrop.js';
8
+ import '../../helpers/Chevron/AnimatedChevronUpDown.styles.js';
9
+ import '../../helpers/HiddenInput/HiddenInput.js';
10
+ import '../../helpers/Input/Input.styles.js';
11
+ import '../../helpers/Input/Input.tokens.js';
12
+ import '../../helpers/Paper/Paper.js';
13
+ import '../../helpers/RequiredMarker/RequiredMarker.js';
7
14
  import '../Typography/Link/Link.js';
8
15
 
9
16
  var Wrapper = styled(Typography).withConfig({
@@ -2,6 +2,8 @@ import { slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBab
2
2
  import { __rest } from 'tslib';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import { forwardRef, useRef, useState, useEffect, useId } from 'react';
5
+ import { InputMessage } from '../InputMessage/InputMessage.js';
6
+ import CharCounter from './CharCounter.js';
5
7
  import '../../helpers/Backdrop/Backdrop.js';
6
8
  import '../../helpers/Chevron/AnimatedChevronUpDown.styles.js';
7
9
  import '../../helpers/HiddenInput/HiddenInput.js';
@@ -9,9 +11,7 @@ import { OuterInputContainer, InputContainer, StatefulInput } from '../../helper
9
11
  import '../../helpers/Input/Input.tokens.js';
10
12
  import { getFormInputIconSize } from '../../helpers/Input/Input.utils.js';
11
13
  import '../../helpers/Paper/Paper.js';
12
- import { RequiredMarker } from '../../helpers/RequiredMarker/RequiredMarker.js';
13
- import { InputMessage } from '../InputMessage/InputMessage.js';
14
- import CharCounter from './CharCounter.js';
14
+ import '../../helpers/RequiredMarker/RequiredMarker.js';
15
15
  import { TextArea, StyledIcon, StyledInput, MessageContainer } from './TextInput.styles.js';
16
16
  import '../Typography/Typography/Typography.js';
17
17
  import { Label } from '../Typography/Label/Label.js';
@@ -119,12 +119,13 @@ var TextInput = /*#__PURE__*/forwardRef(function (_a, ref) {
119
119
  style: style,
120
120
  width: getWidth(componentSize, width)
121
121
  };
122
- var showRequiredMarker = required || ariaRequired;
122
+ var showRequiredStyling = !!(required || ariaRequired);
123
123
  return jsxs(OuterInputContainer, Object.assign({}, outerInputContainerProps, {
124
- children: [hasLabel && jsxs(Label, Object.assign({
125
- htmlFor: uniqueId
124
+ children: [hasLabel && jsx(Label, Object.assign({
125
+ htmlFor: uniqueId,
126
+ showRequiredStyling: showRequiredStyling
126
127
  }, {
127
- children: [label, showRequiredMarker && jsx(RequiredMarker, {})]
128
+ children: label
128
129
  })), multiline ? jsx(TextArea, Object.assign({
129
130
  ref: textAreaRef,
130
131
  as: "textarea",