@luscii-healthtech/web-ui 21.4.2 → 22.0.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.
- package/dist/components/Input/Input.d.ts +2 -2
- package/dist/components/Input/StyledInput.d.ts +3 -2
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.development.js +0 -214
- package/dist/index.development.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/web-ui-tailwind.css +8 -10
- package/dist/web-ui.esm.js +1 -1
- package/dist/web-ui.esm.js.map +1 -1
- package/package.json +1 -4
- package/dist/components/Form/Form.d.ts +0 -30
- package/dist/components/Form/FormFieldCheckbox.d.ts +0 -9
- package/dist/components/Form/FormFieldCheckboxList.d.ts +0 -9
- package/dist/components/Form/FormFieldErrorMessages.d.ts +0 -8
- package/dist/components/Form/FormFieldLabeler.d.ts +0 -8
- package/dist/components/Form/FormImagePicker.d.ts +0 -9
- package/dist/components/Form/FormInput.d.ts +0 -14
- package/dist/components/Form/FormRadioGroup.d.ts +0 -13
- package/dist/components/Form/FormSelect.d.ts +0 -10
- package/dist/components/Form/FormTextarea.d.ts +0 -14
- package/dist/components/Form/form.transformer.d.ts +0 -3
- package/dist/components/Form/form.types.d.ts +0 -92
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { AllowedTextInputTypes } from "../Form/form.types";
|
|
3
2
|
import type { IconKey, IconProps } from "../Icons/types/IconProps.type";
|
|
4
|
-
import { FormFieldWidth } from "../Form/form.types";
|
|
5
3
|
import "./Input.css";
|
|
4
|
+
type AllowedTextInputTypes = Extract<React.HTMLInputTypeAttribute, "email" | "number" | "password" | "text">;
|
|
5
|
+
type FormFieldWidth = "sm" | "md" | "lg" | "xl" | "full";
|
|
6
6
|
/**
|
|
7
7
|
* It's very complicated to tap into the onChange events of inputs,
|
|
8
8
|
* so I omit the type it requires and add a easier one to deal with.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { AllowedTextInputTypes } from "../Form/form.types";
|
|
3
2
|
import type { IconProps } from "../Icons/types/IconProps.type";
|
|
4
|
-
|
|
3
|
+
type AllowedTextInputTypes = Extract<React.HTMLInputTypeAttribute, "email" | "number" | "password" | "text">;
|
|
4
|
+
type FormFieldWidth = "sm" | "md" | "lg" | "xl" | "full";
|
|
5
5
|
export declare const StyledInput: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "type"> & {
|
|
6
6
|
type?: AllowedTextInputTypes | undefined;
|
|
7
7
|
suffix?: string | undefined;
|
|
@@ -12,3 +12,4 @@ export declare const StyledInput: React.ForwardRefExoticComponent<Omit<Omit<Reac
|
|
|
12
12
|
isClearIconVisible?: boolean | undefined;
|
|
13
13
|
onClickClearField?: (() => void) | undefined;
|
|
14
14
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
15
|
+
export {};
|
|
@@ -8,7 +8,7 @@ import React from "react";
|
|
|
8
8
|
* bundle the svg assets used here, and we end up with some broken style.
|
|
9
9
|
*/
|
|
10
10
|
import "./Select.scss";
|
|
11
|
-
|
|
11
|
+
type FormFieldWidth = "sm" | "md" | "lg" | "xl" | "full";
|
|
12
12
|
interface OptionMinimal {
|
|
13
13
|
value: any;
|
|
14
14
|
label?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -77,7 +77,6 @@ export { ViewItem, type ViewItemProps } from "./components/ViewItem/ViewItem";
|
|
|
77
77
|
export { UnorderedList, UList } from "./components/UnorderedList/UnorderedList";
|
|
78
78
|
export { default as Text } from "./components/Text/Text";
|
|
79
79
|
export { SearchInput, type SearchInputProps, } from "./components/Input/SearchInput";
|
|
80
|
-
export { GenericForm, Form, type FormProps, type GenericFormProps, } from "./components/Form/Form";
|
|
81
80
|
export { Icon } from "./components/Icon";
|
|
82
81
|
export type { IconProps, IconKey, } from "./components/Icons/types/IconProps.type";
|
|
83
82
|
export * from "./components/Icons";
|
|
@@ -23,8 +23,6 @@ var debounce = require('lodash.debounce');
|
|
|
23
23
|
var reactLazyLoadImageComponent = require('react-lazy-load-image-component');
|
|
24
24
|
var ReactQuill = require('react-quill');
|
|
25
25
|
require('react-quill/dist/quill.snow.css');
|
|
26
|
-
var pick = require('lodash/pick');
|
|
27
|
-
var index_ie11 = require('react-hook-form/dist/index.ie11');
|
|
28
26
|
var react = require('@headlessui/react');
|
|
29
27
|
var solid = require('@heroicons/react/20/solid');
|
|
30
28
|
var ToggleGroup = require('@radix-ui/react-toggle-group');
|
|
@@ -63,7 +61,6 @@ var ReactSelect__default = /*#__PURE__*/_interopDefault(ReactSelect);
|
|
|
63
61
|
var groupBy__default = /*#__PURE__*/_interopDefault(groupBy);
|
|
64
62
|
var debounce__default = /*#__PURE__*/_interopDefault(debounce);
|
|
65
63
|
var ReactQuill__default = /*#__PURE__*/_interopDefault(ReactQuill);
|
|
66
|
-
var pick__default = /*#__PURE__*/_interopDefault(pick);
|
|
67
64
|
var ToggleGroup__namespace = /*#__PURE__*/_interopNamespace(ToggleGroup);
|
|
68
65
|
|
|
69
66
|
/******************************************************************************
|
|
@@ -5338,215 +5335,6 @@ UnorderedList.Item = Item;
|
|
|
5338
5335
|
UnorderedList.Padding = Padding$1;
|
|
5339
5336
|
UnorderedList.Indent = Indent;
|
|
5340
5337
|
|
|
5341
|
-
const FormFieldErrorMessages = (props) => {
|
|
5342
|
-
const { fieldName, error } = props;
|
|
5343
|
-
const fieldErrors = error[fieldName];
|
|
5344
|
-
if (!(fieldErrors === null || fieldErrors === void 0 ? void 0 : fieldErrors.types)) {
|
|
5345
|
-
return null;
|
|
5346
|
-
}
|
|
5347
|
-
return React__namespace.default.createElement("div", { className: "ui-mt-1 ui-space-y-1" }, Object.entries(fieldErrors.types).map(([errorKey, errorMessage]) => React__namespace.default.createElement(Text, { key: `${fieldName}-${errorKey}`, text: errorMessage, color: "red", type: "sm" })));
|
|
5348
|
-
};
|
|
5349
|
-
|
|
5350
|
-
function FormFieldLabeler({ name, children, label, fieldRequired, info, fieldErrors, decoratorClassname }) {
|
|
5351
|
-
return React__namespace.default.createElement(
|
|
5352
|
-
"div",
|
|
5353
|
-
{ className: classNames__default.default(decoratorClassname) },
|
|
5354
|
-
label && React__namespace.default.createElement(
|
|
5355
|
-
"label",
|
|
5356
|
-
{ className: "cweb-form-field-label ui-mb-1 ui-block", htmlFor: name, "data-is-required": fieldRequired },
|
|
5357
|
-
React__namespace.default.createElement(Text, { className: "cweb-form-field-label-text", inline: true, text: label })
|
|
5358
|
-
),
|
|
5359
|
-
React__namespace.default.createElement("fieldset", { className: "cweb-form-fieldset" }, children),
|
|
5360
|
-
info && React__namespace.default.createElement(Text, { className: "cweb-form-info-text ui-mt-1", type: "sm", color: "slate-500", text: info }),
|
|
5361
|
-
React__namespace.default.createElement(FormFieldErrorMessages, { fieldName: name, error: fieldErrors })
|
|
5362
|
-
);
|
|
5363
|
-
}
|
|
5364
|
-
|
|
5365
|
-
const hasError = (name, errors) => {
|
|
5366
|
-
return !!(name && errors && name in errors);
|
|
5367
|
-
};
|
|
5368
|
-
const isRequired = (options) => {
|
|
5369
|
-
return !!(options && "required" in options);
|
|
5370
|
-
};
|
|
5371
|
-
|
|
5372
|
-
const FormInput = React__namespace.default.forwardRef((_a, innerRef) => {
|
|
5373
|
-
var { control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname } = _a, fieldProps = __rest(_a, ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"]);
|
|
5374
|
-
return React__namespace.default.createElement(
|
|
5375
|
-
FormFieldLabeler,
|
|
5376
|
-
{ name, fieldErrors, fieldRequired, label, info, decoratorClassname },
|
|
5377
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: (field) => React__namespace.default.createElement(Input, Object.assign({}, fieldProps, field, { isError: hasError(name, fieldErrors), asFormField: true, ref: innerRef })) })
|
|
5378
|
-
);
|
|
5379
|
-
});
|
|
5380
|
-
|
|
5381
|
-
const FormRadioGroup = React__namespace.default.forwardRef((_a, innerRef) => {
|
|
5382
|
-
var { control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname } = _a, fieldProps = __rest(_a, ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"]);
|
|
5383
|
-
return React__namespace.default.createElement(
|
|
5384
|
-
FormFieldLabeler,
|
|
5385
|
-
{ name, fieldErrors, fieldRequired, label, info, decoratorClassname },
|
|
5386
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: ({ onChange, value }) => {
|
|
5387
|
-
return React__namespace.default.createElement(RadioGroupV2, Object.assign({}, fieldProps, { options: fieldProps.options.map((option) => Object.assign(Object.assign({}, option), { checked: value === option.value })), isError: hasError(name, fieldErrors), ref: innerRef, name, onChange }));
|
|
5388
|
-
} })
|
|
5389
|
-
);
|
|
5390
|
-
});
|
|
5391
|
-
|
|
5392
|
-
const FormSelect = React__namespace.default.forwardRef((_a, innerRef) => {
|
|
5393
|
-
var { control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname } = _a, selectProps = __rest(_a, ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"]);
|
|
5394
|
-
return React__namespace.default.createElement(
|
|
5395
|
-
FormFieldLabeler,
|
|
5396
|
-
{ name, fieldErrors, fieldRequired, label, info, decoratorClassname },
|
|
5397
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: (field) => React__namespace.default.createElement(Select, Object.assign({}, selectProps, field, { isError: hasError(name, fieldErrors), ref: innerRef })) })
|
|
5398
|
-
);
|
|
5399
|
-
});
|
|
5400
|
-
|
|
5401
|
-
const FormImagePicker = React__namespace.default.forwardRef((_a, innerRef) => {
|
|
5402
|
-
var { control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname } = _a, fieldProps = __rest(_a, ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"]);
|
|
5403
|
-
return React__namespace.default.createElement(
|
|
5404
|
-
FormFieldLabeler,
|
|
5405
|
-
{ name, fieldErrors, fieldRequired, label, info, decoratorClassname },
|
|
5406
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: (field) => {
|
|
5407
|
-
var _a2;
|
|
5408
|
-
if (fieldProps.preselectedMedia && !field.value) {
|
|
5409
|
-
field.onChange({
|
|
5410
|
-
target: { name, value: fieldProps.preselectedMedia }
|
|
5411
|
-
});
|
|
5412
|
-
}
|
|
5413
|
-
return React__namespace.default.createElement(MediaPicker, Object.assign({}, fieldProps, field, { media: fieldProps.media, onChange: (e) => {
|
|
5414
|
-
var _a3;
|
|
5415
|
-
field.onChange(e.target.value);
|
|
5416
|
-
(_a3 = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.onChange) === null || _a3 === void 0 ? void 0 : _a3.call(fieldProps, e);
|
|
5417
|
-
}, preselectedMedia: (_a2 = field.value) !== null && _a2 !== void 0 ? _a2 : fieldProps.preselectedMedia, ref: innerRef }));
|
|
5418
|
-
} })
|
|
5419
|
-
);
|
|
5420
|
-
});
|
|
5421
|
-
|
|
5422
|
-
const FormFieldCheckbox = React__namespace.default.forwardRef((_a, innerRef) => {
|
|
5423
|
-
var { control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname } = _a, fieldProps = __rest(_a, ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"]);
|
|
5424
|
-
return React__namespace.default.createElement(
|
|
5425
|
-
FormFieldLabeler,
|
|
5426
|
-
{ name, fieldErrors, fieldRequired, label: "", info, decoratorClassname },
|
|
5427
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: ({ onChange, value }) => {
|
|
5428
|
-
return React__namespace.default.createElement(Checkbox, Object.assign({}, fieldProps, {
|
|
5429
|
-
// Might be a tech debt due to how we named this
|
|
5430
|
-
// but the field type is always a checkbox, its shape
|
|
5431
|
-
// or style is what changes. The name `variant` was added
|
|
5432
|
-
// to the props to avoid confusion.
|
|
5433
|
-
type: fieldProps.variant,
|
|
5434
|
-
isChecked: value,
|
|
5435
|
-
error: hasError(name, fieldErrors),
|
|
5436
|
-
ref: innerRef,
|
|
5437
|
-
name,
|
|
5438
|
-
onChange: (event) => {
|
|
5439
|
-
onChange(event.target.checked);
|
|
5440
|
-
},
|
|
5441
|
-
text: label,
|
|
5442
|
-
value
|
|
5443
|
-
}));
|
|
5444
|
-
} })
|
|
5445
|
-
);
|
|
5446
|
-
});
|
|
5447
|
-
|
|
5448
|
-
const FormFieldCheckboxList = ({ control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname, fieldProps = { groups: [], onChange: () => void 0 } }) => {
|
|
5449
|
-
return React__namespace.default.createElement(
|
|
5450
|
-
FormFieldLabeler,
|
|
5451
|
-
{ name, fieldErrors, fieldRequired, label, info, decoratorClassname },
|
|
5452
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: ({ onChange, value }) => {
|
|
5453
|
-
const { className } = fieldProps;
|
|
5454
|
-
const [checkboxListValues, setCheckboxListValues] = React.useState(value);
|
|
5455
|
-
React.useEffect(() => {
|
|
5456
|
-
setCheckboxListValues(value);
|
|
5457
|
-
}, [value]);
|
|
5458
|
-
return React__namespace.default.createElement(CheckboxList, { groups: checkboxListValues, className, onChange: (event) => {
|
|
5459
|
-
setCheckboxListValues((previousState) => {
|
|
5460
|
-
const newState = previousState.map((group) => {
|
|
5461
|
-
const newItems = group.items.map((item) => {
|
|
5462
|
-
if (item.id === event.id) {
|
|
5463
|
-
return Object.assign(Object.assign({}, item), { isChecked: event.newCheckedValue });
|
|
5464
|
-
} else {
|
|
5465
|
-
return item;
|
|
5466
|
-
}
|
|
5467
|
-
});
|
|
5468
|
-
return Object.assign(Object.assign({}, group), { items: newItems });
|
|
5469
|
-
});
|
|
5470
|
-
onChange(newState);
|
|
5471
|
-
return newState;
|
|
5472
|
-
});
|
|
5473
|
-
} });
|
|
5474
|
-
} })
|
|
5475
|
-
);
|
|
5476
|
-
};
|
|
5477
|
-
|
|
5478
|
-
const FormTextarea = React__namespace.default.forwardRef((_a, innerRef) => {
|
|
5479
|
-
var { control, name, rules, fieldErrors, fieldRequired, label, info, decoratorClassname } = _a, fieldProps = __rest(_a, ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"]);
|
|
5480
|
-
return React__namespace.default.createElement(
|
|
5481
|
-
FormFieldLabeler,
|
|
5482
|
-
{ name, fieldErrors, fieldRequired, label, info, decoratorClassname },
|
|
5483
|
-
React__namespace.default.createElement(index_ie11.Controller, { name, control, rules, render: (field) => React__namespace.default.createElement(Textarea, Object.assign({}, fieldProps, field, { isError: hasError(name, fieldErrors), ref: innerRef })) })
|
|
5484
|
-
);
|
|
5485
|
-
});
|
|
5486
|
-
|
|
5487
|
-
function GenericForm({ fields, onValid, onError, defaultValues }) {
|
|
5488
|
-
const useFormReturn = index_ie11.useForm({
|
|
5489
|
-
criteriaMode: "all",
|
|
5490
|
-
defaultValues
|
|
5491
|
-
});
|
|
5492
|
-
React.useEffect(() => {
|
|
5493
|
-
if (defaultValues) {
|
|
5494
|
-
useFormReturn.reset(defaultValues);
|
|
5495
|
-
}
|
|
5496
|
-
}, [defaultValues]);
|
|
5497
|
-
const { handleSubmit } = useFormReturn;
|
|
5498
|
-
return React__namespace.default.createElement(
|
|
5499
|
-
"div",
|
|
5500
|
-
{ className: "ui-space-y-6" },
|
|
5501
|
-
React__namespace.default.createElement(Form, { fields, useFormReturn }),
|
|
5502
|
-
React__namespace.default.createElement(PrimaryButton, { onClick: handleSubmit(onValid, onError), text: "submit" })
|
|
5503
|
-
);
|
|
5504
|
-
}
|
|
5505
|
-
function Form({ fields, useFormReturn }) {
|
|
5506
|
-
return React__namespace.default.createElement("div", { className: "ui-space-y-6" }, fields.map((props) => FormFieldMapper(props, useFormReturn)));
|
|
5507
|
-
}
|
|
5508
|
-
function FormFieldMapper(formFieldProps, useFormReturn) {
|
|
5509
|
-
const { type, name, options, fieldProps = {} } = formFieldProps;
|
|
5510
|
-
const decoratorProps = pick__default.default(formFieldProps, [
|
|
5511
|
-
"label",
|
|
5512
|
-
"info",
|
|
5513
|
-
"decoratorClassname"
|
|
5514
|
-
]);
|
|
5515
|
-
const { control, formState: { errors } } = useFormReturn;
|
|
5516
|
-
switch (type) {
|
|
5517
|
-
case "row":
|
|
5518
|
-
return React__namespace.default.createElement(FlexRow, { key: formFieldProps.key }, formFieldProps.fields.map((field) => FormFieldMapper(Object.assign({ decoratorClassname: "ui-flex-auto" }, field), useFormReturn)));
|
|
5519
|
-
case "text":
|
|
5520
|
-
case "number":
|
|
5521
|
-
case "email":
|
|
5522
|
-
case "password":
|
|
5523
|
-
return React__namespace.default.createElement(FormInput, Object.assign({ key: name, name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors }, fieldProps, { control, rules: options, type }));
|
|
5524
|
-
case "select":
|
|
5525
|
-
return React__namespace.default.createElement(FormSelect, Object.assign({ key: name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors }, fieldProps, { control, rules: options, name }));
|
|
5526
|
-
case "mediaPicker":
|
|
5527
|
-
return React__namespace.default.createElement(FormImagePicker, Object.assign({ key: name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors }, fieldProps, { control, rules: options, name }));
|
|
5528
|
-
case "radioGroup": {
|
|
5529
|
-
return React__namespace.default.createElement(FormRadioGroup, Object.assign({ key: name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors }, fieldProps, { name, rules: options, control }));
|
|
5530
|
-
}
|
|
5531
|
-
case "checkbox": {
|
|
5532
|
-
return React__namespace.default.createElement(FormFieldCheckbox, Object.assign({ key: name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors }, fieldProps, { type: "checkbox", name, rules: options, control }));
|
|
5533
|
-
}
|
|
5534
|
-
case "checkboxlist": {
|
|
5535
|
-
return React__namespace.default.createElement(FormFieldCheckboxList, Object.assign({ key: name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors, type: "checkboxlist", name, rules: options, control, fieldProps }));
|
|
5536
|
-
}
|
|
5537
|
-
case "textarea": {
|
|
5538
|
-
return React__namespace.default.createElement(FormTextarea, Object.assign({ key: name }, decoratorProps, { fieldRequired: isRequired(options), fieldErrors: errors, type: "textarea", name, rules: options, control }, fieldProps));
|
|
5539
|
-
}
|
|
5540
|
-
case "title": {
|
|
5541
|
-
return React__namespace.default.createElement(Title, Object.assign({ key: name }, fieldProps));
|
|
5542
|
-
}
|
|
5543
|
-
case "void":
|
|
5544
|
-
return null;
|
|
5545
|
-
default:
|
|
5546
|
-
return null;
|
|
5547
|
-
}
|
|
5548
|
-
}
|
|
5549
|
-
|
|
5550
5338
|
const FullPageModalHeader = ({ primaryButtonProps, actions, title }) => {
|
|
5551
5339
|
return React__namespace.default.createElement(
|
|
5552
5340
|
"div",
|
|
@@ -6160,12 +5948,10 @@ exports.FirstAidKitIcon = FirstAidKitIcon;
|
|
|
6160
5948
|
exports.FlagIcon = FlagIcon;
|
|
6161
5949
|
exports.FlexColumn = FlexColumn;
|
|
6162
5950
|
exports.FlexRow = FlexRow;
|
|
6163
|
-
exports.Form = Form;
|
|
6164
5951
|
exports.ForwardIcon = ForwardIcon;
|
|
6165
5952
|
exports.FullPageModal = FullPageModal;
|
|
6166
5953
|
exports.GearColoredIcon = GearColoredIcon;
|
|
6167
5954
|
exports.GearIcon = CogwheelIcon;
|
|
6168
|
-
exports.GenericForm = GenericForm;
|
|
6169
5955
|
exports.GroupColoredIcon = GroupColoredIcon;
|
|
6170
5956
|
exports.GroupIcon = GroupIcon;
|
|
6171
5957
|
exports.GroupOfThreeIcon = GroupOfThreeIcon;
|