@indico-data/design-system 2.8.0 → 2.10.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 (38) hide show
  1. package/lib/index.css +216 -4
  2. package/lib/index.d.ts +41 -2
  3. package/lib/index.esm.css +216 -4
  4. package/lib/index.esm.js +19 -3
  5. package/lib/index.esm.js.map +1 -1
  6. package/lib/index.js +20 -2
  7. package/lib/index.js.map +1 -1
  8. package/lib/src/components/forms/input/Input.d.ts +2 -1
  9. package/lib/src/components/forms/passwordInput/PasswordInput.d.ts +16 -0
  10. package/lib/src/components/forms/passwordInput/PasswordInput.stories.d.ts +11 -0
  11. package/lib/src/components/forms/passwordInput/__tests__/PasswordInput.test.d.ts +1 -0
  12. package/lib/src/components/forms/passwordInput/index.d.ts +1 -0
  13. package/lib/src/components/forms/textarea/Textarea.d.ts +22 -0
  14. package/lib/src/components/forms/textarea/Textarea.stories.d.ts +11 -0
  15. package/lib/src/components/forms/textarea/__tests__/Textarea.test.d.ts +1 -0
  16. package/lib/src/components/forms/textarea/index.d.ts +1 -0
  17. package/lib/src/components/index.d.ts +2 -0
  18. package/lib/src/index.d.ts +2 -0
  19. package/package.json +1 -1
  20. package/src/components/forms/checkbox/styles/Checkbox.scss +1 -1
  21. package/src/components/forms/input/Input.stories.tsx +70 -69
  22. package/src/components/forms/input/Input.tsx +3 -1
  23. package/src/components/forms/input/styles/Input.scss +11 -3
  24. package/src/components/forms/passwordInput/PasswordInput.mdx +28 -0
  25. package/src/components/forms/passwordInput/PasswordInput.stories.tsx +269 -0
  26. package/src/components/forms/passwordInput/PasswordInput.tsx +82 -0
  27. package/src/components/forms/passwordInput/__tests__/PasswordInput.test.tsx +129 -0
  28. package/src/components/forms/passwordInput/index.ts +1 -0
  29. package/src/components/forms/passwordInput/styles/PasswordInput.scss +120 -0
  30. package/src/components/forms/textarea/Textarea.mdx +19 -0
  31. package/src/components/forms/textarea/Textarea.stories.tsx +363 -0
  32. package/src/components/forms/textarea/Textarea.tsx +85 -0
  33. package/src/components/forms/textarea/__tests__/Textarea.test.tsx +103 -0
  34. package/src/components/forms/textarea/index.ts +1 -0
  35. package/src/components/forms/textarea/styles/Textarea.scss +102 -0
  36. package/src/components/index.ts +2 -0
  37. package/src/index.ts +2 -0
  38. package/src/styles/index.scss +2 -0
package/lib/index.js CHANGED
@@ -18666,12 +18666,12 @@ const ErrorList = ({ errorList, name }) => {
18666
18666
  };
18667
18667
 
18668
18668
  const Input = (_a) => {
18669
- var { ref, label, name, placeholder, value, onChange, isRequired, isDisabled, errorList, helpText, iconName, hasHiddenLabel, isClearable } = _a, rest = __rest$1(_a, ["ref", "label", "name", "placeholder", "value", "onChange", "isRequired", "isDisabled", "errorList", "helpText", "iconName", "hasHiddenLabel", "isClearable"]);
18669
+ var { ref, label, name, placeholder, value, onChange, isRequired, isDisabled, errorList, helpText, iconName, hasHiddenLabel, isClearable, className = '' } = _a, rest = __rest$1(_a, ["ref", "label", "name", "placeholder", "value", "onChange", "isRequired", "isDisabled", "errorList", "helpText", "iconName", "hasHiddenLabel", "isClearable", "className"]);
18670
18670
  const hasErrors = errorList && errorList.length > 0;
18671
18671
  const handleClear = () => {
18672
18672
  onChange({ target: { value: '' } });
18673
18673
  };
18674
- return (jsxRuntime.jsxs("div", { className: "form-control", children: [jsxRuntime.jsx(Label, { label: label, name: name, isRequired: isRequired, hasHiddenLabel: hasHiddenLabel }), jsxRuntime.jsxs("div", { className: "input-wrapper", children: [iconName && (jsxRuntime.jsx(Icon, { name: iconName, "data-testid": `${name}-embedded-icon`, className: "embedded-icon" })), jsxRuntime.jsx("input", Object.assign({ ref: ref, "data-testid": `form-input-${name}`, name: name, type: "text", disabled: isDisabled, required: isRequired, placeholder: placeholder, value: value, onChange: onChange, className: `input ${hasErrors ? 'error' : ''} ${iconName ? 'input--has-icon' : ''}`, "aria-invalid": hasErrors, "aria-describedby": hasErrors || helpText ? `${name}-helper` : undefined, "aria-required": isRequired, "aria-label": label }, rest)), isClearable && (jsxRuntime.jsx(Icon, { name: "x-close", "data-testid": `${name}-clearable-icon`, size: "sm", onClick: handleClear, className: "clearable-icon" }))] }), hasErrors && jsxRuntime.jsx(ErrorList, { errorList: errorList, name: name }), helpText && (jsxRuntime.jsx("div", { "data-testid": `${name}-help-text`, className: "help-text", id: `${name}-helper`, children: helpText }))] }));
18674
+ return (jsxRuntime.jsxs("div", { className: "form-control", children: [jsxRuntime.jsx(Label, { label: label, name: name, isRequired: isRequired, hasHiddenLabel: hasHiddenLabel }), jsxRuntime.jsxs("div", { className: "input-wrapper", children: [iconName && (jsxRuntime.jsx(Icon, { name: iconName, "data-testid": `${name}-embedded-icon`, className: "embedded-icon" })), jsxRuntime.jsx("input", Object.assign({ ref: ref, "data-testid": `form-input-${name}`, name: name, type: "text", disabled: isDisabled, required: isRequired, placeholder: placeholder, value: value, onChange: onChange, className: `input ${hasErrors ? 'error' : ''} ${iconName ? 'input--has-icon' : ''} ${className}`, "aria-invalid": hasErrors, "aria-describedby": hasErrors || helpText ? `${name}-helper` : undefined, "aria-required": isRequired, "aria-label": label }, rest)), isClearable && (jsxRuntime.jsx(Icon, { name: "x-close", "data-testid": `${name}-clearable-icon`, size: "sm", onClick: handleClear, className: "clearable-icon" }))] }), hasErrors && jsxRuntime.jsx(ErrorList, { errorList: errorList, name: name }), helpText && (jsxRuntime.jsx("div", { "data-testid": `${name}-help-text`, className: "help-text", id: `${name}-helper`, children: helpText }))] }));
18675
18675
  };
18676
18676
 
18677
18677
  const Radio$2 = (_a) => {
@@ -18689,6 +18689,22 @@ const Toggle$1 = (_a) => {
18689
18689
  return (jsxRuntime.jsx("div", { className: "form-control", children: jsxRuntime.jsxs("div", { className: "toggle-wrapper", children: [jsxRuntime.jsx("input", Object.assign({ "data-testid": `form-toggle-input-${name}`, className: "toggle-input", type: "checkbox", id: id, checked: isChecked, name: name, value: value, disabled: isDisabled, ref: ref, onChange: onChange, tabIndex: 0, "aria-describedby": id, "aria-label": label }, rest)), jsxRuntime.jsx("label", { htmlFor: id, className: "switch" }), jsxRuntime.jsx("label", { className: 'toggle-label', htmlFor: id, children: label })] }) }));
18690
18690
  };
18691
18691
 
18692
+ const Textarea = (_a) => {
18693
+ var { ref, label, name, placeholder, value, onChange, isRequired, isDisabled, errorList, helpText, hasHiddenLabel, rows, cols, readonly, wrap, form, maxLength, autofocus } = _a, rest = __rest$1(_a, ["ref", "label", "name", "placeholder", "value", "onChange", "isRequired", "isDisabled", "errorList", "helpText", "hasHiddenLabel", "rows", "cols", "readonly", "wrap", "form", "maxLength", "autofocus"]);
18694
+ const hasErrors = errorList && errorList.length > 0;
18695
+ return (jsxRuntime.jsxs("div", { className: "form-control", children: [jsxRuntime.jsx(Label, { label: label, name: name, isRequired: isRequired, hasHiddenLabel: hasHiddenLabel }), jsxRuntime.jsx("div", { className: "textarea-wrapper", children: jsxRuntime.jsx("textarea", Object.assign({ ref: ref, rows: rows, cols: cols, autoFocus: autofocus, wrap: wrap, form: form, value: value, maxLength: maxLength, readOnly: readonly, "data-testid": `form-textarea-${name}`, name: name, disabled: isDisabled, required: isRequired, placeholder: placeholder, onChange: onChange, className: `textarea ${hasErrors ? 'error' : ''}`, "aria-invalid": hasErrors, "aria-describedby": hasErrors || helpText ? `${name}-helper` : undefined, "aria-required": isRequired, "aria-label": label }, rest)) }), hasErrors && jsxRuntime.jsx(ErrorList, { errorList: errorList, name: name }), helpText && (jsxRuntime.jsx("div", { "data-testid": `${name}-help-text`, className: "help-text", id: `${name}-helper`, children: helpText }))] }));
18696
+ };
18697
+
18698
+ const PasswordInput = (_a) => {
18699
+ var { label, name, placeholder, value, onChange, isRequired, isDisabled, errorList, helpText, hasHiddenLabel, hasShowPassword = true } = _a, rest = __rest$1(_a, ["label", "name", "placeholder", "value", "onChange", "isRequired", "isDisabled", "errorList", "helpText", "hasHiddenLabel", "hasShowPassword"]);
18700
+ const hasErrors = errorList && errorList.length > 0;
18701
+ const [showPassword, setShowPassword] = e.useState(false);
18702
+ const handleShowPassword = () => {
18703
+ setShowPassword((prevShowPassword) => !prevShowPassword);
18704
+ };
18705
+ return (jsxRuntime.jsxs("div", { className: "form-control", children: [jsxRuntime.jsx(Label, { label: label, name: name, isRequired: isRequired, hasHiddenLabel: hasHiddenLabel }), jsxRuntime.jsxs("div", { className: "password-input-wrapper", children: [jsxRuntime.jsx(Icon, { name: "lock", "data-testid": `${name}-embedded-icon`, className: "embedded-icon" }), jsxRuntime.jsx("input", Object.assign({ "data-testid": `form-password-input-${name}`, name: name, type: showPassword ? 'text' : 'password', disabled: isDisabled, required: isRequired, placeholder: placeholder, value: value, onChange: onChange, className: `password-input ${hasErrors ? 'error' : ''} password-input--has-icon`, "aria-invalid": hasErrors, "aria-describedby": hasErrors || helpText ? `${name}-helper` : undefined, "aria-required": isRequired, "aria-label": label }, rest)), hasShowPassword && (jsxRuntime.jsx(Icon, { name: showPassword ? 'fa-eye-slash' : 'eye', "data-testid": `${name}-${showPassword ? 'hide' : 'show'}-password-icon`, size: "md", onClick: handleShowPassword, className: "toggle-show-password-icon" }))] }), hasErrors && jsxRuntime.jsx(ErrorList, { errorList: errorList, name: name }), helpText && (jsxRuntime.jsx("div", { "data-testid": `${name}-help-text`, className: "help-text", id: `${name}-helper`, children: helpText }))] }));
18706
+ };
18707
+
18692
18708
  const StyledAccordion = styled__default.default.details `
18693
18709
  summary {
18694
18710
  display: inherit;
@@ -41544,6 +41560,7 @@ exports.NoInputDatePicker = NoInputDatePicker;
41544
41560
  exports.NumberInput = NumberInput;
41545
41561
  exports.PADDINGS = padding;
41546
41562
  exports.Pagination = Pagination;
41563
+ exports.PasswordInput = PasswordInput;
41547
41564
  exports.PercentageRing = PercentageRing;
41548
41565
  exports.Radio = Radio;
41549
41566
  exports.RadioGroup = RadioGroup;
@@ -41564,6 +41581,7 @@ exports.TYPOGRAPHY = typography;
41564
41581
  exports.Table = Table$1;
41565
41582
  exports.TextInput = TextInput;
41566
41583
  exports.TextTruncate = TextTruncate;
41584
+ exports.Textarea = Textarea;
41567
41585
  exports.Toggle = Toggle;
41568
41586
  exports.ToggleInput = Toggle$1;
41569
41587
  exports.Tooltip = Tooltip;