@norges-domstoler/dds-components 10.0.1 → 10.1.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 (55) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/components/Stack/Stack.d.ts +37 -0
  3. package/dist/cjs/components/Stack/Stack.stories.d.ts +10 -0
  4. package/dist/cjs/components/Stack/Stack.tokens.d.ts +20 -0
  5. package/dist/cjs/components/Stack/index.d.ts +1 -0
  6. package/dist/cjs/components/Table/Cell.d.ts +5 -0
  7. package/dist/cjs/components/Table/Row.d.ts +3 -20
  8. package/dist/cjs/components/Table/Table.d.ts +2 -14
  9. package/dist/cjs/components/Table/Table.stories.d.ts +4 -4
  10. package/dist/cjs/components/Table/Table.styles.d.ts +10 -0
  11. package/dist/cjs/components/Table/Table.tokens.d.ts +5 -0
  12. package/dist/cjs/components/Table/Table.types.d.ts +37 -0
  13. package/dist/cjs/components/Table/collapsible/CollapsibleRow.d.ts +6 -0
  14. package/dist/cjs/components/Table/collapsible/CollapsibleTable.d.ts +9 -0
  15. package/dist/cjs/components/Table/collapsible/CollapsibleTable.stories.d.ts +48 -0
  16. package/dist/cjs/components/Table/collapsible/Table.context.d.ts +9 -0
  17. package/dist/cjs/components/Table/index.d.ts +11 -3
  18. package/dist/cjs/components/Typography/Paragraph/Paragraph.stories.d.ts +1 -0
  19. package/dist/cjs/index.d.ts +1 -0
  20. package/dist/cjs/index.js +692 -410
  21. package/dist/components/ProgressTracker/ProgressTracker.tokens.js +0 -1
  22. package/dist/components/Search/Search.js +1 -1
  23. package/dist/components/Search/SearchAutocompleteWrapper.js +5 -2
  24. package/dist/components/Stack/Stack.d.ts +37 -0
  25. package/dist/components/Stack/Stack.js +46 -0
  26. package/dist/components/Stack/Stack.stories.d.ts +10 -0
  27. package/dist/components/Stack/Stack.tokens.d.ts +20 -0
  28. package/dist/components/Stack/Stack.tokens.js +26 -0
  29. package/dist/components/Stack/index.d.ts +1 -0
  30. package/dist/components/Table/Cell.d.ts +5 -0
  31. package/dist/components/Table/Cell.js +13 -4
  32. package/dist/components/Table/Row.d.ts +3 -20
  33. package/dist/components/Table/Row.js +1 -25
  34. package/dist/components/Table/Table.d.ts +2 -14
  35. package/dist/components/Table/Table.js +1 -1
  36. package/dist/components/Table/Table.stories.d.ts +4 -4
  37. package/dist/components/Table/Table.styles.d.ts +10 -0
  38. package/dist/components/Table/Table.styles.js +28 -0
  39. package/dist/components/Table/Table.tokens.d.ts +5 -0
  40. package/dist/components/Table/Table.tokens.js +10 -2
  41. package/dist/components/Table/Table.types.d.ts +37 -0
  42. package/dist/components/Table/collapsible/CollapsibleRow.d.ts +6 -0
  43. package/dist/components/Table/collapsible/CollapsibleRow.js +157 -0
  44. package/dist/components/Table/collapsible/CollapsibleTable.d.ts +9 -0
  45. package/dist/components/Table/collapsible/CollapsibleTable.js +42 -0
  46. package/dist/components/Table/collapsible/CollapsibleTable.stories.d.ts +48 -0
  47. package/dist/components/Table/collapsible/Table.context.d.ts +9 -0
  48. package/dist/components/Table/collapsible/Table.context.js +11 -0
  49. package/dist/components/Table/index.d.ts +11 -3
  50. package/dist/components/Table/index.js +5 -1
  51. package/dist/components/Tooltip/Tooltip.js +40 -6
  52. package/dist/components/Typography/Paragraph/Paragraph.stories.d.ts +1 -0
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.js +2 -1
  55. package/package.json +1 -1
@@ -2,7 +2,6 @@ import { ddsBaseTokens } from '@norges-domstoler/dds-design-tokens';
2
2
 
3
3
  var colors = ddsBaseTokens.colors,
4
4
  spacing = ddsBaseTokens.spacing;
5
- ddsBaseTokens.font;
6
5
  var typographyTypes = {
7
6
  number: 'bodySans01',
8
7
  label: 'bodySans03'
@@ -107,7 +107,7 @@ var Search = /*#__PURE__*/forwardRef(function (_a, ref) {
107
107
  type: 'search',
108
108
  id: uniqueId,
109
109
  'aria-describedby': spaceSeparatedIdListGenerator([tip ? tipId : undefined, context.suggestions ? suggestionsDescriptionId : undefined, ariaDescribedby]),
110
- value: context.inputValue !== undefined ? context.inputValue : value ? value : '',
110
+ value: context.inputValue !== undefined ? context.inputValue : value,
111
111
  onChange: handleChange,
112
112
  autoComplete: 'off'
113
113
  });
@@ -48,7 +48,7 @@ var SearchAutocompleteWrapper = function SearchAutocompleteWrapper(props) {
48
48
  };
49
49
  var handleChange = function handleChange(e) {
50
50
  var query = e.target.value;
51
- setInputValue(query);
51
+ handleSetInputValue(query);
52
52
  var finalSuggestions = [];
53
53
  if (query.length >= queryLength) {
54
54
  if (data) {
@@ -82,10 +82,13 @@ var SearchAutocompleteWrapper = function SearchAutocompleteWrapper(props) {
82
82
  };
83
83
  var handleSuggestionClick = function handleSuggestionClick(e) {
84
84
  setSuggestions([]);
85
- setInputValue(e.target.innerText);
85
+ handleSetInputValue(e.target.innerText);
86
86
  onSuggestionSelection && onSuggestionSelection();
87
87
  closeSuggestions();
88
88
  };
89
+ var handleSetInputValue = function handleSetInputValue(value) {
90
+ setInputValue(value || '');
91
+ };
89
92
  var inputRef = useRef(null);
90
93
  var suggestionsRef = useRef(null);
91
94
  useOnClickOutside([inputRef.current, suggestionsRef.current], function () {
@@ -0,0 +1,37 @@
1
+ import { stackTokens } from './Stack.tokens';
2
+ import { BaseComponentPropsWithChildren } from '../../types';
3
+ declare type Align = 'stretch' | 'center' | 'flex-start' | 'flex-end';
4
+ declare type Justify = 'flex-start' | 'flex-end' | 'space-between' | 'space-around';
5
+ export interface StackStyleProps {
6
+ /**
7
+ * Hvilken retning elementene skal plasseres i.
8
+ */
9
+ direction: 'horizontal' | 'vertical';
10
+ /**
11
+ * CSS `align-items`.
12
+ * @default 'center'
13
+ */
14
+ align?: Align;
15
+ /**
16
+ * CSS `justify-content`.
17
+ * @default 'flex-start'
18
+ */
19
+ justify?: Justify;
20
+ /**
21
+ * Hvilken spacing token som skal brukes som CSS `gap`.
22
+ * @default 0
23
+ */
24
+ gap?: keyof typeof stackTokens.gap | 0;
25
+ }
26
+ export declare type StackProps = BaseComponentPropsWithChildren<HTMLDivElement, Omit<StackStyleProps, 'direction'>>;
27
+ export declare const HStack: import("react").ForwardRefExoticComponent<Pick<import("react").HTMLAttributes<HTMLDivElement>, "className" | "id"> & Omit<StackStyleProps, "direction"> & {
28
+ children?: import("react").ReactNode;
29
+ } & {
30
+ htmlProps?: import("react").HTMLAttributes<HTMLDivElement> | undefined;
31
+ } & import("react").RefAttributes<HTMLDivElement>>;
32
+ export declare const VStack: import("react").ForwardRefExoticComponent<Pick<import("react").HTMLAttributes<HTMLDivElement>, "className" | "id"> & Omit<StackStyleProps, "direction"> & {
33
+ children?: import("react").ReactNode;
34
+ } & {
35
+ htmlProps?: import("react").HTMLAttributes<HTMLDivElement> | undefined;
36
+ } & import("react").RefAttributes<HTMLDivElement>>;
37
+ export {};
@@ -0,0 +1,46 @@
1
+ import { __rest } from 'tslib';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import styled from 'styled-components';
5
+ import { stackTokens } from './Stack.tokens.js';
6
+ import { getBaseHTMLProps } from '../../types/BaseComponentProps.js';
7
+
8
+ var Stack = styled.div.withConfig({
9
+ displayName: "Stack",
10
+ componentId: "sc-1a1z9ks-0"
11
+ })(["display:flex;flex-direction:", ";align-items:", ";justify-content:", ";gap:", ";"], function (_ref) {
12
+ var direction = _ref.direction;
13
+ return direction === 'horizontal' ? 'row' : 'column';
14
+ }, function (props) {
15
+ return props.align;
16
+ }, function (props) {
17
+ return props.justify;
18
+ }, function (props) {
19
+ return props.gap === undefined || props.gap === 0 ? '0' : stackTokens.gap[props.gap];
20
+ });
21
+ Stack.defaultProps = {
22
+ align: 'center',
23
+ justify: 'flex-start'
24
+ };
25
+ var HStack = /*#__PURE__*/forwardRef(function (_a, ref) {
26
+ var id = _a.id,
27
+ className = _a.className,
28
+ htmlProps = _a.htmlProps,
29
+ rest = __rest(_a, ["id", "className", "htmlProps"]);
30
+ return jsx(Stack, Object.assign({
31
+ direction: "horizontal",
32
+ ref: ref
33
+ }, getBaseHTMLProps(id, className, htmlProps, rest)));
34
+ });
35
+ var VStack = /*#__PURE__*/forwardRef(function (_a, ref) {
36
+ var id = _a.id,
37
+ className = _a.className,
38
+ htmlProps = _a.htmlProps,
39
+ rest = __rest(_a, ["id", "className", "htmlProps"]);
40
+ return jsx(Stack, Object.assign({
41
+ direction: "vertical",
42
+ ref: ref
43
+ }, getBaseHTMLProps(id, className, htmlProps, rest)));
44
+ });
45
+
46
+ export { HStack, VStack };
@@ -0,0 +1,10 @@
1
+ import { ComponentMeta } from '@storybook/react';
2
+ import { StackProps } from './Stack';
3
+ declare const _default: ComponentMeta<import("react").ForwardRefExoticComponent<Pick<import("react").HTMLAttributes<HTMLDivElement>, "id" | "className"> & Omit<import("./Stack").StackStyleProps, "direction"> & {
4
+ children?: import("react").ReactNode;
5
+ } & {
6
+ htmlProps?: import("react").HTMLAttributes<HTMLDivElement> | undefined;
7
+ } & import("react").RefAttributes<HTMLDivElement>>>;
8
+ export default _default;
9
+ export declare const VStackOverview: (args: StackProps) => JSX.Element;
10
+ export declare const HStackOverview: (args: StackProps) => JSX.Element;
@@ -0,0 +1,20 @@
1
+ export declare const stackTokens: {
2
+ gap: {
3
+ 'local-x0.125': string;
4
+ 'local-x0.25': string;
5
+ 'local-x0.5': string;
6
+ 'local-x0.75': string;
7
+ 'local-x1': string;
8
+ 'local-x1.5': string;
9
+ 'local-x2': string;
10
+ 'local-x2.5': string;
11
+ 'local-x3': string;
12
+ 'layout-x1': string;
13
+ 'layout-x1.5': string;
14
+ 'layout-x2': string;
15
+ 'layout-x3': string;
16
+ 'layout-x4': string;
17
+ 'layout-x6': string;
18
+ 'layout-x10': string;
19
+ };
20
+ };
@@ -0,0 +1,26 @@
1
+ import { ddsBaseTokens } from '@norges-domstoler/dds-design-tokens';
2
+
3
+ var spacing = ddsBaseTokens.spacing;
4
+ var gapTokens = {
5
+ 'local-x0.125': spacing.SizesDdsSpacingLocalX0125,
6
+ 'local-x0.25': spacing.SizesDdsSpacingLocalX025,
7
+ 'local-x0.5': spacing.SizesDdsSpacingLocalX05,
8
+ 'local-x0.75': spacing.SizesDdsSpacingLocalX075,
9
+ 'local-x1': spacing.SizesDdsSpacingLocalX1,
10
+ 'local-x1.5': spacing.SizesDdsSpacingLocalX15,
11
+ 'local-x2': spacing.SizesDdsSpacingLocalX2,
12
+ 'local-x2.5': spacing.SizesDdsSpacingLocalX25,
13
+ 'local-x3': spacing.SizesDdsSpacingLocalX3,
14
+ 'layout-x1': spacing.SizesDdsSpacingLayoutX1,
15
+ 'layout-x1.5': spacing.SizesDdsSpacingLayoutX15,
16
+ 'layout-x2': spacing.SizesDdsSpacingLayoutX2,
17
+ 'layout-x3': spacing.SizesDdsSpacingLayoutX3,
18
+ 'layout-x4': spacing.SizesDdsSpacingLayoutX4,
19
+ 'layout-x6': spacing.SizesDdsSpacingLayoutX6,
20
+ 'layout-x10': spacing.SizesDdsSpacingLayoutX10
21
+ };
22
+ var stackTokens = {
23
+ gap: gapTokens
24
+ };
25
+
26
+ export { stackTokens };
@@ -0,0 +1 @@
1
+ export * from './Stack';
@@ -1,10 +1,15 @@
1
1
  import { ThHTMLAttributes, TdHTMLAttributes } from 'react';
2
2
  export declare type TableCellType = 'data' | 'head';
3
3
  export declare type TableCellLayout = 'left' | 'right' | 'center' | 'text and icon';
4
+ export declare type CollapsibleProps = {
5
+ isCollapsibleChild?: boolean;
6
+ };
4
7
  export declare type TableCellProps = {
5
8
  /**Type celle. Returnerer enten `<td>` eller `<th>`. */
6
9
  type?: TableCellType;
7
10
  /**Layout av innholdet i cellen. 'tekst and icon' legger `gap` mellom barna og andre barnet i cellen. */
8
11
  layout?: TableCellLayout;
12
+ /** Props ved bruk av `<CollapsibleRow>`. **OBS!** settes automatisk av forelder. */
13
+ collapsibleProps?: CollapsibleProps;
9
14
  } & (TdHTMLAttributes<HTMLTableCellElement> | ThHTMLAttributes<HTMLTableCellElement>);
10
15
  export declare const Cell: import("react").ForwardRefExoticComponent<TableCellProps & import("react").RefAttributes<HTMLTableCellElement>>;
@@ -2,10 +2,14 @@ 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 '../DescriptionList/DescriptionList.js';
6
+ import '../DescriptionList/DescriptionListTerm.js';
7
+ import { DescriptionListDesc } from '../DescriptionList/DescriptionListDesc.js';
8
+ import '../DescriptionList/DescriptionListGroup.js';
5
9
  import { tableTokens } from './Table.tokens.js';
6
10
 
7
11
  var cell = tableTokens.cell;
8
- var layoutStyle = function layoutStyle(layout) {
12
+ var getLayoutStyle = function getLayoutStyle(layout) {
9
13
  switch (layout) {
10
14
  case 'center':
11
15
  return css(["justify-content:center;"]);
@@ -30,7 +34,7 @@ var InnerCell = styled.div.withConfig({
30
34
  componentId: "sc-ghfpfs-1"
31
35
  })(["display:flex;align-items:center;", ""], function (_ref2) {
32
36
  var layout = _ref2.layout;
33
- return layoutStyle(layout);
37
+ return getLayoutStyle(layout);
34
38
  });
35
39
  var getTableCellType = function getTableCellType(type) {
36
40
  switch (type) {
@@ -47,8 +51,11 @@ var Cell = /*#__PURE__*/forwardRef(function (_a, ref) {
47
51
  type = _a$type === void 0 ? 'data' : _a$type,
48
52
  _a$layout = _a.layout,
49
53
  layout = _a$layout === void 0 ? 'left' : _a$layout,
50
- rest = __rest(_a, ["children", "type", "layout"]);
54
+ collapsibleProps = _a.collapsibleProps,
55
+ rest = __rest(_a, ["children", "type", "layout", "collapsibleProps"]);
51
56
  var as = getTableCellType(type);
57
+ var _ref3 = collapsibleProps || {},
58
+ isCollapsibleChild = _ref3.isCollapsibleChild;
52
59
  var cellProps = Object.assign({
53
60
  as: as,
54
61
  type: type
@@ -56,7 +63,9 @@ var Cell = /*#__PURE__*/forwardRef(function (_a, ref) {
56
63
  var innerCellProps = {
57
64
  layout: layout
58
65
  };
59
- return jsx(StyledCell, Object.assign({
66
+ return isCollapsibleChild ? jsx(DescriptionListDesc, {
67
+ children: children
68
+ }) : jsx(StyledCell, Object.assign({
60
69
  ref: ref
61
70
  }, cellProps, {
62
71
  children: jsx(InnerCell, Object.assign({}, innerCellProps, {
@@ -1,23 +1,6 @@
1
- import { HTMLAttributes } from 'react';
2
- export declare type TableRowType = 'body' | 'head';
3
- export declare type RowMode = 'normal' | 'sum';
4
- export declare type TableRowProps = {
5
- /**Spesifiserer om raden skal brukes i `<head>` eller `<body>`-seksjonen. */
6
- type?: TableRowType;
7
- /**Custom modus for rader som har ytterligere semantisk betydning (f.eks. summeringsrad), definerer kun styling. Ved bruk av sum må `<Cell>` med tall i høyrestilles vha layout prop. */
8
- mode?: RowMode;
9
- /**Spesifiserer om raden har blitt valgt/markert. */
10
- selected?: boolean;
11
- /**Spesifiserer om raden skal ha hover styling. Brukes hovedsakelig på klikkbare rader. */
12
- hoverable?: boolean;
13
- } & HTMLAttributes<HTMLTableRowElement>;
14
1
  export declare const Row: import("react").ForwardRefExoticComponent<{
15
- /**Spesifiserer om raden skal brukes i `<head>` eller `<body>`-seksjonen. */
16
- type?: TableRowType | undefined;
17
- /**Custom modus for rader som har ytterligere semantisk betydning (f.eks. summeringsrad), definerer kun styling. Ved bruk av sum må `<Cell>` med tall i høyrestilles vha layout prop. */
18
- mode?: RowMode | undefined;
19
- /**Spesifiserer om raden har blitt valgt/markert. */
2
+ type?: import("./Table.types").TableRowType | undefined;
3
+ mode?: import("./Table.types").RowMode | undefined;
20
4
  selected?: boolean | undefined;
21
- /**Spesifiserer om raden skal ha hover styling. Brukes hovedsakelig på klikkbare rader. */
22
5
  hoverable?: boolean | undefined;
23
- } & HTMLAttributes<HTMLTableRowElement> & import("react").RefAttributes<HTMLTableRowElement>>;
6
+ } & import("react").HTMLAttributes<HTMLTableRowElement> & import("react").RefAttributes<HTMLTableRowElement>>;
@@ -1,32 +1,8 @@
1
1
  import { __rest } from 'tslib';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
- import styled, { css } from 'styled-components';
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 { getFontStyling, defaultTypographyType } from '../Typography/Typography.utils.js';
11
- import { tableTokens } from './Table.tokens.js';
4
+ import { StyledRow } from './Table.styles.js';
12
5
 
13
- var row = tableTokens.row;
14
- var bodyStyles = function bodyStyles(mode, selected) {
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));
16
- };
17
- var StyledRow = styled.tr.withConfig({
18
- displayName: "Row__StyledRow",
19
- componentId: "sc-15vvjkk-0"
20
- })(["@media (prefers-reduced-motion:no-preference){transition:background-color 0.2s,border-color 0.2s,box-shadow 0.2s;}", " ", " ", ""], getFontStyling(defaultTypographyType, true), function (_ref) {
21
- var type = _ref.type;
22
- return type === 'head' && css(["font-weight:600;text-align:left;"]);
23
- }, function (_ref2) {
24
- var type = _ref2.type,
25
- mode = _ref2.mode,
26
- selected = _ref2.selected,
27
- hoverable = _ref2.hoverable;
28
- 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);
29
- });
30
6
  var Row = /*#__PURE__*/forwardRef(function (_a, ref) {
31
7
  var _a$type = _a.type,
32
8
  type = _a$type === void 0 ? 'body' : _a$type,
@@ -1,18 +1,6 @@
1
- import { HTMLAttributes } from 'react';
2
- export declare type TableDensity = 'normal' | 'compact';
3
- export declare type TableProps = {
4
- /**Spesifiserer hvor romslige cellene i tabellen skal være. */
5
- density?: TableDensity;
6
- /**Spesifiserer om cellene i `<Head>` skal bli sticky ved scrolling. */
7
- stickyHeader?: boolean;
8
- /**Legger skillelinjer mellom radene. */
9
- withDividers?: boolean;
10
- } & HTMLAttributes<HTMLTableElement>;
1
+ import { TableDensity } from './Table.types';
11
2
  export declare const Table: import("react").ForwardRefExoticComponent<{
12
- /**Spesifiserer hvor romslige cellene i tabellen skal være. */
13
3
  density?: TableDensity | undefined;
14
- /**Spesifiserer om cellene i `<Head>` skal bli sticky ved scrolling. */
15
4
  stickyHeader?: boolean | undefined;
16
- /**Legger skillelinjer mellom radene. */
17
5
  withDividers?: boolean | undefined;
18
- } & HTMLAttributes<HTMLTableElement> & import("react").RefAttributes<HTMLTableElement>>;
6
+ } & import("react").HTMLAttributes<HTMLTableElement> & import("react").RefAttributes<HTMLTableElement>>;
@@ -22,7 +22,7 @@ var StyledTable = styled.table.withConfig({
22
22
  return css(["td,th{padding:", ";}"], cell.density[density].padding);
23
23
  }, function (_ref2) {
24
24
  var stickyHeader = _ref2.stickyHeader;
25
- return stickyHeader && css(["tr[type='head']{th[type='head']{position:sticky;top:0;}}"]);
25
+ return stickyHeader && css(["tr[type='head']{th[type='head']{position:sticky;top:0;z-index:50;}}"]);
26
26
  }, function (_ref3) {
27
27
  var withDividers = _ref3.withDividers;
28
28
  return withDividers && css(["tr[type='body']{border-bottom:", ";}"], row.body.withDividers.borderBottom);
@@ -2,7 +2,7 @@ import { TableProps, SortOrder } from '.';
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").ForwardRefExoticComponent<{
5
- density?: import("./Table").TableDensity | undefined;
5
+ density?: import("./Table.types").TableDensity | undefined;
6
6
  stickyHeader?: boolean | undefined;
7
7
  withDividers?: boolean | undefined;
8
8
  } & import("react").HTMLAttributes<HTMLTableElement> & import("react").RefAttributes<HTMLTableElement>> & {
@@ -11,8 +11,8 @@ declare const _default: {
11
11
  Body: import("react").ForwardRefExoticComponent<import("./Body").TableBodyProps & import("react").RefAttributes<HTMLTableSectionElement>>;
12
12
  Foot: import("react").ForwardRefExoticComponent<import("./Foot").TableFootProps & import("react").RefAttributes<HTMLTableSectionElement>>;
13
13
  Row: import("react").ForwardRefExoticComponent<{
14
- type?: import("./Row").TableRowType | undefined;
15
- mode?: import("./Row").RowMode | undefined;
14
+ type?: import("./Table.types").TableRowType | undefined;
15
+ mode?: import("./Table.types").RowMode | undefined;
16
16
  selected?: boolean | undefined;
17
17
  hoverable?: boolean | undefined;
18
18
  } & import("react").HTMLAttributes<HTMLTableRowElement> & import("react").RefAttributes<HTMLTableRowElement>>;
@@ -38,7 +38,7 @@ declare const _default: {
38
38
  };
39
39
  export default _default;
40
40
  export declare const Default: (args: TableProps) => JSX.Element;
41
- export declare const withDividers: (args: TableProps) => JSX.Element;
41
+ export declare const WithDividers: (args: TableProps) => JSX.Element;
42
42
  export declare const Focusable: (args: TableProps) => JSX.Element;
43
43
  export declare const Compact: (args: TableProps) => JSX.Element;
44
44
  export declare const StickyHeader: (args: TableProps) => JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { RowMode, TableRowType } from './Table.types';
2
+ export declare const bodyRowStyles: (mode?: RowMode, selected?: boolean) => import("styled-components").FlattenSimpleInterpolation;
3
+ declare type StyledProps = {
4
+ type: TableRowType;
5
+ mode?: RowMode;
6
+ selected?: boolean;
7
+ hoverable?: boolean;
8
+ };
9
+ export declare const StyledRow: import("styled-components").StyledComponent<"tr", any, StyledProps, never>;
10
+ export {};
@@ -0,0 +1,28 @@
1
+ import styled, { css } from 'styled-components';
2
+ import { tableTokens } from './Table.tokens.js';
3
+ import { focusVisibleInset } from '../../helpers/styling/focusVisible.js';
4
+ import '../../helpers/styling/hover.js';
5
+ import '../../helpers/styling/focus.js';
6
+ import '../../helpers/styling/danger.js';
7
+ import '../../helpers/styling/selection.js';
8
+ import { getFontStyling, defaultTypographyType } from '../Typography/Typography.utils.js';
9
+
10
+ var row = tableTokens.row;
11
+ var bodyRowStyles = function bodyRowStyles(mode, selected) {
12
+ 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));
13
+ };
14
+ var StyledRow = styled.tr.withConfig({
15
+ displayName: "Tablestyles__StyledRow",
16
+ componentId: "sc-1b057ci-0"
17
+ })(["@media (prefers-reduced-motion:no-preference){transition:background-color 0.2s,border-color 0.2s,box-shadow 0.2s;}", " ", " ", ""], getFontStyling(defaultTypographyType, true), function (_ref) {
18
+ var type = _ref.type;
19
+ return type === 'head' && css(["font-weight:600;text-align:left;"]);
20
+ }, function (_ref2) {
21
+ var type = _ref2.type,
22
+ mode = _ref2.mode,
23
+ selected = _ref2.selected,
24
+ hoverable = _ref2.hoverable;
25
+ return type === 'body' && css(["&:nth-of-type(even){background-color:", ";", "}&:nth-of-type(odd){background-color:", ";", "}", " &:focus-visible,&.focus-visible{", "}"], row.body.even.backgroundColor, bodyRowStyles(mode, selected), row.body.odd.backgroundColor, bodyRowStyles(mode, selected), hoverable && css(["&:hover{background-color:", ";}"], row.body.hover.backgroundColor), focusVisibleInset);
26
+ });
27
+
28
+ export { StyledRow, bodyRowStyles };
@@ -50,4 +50,9 @@ export declare const tableTokens: {
50
50
  };
51
51
  };
52
52
  };
53
+ collapseButton: {
54
+ height: string;
55
+ width: string;
56
+ borderRadius: string;
57
+ };
53
58
  };
@@ -2,7 +2,9 @@ import { ddsBaseTokens } from '@norges-domstoler/dds-design-tokens';
2
2
 
3
3
  var colors = ddsBaseTokens.colors,
4
4
  border = ddsBaseTokens.border,
5
- spacing = ddsBaseTokens.spacing;
5
+ spacing = ddsBaseTokens.spacing,
6
+ iconSizes = ddsBaseTokens.iconSizes,
7
+ borderRadius = ddsBaseTokens.borderRadius;
6
8
  var row = {
7
9
  body: {
8
10
  odd: {
@@ -54,9 +56,15 @@ var cell = {
54
56
  }
55
57
  }
56
58
  };
59
+ var collapseButton = {
60
+ height: iconSizes.DdsIconsizeMedium,
61
+ width: iconSizes.DdsIconsizeMedium,
62
+ borderRadius: borderRadius.RadiiDdsBorderRadius1Radius
63
+ };
57
64
  var tableTokens = {
58
65
  row: row,
59
- cell: cell
66
+ cell: cell,
67
+ collapseButton: collapseButton
60
68
  };
61
69
 
62
70
  export { tableTokens };
@@ -0,0 +1,37 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export declare type TableDensity = 'normal' | 'compact';
3
+ export declare type TableProps = {
4
+ /**Spesifiserer hvor romslige cellene i tabellen skal være. */
5
+ density?: TableDensity;
6
+ /**Spesifiserer om cellene i `<Head>` skal bli sticky ved scrolling. */
7
+ stickyHeader?: boolean;
8
+ /**Legger skillelinjer mellom radene. */
9
+ withDividers?: boolean;
10
+ } & HTMLAttributes<HTMLTableElement>;
11
+ export declare type HeaderValues = {
12
+ key: string;
13
+ content: ReactNode;
14
+ }[];
15
+ export declare type CollapsibleTableProps = {
16
+ /**Om tabellen skal kollapse. */
17
+ isCollapsed?: boolean;
18
+ /**Innhold i headere (`content`) og deres `key`. `headerValues.content` må være den samme som faktisk innhold i `<Table.Cell type='head'>`. */
19
+ headerValues: HeaderValues;
20
+ /**
21
+ * Indeksen(e) til kolonnen(e) som skal synes når tabellen er kollapset. Rekkefølgen i array avgjør rekkefølgen i render.
22
+ * @default [0]
23
+ * */
24
+ definingColumnIndex?: number[];
25
+ } & TableProps;
26
+ export declare type TableRowType = 'body' | 'head';
27
+ export declare type RowMode = 'normal' | 'sum';
28
+ export declare type TableRowProps = {
29
+ /**Spesifiserer om raden skal brukes i `<head>` eller `<body>`-seksjonen. */
30
+ type?: TableRowType;
31
+ /**Custom modus for rader som har ytterligere semantisk betydning (f.eks. summeringsrad), definerer kun styling. Ved bruk av sum må `<Cell>` med tall i høyrestilles vha layout prop. */
32
+ mode?: RowMode;
33
+ /**Spesifiserer om raden har blitt valgt/markert. */
34
+ selected?: boolean;
35
+ /**Spesifiserer om raden skal ha hover styling. Brukes hovedsakelig på klikkbare rader. */
36
+ hoverable?: boolean;
37
+ } & HTMLAttributes<HTMLTableRowElement>;
@@ -0,0 +1,6 @@
1
+ export declare const CollapsibleRow: import("react").ForwardRefExoticComponent<{
2
+ type?: import("../Table.types").TableRowType | undefined;
3
+ mode?: import("../Table.types").RowMode | undefined;
4
+ selected?: boolean | undefined;
5
+ hoverable?: boolean | undefined;
6
+ } & import("react").HTMLAttributes<HTMLTableRowElement> & import("react").RefAttributes<HTMLTableRowElement>>;