@navikt/ds-react 0.15.0-rc.30 → 0.15.0-rc.51

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 (174) hide show
  1. package/cjs/accordion/AccordionHeader.js +3 -3
  2. package/cjs/alert/Alert.js +5 -5
  3. package/cjs/form/Fieldset/Fieldset.js +3 -3
  4. package/cjs/form/Select.js +2 -2
  5. package/cjs/form/Switch.js +6 -5
  6. package/cjs/form/TextField.js +5 -3
  7. package/cjs/form/Textarea.js +3 -3
  8. package/cjs/form/checkbox/Checkbox.js +13 -2
  9. package/cjs/form/checkbox/CheckboxGroup.js +4 -4
  10. package/cjs/form/checkbox/useCheckbox.js +5 -4
  11. package/cjs/form/search-field/SearchField.js +2 -2
  12. package/cjs/help-text/HelpText.js +4 -4
  13. package/cjs/index.js +2 -1
  14. package/cjs/{accordion-menu/AccordionMenu.js → menu/Menu.js} +7 -7
  15. package/cjs/{accordion-menu/AccordionMenuCollapsable.js → menu/MenuCollapse.js} +18 -8
  16. package/cjs/{accordion-menu/AccordionMenuItem.js → menu/MenuItem.js} +2 -2
  17. package/cjs/menu/MenuItems.js +23 -0
  18. package/cjs/menu/index.js +8 -0
  19. package/cjs/menu/package.json +6 -0
  20. package/cjs/modal/Modal.js +6 -2
  21. package/cjs/page-header/PageHeader.js +1 -1
  22. package/cjs/pagination/Pagination.js +55 -28
  23. package/cjs/table/ColumnHeader.js +3 -3
  24. package/cjs/table/DataCell.js +4 -2
  25. package/cjs/table/HeaderCell.js +4 -2
  26. package/cjs/table/Table.js +1 -12
  27. package/cjs/toggle-group/ToggleGroup.js +71 -0
  28. package/cjs/toggle-group/ToggleItem.js +47 -0
  29. package/cjs/toggle-group/index.js +8 -0
  30. package/cjs/toggle-group/package.json +6 -0
  31. package/esm/accordion/AccordionHeader.js +3 -3
  32. package/esm/accordion/AccordionHeader.js.map +1 -1
  33. package/esm/alert/Alert.js +5 -5
  34. package/esm/alert/Alert.js.map +1 -1
  35. package/esm/form/Fieldset/Fieldset.js +3 -3
  36. package/esm/form/Fieldset/Fieldset.js.map +1 -1
  37. package/esm/form/Select.js +2 -2
  38. package/esm/form/Select.js.map +1 -1
  39. package/esm/form/Switch.js +6 -5
  40. package/esm/form/Switch.js.map +1 -1
  41. package/esm/form/TextField.js +5 -3
  42. package/esm/form/TextField.js.map +1 -1
  43. package/esm/form/Textarea.js +3 -3
  44. package/esm/form/Textarea.js.map +1 -1
  45. package/esm/form/checkbox/Checkbox.d.ts +7 -2
  46. package/esm/form/checkbox/Checkbox.js +13 -2
  47. package/esm/form/checkbox/Checkbox.js.map +1 -1
  48. package/esm/form/checkbox/CheckboxGroup.d.ts +7 -7
  49. package/esm/form/checkbox/CheckboxGroup.js +4 -4
  50. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  51. package/esm/form/checkbox/useCheckbox.d.ts +0 -1
  52. package/esm/form/checkbox/useCheckbox.js +5 -4
  53. package/esm/form/checkbox/useCheckbox.js.map +1 -1
  54. package/esm/form/radio/Radio.d.ts +2 -2
  55. package/esm/form/radio/RadioGroup.d.ts +7 -7
  56. package/esm/form/radio/RadioGroup.js.map +1 -1
  57. package/esm/form/search-field/SearchField.js +2 -2
  58. package/esm/form/search-field/SearchField.js.map +1 -1
  59. package/esm/help-text/HelpText.js +4 -4
  60. package/esm/help-text/HelpText.js.map +1 -1
  61. package/esm/index.d.ts +2 -1
  62. package/esm/index.js +2 -1
  63. package/esm/index.js.map +1 -1
  64. package/esm/menu/Menu.d.ts +12 -0
  65. package/esm/{accordion-menu/AccordionMenu.js → menu/Menu.js} +8 -8
  66. package/esm/menu/Menu.js.map +1 -0
  67. package/esm/menu/MenuCollapse.d.ts +12 -0
  68. package/esm/menu/MenuCollapse.js +37 -0
  69. package/esm/menu/MenuCollapse.js.map +1 -0
  70. package/esm/menu/MenuItem.d.ts +13 -0
  71. package/esm/{accordion-menu/AccordionMenuItem.js → menu/MenuItem.js} +3 -3
  72. package/esm/menu/MenuItem.js.map +1 -0
  73. package/esm/{accordion-menu → menu}/MenuItems.d.ts +2 -1
  74. package/esm/menu/MenuItems.js +19 -0
  75. package/esm/menu/MenuItems.js.map +1 -0
  76. package/esm/menu/index.d.ts +3 -0
  77. package/esm/menu/index.js +2 -0
  78. package/esm/menu/index.js.map +1 -0
  79. package/esm/modal/Modal.d.ts +3 -0
  80. package/esm/modal/Modal.js +6 -2
  81. package/esm/modal/Modal.js.map +1 -1
  82. package/esm/page-header/PageHeader.js +1 -1
  83. package/esm/page-header/PageHeader.js.map +1 -1
  84. package/esm/pagination/Pagination.d.ts +27 -5
  85. package/esm/pagination/Pagination.js +55 -28
  86. package/esm/pagination/Pagination.js.map +1 -1
  87. package/esm/table/ColumnHeader.d.ts +6 -5
  88. package/esm/table/ColumnHeader.js +3 -3
  89. package/esm/table/ColumnHeader.js.map +1 -1
  90. package/esm/table/DataCell.d.ts +6 -1
  91. package/esm/table/DataCell.js +4 -2
  92. package/esm/table/DataCell.js.map +1 -1
  93. package/esm/table/HeaderCell.d.ts +6 -1
  94. package/esm/table/HeaderCell.js +4 -2
  95. package/esm/table/HeaderCell.js.map +1 -1
  96. package/esm/table/Table.d.ts +3 -3
  97. package/esm/table/Table.js +1 -12
  98. package/esm/table/Table.js.map +1 -1
  99. package/esm/toggle-group/ToggleGroup.d.ts +38 -0
  100. package/esm/toggle-group/ToggleGroup.js +47 -0
  101. package/esm/toggle-group/ToggleGroup.js.map +1 -0
  102. package/esm/toggle-group/ToggleItem.d.ts +14 -0
  103. package/esm/toggle-group/ToggleItem.js +24 -0
  104. package/esm/toggle-group/ToggleItem.js.map +1 -0
  105. package/esm/toggle-group/index.d.ts +2 -0
  106. package/esm/toggle-group/index.js +2 -0
  107. package/esm/toggle-group/index.js.map +1 -0
  108. package/esm/typography/Heading.d.ts +1 -1
  109. package/package.json +4 -3
  110. package/src/accordion/accordion.stories.tsx +90 -0
  111. package/src/alert/Alert.tsx +5 -9
  112. package/src/alert/{stories/alert.stories.tsx → alert.stories.tsx} +2 -2
  113. package/src/button/{stories/button.stories.tsx → button.stories.tsx} +4 -1
  114. package/src/form/checkbox/Checkbox.tsx +20 -3
  115. package/src/form/checkbox/CheckboxGroup.tsx +16 -11
  116. package/src/form/checkbox/stories/checkbox.stories.tsx +45 -5
  117. package/src/form/checkbox/useCheckbox.ts +5 -4
  118. package/src/form/radio/Radio.tsx +2 -2
  119. package/src/form/radio/RadioGroup.tsx +10 -7
  120. package/src/form/radio/stories/radio.stories.tsx +6 -8
  121. package/src/help-text/HelpText.tsx +4 -5
  122. package/src/index.ts +2 -1
  123. package/src/menu/Menu.tsx +36 -0
  124. package/src/menu/MenuCollapse.tsx +80 -0
  125. package/src/{accordion-menu/AccordionMenuItem.tsx → menu/MenuItem.tsx} +6 -6
  126. package/src/menu/MenuItems.tsx +21 -0
  127. package/src/menu/index.ts +3 -0
  128. package/src/menu/stories/menu.stories.mdx +93 -0
  129. package/src/menu/stories/menu.stories.tsx +139 -0
  130. package/src/modal/Modal.tsx +11 -0
  131. package/src/page-header/PageHeader.tsx +1 -5
  132. package/src/pagination/Pagination.tsx +157 -59
  133. package/src/pagination/pagination.stories.tsx +37 -0
  134. package/src/pagination/steps.test.ts +115 -7
  135. package/src/table/ColumnHeader.tsx +13 -9
  136. package/src/table/DataCell.tsx +11 -3
  137. package/src/table/HeaderCell.tsx +11 -3
  138. package/src/table/Table.tsx +5 -21
  139. package/src/table/stories/table-async.stories.tsx +20 -4
  140. package/src/table/stories/table-hot.stories.tsx +376 -0
  141. package/src/toggle-group/ToggleGroup.stories.tsx +111 -0
  142. package/src/toggle-group/ToggleGroup.tsx +136 -0
  143. package/src/toggle-group/ToggleItem.tsx +45 -0
  144. package/src/toggle-group/index.ts +2 -0
  145. package/src/typography/Heading.tsx +1 -1
  146. package/src/typography/{stories/typography.stories.tsx → typography.stories.tsx} +4 -5
  147. package/cjs/accordion-menu/MenuItems.js +0 -8
  148. package/cjs/accordion-menu/index.js +0 -8
  149. package/cjs/accordion-menu/package.json +0 -6
  150. package/esm/accordion-menu/AccordionMenu.d.ts +0 -12
  151. package/esm/accordion-menu/AccordionMenu.js.map +0 -1
  152. package/esm/accordion-menu/AccordionMenuCollapsable.d.ts +0 -9
  153. package/esm/accordion-menu/AccordionMenuCollapsable.js +0 -28
  154. package/esm/accordion-menu/AccordionMenuCollapsable.js.map +0 -1
  155. package/esm/accordion-menu/AccordionMenuItem.d.ts +0 -13
  156. package/esm/accordion-menu/AccordionMenuItem.js.map +0 -1
  157. package/esm/accordion-menu/MenuItems.js +0 -4
  158. package/esm/accordion-menu/MenuItems.js.map +0 -1
  159. package/esm/accordion-menu/index.d.ts +0 -3
  160. package/esm/accordion-menu/index.js +0 -2
  161. package/esm/accordion-menu/index.js.map +0 -1
  162. package/src/accordion/stories/accordion.stories.mdx +0 -72
  163. package/src/accordion/stories/accordion.stories.tsx +0 -92
  164. package/src/accordion-menu/AccordionMenu.tsx +0 -39
  165. package/src/accordion-menu/AccordionMenuCollapsable.tsx +0 -45
  166. package/src/accordion-menu/MenuItems.tsx +0 -13
  167. package/src/accordion-menu/index.ts +0 -3
  168. package/src/accordion-menu/stories/accordion-menu.stories.mdx +0 -66
  169. package/src/accordion-menu/stories/accordion-menu.stories.tsx +0 -141
  170. package/src/alert/stories/alert.stories.mdx +0 -96
  171. package/src/button/stories/button.stories.mdx +0 -76
  172. package/src/pagination/stories/pagination.stories.tsx +0 -15
  173. package/src/typography/stories/index.css +0 -3
  174. package/src/typography/stories/typography.stories.mdx +0 -83
@@ -54,12 +54,12 @@ const AccordionHeader = (0, react_1.forwardRef)((_a, ref) => {
54
54
  context.toggleOpen();
55
55
  onClick && onClick(e);
56
56
  };
57
- return (react_1.default.createElement("button", Object.assign({ ref: ref, id: context.buttonId, className: (0, classnames_1.default)("navds-accordion__header", className, "navds-heading", "navds-heading--small"), onClick: handleClick }, rest),
57
+ return (react_1.default.createElement("button", Object.assign({}, rest, { ref: ref, id: context.buttonId, className: (0, classnames_1.default)("navds-accordion__header", className, "navds-heading", "navds-heading--small"), onClick: handleClick, "aria-expanded": context.open }),
58
58
  children,
59
- react_1.default.createElement(ds_icons_1.Expand, { title: context.open ? "Lukk panel ikon" : "Åpne panel ikon", className: (0, classnames_1.default)("navds-accordion__expand-icon", {
59
+ react_1.default.createElement(ds_icons_1.Expand, { "aria-hidden": true, className: (0, classnames_1.default)("navds-accordion__expand-icon", {
60
60
  "navds-accordion__expand-icon--flip": context.open,
61
61
  }) }),
62
- react_1.default.createElement(ds_icons_1.ExpandFilled, { title: context.open ? "Lukk panel ikon" : "Åpne panel ikon", className: (0, classnames_1.default)("navds-accordion__expand-icon", "navds-accordion__expand-icon--filled", {
62
+ react_1.default.createElement(ds_icons_1.ExpandFilled, { "aria-hidden": true, className: (0, classnames_1.default)("navds-accordion__expand-icon", "navds-accordion__expand-icon--filled", {
63
63
  "navds-accordion__expand-icon--flip": context.open,
64
64
  }) })));
65
65
  });
@@ -41,13 +41,13 @@ const Icon = (_a) => {
41
41
  var { variant } = _a, props = __rest(_a, ["variant"]);
42
42
  switch (variant) {
43
43
  case "error":
44
- return react_1.default.createElement(ds_icons_1.ErrorFilled, Object.assign({}, props));
44
+ return react_1.default.createElement(ds_icons_1.ErrorFilled, Object.assign({ title: "Feil" }, props));
45
45
  case "warning":
46
- return react_1.default.createElement(ds_icons_1.WarningFilled, Object.assign({}, props));
46
+ return react_1.default.createElement(ds_icons_1.WarningFilled, Object.assign({ title: "Advarsel" }, props));
47
47
  case "info":
48
- return react_1.default.createElement(ds_icons_1.InformationFilled, Object.assign({}, props));
48
+ return react_1.default.createElement(ds_icons_1.InformationFilled, Object.assign({ title: "Informasjon" }, props));
49
49
  case "success":
50
- return react_1.default.createElement(ds_icons_1.SuccessFilled, Object.assign({}, props));
50
+ return react_1.default.createElement(ds_icons_1.SuccessFilled, Object.assign({ title: "Suksess" }, props));
51
51
  default:
52
52
  return null;
53
53
  }
@@ -55,7 +55,7 @@ const Icon = (_a) => {
55
55
  const Alert = (0, react_1.forwardRef)((_a, ref) => {
56
56
  var { children, className, variant, size = "medium", fullWidth = false, inline = false } = _a, rest = __rest(_a, ["children", "className", "variant", "size", "fullWidth", "inline"]);
57
57
  return (react_1.default.createElement("div", Object.assign({}, rest, { ref: ref, className: (0, classnames_1.default)(className, "navds-alert", `navds-alert--${variant}`, `navds-alert--${size}`, { "navds-alert--full-width": fullWidth, "navds-alert--inline": inline }) }),
58
- react_1.default.createElement(Icon, { title: `${variant}-ikon`, variant: variant, className: "navds-alert__icon" }),
58
+ react_1.default.createElement(Icon, { variant: variant, className: "navds-alert__icon" }),
59
59
  react_1.default.createElement(__1.BodyLong, { as: "div", size: size, className: "navds-alert__wrapper" }, children)));
60
60
  });
61
61
  exports.default = Alert;
@@ -56,13 +56,13 @@ const Fieldset = (0, react_1.forwardRef)((props, ref) => {
56
56
  } },
57
57
  react_1.default.createElement("fieldset", Object.assign({}, (0, __1.omit)(rest, ["errorId", "error", "size"]), inputProps, { ref: ref, className: (0, classnames_1.default)(className, "navds-fieldset", `navds-fieldset--${size}`, { "navds-fieldset--error": hasError }) }),
58
58
  react_1.default.createElement(__1.Label, { size: size, as: "legend", className: (0, classnames_1.default)("navds-fieldset__legend", {
59
- "sr-only": !!hideLegend,
59
+ "navds-sr-only": !!hideLegend,
60
60
  }) }, legend),
61
61
  !!description &&
62
62
  (size === "medium" ? (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-fieldset__description", {
63
- "sr-only": !!hideLegend,
63
+ "navds-sr-only": !!hideLegend,
64
64
  }), id: inputDescriptionId, size: "small", as: "div" }, props.description)) : (react_1.default.createElement(__1.Detail, { className: (0, classnames_1.default)("navds-fieldset__description", {
65
- "sr-only": !!hideLegend,
65
+ "navds-sr-only": !!hideLegend,
66
66
  }), id: inputDescriptionId, size: "small", as: "div" }, props.description))),
67
67
  children,
68
68
  react_1.default.createElement("div", { id: errorId, "aria-relevant": "additions removals", "aria-live": "polite", className: "navds-fieldset__error" }, showErrorMsg && (react_1.default.createElement(ErrorMessage_1.default, { size: size }, props.error))))));
@@ -47,10 +47,10 @@ const Select = (0, react_1.forwardRef)((props, ref) => {
47
47
  "navds-select--disabled": !!inputProps.disabled,
48
48
  }) },
49
49
  react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-select__label", {
50
- "sr-only": hideLabel,
50
+ "navds-sr-only": hideLabel,
51
51
  }) }, label),
52
52
  !!description && (react_1.default.createElement(__1.BodyShort, { as: "div", className: (0, classnames_1.default)("navds-select__description", {
53
- "sr-only": hideLabel,
53
+ "navds-sr-only": hideLabel,
54
54
  }), id: inputDescriptionId, size: size }, description)),
55
55
  react_1.default.createElement("div", { className: "navds-select__container" },
56
56
  react_1.default.createElement("select", Object.assign({}, (0, __1.omit)(rest, ["error", "errorId", "size"]), inputProps, { ref: ref, className: (0, classnames_1.default)("navds-select__input", "navds-body-short", `navds-body--${size !== null && size !== void 0 ? size : "medium"}`), size: props.htmlSize }), children),
@@ -40,7 +40,7 @@ const useFormField_1 = require("./useFormField");
40
40
  const SelectedIcon = () => (react_1.default.createElement("svg", { width: "12px", height: "12px", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", focusable: false, role: "img", "aria-hidden": true, "aria-label": "Deaktiver valg" },
41
41
  react_1.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.01386 8L10.25 2L11 2.75L4.01386 9.5L1 6.5L1.75 5.75L4.01386 8Z", fill: "currentColor", stroke: "currentColor" })));
42
42
  const Switch = (0, react_1.forwardRef)((props, ref) => {
43
- var _a;
43
+ var _a, _b, _c;
44
44
  const { inputProps, size } = (0, useFormField_1.useFormField)(props, "switch");
45
45
  const { children, className, description, hideLabel = false, loading, checked: checkedProp, defaultChecked, position = "left" } = props, rest = __rest(props, ["children", "className", "description", "hideLabel", "loading", "checked", "defaultChecked", "position"]);
46
46
  const Description = size === "medium" ? __1.BodyShort : __1.Detail;
@@ -53,14 +53,15 @@ const Switch = (0, react_1.forwardRef)((props, ref) => {
53
53
  props.onChange && props.onChange(e);
54
54
  };
55
55
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)("navds-switch", props.className, `navds-switch--${size}`, `navds-switch--${position}`, {
56
- "navds-switch--disabled": inputProps.disabled,
56
+ "navds-switch--loading": loading,
57
+ "navds-switch--disabled": (_b = inputProps.disabled) !== null && _b !== void 0 ? _b : loading,
57
58
  }) },
58
- react_1.default.createElement("input", Object.assign({}, (0, __1.omit)(rest, ["size"]), (0, __1.omit)(inputProps, ["aria-invalid", "aria-describedby"]), { checked: checkedProp, defaultChecked: defaultChecked, ref: ref, type: "checkbox", onChange: (e) => handleChange(e), className: (0, classnames_1.default)(className, "navds-switch__input") })),
59
+ react_1.default.createElement("input", Object.assign({}, (0, __1.omit)(rest, ["size"]), (0, __1.omit)(inputProps, ["aria-invalid", "aria-describedby"]), { disabled: (_c = inputProps.disabled) !== null && _c !== void 0 ? _c : loading, checked: checkedProp, defaultChecked: defaultChecked, ref: ref, type: "checkbox", onChange: (e) => handleChange(e), className: (0, classnames_1.default)(className, "navds-switch__input") })),
59
60
  react_1.default.createElement("span", { className: "navds-switch__track" },
60
- react_1.default.createElement("span", { className: "navds-switch__thumb" }, loading ? (react_1.default.createElement(__1.Loader, { size: "xsmall" })) : checked ? (react_1.default.createElement(SelectedIcon, null)) : null)),
61
+ react_1.default.createElement("span", { className: "navds-switch__thumb" }, loading ? (react_1.default.createElement(__1.Loader, { size: "xsmall", "aria-live": "polite" })) : checked ? (react_1.default.createElement(SelectedIcon, null)) : null)),
61
62
  react_1.default.createElement("label", { htmlFor: inputProps.id, className: "navds-switch__label-wrapper" },
62
63
  react_1.default.createElement("div", { className: (0, classnames_1.default)("navds-switch__content", {
63
- "sr-only": hideLabel,
64
+ "navds-sr-only": hideLabel,
64
65
  "navds-switch--with-description": !!description && !hideLabel,
65
66
  }) },
66
67
  react_1.default.createElement(__1.BodyShort, { as: "div", size: size, className: "navds-switch__label" }, children),
@@ -45,11 +45,13 @@ const TextField = (0, react_1.forwardRef)((props, ref) => {
45
45
  "navds-text-field--error": hasError,
46
46
  "navds-text-field--disabled": !!inputProps.disabled,
47
47
  }) },
48
- react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-text-field__label", { "sr-only": hideLabel }) }, label),
48
+ react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-text-field__label", {
49
+ "navds-sr-only": hideLabel,
50
+ }) }, label),
49
51
  !!description && (react_1.default.createElement(react_1.default.Fragment, null, size === "medium" ? (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-text-field__description", {
50
- "sr-only": hideLabel,
52
+ "navds-sr-only": hideLabel,
51
53
  }), id: inputDescriptionId, size: "small", as: "div" }, description)) : (react_1.default.createElement(__1.Detail, { className: (0, classnames_1.default)("navds-text-field__description", {
52
- "sr-only": hideLabel,
54
+ "navds-sr-only": hideLabel,
53
55
  }), id: inputDescriptionId, size: "small", as: "div" }, description)))),
54
56
  react_1.default.createElement("input", Object.assign({}, (0, __1.omit)(rest, ["error", "errorId", "size"]), inputProps, { ref: ref, type: type, className: (0, classnames_1.default)("navds-text-field__input", "navds-body-short", `navds-body-${size !== null && size !== void 0 ? size : "medium"}`), size: htmlSize })),
55
57
  react_1.default.createElement("div", { id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && react_1.default.createElement(ErrorMessage_1.default, { size: size }, props.error))));
@@ -51,10 +51,10 @@ const Textarea = (0, react_1.forwardRef)((props, ref) => {
51
51
  "navds-textarea--disabled": !!inputProps.disabled,
52
52
  }) },
53
53
  react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-textarea__label", {
54
- "sr-only": hideLabel,
54
+ "navds-sr-only": hideLabel,
55
55
  }) }, label),
56
56
  !!description && (react_1.default.createElement(__1.BodyShort, { as: "div", className: (0, classnames_1.default)("navds-textarea__description", {
57
- "sr-only": hideLabel,
57
+ "navds-sr-only": hideLabel,
58
58
  }), id: inputDescriptionId, size: size }, description)),
59
59
  react_1.default.createElement("div", { className: "navds-textarea__wrapper" },
60
60
  react_1.default.createElement(TextareaAutosize_1.default, Object.assign({}, (0, __1.omit)(rest, ["error", "errorId", "size"]), inputProps, { ref: ref, className: (0, classnames_1.default)("navds-textarea__input", "navds-body-short", `navds-body-${size !== null && size !== void 0 ? size : "medium"}`, {
@@ -63,7 +63,7 @@ const Textarea = (0, react_1.forwardRef)((props, ref) => {
63
63
  [maxLengthId]: hasMaxLength,
64
64
  }) })),
65
65
  hasMaxLength && (react_1.default.createElement(react_1.default.Fragment, null,
66
- react_1.default.createElement("span", { id: maxLengthId, className: "sr-only" },
66
+ react_1.default.createElement("span", { id: maxLengthId, className: "navds-sr-only" },
67
67
  "Tekstomr\u00E5de med plass til ",
68
68
  maxLength,
69
69
  " tegn., Textarea can have",
@@ -39,10 +39,21 @@ const Checkbox = (0, react_1.forwardRef)((props, ref) => {
39
39
  "error",
40
40
  "description",
41
41
  "hideLabel",
42
- ]), inputProps, { className: "navds-checkbox__input", ref: ref })),
42
+ ]), inputProps, { type: "checkbox", className: "navds-checkbox__input", "aria-checked": props.indeterminate ? "mixed" : inputProps.checked, ref: (el) => {
43
+ var _a;
44
+ if (el) {
45
+ el.indeterminate = (_a = props.indeterminate) !== null && _a !== void 0 ? _a : false;
46
+ }
47
+ if (typeof ref === "function") {
48
+ ref(el);
49
+ }
50
+ else if (ref != null) {
51
+ ref.current = el;
52
+ }
53
+ } })),
43
54
  react_1.default.createElement("label", { htmlFor: inputProps.id, className: "navds-checkbox__label" },
44
55
  react_1.default.createElement("div", { className: (0, classnames_1.default)("navds-checkbox__content", {
45
- "sr-only": props.hideLabel,
56
+ "navds-sr-only": props.hideLabel,
46
57
  }) },
47
58
  react_1.default.createElement(__1.BodyShort, { as: "div", size: size }, props.children),
48
59
  props.description && (react_1.default.createElement(Description, { as: "div", size: "small", className: "navds-checkbox__description" }, props.description))))));
@@ -42,9 +42,9 @@ const CheckboxGroup = (0, react_1.forwardRef)((_a, ref) => {
42
42
  var _b, _c;
43
43
  var { value, defaultValue, onChange = () => { }, children, className } = _a, rest = __rest(_a, ["value", "defaultValue", "onChange", "children", "className"]);
44
44
  const fieldset = (0, react_1.useContext)(__1.FieldsetContext);
45
- const [state, setState] = (0, react_1.useState)([]);
46
- const handleChange = (v) => {
47
- const newValue = value ? value : state;
45
+ const [state, setState] = (0, react_1.useState)(defaultValue !== null && defaultValue !== void 0 ? defaultValue : []);
46
+ const toggleValue = (v) => {
47
+ const newValue = value !== null && value !== void 0 ? value : state;
48
48
  const newState = newValue.includes(v)
49
49
  ? newValue.filter((x) => x !== v)
50
50
  : [...newValue, v];
@@ -55,7 +55,7 @@ const CheckboxGroup = (0, react_1.forwardRef)((_a, ref) => {
55
55
  react_1.default.createElement(exports.CheckboxGroupContext.Provider, { value: {
56
56
  value,
57
57
  defaultValue,
58
- toggleValue: (value) => handleChange(value),
58
+ toggleValue,
59
59
  } },
60
60
  react_1.default.createElement("div", { className: "navds-checkboxes" }, children))));
61
61
  });
@@ -30,13 +30,14 @@ const useCheckbox = (_a) => {
30
30
  console.warn("A <Checkbox> element within a <CheckboxGroup> requires a `value` property.");
31
31
  }
32
32
  }
33
- return Object.assign(Object.assign({}, rest), { inputProps: Object.assign(Object.assign({}, inputProps), { type: "checkbox", checked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.value)
34
- ? checkboxGroup.value.includes(props.value)
33
+ const value = props.value;
34
+ return Object.assign(Object.assign({}, rest), { inputProps: Object.assign(Object.assign({}, inputProps), { checked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.value)
35
+ ? checkboxGroup.value.includes(value)
35
36
  : props.checked, defaultChecked: (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.defaultValue)
36
- ? checkboxGroup.defaultValue.includes(props.value)
37
+ ? checkboxGroup.defaultValue.includes(value)
37
38
  : props.defaultChecked, onChange: (e) => {
38
39
  props.onChange && props.onChange(e);
39
- checkboxGroup && checkboxGroup.toggleValue(props.value);
40
+ checkboxGroup && checkboxGroup.toggleValue(value);
40
41
  } }) });
41
42
  };
42
43
  exports.default = useCheckbox;
@@ -51,10 +51,10 @@ const SearchField = (0, react_1.forwardRef)((props, ref) => {
51
51
  "navds-search-field--disabled": !!inputProps.disabled,
52
52
  }) }),
53
53
  react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-text-field__label", {
54
- "sr-only": hideLabel,
54
+ "navds-sr-only": hideLabel,
55
55
  }) }, label),
56
56
  !!description && (react_1.default.createElement(__1.BodyShort, { as: "div", className: (0, classnames_1.default)("navds-text-field__description", {
57
- "sr-only": hideLabel,
57
+ "navds-sr-only": hideLabel,
58
58
  }), id: inputDescriptionId, size: size }, description)),
59
59
  react_1.default.createElement("div", { className: "navds-search-field__input-wrapper" },
60
60
  react_1.default.createElement(exports.SearchFieldContext.Provider, { value: {
@@ -42,13 +42,13 @@ const HelpText = (0, react_1.forwardRef)((_a, ref) => {
42
42
  var { className, children, placement = "top", strategy = "absolute", title = "hjelp" } = _a, rest = __rest(_a, ["className", "children", "placement", "strategy", "title"]);
43
43
  const buttonRef = (0, react_1.useRef)(null);
44
44
  const mergedRef = (0, react_merge_refs_1.default)([buttonRef, ref]);
45
- const popoverRef = (0, react_1.useRef)(null);
45
+ const [popoverRef, setPopoverRef] = (0, react_1.useState)(null);
46
46
  const wrapperRef = (0, react_1.useRef)(null);
47
47
  const [open, setOpen] = (0, react_1.useState)(false);
48
48
  (0, react_1.useEffect)(() => {
49
49
  var _a;
50
- open && ((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.focus());
51
- }, [open]);
50
+ open && ((_a = popoverRef === null || popoverRef === void 0 ? void 0 : popoverRef.focus) === null || _a === void 0 ? void 0 : _a.call(popoverRef));
51
+ }, [open, popoverRef]);
52
52
  const handleClick = (e) => {
53
53
  setOpen((x) => !x);
54
54
  rest.onClick && rest.onClick(e);
@@ -57,7 +57,7 @@ const HelpText = (0, react_1.forwardRef)((_a, ref) => {
57
57
  react_1.default.createElement("button", Object.assign({}, rest, { ref: mergedRef, onClick: (e) => handleClick(e), className: (0, classnames_1.default)(className, "navds-help-text__button"), type: "button", "aria-expanded": open, "aria-haspopup": "dialog", title: title }),
58
58
  react_1.default.createElement(ds_icons_1.Helptext, { className: "navds-help-text__icon" }),
59
59
  react_1.default.createElement("span", { className: "navds-sr-only" }, title)),
60
- react_1.default.createElement(__1.Popover, { ref: popoverRef, onClose: () => setOpen(false), className: "navds-help-text__popover", open: open, role: "tooltip", anchorEl: buttonRef.current, placement: placement, strategy: strategy },
60
+ react_1.default.createElement(__1.Popover, { ref: setPopoverRef, onClose: () => setOpen(false), className: "navds-help-text__popover", open: open, role: "tooltip", anchorEl: buttonRef.current, placement: placement, strategy: strategy },
61
61
  react_1.default.createElement(__1.Popover.Content, null, children))));
62
62
  });
63
63
  exports.default = HelpText;
package/cjs/index.js CHANGED
@@ -11,7 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./accordion"), exports);
14
- __exportStar(require("./accordion-menu"), exports);
15
14
  __exportStar(require("./alert"), exports);
16
15
  __exportStar(require("./button"), exports);
17
16
  __exportStar(require("./form"), exports);
@@ -21,6 +20,7 @@ __exportStar(require("./guide-panel"), exports);
21
20
  __exportStar(require("./link"), exports);
22
21
  __exportStar(require("./link-panel"), exports);
23
22
  __exportStar(require("./loader"), exports);
23
+ __exportStar(require("./menu"), exports);
24
24
  __exportStar(require("./modal"), exports);
25
25
  __exportStar(require("./pagination"), exports);
26
26
  __exportStar(require("./panel"), exports);
@@ -28,6 +28,7 @@ __exportStar(require("./popover"), exports);
28
28
  __exportStar(require("./speech-bubble"), exports);
29
29
  __exportStar(require("./step-indicator"), exports);
30
30
  __exportStar(require("./tag"), exports);
31
+ __exportStar(require("./toggle-group"), exports);
31
32
  __exportStar(require("./table"), exports);
32
33
  __exportStar(require("./typography"), exports);
33
34
  __exportStar(require("./util"), exports);
@@ -36,13 +36,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const react_1 = __importStar(require("react"));
37
37
  const classnames_1 = __importDefault(require("classnames"));
38
38
  const MenuItems_1 = __importDefault(require("./MenuItems"));
39
- const AccordionMenuCollapsable_1 = __importDefault(require("./AccordionMenuCollapsable"));
40
- const AccordionMenuItem_1 = __importDefault(require("./AccordionMenuItem"));
41
- const AccordionMenu = (0, react_1.forwardRef)((_a, ref) => {
39
+ const MenuItem_1 = __importDefault(require("./MenuItem"));
40
+ const MenuCollapse_1 = __importDefault(require("./MenuCollapse"));
41
+ const Menu = (0, react_1.forwardRef)((_a, ref) => {
42
42
  var { children, className } = _a, rest = __rest(_a, ["children", "className"]);
43
- return (react_1.default.createElement("nav", Object.assign({ role: "navigation", ref: ref, className: (0, classnames_1.default)("navds-accordion-menu", className) }, rest),
43
+ return (react_1.default.createElement("nav", Object.assign({}, rest, { role: "navigation", ref: ref, className: (0, classnames_1.default)("navds-menu", className) }),
44
44
  react_1.default.createElement(MenuItems_1.default, null, children)));
45
45
  });
46
- AccordionMenu.Collapsable = AccordionMenuCollapsable_1.default;
47
- AccordionMenu.Item = AccordionMenuItem_1.default;
48
- exports.default = AccordionMenu;
46
+ Menu.Collapse = MenuCollapse_1.default;
47
+ Menu.Item = MenuItem_1.default;
48
+ exports.default = Menu;
@@ -33,19 +33,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
33
  return (mod && mod.__esModule) ? mod : { "default": mod };
34
34
  };
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NestingContext = void 0;
36
37
  const react_1 = __importStar(require("react"));
37
38
  const classnames_1 = __importDefault(require("classnames"));
38
39
  const ds_icons_1 = require("@navikt/ds-icons");
39
40
  const MenuItems_1 = __importDefault(require("./MenuItems"));
40
- const Collapsable = (0, react_1.forwardRef)((_a, ref) => {
41
+ exports.NestingContext = (0, react_1.createContext)({ depth: 1 });
42
+ const NestingProvider = ({ children }) => {
43
+ const context = (0, react_1.useContext)(exports.NestingContext);
44
+ return (react_1.default.createElement(exports.NestingContext.Provider, { value: {
45
+ depth: context.depth + 1,
46
+ } }, children));
47
+ };
48
+ const Collapse = (0, react_1.forwardRef)((_a, ref) => {
41
49
  var { children, defaultOpen = false, title, className } = _a, rest = __rest(_a, ["children", "defaultOpen", "title", "className"]);
42
50
  const [isOpen, setIsOpen] = (0, react_1.useState)(defaultOpen);
43
- return (react_1.default.createElement("div", Object.assign({ ref: ref, className: (0, classnames_1.default)("navds-accordion-menu-collapsable", className, {
44
- "navds-accordion-menu-collapsable--open": isOpen,
45
- }) }, rest),
46
- react_1.default.createElement("button", { onClick: () => setIsOpen(!isOpen), className: "navds-accordion-menu-collapsable__button" },
51
+ const context = (0, react_1.useContext)(exports.NestingContext);
52
+ return (react_1.default.createElement("div", Object.assign({}, rest, { ref: ref, className: (0, classnames_1.default)("navds-menu-collapse", className, {
53
+ "navds-menu-collapse--open": isOpen,
54
+ }) }),
55
+ react_1.default.createElement("button", { onClick: () => setIsOpen(!isOpen), className: "navds-menu-collapse__button" },
47
56
  title,
48
- react_1.default.createElement(ds_icons_1.Expand, { title: isOpen ? "Pil peker opp" : "Pil peker ned", className: "navds-accordion-menu-collapsable__expand-icon" })),
49
- isOpen && react_1.default.createElement(MenuItems_1.default, null, children)));
57
+ react_1.default.createElement(ds_icons_1.Expand, { title: isOpen ? "lukk navigasjons-skuff" : "åpne navigason-skuff", className: "navds-menu-collapse__expand-icon" }),
58
+ react_1.default.createElement(ds_icons_1.ExpandFilled, { title: isOpen ? "lukk navigasjons-skuff" : "åpne navigason-skuff", className: "navds-menu-collapse__expand-icon navds-menu-collapse__expand-icon--filled" })),
59
+ react_1.default.createElement(NestingProvider, null, isOpen && (react_1.default.createElement(MenuItems_1.default, { "data-depth": context.depth, className: "navds-menu__list--inner" }, children)))));
50
60
  });
51
- exports.default = Collapsable;
61
+ exports.default = Collapse;
@@ -37,8 +37,8 @@ const react_1 = __importStar(require("react"));
37
37
  const classnames_1 = __importDefault(require("classnames"));
38
38
  const Item = (0, react_1.forwardRef)((_a, ref) => {
39
39
  var { children, as: Component = "a", active = false, className } = _a, rest = __rest(_a, ["children", "as", "active", "className"]);
40
- return (react_1.default.createElement(Component, Object.assign({ ref: ref, className: (0, classnames_1.default)("navds-accordion-menu-item", className, {
41
- "navds-accordion-menu-item--active": active,
40
+ return (react_1.default.createElement(Component, Object.assign({ ref: ref, className: (0, classnames_1.default)("navds-menu-item", className, {
41
+ "navds-menu-item--active": active,
42
42
  }) }, rest), children));
43
43
  });
44
44
  exports.default = Item;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const classnames_1 = __importDefault(require("classnames"));
18
+ const react_1 = __importDefault(require("react"));
19
+ const MenuItems = (_a) => {
20
+ var { children, className } = _a, rest = __rest(_a, ["children", "className"]);
21
+ return (react_1.default.createElement("ul", Object.assign({}, rest, { className: (0, classnames_1.default)("navds-menu__list", className) }), react_1.default.Children.toArray(children).map((child, i) => (react_1.default.createElement("li", { key: i, className: "navds-menu__list-item" }, child)))));
22
+ };
23
+ exports.default = MenuItems;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Menu = void 0;
7
+ var Menu_1 = require("./Menu");
8
+ Object.defineProperty(exports, "Menu", { enumerable: true, get: function () { return __importDefault(Menu_1).default; } });
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "main": "./index.js",
4
+ "module": "../../esm/menu/index.js",
5
+ "types": "../../esm/menu/index.d.ts"
6
+ }
@@ -41,7 +41,7 @@ const ds_icons_1 = require("@navikt/ds-icons");
41
41
  const __1 = require("..");
42
42
  const ModalContent_1 = __importDefault(require("./ModalContent"));
43
43
  const Modal = (0, react_1.forwardRef)((_a, ref) => {
44
- var { children, open, onClose, className, shouldCloseOnOverlayClick = true, closeButton = true } = _a, rest = __rest(_a, ["children", "open", "onClose", "className", "shouldCloseOnOverlayClick", "closeButton"]);
44
+ var { children, open, onClose, className, shouldCloseOnOverlayClick = true, closeButton = true, "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledBy, "aria-modal": ariaModal } = _a, rest = __rest(_a, ["children", "open", "onClose", "className", "shouldCloseOnOverlayClick", "closeButton", "aria-describedby", "aria-labelledby", "aria-modal"]);
45
45
  const modalRef = (0, react_1.useRef)(null);
46
46
  const mergedRef = (0, react_merge_refs_1.default)([modalRef, ref]);
47
47
  const buttonRef = (0, react_1.useRef)(null);
@@ -53,7 +53,11 @@ const Modal = (0, react_1.forwardRef)((_a, ref) => {
53
53
  buttonRef.current.focus();
54
54
  }
55
55
  };
56
- return (react_1.default.createElement(react_modal_1.default, Object.assign({}, rest, { isOpen: open, ref: mergedRef, className: (0, classnames_1.default)("navds-modal", className), overlayClassName: "navds-modal__overlay", shouldCloseOnOverlayClick: shouldCloseOnOverlayClick, onRequestClose: (e) => onModalCloseRequest(e) }),
56
+ return (react_1.default.createElement(react_modal_1.default, Object.assign({}, rest, { isOpen: open, ref: mergedRef, className: (0, classnames_1.default)("navds-modal", className), overlayClassName: "navds-modal__overlay", shouldCloseOnOverlayClick: shouldCloseOnOverlayClick, onRequestClose: (e) => onModalCloseRequest(e), aria: {
57
+ describedby: ariaDescribedBy,
58
+ labelledby: ariaLabelledBy,
59
+ modal: ariaModal,
60
+ } }),
57
61
  children,
58
62
  closeButton && (react_1.default.createElement(__1.Button, { className: (0, classnames_1.default)("navds-modal__button", {
59
63
  "navds-modal__button--shake": shouldCloseOnOverlayClick,
@@ -41,7 +41,7 @@ const PageHeader = (0, react_1.forwardRef)((_a, ref) => {
41
41
  return (react_1.default.createElement("div", Object.assign({ ref: ref, className: (0, classnames_1.default)("navds-page-header", className, `navds-page-header--${variant}`, `navds-page-header--${align}`) }, rest),
42
42
  illustration && (react_1.default.createElement("div", { className: "navds-page-header__illustration" }, illustration)),
43
43
  react_1.default.createElement("div", { className: "navds-page-header__wrapper" },
44
- react_1.default.createElement(__1.Heading, { className: "navds-page-header__title", size: "2xlarge", level: "1" }, children),
44
+ react_1.default.createElement(__1.Heading, { className: "navds-page-header__title", size: "xlarge", level: "1" }, children),
45
45
  description && (react_1.default.createElement(__1.BodyShort, { className: "navds-page-header__description" }, description)))));
46
46
  });
47
47
  exports.default = PageHeader;
@@ -8,37 +8,64 @@ const react_1 = __importDefault(require("react"));
8
8
  const classnames_1 = __importDefault(require("classnames"));
9
9
  const ds_icons_1 = require("@navikt/ds-icons");
10
10
  const __1 = require("..");
11
- const getSteps = ({ current, count }) => new Array(count)
12
- .fill(null)
13
- .map((_, i) => i)
14
- .filter((n) => {
15
- if (count < 8) {
16
- return true;
17
- }
18
- if (n === count - 1 || n === 0) {
19
- return true;
11
+ const getSteps = ({ page, count, boundaryCount = 1, siblingCount = 1, }) => {
12
+ var _a, _b;
13
+ const range = (start, end) => Array.from({ length: end - start + 1 }, (_, i) => start + i);
14
+ if (count <= (boundaryCount + siblingCount) * 2 + 3)
15
+ return range(1, count);
16
+ const startPages = range(1, boundaryCount);
17
+ const endPages = range(count - boundaryCount + 1, count);
18
+ const siblingsStart = Math.max(Math.min(page - siblingCount, count - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
19
+ const siblingsEnd = siblingsStart + siblingCount * 2;
20
+ return [
21
+ ...startPages,
22
+ siblingsStart - ((_a = startPages[startPages.length - 1]) !== null && _a !== void 0 ? _a : 0) === 2
23
+ ? siblingsStart - 1
24
+ : "ellipsis",
25
+ ...range(siblingsStart, siblingsEnd),
26
+ ((_b = endPages[0]) !== null && _b !== void 0 ? _b : count + 1) - siblingsEnd === 2
27
+ ? siblingsEnd + 1
28
+ : "ellipsis",
29
+ ...endPages,
30
+ ];
31
+ };
32
+ exports.getSteps = getSteps;
33
+ const Pagination = ({ page, onPageChange, count, boundaryCount = 1, siblingCount = 1, className, size = "medium", prevNextTexts = false, }) => {
34
+ if (page < 1) {
35
+ console.error("page cannot be less than 1");
36
+ return null;
20
37
  }
21
- if (n >= current - 1 && n <= current + 1) {
22
- return true;
38
+ if (count < 1) {
39
+ console.error("count cannot be less than 1");
40
+ return null;
23
41
  }
24
- if (current <= 3 && n <= 4) {
25
- return true;
42
+ if (boundaryCount < 0) {
43
+ console.error("boundaryCount cannot be less than 0");
44
+ return null;
26
45
  }
27
- if (current >= count - 4 && n >= count - 5) {
28
- return true;
46
+ if (siblingCount < 0) {
47
+ console.error("siblingCount cannot be less than 0");
48
+ return null;
29
49
  }
30
- return false;
31
- });
32
- exports.getSteps = getSteps;
33
- const Pagination = ({ page, onPageChange, count, className, }) => {
34
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)("navds-pagination", className) },
35
- react_1.default.createElement(__1.Button, { variant: "tertiary", size: "small", disabled: page === 0, onClick: () => onPageChange(page - 1) },
36
- react_1.default.createElement(ds_icons_1.Back, null)),
37
- (0, exports.getSteps)({ current: page, count }).map((n, i, a) => (react_1.default.createElement(react_1.default.Fragment, null,
38
- i !== 0 && a[i - 1] !== n - 1 && (react_1.default.createElement("div", { className: "navds-pagination__ellipsis" },
39
- react_1.default.createElement("span", null, "..."))),
40
- react_1.default.createElement(__1.Button, { key: n, variant: page === n ? "primary" : "tertiary", size: "small", onClick: () => onPageChange(n) }, n + 1)))),
41
- react_1.default.createElement(__1.Button, { variant: "tertiary", size: "small", disabled: page === count - 1, onClick: () => onPageChange(page + 1) },
42
- react_1.default.createElement(ds_icons_1.Next, null))));
50
+ return (react_1.default.createElement("nav", { className: (0, classnames_1.default)("navds-pagination", `navds-pagination--${size}`, className) },
51
+ prevNextTexts && page !== 1 && (react_1.default.createElement("button", { className: "navds-pagination__prev-next", onClick: () => onPageChange(page - 1) },
52
+ react_1.default.createElement(ds_icons_1.Back, { className: "navds-pagination__prev-next-icon", role: "presentation" }),
53
+ react_1.default.createElement(__1.BodyShort, { size: size, className: "navds-pagination__prev-text" }, "Forrige"))),
54
+ react_1.default.createElement("ul", { className: "navds-pagination__list" },
55
+ !prevNextTexts && page !== 1 && (react_1.default.createElement("li", null,
56
+ react_1.default.createElement("button", { className: "navds-pagination__prev-next", onClick: () => onPageChange(page - 1) },
57
+ react_1.default.createElement(ds_icons_1.Back, { className: "navds-pagination__prev-next-icon", title: "Forrige" })))),
58
+ (0, exports.getSteps)({ page, count, siblingCount, boundaryCount }).map((step, i) => {
59
+ const n = Number(step);
60
+ return isNaN(n) ? (react_1.default.createElement("li", { className: "navds-pagination__ellipsis", key: `${step}${i}` },
61
+ react_1.default.createElement(__1.BodyShort, { size: size }, "..."))) : (react_1.default.createElement("li", { key: step },
62
+ react_1.default.createElement(__1.BodyShort, { size: size, as: "button", className: "navds-pagination__item", onClick: () => onPageChange(n), "aria-current": page === n ? true : undefined }, n)));
63
+ }),
64
+ !prevNextTexts && page !== count && (react_1.default.createElement("li", null,
65
+ react_1.default.createElement("button", { className: "navds-pagination__prev-next", onClick: () => onPageChange(page + 1) },
66
+ react_1.default.createElement(ds_icons_1.Next, { className: "navds-pagination__prev-next-icon", title: "Neste" }))))),
67
+ prevNextTexts && page !== count && (react_1.default.createElement("button", { className: "navds-pagination__prev-next", onClick: () => onPageChange(page + 1) },
68
+ react_1.default.createElement(__1.BodyShort, { size: size, className: "navds-pagination__next-text" }, "Neste"),
69
+ react_1.default.createElement(ds_icons_1.Next, { className: "navds-pagination__prev-next-icon", role: "presentation" })))));
43
70
  };
44
71
  exports.default = Pagination;
@@ -34,8 +34,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
34
34
  };
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const react_1 = __importStar(require("react"));
37
- const __1 = require("..");
38
37
  const ds_icons_1 = require("@navikt/ds-icons");
38
+ const __1 = require("..");
39
39
  const HeaderCell_1 = __importDefault(require("./HeaderCell"));
40
40
  const ColumnHeader = (0, react_1.forwardRef)((_a, ref) => {
41
41
  var _b, _c, _d, _e;
@@ -49,10 +49,10 @@ const ColumnHeader = (0, react_1.forwardRef)((_a, ref) => {
49
49
  ? (_c = context === null || context === void 0 ? void 0 : context.sort) === null || _c === void 0 ? void 0 : _c.direction
50
50
  : "none"
51
51
  : undefined }, rest), sortable ? (react_1.default.createElement("button", { className: "navds-table__sort-button", onClick: sortable && sortKey
52
- ? () => { var _a; return (_a = context === null || context === void 0 ? void 0 : context.toggleColumnSort) === null || _a === void 0 ? void 0 : _a.call(context, sortKey); }
52
+ ? () => { var _a; return (_a = context === null || context === void 0 ? void 0 : context.onSortChange) === null || _a === void 0 ? void 0 : _a.call(context, sortKey); }
53
53
  : undefined },
54
54
  children,
55
55
  ((_d = context === null || context === void 0 ? void 0 : context.sort) === null || _d === void 0 ? void 0 : _d.orderBy) === sortKey &&
56
- (((_e = context === null || context === void 0 ? void 0 : context.sort) === null || _e === void 0 ? void 0 : _e.direction) === "ascending" ? react_1.default.createElement(ds_icons_1.Down, null) : react_1.default.createElement(ds_icons_1.Up, null)))) : (children)));
56
+ ((_e = context === null || context === void 0 ? void 0 : context.sort) === null || _e === void 0 ? void 0 : _e.direction) === "descending" ? (react_1.default.createElement(ds_icons_1.Down, { "aria-label": "sorter synkende" })) : (react_1.default.createElement(ds_icons_1.Up, { "aria-label": "sorter stigende" })))) : (children)));
57
57
  });
58
58
  exports.default = ColumnHeader;
@@ -38,8 +38,10 @@ const classnames_1 = __importDefault(require("classnames"));
38
38
  const __1 = require("..");
39
39
  const _1 = require(".");
40
40
  const DataCell = (0, react_1.forwardRef)((_a, ref) => {
41
- var { className, children = "" } = _a, rest = __rest(_a, ["className", "children"]);
41
+ var { className, children = "", align } = _a, rest = __rest(_a, ["className", "children", "align"]);
42
42
  const context = (0, react_1.useContext)(_1.TableContext);
43
- return (react_1.default.createElement(__1.BodyShort, Object.assign({ as: "td", ref: ref, className: (0, classnames_1.default)("navds-table__data-cell", className), size: context === null || context === void 0 ? void 0 : context.size }, rest), children));
43
+ return (react_1.default.createElement(__1.BodyShort, Object.assign({ as: "td", ref: ref, className: (0, classnames_1.default)("navds-table__data-cell", className, {
44
+ [`navds-table__data-cell--align-${align}`]: align,
45
+ }), size: context === null || context === void 0 ? void 0 : context.size }, rest), children));
44
46
  });
45
47
  exports.default = DataCell;
@@ -37,8 +37,10 @@ const react_1 = __importStar(require("react"));
37
37
  const classnames_1 = __importDefault(require("classnames"));
38
38
  const __1 = require("..");
39
39
  const HeaderCell = (0, react_1.forwardRef)((_a, ref) => {
40
- var { className, children } = _a, rest = __rest(_a, ["className", "children"]);
40
+ var { className, children, align } = _a, rest = __rest(_a, ["className", "children", "align"]);
41
41
  const context = (0, react_1.useContext)(__1.TableContext);
42
- return (react_1.default.createElement(__1.Label, Object.assign({ as: "th", ref: ref, className: (0, classnames_1.default)("navds-table__header-cell", className), size: context === null || context === void 0 ? void 0 : context.size }, rest), children));
42
+ return (react_1.default.createElement(__1.Label, Object.assign({ as: "th", ref: ref, className: (0, classnames_1.default)("navds-table__header-cell", className, {
43
+ [`navds-table__header-cell--align-${align}`]: align,
44
+ }), size: context === null || context === void 0 ? void 0 : context.size }, rest), children));
43
45
  });
44
46
  exports.default = HeaderCell;