@navikt/ds-react 0.13.0 → 0.14.0-beta.1

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 (70) hide show
  1. package/cjs/form/Fieldset/Fieldset.js +6 -3
  2. package/cjs/form/Select.js +5 -2
  3. package/cjs/form/TextField.js +8 -3
  4. package/cjs/form/Textarea.js +5 -2
  5. package/cjs/form/checkbox/Checkbox.js +9 -8
  6. package/cjs/form/checkbox/useCheckbox.js +2 -1
  7. package/cjs/form/radio/Radio.js +8 -14
  8. package/cjs/form/radio/useRadio.js +2 -1
  9. package/cjs/form/search-field/SearchField.js +5 -2
  10. package/cjs/loader/Loader.js +1 -1
  11. package/dist/complete.js +15978 -0
  12. package/dist/partial.js +4039 -0
  13. package/esm/form/Fieldset/Fieldset.js +7 -4
  14. package/esm/form/Fieldset/Fieldset.js.map +1 -1
  15. package/esm/form/Select.js +5 -2
  16. package/esm/form/Select.js.map +1 -1
  17. package/esm/form/TextField.js +9 -4
  18. package/esm/form/TextField.js.map +1 -1
  19. package/esm/form/Textarea.js +5 -2
  20. package/esm/form/Textarea.js.map +1 -1
  21. package/esm/form/checkbox/Checkbox.d.ts +6 -1
  22. package/esm/form/checkbox/Checkbox.js +10 -9
  23. package/esm/form/checkbox/Checkbox.js.map +1 -1
  24. package/esm/form/checkbox/CheckboxGroup.d.ts +1 -1
  25. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  26. package/esm/form/checkbox/useCheckbox.js +2 -1
  27. package/esm/form/checkbox/useCheckbox.js.map +1 -1
  28. package/esm/form/radio/Radio.d.ts +4 -1
  29. package/esm/form/radio/Radio.js +9 -15
  30. package/esm/form/radio/Radio.js.map +1 -1
  31. package/esm/form/radio/RadioGroup.d.ts +1 -1
  32. package/esm/form/radio/RadioGroup.js.map +1 -1
  33. package/esm/form/radio/useRadio.js +2 -1
  34. package/esm/form/radio/useRadio.js.map +1 -1
  35. package/esm/form/search-field/SearchField.js +5 -2
  36. package/esm/form/search-field/SearchField.js.map +1 -1
  37. package/esm/loader/Loader.js +1 -1
  38. package/esm/loader/Loader.js.map +1 -1
  39. package/package.json +9 -6
  40. package/src/form/Fieldset/Fieldset.tsx +25 -12
  41. package/src/form/Select.tsx +5 -1
  42. package/src/form/TextField.tsx +30 -11
  43. package/src/form/Textarea.tsx +5 -1
  44. package/src/form/checkbox/Checkbox.tsx +30 -37
  45. package/src/form/checkbox/CheckboxGroup.tsx +2 -1
  46. package/src/form/checkbox/stories/checkbox.stories.mdx +17 -45
  47. package/src/form/checkbox/stories/checkbox.stories.tsx +55 -82
  48. package/src/form/checkbox/useCheckbox.ts +5 -1
  49. package/src/form/radio/Radio.tsx +26 -40
  50. package/src/form/radio/RadioGroup.tsx +2 -1
  51. package/src/form/radio/stories/radio.stories.mdx +3 -29
  52. package/src/form/radio/stories/radio.stories.tsx +33 -61
  53. package/src/form/radio/useRadio.ts +5 -1
  54. package/src/form/search-field/SearchField.tsx +5 -1
  55. package/src/form/search-field/stories/search-field.stories.tsx +25 -1
  56. package/src/form/stories/fieldset.stories.tsx +6 -2
  57. package/src/form/stories/select.stories.tsx +1 -1
  58. package/src/form/stories/text-field.stories.tsx +23 -1
  59. package/src/form/stories/textarea.stories.tsx +12 -2
  60. package/src/grid/stories/grid.stories.mdx +3 -3
  61. package/src/guide-panel/stories/example.css +4 -4
  62. package/src/guide-panel/stories/guidepanel.stories.mdx +7 -7
  63. package/src/guide-panel/stories/guidepanel.stories.tsx +6 -6
  64. package/src/loader/Loader.tsx +1 -1
  65. package/src/loader/stories/loader.stories.mdx +0 -16
  66. package/src/popover/stories/popover.stories.tsx +1 -1
  67. package/src/speech-bubble/stories/speechbubble.stories.mdx +4 -4
  68. package/src/speech-bubble/stories/speechbubble.stories.tsx +2 -2
  69. package/src/typography/stories/index.css +1 -1
  70. package/LICENCE +0 -31
@@ -58,9 +58,12 @@ const Fieldset = (0, react_1.forwardRef)((props, ref) => {
58
58
  react_1.default.createElement(__1.Label, { size: size, as: "legend", className: (0, classnames_1.default)("navds-fieldset__legend", {
59
59
  "sr-only": !!hideLegend,
60
60
  }) }, legend),
61
- !!description && (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-fieldset__description", {
62
- "sr-only": !!hideLegend,
63
- }), id: inputDescriptionId, size: size }, description)),
61
+ !!description &&
62
+ (size === "medium" ? (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-fieldset__description", {
63
+ "sr-only": !!hideLegend,
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,
66
+ }), id: inputDescriptionId, size: "small", as: "div" }, props.description))),
64
67
  children,
65
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))))));
66
69
  });
@@ -42,11 +42,14 @@ const useFormField_1 = require("./useFormField");
42
42
  const Select = (0, react_1.forwardRef)((props, ref) => {
43
43
  const { inputProps, errorId, showErrorMsg, hasError, size, inputDescriptionId, } = (0, useFormField_1.useFormField)(props, "textField");
44
44
  const { children, label, className, description, htmlSize, hideLabel = false } = props, rest = __rest(props, ["children", "label", "className", "description", "htmlSize", "hideLabel"]);
45
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size}`, { "navds-select--error": hasError }) },
45
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size}`, {
46
+ "navds-select--error": hasError,
47
+ "navds-select--disabled": !!inputProps.disabled,
48
+ }) },
46
49
  react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-select__label", {
47
50
  "sr-only": hideLabel,
48
51
  }) }, label),
49
- !!description && (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-select__description", {
52
+ !!description && (react_1.default.createElement(__1.BodyShort, { as: "div", className: (0, classnames_1.default)("navds-select__description", {
50
53
  "sr-only": hideLabel,
51
54
  }), id: inputDescriptionId, size: size }, description)),
52
55
  react_1.default.createElement("div", { className: "navds-select__container" },
@@ -41,11 +41,16 @@ const useFormField_1 = require("./useFormField");
41
41
  const TextField = (0, react_1.forwardRef)((props, ref) => {
42
42
  const { inputProps, errorId, showErrorMsg, hasError, size, inputDescriptionId, } = (0, useFormField_1.useFormField)(props, "textField");
43
43
  const { label, className, description, htmlSize, hideLabel = false, type = "text" } = props, rest = __rest(props, ["label", "className", "description", "htmlSize", "hideLabel", "type"]);
44
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size}`, { "navds-text-field--error": hasError }) },
44
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size}`, {
45
+ "navds-text-field--error": hasError,
46
+ "navds-text-field--disabled": !!inputProps.disabled,
47
+ }) },
45
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),
46
- !!description && (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-text-field__description", {
49
+ !!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", {
47
50
  "sr-only": hideLabel,
48
- }), id: inputDescriptionId, size: size }, description)),
51
+ }), 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,
53
+ }), id: inputDescriptionId, size: "small", as: "div" }, description)))),
49
54
  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 })),
50
55
  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
56
  });
@@ -46,11 +46,14 @@ const Textarea = (0, react_1.forwardRef)((props, ref) => {
46
46
  const { label, className, description, maxLength, hideLabel = false } = props, rest = __rest(props, ["label", "className", "description", "maxLength", "hideLabel"]);
47
47
  const maxLengthId = `TextareaMaxLength-${(0, __2.useId)()}`;
48
48
  const hasMaxLength = maxLength !== undefined && maxLength > 0;
49
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size}`, { "navds-textarea--error": hasError }) },
49
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size}`, {
50
+ "navds-textarea--error": hasError,
51
+ "navds-textarea--disabled": !!inputProps.disabled,
52
+ }) },
50
53
  react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-textarea__label", {
51
54
  "sr-only": hideLabel,
52
55
  }) }, label),
53
- !!description && (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-textarea__description", {
56
+ !!description && (react_1.default.createElement(__1.BodyShort, { as: "div", className: (0, classnames_1.default)("navds-textarea__description", {
54
57
  "sr-only": hideLabel,
55
58
  }), id: inputDescriptionId, size: size }, description)),
56
59
  react_1.default.createElement("div", { className: "navds-textarea__wrapper" },
@@ -25,25 +25,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  const react_1 = __importStar(require("react"));
26
26
  const classnames_1 = __importDefault(require("classnames"));
27
27
  const useCheckbox_1 = __importDefault(require("./useCheckbox"));
28
- const ErrorMessage_1 = __importDefault(require("../ErrorMessage"));
29
28
  const __1 = require("../..");
30
29
  const Checkbox = (0, react_1.forwardRef)((props, ref) => {
31
- const { inputProps, errorId, showErrorMsg, hasError, size, inputDescriptionId, } = (0, useCheckbox_1.default)(props);
30
+ const { inputProps, hasError, size } = (0, useCheckbox_1.default)(props);
31
+ const Description = size === "medium" ? __1.BodyShort : __1.Detail;
32
32
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)(props.className, "navds-checkbox", `navds-checkbox--${size}`, {
33
33
  "navds-checkbox--error": hasError,
34
- "navds-checkbox--with-error-message": showErrorMsg,
35
- "navds-checkbox--with-description": !!props.description,
34
+ "navds-checkbox--disabled": inputProps.disabled,
36
35
  }) },
37
36
  react_1.default.createElement("input", Object.assign({}, (0, __1.omit)(props, [
38
37
  "children",
39
38
  "size",
40
39
  "error",
41
- "errorId",
42
40
  "description",
43
41
  "hideLabel",
44
42
  ]), inputProps, { className: "navds-checkbox__input", ref: ref })),
45
- react_1.default.createElement(__1.BodyShort, { as: "label", htmlFor: inputProps.id, size: size, className: "navds-checkbox__label" }, props.hideLabel ? (react_1.default.createElement("span", { className: "sr-only" }, props.children)) : (props.children)),
46
- props.description && (react_1.default.createElement(__1.BodyShort, { size: size, id: inputDescriptionId, className: "navds-checkbox__description" }, props.description)),
47
- 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))));
43
+ react_1.default.createElement("label", { htmlFor: inputProps.id, className: "navds-checkbox__label" },
44
+ react_1.default.createElement("div", { className: (0, classnames_1.default)("navds-checkbox__content", {
45
+ "sr-only": props.hideLabel,
46
+ }) },
47
+ react_1.default.createElement(__1.BodyShort, { as: "div", size: size }, props.children),
48
+ props.description && (react_1.default.createElement(Description, { as: "div", size: "small", className: "navds-checkbox__description" }, props.description))))));
48
49
  });
49
50
  exports.default = Checkbox;
@@ -14,13 +14,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  const react_1 = require("react");
15
15
  const useFormField_1 = require("../useFormField");
16
16
  const CheckboxGroup_1 = require("./CheckboxGroup");
17
+ const __1 = require("../..");
17
18
  /**
18
19
  * Handles props for Checkboxes in context with Fieldset and CheckboxGroup
19
20
  */
20
21
  const useCheckbox = (_a) => {
21
22
  var { children } = _a, props = __rest(_a, ["children"]);
22
23
  const checkboxGroup = (0, react_1.useContext)(CheckboxGroup_1.CheckboxGroupContext);
23
- const _b = (0, useFormField_1.useFormField)(props, "checkbox"), { inputProps } = _b, rest = __rest(_b, ["inputProps"]);
24
+ const _b = (0, useFormField_1.useFormField)((0, __1.omit)(props, ["description"]), "checkbox"), { inputProps } = _b, rest = __rest(_b, ["inputProps"]);
24
25
  if (checkboxGroup) {
25
26
  if (props.checked) {
26
27
  console.warn("`checked` is unsupported on <Checkbox> elements within a <CheckboxGroup>. Please set a `value` or `defaultValue` on <CheckboxGroup> instead.");
@@ -25,24 +25,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  const react_1 = __importStar(require("react"));
26
26
  const classnames_1 = __importDefault(require("classnames"));
27
27
  const __1 = require("../..");
28
- const ErrorMessage_1 = __importDefault(require("../ErrorMessage"));
29
28
  const useRadio_1 = require("./useRadio");
30
29
  const Radio = (0, react_1.forwardRef)((props, ref) => {
31
- const { inputProps, errorId, showErrorMsg, size, hasError, inputDescriptionId, } = (0, useRadio_1.useRadio)(props);
30
+ const { inputProps, size, hasError } = (0, useRadio_1.useRadio)(props);
31
+ const Description = size === "medium" ? __1.BodyShort : __1.Detail;
32
32
  return (react_1.default.createElement("div", { className: (0, classnames_1.default)(props.className, "navds-radio", `navds-radio--${size}`, {
33
33
  "navds-radio--error": hasError,
34
- "navds-radio--with-error-message": showErrorMsg,
35
- "navds-radio--with-description": !!props.description,
34
+ "navds-radio--disabled": inputProps.disabled,
36
35
  }) },
37
- react_1.default.createElement("input", Object.assign({}, (0, __1.omit)(props, [
38
- "children",
39
- "size",
40
- "error",
41
- "errorId",
42
- "description",
43
- ]), inputProps, { className: "navds-radio__input", ref: ref })),
44
- react_1.default.createElement(__1.BodyShort, { as: "label", htmlFor: inputProps.id, size: size, className: "navds-radio__label" }, props.children),
45
- props.description && (react_1.default.createElement(__1.BodyShort, { size: size, id: inputDescriptionId, className: "navds-radio__description" }, props.description)),
46
- 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))));
36
+ react_1.default.createElement("input", Object.assign({}, (0, __1.omit)(props, ["children", "size", "description"]), inputProps, { className: "navds-radio__input", ref: ref })),
37
+ react_1.default.createElement("label", { htmlFor: inputProps.id, className: "navds-radio__label" },
38
+ react_1.default.createElement("div", { className: "navds-radio__content" },
39
+ react_1.default.createElement(__1.BodyShort, { as: "div", size: size }, props.children),
40
+ props.description && (react_1.default.createElement(Description, { as: "div", size: "small", className: "navds-radio__description" }, props.description))))));
47
41
  });
48
42
  exports.default = Radio;
@@ -15,12 +15,13 @@ exports.useRadio = void 0;
15
15
  const react_1 = require("react");
16
16
  const useFormField_1 = require("../useFormField");
17
17
  const RadioGroup_1 = require("./RadioGroup");
18
+ const __1 = require("../..");
18
19
  /**
19
20
  * Handles props for Radios in context with Fieldset and RadioGroup
20
21
  */
21
22
  const useRadio = (props) => {
22
23
  const radioGroup = (0, react_1.useContext)(RadioGroup_1.RadioGroupContext);
23
- const _a = (0, useFormField_1.useFormField)(props, "radio"), { inputProps } = _a, rest = __rest(_a, ["inputProps"]);
24
+ const _a = (0, useFormField_1.useFormField)((0, __1.omit)(props, ["description"]), "radio"), { inputProps } = _a, rest = __rest(_a, ["inputProps"]);
24
25
  if (!radioGroup) {
25
26
  console.warn("<Radio> must be used inside <RadioGroup>.");
26
27
  }
@@ -46,11 +46,14 @@ exports.SearchFieldContext = react_1.default.createContext(null);
46
46
  const SearchField = (0, react_1.forwardRef)((props, ref) => {
47
47
  const { inputProps, errorId, showErrorMsg, hasError, size, inputDescriptionId, } = (0, useFormField_1.useFormField)(props, "searchfield");
48
48
  const { className, hideLabel, children, label, description, error } = props, rest = __rest(props, ["className", "hideLabel", "children", "label", "description", "error"]);
49
- return (react_1.default.createElement("div", Object.assign({ ref: ref }, (0, __1.omit)(rest, ["id", "error", "errorId", "size", "disabled"]), { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size !== null && size !== void 0 ? size : "medium"}`, "navds-search-field", { "navds-search-field--error": hasError }) }),
49
+ return (react_1.default.createElement("div", Object.assign({ ref: ref }, (0, __1.omit)(rest, ["id", "error", "errorId", "size", "disabled"]), { className: (0, classnames_1.default)(className, "navds-form-field", `navds-form-field--${size !== null && size !== void 0 ? size : "medium"}`, "navds-search-field", {
50
+ "navds-search-field--error": hasError,
51
+ "navds-search-field--disabled": !!inputProps.disabled,
52
+ }) }),
50
53
  react_1.default.createElement(__1.Label, { htmlFor: inputProps.id, size: size, as: "label", className: (0, classnames_1.default)("navds-text-field__label", {
51
54
  "sr-only": hideLabel,
52
55
  }) }, label),
53
- !!description && (react_1.default.createElement(__1.BodyShort, { className: (0, classnames_1.default)("navds-text-field__description", {
56
+ !!description && (react_1.default.createElement(__1.BodyShort, { as: "div", className: (0, classnames_1.default)("navds-text-field__description", {
54
57
  "sr-only": hideLabel,
55
58
  }), id: inputDescriptionId, size: size }, description)),
56
59
  react_1.default.createElement("div", { className: "navds-search-field__input-wrapper" },
@@ -44,6 +44,6 @@ const Loader = (0, react_1.forwardRef)((_a, ref) => {
44
44
  }), focusable: "false", viewBox: "0 0 50 50", preserveAspectRatio: "xMidYMid" }, rest),
45
45
  react_1.default.createElement("title", { id: id !== null && id !== void 0 ? id : `loader-${internalId}` }, title),
46
46
  react_1.default.createElement("circle", { className: "navds-loader__background", xmlns: "http://www.w3.org/2000/svg", cx: "25", cy: "25", r: "20", fill: "none", strokeWidth: "5" }),
47
- react_1.default.createElement("circle", { className: "navds-loader__foreground", cx: "25", cy: "25", r: "20", stroke: "var(--navds-color-gray-40)", fill: "none", strokeWidth: "5", strokeDasharray: "50 155", strokeLinecap: "round" })));
47
+ react_1.default.createElement("circle", { className: "navds-loader__foreground", cx: "25", cy: "25", r: "20", stroke: "var(--navds-global-color-gray-400)", fill: "none", strokeWidth: "5", strokeDasharray: "50 155", strokeLinecap: "round" })));
48
48
  });
49
49
  exports.default = Loader;