@luscii-healthtech/web-ui 2.0.0 → 2.3.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 (57) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +10 -0
  2. package/dist/components/Accordion/AccordionItem.d.ts +9 -0
  3. package/dist/components/Form/Form.d.ts +9 -0
  4. package/dist/components/Form/FormFieldDecorator.d.ts +8 -0
  5. package/dist/components/Form/FormInput.d.ts +3 -0
  6. package/dist/components/Form/FormRadioGroup.d.ts +3 -0
  7. package/dist/components/Form/FormSelect.d.ts +3 -0
  8. package/dist/components/Form/form.transformer.d.ts +20 -0
  9. package/dist/components/Form/form.types.d.ts +54 -0
  10. package/dist/components/Input/Input.d.ts +8 -7
  11. package/dist/components/Input/SearchInput.d.ts +1 -1
  12. package/dist/components/List/List.d.ts +1 -1
  13. package/dist/components/List/List.types.d.ts +1 -0
  14. package/dist/components/List/ListItemSkeleton.d.ts +2 -0
  15. package/dist/components/List/ListSkeleton.d.ts +7 -0
  16. package/dist/components/Radio/Radio.d.ts +3 -0
  17. package/dist/components/Radio/RadioV2.d.ts +17 -0
  18. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -0
  19. package/dist/components/RadioGroup/RadioGroupV2.d.ts +9 -0
  20. package/dist/components/Select/Select.d.ts +3 -0
  21. package/dist/components/Select/SelectV2.d.ts +31 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/web-ui-tailwind.css +50 -0
  24. package/dist/web-ui.cjs.development.js +604 -40
  25. package/dist/web-ui.cjs.development.js.map +1 -1
  26. package/dist/web-ui.cjs.production.min.js +1 -1
  27. package/dist/web-ui.cjs.production.min.js.map +1 -1
  28. package/dist/web-ui.esm.js +604 -41
  29. package/dist/web-ui.esm.js.map +1 -1
  30. package/package.json +6 -3
  31. package/src/components/Accordion/Accordion.tsx +33 -0
  32. package/src/components/Accordion/AccordionItem.tsx +50 -0
  33. package/src/components/Form/Form.tsx +106 -0
  34. package/src/components/Form/FormFieldDecorator.tsx +66 -0
  35. package/src/components/Form/FormInput.tsx +47 -0
  36. package/src/components/Form/FormRadioGroup.tsx +23 -0
  37. package/src/components/Form/FormSelect.tsx +32 -0
  38. package/src/components/Form/form.transformer.ts +9 -0
  39. package/src/components/Form/form.types.ts +132 -0
  40. package/src/components/Input/Input.tsx +160 -165
  41. package/src/components/Input/SearchInput.tsx +13 -3
  42. package/src/components/List/List.tsx +13 -9
  43. package/src/components/List/List.types.ts +1 -0
  44. package/src/components/List/ListItemSkeleton.tsx +26 -0
  45. package/src/components/List/ListSkeleton.scss +5 -0
  46. package/src/components/List/ListSkeleton.tsx +30 -0
  47. package/src/components/Radio/Radio.js +3 -0
  48. package/src/components/Radio/RadioV2.css +15 -0
  49. package/src/components/Radio/RadioV2.tsx +87 -0
  50. package/src/components/RadioGroup/RadioGroup.js +3 -0
  51. package/src/components/RadioGroup/RadioGroupV2.tsx +35 -0
  52. package/src/components/Select/Select.tsx +38 -12
  53. package/src/components/Select/SelectV2.tsx +171 -0
  54. package/src/index.tsx +3 -0
  55. package/src/styles/_skeleton.scss +63 -0
  56. package/src/types/general.types.ts +1 -1
  57. package/src/components/Select/Select.examples.md +0 -161
@@ -18,6 +18,8 @@ import { Editor } from 'react-draft-wysiwyg';
18
18
  import draftToHtml from 'draftjs-to-html';
19
19
  import htmlToDraft from 'html-to-draftjs';
20
20
  import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
21
+ import { Controller, useForm } from 'react-hook-form';
22
+ import { ErrorMessage } from '@hookform/error-message';
21
23
 
22
24
  function styleInject(css, ref) {
23
25
  if ( ref === void 0 ) ref = {};
@@ -1854,7 +1856,7 @@ var CrossIcon = function CrossIcon(props) {
1854
1856
  var css_248z$c = ".input::-ms-clear {\n display: none;\n}";
1855
1857
  styleInject(css_248z$c);
1856
1858
 
1857
- var _excluded$6 = ["withSuffix", "withPrefix", "className", "clearable", "type", "isDisabled", "icon", "setRef", "name", "value", "onChange"];
1859
+ var _excluded$6 = ["withSuffix", "withPrefix", "className", "clearable", "type", "isDisabled", "icon", "name", "value", "onChange", "isError"];
1858
1860
  // Don't know why yet but it can be fixed later.
1859
1861
 
1860
1862
  var INPUT_TYPES = {
@@ -1863,8 +1865,7 @@ var INPUT_TYPES = {
1863
1865
  PASSWORD: "password",
1864
1866
  TEXT: "text"
1865
1867
  };
1866
-
1867
- var Input = function Input(_ref) {
1868
+ var Input = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1868
1869
  var _ref$withSuffix = _ref.withSuffix,
1869
1870
  withSuffix = _ref$withSuffix === void 0 ? "" : _ref$withSuffix,
1870
1871
  _ref$withPrefix = _ref.withPrefix,
@@ -1877,10 +1878,11 @@ var Input = function Input(_ref) {
1877
1878
  _ref$isDisabled = _ref.isDisabled,
1878
1879
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
1879
1880
  icon = _ref.icon,
1880
- setRef = _ref.setRef,
1881
1881
  name = _ref.name,
1882
- value = _ref.value,
1882
+ _ref$value = _ref.value,
1883
+ value = _ref$value === void 0 ? "" : _ref$value,
1883
1884
  onChange = _ref.onChange,
1885
+ isError = _ref.isError,
1884
1886
  otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$6);
1885
1887
 
1886
1888
  var hasNoExtraContent = withPrefix === "" && withSuffix === "";
@@ -1889,7 +1891,6 @@ var Input = function Input(_ref) {
1889
1891
  innerValue = _useState[0],
1890
1892
  setInnerValue = _useState[1];
1891
1893
 
1892
- var inputRef = useRef(null);
1893
1894
  useEffect(function () {
1894
1895
  setInnerValue(value);
1895
1896
  }, [value]);
@@ -1931,13 +1932,13 @@ var Input = function Input(_ref) {
1931
1932
  }, /*#__PURE__*/React__default.createElement("div", {
1932
1933
  className: "flex flex-row"
1933
1934
  }, /*#__PURE__*/React__default.createElement("span", {
1934
- className: classNames("h-11", {
1935
+ className: classNames("h-11 border-t border-b border-solid border-input-border", {
1935
1936
  hidden: hasNoExtraContent,
1936
1937
  "order-1": withPrefix !== "",
1937
1938
  "order-2": withSuffix !== "",
1938
1939
  "rounded-l border-l": withPrefix !== "",
1939
1940
  "rounded-r border-r": withSuffix !== ""
1940
- }, "border-t border-b border-solid border-input-border", "flex flex-col items-center p-3", "text-sm", "text-slate-500", "bg-main-background")
1941
+ }, "flex flex-col items-center p-3", "text-sm", "text-slate-500", "bg-main-background")
1941
1942
  }, withSuffix || withPrefix), icon && /*#__PURE__*/React__default.createElement("div", {
1942
1943
  className: "absolute top-1/2 left-4",
1943
1944
  style: {
@@ -1950,10 +1951,7 @@ var Input = function Input(_ref) {
1950
1951
  name: name,
1951
1952
  value: innerValue,
1952
1953
  onChange: handleChangeEvent,
1953
- ref: function ref(element) {
1954
- inputRef.current = element;
1955
- element && (setRef == null ? void 0 : setRef(element));
1956
- },
1954
+ ref: ref,
1957
1955
  size: otherProps.maxLength,
1958
1956
  type: type,
1959
1957
  disabled: isDisabled,
@@ -1963,10 +1961,14 @@ var Input = function Input(_ref) {
1963
1961
  }, {
1964
1962
  "text-slate-400 bg-slate-50": isDisabled,
1965
1963
  "text-slate-700": !isDisabled,
1966
- "border-input-border": !isDisabled,
1964
+ "border-input-border": !isDisabled && !isError,
1967
1965
  "hover:border-input-border-dark": !isDisabled,
1966
+ "border-red-700": isError,
1967
+ "focus:outline-negative": isError,
1968
+ "focus:border-blue-800": !isError,
1969
+ "focus:outline-primary": !isError,
1968
1970
  "bg-white": !isDisabled
1969
- }, "h-11", "p-2", "border", "text-sm", "placeholder-slate-500", "border-solid", "focus:outline-primary", "transition-colors", "duration-300", "focus:border-blue-800", {
1971
+ }, "h-11", "p-2", "border", "text-sm", "placeholder-slate-500", "border-solid", "transition-colors", "duration-300", {
1970
1972
  "z-10": withSuffix !== "" || withPrefix !== "",
1971
1973
  rounded: hasNoExtraContent,
1972
1974
  "rounded-l": withSuffix !== "",
@@ -1986,7 +1988,7 @@ var Input = function Input(_ref) {
1986
1988
  }),
1987
1989
  onClick: clearField
1988
1990
  }))));
1989
- };
1991
+ });
1990
1992
 
1991
1993
  var Line = function Line(_ref) {
1992
1994
  var left = _ref.left,
@@ -2330,6 +2332,10 @@ function generateCustomStyles(hasError, isIE11) {
2330
2332
  }
2331
2333
  };
2332
2334
  }
2335
+ /**
2336
+ * @deprecated: use SelectV2 instead
2337
+ */
2338
+
2333
2339
 
2334
2340
  var CustomSelect = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
2335
2341
  var className = props.className,
@@ -2712,6 +2718,69 @@ var ListItem = function ListItem(_ref) {
2712
2718
  }), accessories);
2713
2719
  };
2714
2720
 
2721
+ var css_248z$g = ".list-skeleton .skeleton-box {\n display: inline-block;\n height: 1em;\n position: relative;\n overflow: hidden;\n background-color: #cbd5e1;\n border-radius: 3px;\n}\n\n.list-skeleton .skeleton-box::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));\n animation: shimmer 800ms infinite;\n content: \"\";\n}\n\n.list-skeleton .skeleton-box.is-circle {\n border-radius: 50%;\n}\n\n.list-skeleton .skeleton-box.is-button {\n background-color: #e2e8f0;\n border-radius: 9999px;\n}\n\n.list-skeleton .skeleton-box.is-button::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background-image: linear-gradient(90deg, rgba(221, 221, 221, 0) 0, rgba(221, 221, 221, 0.2) 20%, rgba(221, 221, 221, 0.5) 60%, rgba(221, 221, 221, 0));\n animation: shimmer 800ms infinite;\n content: \"\";\n}\n\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n";
2722
+ styleInject(css_248z$g);
2723
+
2724
+ var ListItemSkeleton = function ListItemSkeleton() {
2725
+ return /*#__PURE__*/React__default.createElement("div", {
2726
+ className: "flex flex-row items-center p-4"
2727
+ }, /*#__PURE__*/React__default.createElement("div", {
2728
+ className: "skeleton-box is-circle mr-2",
2729
+ style: {
2730
+ width: 32 + "px",
2731
+ height: 32 + "px"
2732
+ }
2733
+ }), /*#__PURE__*/React__default.createElement("div", {
2734
+ className: "flex flex-col"
2735
+ }, /*#__PURE__*/React__default.createElement("div", {
2736
+ className: "skeleton-box mb-1",
2737
+ style: {
2738
+ width: 160 + "px",
2739
+ height: 14 + "px"
2740
+ }
2741
+ }), /*#__PURE__*/React__default.createElement("div", {
2742
+ className: "skeleton-box",
2743
+ style: {
2744
+ width: 110 + "px",
2745
+ height: 14 + "px"
2746
+ }
2747
+ })), /*#__PURE__*/React__default.createElement("div", {
2748
+ className: "skeleton-box is-button ml-auto rounded-full",
2749
+ style: {
2750
+ width: 24 + "px",
2751
+ height: 24 + "px"
2752
+ }
2753
+ }));
2754
+ };
2755
+
2756
+ var ListSkeleton = function ListSkeleton(_ref) {
2757
+ var items = _ref.items;
2758
+ var skeletonItems = Array.from({
2759
+ length: items || 5
2760
+ }, function (_, i) {
2761
+ return /*#__PURE__*/React__default.createElement(ListItemSkeleton, {
2762
+ key: i
2763
+ });
2764
+ });
2765
+ return /*#__PURE__*/React__default.createElement("div", {
2766
+ className: "flex flex-col divide-y divide-slate-200 bg-white border-slate-50 border rounded-lg shadow list-skeleton"
2767
+ }, /*#__PURE__*/React__default.createElement("div", {
2768
+ className: "flex flex-row items-center px-4 py-2"
2769
+ }, /*#__PURE__*/React__default.createElement("div", {
2770
+ className: "skeleton-box",
2771
+ style: {
2772
+ width: 160 + "px",
2773
+ height: 14 + "px"
2774
+ }
2775
+ }), /*#__PURE__*/React__default.createElement("div", {
2776
+ className: "skeleton-box is-button ml-auto",
2777
+ style: {
2778
+ width: 110 + "px",
2779
+ height: 44 + "px"
2780
+ }
2781
+ })), skeletonItems);
2782
+ };
2783
+
2715
2784
  var List = function List(_ref) {
2716
2785
  var title = _ref.title,
2717
2786
  headerButton = _ref.headerButton,
@@ -2719,7 +2788,8 @@ var List = function List(_ref) {
2719
2788
  items = _ref.items,
2720
2789
  onAssetLoadError = _ref.onAssetLoadError,
2721
2790
  onDragEnd = _ref.onDragEnd,
2722
- emptyStateMessage = _ref.emptyStateMessage;
2791
+ emptyStateMessage = _ref.emptyStateMessage,
2792
+ isLoading = _ref.isLoading;
2723
2793
  var listRef = useRef(null);
2724
2794
  var dragulaRef = useRef(null);
2725
2795
  var hasHeader = !!(title || headerButton);
@@ -2769,6 +2839,13 @@ var List = function List(_ref) {
2769
2839
  };
2770
2840
 
2771
2841
  var roundTop = !hasHeader || hasHeader && headerTransparent;
2842
+
2843
+ if (isLoading) {
2844
+ return /*#__PURE__*/React__default.createElement(ListSkeleton, {
2845
+ items: items.length
2846
+ });
2847
+ }
2848
+
2772
2849
  return /*#__PURE__*/React__default.createElement("div", {
2773
2850
  "data-test-id": "list-component"
2774
2851
  }, (title || headerButton) && /*#__PURE__*/React__default.createElement("div", {
@@ -3073,8 +3150,8 @@ function handleImplicitSelect(implicitSelected, event, list, property) {
3073
3150
  return newList;
3074
3151
  }
3075
3152
 
3076
- var css_248z$g = ".cweb-multiselect {\n display: flex;\n}\n\n.cweb-multiselect .cweb-multiselect-checkbox {\n margin-bottom: 0px;\n margin-top: 0.5rem;\n width: 100%;\n text-transform: capitalize;\n}\n\n.cweb-multiselect .cweb-switch-wrapper {\n display: flex;\n}\n\n.cweb-multiselect .cweb-switch-wrapper .cweb-multiselect-switch {\n width: 50px;\n}\n\n.cweb-multiselect .cweb-switch-wrapper .cweb-multiselect-switch .cweb-checkbox.type-switch.is-checked .cweb-checkbox-icon-container {\n background-color: #6abfa5;\n}\n\n.cweb-multiselect .cweb-switch-wrapper .cweb-switch-title {\n width: 100px;\n color: #737373;\n font-size: 16px;\n line-height: 1.8em;\n}\n";
3077
- styleInject(css_248z$g);
3153
+ var css_248z$h = ".cweb-multiselect {\n display: flex;\n}\n\n.cweb-multiselect .cweb-multiselect-checkbox {\n margin-bottom: 0px;\n margin-top: 0.5rem;\n width: 100%;\n text-transform: capitalize;\n}\n\n.cweb-multiselect .cweb-switch-wrapper {\n display: flex;\n}\n\n.cweb-multiselect .cweb-switch-wrapper .cweb-multiselect-switch {\n width: 50px;\n}\n\n.cweb-multiselect .cweb-switch-wrapper .cweb-multiselect-switch .cweb-checkbox.type-switch.is-checked .cweb-checkbox-icon-container {\n background-color: #6abfa5;\n}\n\n.cweb-multiselect .cweb-switch-wrapper .cweb-switch-title {\n width: 100px;\n color: #737373;\n font-size: 16px;\n line-height: 1.8em;\n}\n";
3154
+ styleInject(css_248z$h);
3078
3155
 
3079
3156
  function MultiSelect(_ref) {
3080
3157
  var checkboxList = _ref.checkboxList,
@@ -3420,8 +3497,8 @@ NotificationBanner.defaultProps = {
3420
3497
  onButtonClick: undefined
3421
3498
  };
3422
3499
 
3423
- var css_248z$h = ".cweb-page {\n width: 100%;\n max-width: 1140px;\n margin: 32px auto 0 auto;\n}\n\n.cweb-page .cweb-page-breadcrumbs {\n margin-bottom: 16px;\n}\n\n.cweb-page .page-spinner {\n margin-left: 8px;\n margin-bottom: 4px;\n}\n\n.cweb-page .page-spinner img {\n width: 21px;\n}\n\n.cweb-page .cweb-page-header {\n display: flex;\n align-items: center;\n width: 100%;\n flex-grow: 0;\n}\n\n.cweb-page .cweb-page-header .cweb-page-title {\n display: inline;\n}\n\n.cweb-page .cweb-page-header.accessory-right {\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.cweb-page .cweb-page-header.accessory-bottom {\n flex-direction: column;\n align-items: flex-start;\n}\n\n@media screen and (max-width: 426px) {\n .cweb-page .cweb-page-header.accessory-bottom {\n max-width: 75vw;\n }\n\n .cweb-page .cweb-page-header.accessory-bottom img {\n max-width: 10vw;\n }\n\n .cweb-page .cweb-page-header.accessory-bottom button p {\n font-size: 4vw;\n }\n}\n\n.cweb-page .cweb-page-header.accessory-bottom .cweb-page-title {\n margin-bottom: 8px;\n display: inline;\n}\n";
3424
- styleInject(css_248z$h);
3500
+ var css_248z$i = ".cweb-page {\n width: 100%;\n max-width: 1140px;\n margin: 32px auto 0 auto;\n}\n\n.cweb-page .cweb-page-breadcrumbs {\n margin-bottom: 16px;\n}\n\n.cweb-page .page-spinner {\n margin-left: 8px;\n margin-bottom: 4px;\n}\n\n.cweb-page .page-spinner img {\n width: 21px;\n}\n\n.cweb-page .cweb-page-header {\n display: flex;\n align-items: center;\n width: 100%;\n flex-grow: 0;\n}\n\n.cweb-page .cweb-page-header .cweb-page-title {\n display: inline;\n}\n\n.cweb-page .cweb-page-header.accessory-right {\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.cweb-page .cweb-page-header.accessory-bottom {\n flex-direction: column;\n align-items: flex-start;\n}\n\n@media screen and (max-width: 426px) {\n .cweb-page .cweb-page-header.accessory-bottom {\n max-width: 75vw;\n }\n\n .cweb-page .cweb-page-header.accessory-bottom img {\n max-width: 10vw;\n }\n\n .cweb-page .cweb-page-header.accessory-bottom button p {\n font-size: 4vw;\n }\n}\n\n.cweb-page .cweb-page-header.accessory-bottom .cweb-page-title {\n margin-bottom: 8px;\n display: inline;\n}\n";
3501
+ styleInject(css_248z$i);
3425
3502
 
3426
3503
  /**
3427
3504
  * Renders page's content, if `isLoading` is false otherwise shows loading indicator.
@@ -3601,8 +3678,8 @@ var Steps = function Steps(_ref) {
3601
3678
  }, renderedSteps);
3602
3679
  };
3603
3680
 
3604
- var css_248z$i = ".cweb-crud-page {\n width: 100%;\n margin: 36px auto 0;\n}\n\n.cweb-crud-page-form-container {\n background-color: #fff;\n border-radius: 8px;\n padding: 24px;\n margin-top: 16px;\n}\n\n.cweb-crud-page-button-line {\n border-top: 1px solid #eeeeee;\n padding-top: 16px;\n margin-top: 16px;\n}\n\n.cweb-crud-page-loading-container {\n height: 90vh;\n /* puting this in 100vh causes an overflow bug */\n overflow-y: hidden;\n position: relative;\n}\n\n.cweb-crud-page-loading-container .crud-page-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n";
3605
- styleInject(css_248z$i);
3681
+ var css_248z$j = ".cweb-crud-page {\n width: 100%;\n margin: 36px auto 0;\n}\n\n.cweb-crud-page-form-container {\n background-color: #fff;\n border-radius: 8px;\n padding: 24px;\n margin-top: 16px;\n}\n\n.cweb-crud-page-button-line {\n border-top: 1px solid #eeeeee;\n padding-top: 16px;\n margin-top: 16px;\n}\n\n.cweb-crud-page-loading-container {\n height: 90vh;\n /* puting this in 100vh causes an overflow bug */\n overflow-y: hidden;\n position: relative;\n}\n\n.cweb-crud-page-loading-container .crud-page-loader {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n";
3682
+ styleInject(css_248z$j);
3606
3683
 
3607
3684
  function CRUDPage(_ref) {
3608
3685
  var _ref$dataTestId = _ref.dataTestId,
@@ -3808,8 +3885,12 @@ var PreviewPhone = function PreviewPhone(_ref) {
3808
3885
  }))) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
3809
3886
  };
3810
3887
 
3811
- var css_248z$j = ".cweb-radio {\n outline: none;\n}\n\n.cweb-radio .cweb-radio-input {\n -webkit-appearance: none;\n height: 1px;\n opacity: 0;\n width: 1px;\n}\n\n.cweb-radio .cweb-radio-label-text {\n margin-left: 8px;\n -ms-user-select: none;\n user-select: none;\n text-align: left;\n}\n\n.cweb-radio .cweb-radio-label {\n display: flex;\n align-items: center;\n margin-bottom: 0;\n}\n\n.cweb-radio .cweb-radio-icon-container {\n width: 16px;\n height: 16px;\n position: relative;\n border: 1px solid #cccccc;\n border-radius: 50%;\n transition: background-color 0.3s ease-in-out;\n}\n\n.cweb-radio .cweb-radio-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: block;\n}\n\n.cweb-radio.is-focused .cweb-radio-icon-container {\n border-color: #0074dd;\n}\n\n.cweb-radio.is-checked .cweb-radio-icon {\n width: 5px;\n height: 5px;\n background-color: #ffffff;\n border-radius: 50%;\n}\n";
3812
- styleInject(css_248z$j);
3888
+ var css_248z$k = ".cweb-radio {\n outline: none;\n}\n\n.cweb-radio .cweb-radio-input {\n -webkit-appearance: none;\n height: 1px;\n opacity: 0;\n width: 1px;\n}\n\n.cweb-radio .cweb-radio-label-text {\n margin-left: 8px;\n -ms-user-select: none;\n user-select: none;\n text-align: left;\n}\n\n.cweb-radio .cweb-radio-label {\n display: flex;\n align-items: center;\n margin-bottom: 0;\n}\n\n.cweb-radio .cweb-radio-icon-container {\n width: 16px;\n height: 16px;\n position: relative;\n border: 1px solid #cccccc;\n border-radius: 50%;\n transition: background-color 0.3s ease-in-out;\n}\n\n.cweb-radio .cweb-radio-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: block;\n}\n\n.cweb-radio.is-focused .cweb-radio-icon-container {\n border-color: #0074dd;\n}\n\n.cweb-radio.is-checked .cweb-radio-icon {\n width: 5px;\n height: 5px;\n background-color: #ffffff;\n border-radius: 50%;\n}\n";
3889
+ styleInject(css_248z$k);
3890
+
3891
+ /**
3892
+ * @deprecated: use RadioV2 instead
3893
+ */
3813
3894
 
3814
3895
  var Radio = /*#__PURE__*/function (_PureComponent) {
3815
3896
  _inheritsLoose(Radio, _PureComponent);
@@ -3907,10 +3988,13 @@ Radio.propTypes = {
3907
3988
  onChange: PropTypes.func
3908
3989
  };
3909
3990
 
3910
- var css_248z$k = ".cweb-radio-group {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n}\n\n.cweb-radio-group > .cweb-radio {\n flex: 0 0 auto;\n margin-right: 8px;\n}\n\n.cweb-radio-group .cweb-form-field {\n margin-bottom: 12px;\n}\n\n.cweb-radio-group .cweb-form-info-text {\n margin-left: 1.5rem;\n}\n\n.cweb-radio-group.vertical {\n display: flex;\n justify-content: flex-start;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.cweb-radio-group.vertical .cweb-form-field:not(:last-child) {\n margin-bottom: 8px;\n}\n\n.cweb-radio-group.vertical > .cweb-radio {\n flex: 0 0 auto;\n margin-bottom: 8px;\n}\n\n.cweb-radio-group.hasError > .cweb-radio .cweb-radio-icon-container {\n border: 1px solid #ff6266 !important;\n}\n";
3911
- styleInject(css_248z$k);
3991
+ var css_248z$l = ".cweb-radio-group {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n}\n\n.cweb-radio-group > .cweb-radio {\n flex: 0 0 auto;\n margin-right: 8px;\n}\n\n.cweb-radio-group .cweb-form-field {\n margin-bottom: 12px;\n}\n\n.cweb-radio-group .cweb-form-info-text {\n margin-left: 1.5rem;\n}\n\n.cweb-radio-group.vertical {\n display: flex;\n justify-content: flex-start;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.cweb-radio-group.vertical .cweb-form-field:not(:last-child) {\n margin-bottom: 8px;\n}\n\n.cweb-radio-group.vertical > .cweb-radio {\n flex: 0 0 auto;\n margin-bottom: 8px;\n}\n\n.cweb-radio-group.hasError > .cweb-radio .cweb-radio-icon-container {\n border: 1px solid #ff6266 !important;\n}\n";
3992
+ styleInject(css_248z$l);
3912
3993
 
3913
3994
  var _excluded$b = ["className", "radioClassName", "name", "selectedOption", "isVertical", "radioOptions", "onChange", "error", "isDisabled"];
3995
+ /**
3996
+ * @deprecated: use RadioV2 instead
3997
+ */
3914
3998
 
3915
3999
  function RadioGroup(_ref) {
3916
4000
  var className = _ref.className,
@@ -3965,8 +4049,8 @@ RadioGroup.propTypes = {
3965
4049
  onChange: PropTypes.func
3966
4050
  };
3967
4051
 
3968
- var css_248z$l = ".cweb-section .cweb-button:last-of-type {\n margin-right: 24px;\n}\n\n.cweb-section .cweb-button:not(:last-of-type) {\n margin-right: 8px;\n}\n\n.cweb-section .cweb-button.add-button, .cweb-section .cweb-button.edit-button, .cweb-section .cweb-button.delete-button {\n margin-left: auto;\n width: 32px;\n height: 32px;\n}\n\n.cweb-section .cweb-button.add-button {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle cx%3D%2222%22 cy%3D%2222%22 r%3D%2222%22 fill%3D%22white%22%2F%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23009FE3%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M22 32C23.1046 32 24 31.1046 24 30L24 24H30C31.1046 24 32 23.1046 32 22C32 20.8954 31.1046 20 30 20H24L24 14C24 12.8954 23.1046 12 22 12C20.8954 12 20 12.8954 20 14L20 20H14C12.8954 20 12 20.8954 12 22C12 23.1046 12.8954 24 14 24H20L20 30C20 31.1046 20.8954 32 22 32Z%22 fill%3D%22%23009FE3%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.add-button:hover, .cweb-section .cweb-button.add-button:active, .cweb-section .cweb-button.add-button:focus {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%230A78B2%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M21 12C19.8954 12 19 12.8954 19 14V19L14 19C12.8954 19 12 19.8954 12 21V23C12 24.1046 12.8954 25 14 25H19V30C19 31.1046 19.8954 32 21 32H23C24.1046 32 25 31.1046 25 30V25H30C31.1046 25 32 24.1046 32 23V21C32 19.8954 31.1046 19 30 19L25 19V14C25 12.8954 24.1046 12 23 12H21Z%22 fill%3D%22%23007BBB%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.edit-button {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23009FE3%22%2F%3E%3Cpath d%3D%22M13.5643 27.1001C13.4169 26.9527 13.1433 27.0159 13.1012 27.2266L12.0065 31.6507C11.9644 31.8614 12.1328 32.051 12.3433 31.9878L16.7851 30.9134C16.9956 30.8712 17.0799 30.5973 16.9114 30.4499L13.5643 27.1001Z%22 fill%3D%22%23009FE3%22%2F%3E%3Cpath d%3D%22M26.2161 14.1222C26.1109 14.0169 25.9214 14.0169 25.8161 14.1222L14.4484 25.4987C14.3432 25.604 14.3432 25.7936 14.4484 25.8989L18.1114 29.5647C18.2166 29.67 18.4061 29.67 18.5113 29.5647L29.879 18.1882C29.9843 18.0829 29.9843 17.8933 29.879 17.788L26.2161 14.1222Z%22 fill%3D%22%23009FE3%22%2F%3E%3Cpath d%3D%22M31.1633 12.8374C30.0475 11.7209 28.2161 11.7209 27.1004 12.8374C27.0583 12.8796 27.0583 12.9217 27.1004 12.9638L31.037 16.9035C31.0791 16.9456 31.1212 16.9456 31.1633 16.9035C32.279 15.7869 32.279 13.954 31.1633 12.8374Z%22 fill%3D%22%23009FE3%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.edit-button:hover, .cweb-section .cweb-button.edit-button:active, .cweb-section .cweb-button.edit-button:focus {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23007BBB%22%2F%3E%3Cpath d%3D%22M13.5643 27.1001C13.4169 26.9527 13.1433 27.0159 13.1012 27.2266L12.0065 31.6507C11.9644 31.8614 12.1328 32.051 12.3433 31.9878L16.7851 30.9134C16.9956 30.8712 17.0799 30.5973 16.9114 30.4499L13.5643 27.1001Z%22 fill%3D%22%230A78B2%22%2F%3E%3Cpath d%3D%22M26.2161 14.1222C26.1109 14.0169 25.9214 14.0169 25.8161 14.1222L14.4484 25.4987C14.3432 25.604 14.3432 25.7936 14.4484 25.8989L18.1114 29.5647C18.2166 29.67 18.4061 29.67 18.5113 29.5647L29.879 18.1882C29.9843 18.0829 29.9843 17.8933 29.879 17.788L26.2161 14.1222Z%22 fill%3D%22%230A78B2%22%2F%3E%3Cpath d%3D%22M31.1633 12.8374C30.0475 11.7209 28.2161 11.7209 27.1004 12.8374C27.0583 12.8796 27.0583 12.9217 27.1004 12.9638L31.037 16.9035C31.0791 16.9456 31.1212 16.9456 31.1633 16.9035C32.279 15.7869 32.279 13.954 31.1633 12.8374Z%22 fill%3D%22%230A78B2%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.delete-button {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23FF6266%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M13 12C12.4477 12 12 12.4477 12 13C12 13.5523 12.4477 14 13 14H31C31.5523 14 32 13.5523 32 13C32 12.4477 31.5523 12 31 12H13ZM14 16H30V30C30 31.1046 29.1046 32 28 32H16C14.8954 32 14 31.1046 14 30V16ZM17 18H19V30H17V18ZM21 18H23V30H21V18ZM27 18H25V30H27V18Z%22 fill%3D%22%23FF6266%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.delete-button:hover, .cweb-section .cweb-button.delete-button:active, .cweb-section .cweb-button.delete-button:focus {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M13 12C12.4477 12 12 12.4477 12 13C12 13.5523 12.4477 14 13 14H31C31.5523 14 32 13.5523 32 13C32 12.4477 31.5523 12 31 12H13ZM14 16H30V30C30 31.1046 29.1046 32 28 32H16C14.8954 32 14 31.1046 14 30V16ZM17 18H19V30H17V18ZM21 18H23V30H21V18ZM27 18H25V30H27V18Z%22 fill%3D%22%23FC494E%22%2F%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23FC494E%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section > .cweb-section-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid #eeeeee;\n width: 100%;\n padding: 18px 24px;\n}\n\n.cweb-section > .cweb-section-footer {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n border-top: 1px solid #eeeeee;\n width: 100%;\n padding: 1rem 24px 1rem 24px;\n}\n\n.cweb-section > .cweb-section-footer img {\n width: 32px;\n height: 32px;\n}\n";
3969
- styleInject(css_248z$l);
4052
+ var css_248z$m = ".cweb-section .cweb-button:last-of-type {\n margin-right: 24px;\n}\n\n.cweb-section .cweb-button:not(:last-of-type) {\n margin-right: 8px;\n}\n\n.cweb-section .cweb-button.add-button, .cweb-section .cweb-button.edit-button, .cweb-section .cweb-button.delete-button {\n margin-left: auto;\n width: 32px;\n height: 32px;\n}\n\n.cweb-section .cweb-button.add-button {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle cx%3D%2222%22 cy%3D%2222%22 r%3D%2222%22 fill%3D%22white%22%2F%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23009FE3%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M22 32C23.1046 32 24 31.1046 24 30L24 24H30C31.1046 24 32 23.1046 32 22C32 20.8954 31.1046 20 30 20H24L24 14C24 12.8954 23.1046 12 22 12C20.8954 12 20 12.8954 20 14L20 20H14C12.8954 20 12 20.8954 12 22C12 23.1046 12.8954 24 14 24H20L20 30C20 31.1046 20.8954 32 22 32Z%22 fill%3D%22%23009FE3%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.add-button:hover, .cweb-section .cweb-button.add-button:active, .cweb-section .cweb-button.add-button:focus {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%230A78B2%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M21 12C19.8954 12 19 12.8954 19 14V19L14 19C12.8954 19 12 19.8954 12 21V23C12 24.1046 12.8954 25 14 25H19V30C19 31.1046 19.8954 32 21 32H23C24.1046 32 25 31.1046 25 30V25H30C31.1046 25 32 24.1046 32 23V21C32 19.8954 31.1046 19 30 19L25 19V14C25 12.8954 24.1046 12 23 12H21Z%22 fill%3D%22%23007BBB%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.edit-button {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23009FE3%22%2F%3E%3Cpath d%3D%22M13.5643 27.1001C13.4169 26.9527 13.1433 27.0159 13.1012 27.2266L12.0065 31.6507C11.9644 31.8614 12.1328 32.051 12.3433 31.9878L16.7851 30.9134C16.9956 30.8712 17.0799 30.5973 16.9114 30.4499L13.5643 27.1001Z%22 fill%3D%22%23009FE3%22%2F%3E%3Cpath d%3D%22M26.2161 14.1222C26.1109 14.0169 25.9214 14.0169 25.8161 14.1222L14.4484 25.4987C14.3432 25.604 14.3432 25.7936 14.4484 25.8989L18.1114 29.5647C18.2166 29.67 18.4061 29.67 18.5113 29.5647L29.879 18.1882C29.9843 18.0829 29.9843 17.8933 29.879 17.788L26.2161 14.1222Z%22 fill%3D%22%23009FE3%22%2F%3E%3Cpath d%3D%22M31.1633 12.8374C30.0475 11.7209 28.2161 11.7209 27.1004 12.8374C27.0583 12.8796 27.0583 12.9217 27.1004 12.9638L31.037 16.9035C31.0791 16.9456 31.1212 16.9456 31.1633 16.9035C32.279 15.7869 32.279 13.954 31.1633 12.8374Z%22 fill%3D%22%23009FE3%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.edit-button:hover, .cweb-section .cweb-button.edit-button:active, .cweb-section .cweb-button.edit-button:focus {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23007BBB%22%2F%3E%3Cpath d%3D%22M13.5643 27.1001C13.4169 26.9527 13.1433 27.0159 13.1012 27.2266L12.0065 31.6507C11.9644 31.8614 12.1328 32.051 12.3433 31.9878L16.7851 30.9134C16.9956 30.8712 17.0799 30.5973 16.9114 30.4499L13.5643 27.1001Z%22 fill%3D%22%230A78B2%22%2F%3E%3Cpath d%3D%22M26.2161 14.1222C26.1109 14.0169 25.9214 14.0169 25.8161 14.1222L14.4484 25.4987C14.3432 25.604 14.3432 25.7936 14.4484 25.8989L18.1114 29.5647C18.2166 29.67 18.4061 29.67 18.5113 29.5647L29.879 18.1882C29.9843 18.0829 29.9843 17.8933 29.879 17.788L26.2161 14.1222Z%22 fill%3D%22%230A78B2%22%2F%3E%3Cpath d%3D%22M31.1633 12.8374C30.0475 11.7209 28.2161 11.7209 27.1004 12.8374C27.0583 12.8796 27.0583 12.9217 27.1004 12.9638L31.037 16.9035C31.0791 16.9456 31.1212 16.9456 31.1633 16.9035C32.279 15.7869 32.279 13.954 31.1633 12.8374Z%22 fill%3D%22%230A78B2%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.delete-button {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23FF6266%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M13 12C12.4477 12 12 12.4477 12 13C12 13.5523 12.4477 14 13 14H31C31.5523 14 32 13.5523 32 13C32 12.4477 31.5523 12 31 12H13ZM14 16H30V30C30 31.1046 29.1046 32 28 32H16C14.8954 32 14 31.1046 14 30V16ZM17 18H19V30H17V18ZM21 18H23V30H21V18ZM27 18H25V30H27V18Z%22 fill%3D%22%23FF6266%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section .cweb-button.delete-button:hover, .cweb-section .cweb-button.delete-button:active, .cweb-section .cweb-button.delete-button:focus {\n background: url(\"data:image/svg+xml,%3Csvg width%3D%2244%22 height%3D%2244%22 viewBox%3D%220 0 44 44%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M13 12C12.4477 12 12 12.4477 12 13C12 13.5523 12.4477 14 13 14H31C31.5523 14 32 13.5523 32 13C32 12.4477 31.5523 12 31 12H13ZM14 16H30V30C30 31.1046 29.1046 32 28 32H16C14.8954 32 14 31.1046 14 30V16ZM17 18H19V30H17V18ZM21 18H23V30H21V18ZM27 18H25V30H27V18Z%22 fill%3D%22%23FC494E%22%2F%3E%3Crect x%3D%220.5%22 y%3D%220.5%22 width%3D%2243%22 height%3D%2243%22 rx%3D%2221.5%22 stroke%3D%22%23FC494E%22%2F%3E%3C%2Fsvg%3E\") no-repeat center;\n background-size: contain;\n}\n\n.cweb-section > .cweb-section-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid #eeeeee;\n width: 100%;\n padding: 18px 24px;\n}\n\n.cweb-section > .cweb-section-footer {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n border-top: 1px solid #eeeeee;\n width: 100%;\n padding: 1rem 24px 1rem 24px;\n}\n\n.cweb-section > .cweb-section-footer img {\n width: 32px;\n height: 32px;\n}\n";
4053
+ styleInject(css_248z$m);
3970
4054
 
3971
4055
  var _excluded$c = ["title", "buttons", "footer", "children", "className", "isLoading", "loadingIndicatorProps"];
3972
4056
  function Section(_ref) {
@@ -4006,8 +4090,8 @@ function Section(_ref) {
4006
4090
  }, footer));
4007
4091
  }
4008
4092
 
4009
- var css_248z$m = ".cweb-list-item {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n padding: 16px 0 16px 0;\n border-bottom: 1px solid #eeeeee;\n}\n\n.cweb-list-item:last-child {\n border-bottom: none;\n}\n\n.cweb-list-item.cweb-list-item-clickable {\n cursor: pointer;\n}\n\n.cweb-list-item.cweb-list-item-clickable:hover {\n background-color: #f2fafd;\n}\n";
4010
- styleInject(css_248z$m);
4093
+ var css_248z$n = ".cweb-list-item {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n align-items: center;\n padding: 16px 0 16px 0;\n border-bottom: 1px solid #eeeeee;\n}\n\n.cweb-list-item:last-child {\n border-bottom: none;\n}\n\n.cweb-list-item.cweb-list-item-clickable {\n cursor: pointer;\n}\n\n.cweb-list-item.cweb-list-item-clickable:hover {\n background-color: #f2fafd;\n}\n";
4094
+ styleInject(css_248z$n);
4011
4095
 
4012
4096
  var _excluded$d = ["children", "className", "onClick"];
4013
4097
  var SectionItem = function SectionItem(props) {
@@ -4155,8 +4239,8 @@ var SettingsMenuButton = function SettingsMenuButton(props) {
4155
4239
  })));
4156
4240
  };
4157
4241
 
4158
- var css_248z$n = ".cweb-switcher-item {\n display: flex;\n justify-content: center;\n flex-direction: row;\n align-items: center;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link {\n display: flex;\n align-items: center;\n text-decoration: none;\n padding: 0.5rem 1rem;\n cursor: pointer;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon {\n display: flex;\n align-items: center;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default,\n .cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active {\n width: 20px;\n height: 20px;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active {\n display: none;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-text {\n color: #737373;\n transition: color 0.4s ease;\n padding-bottom: 0;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon + .cweb-switcher-item-link-text {\n margin-left: 8px;\n padding: 0;\n}\n\n.cweb-switcher-item.is-selected, .cweb-switcher-item:hover, .cweb-switcher-item:active {\n border-color: #0074dd;\n z-index: 1;\n}\n\n.cweb-switcher-item.is-selected .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default, .cweb-switcher-item:hover .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default, .cweb-switcher-item:active .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default {\n display: none;\n}\n\n.cweb-switcher-item.is-selected .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active, .cweb-switcher-item:hover .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active, .cweb-switcher-item:active .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active {\n display: inherit;\n}\n\n.cweb-switcher-item.is-selected .cweb-switcher-item-link .cweb-switcher-item-link-text, .cweb-switcher-item:hover .cweb-switcher-item-link .cweb-switcher-item-link-text, .cweb-switcher-item:active .cweb-switcher-item-link .cweb-switcher-item-link-text {\n color: #0074dd;\n}\n\n.cweb-switcher-item.is-disabled {\n pointer-events: none;\n}\n";
4159
- styleInject(css_248z$n);
4242
+ var css_248z$o = ".cweb-switcher-item {\n display: flex;\n justify-content: center;\n flex-direction: row;\n align-items: center;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link {\n display: flex;\n align-items: center;\n text-decoration: none;\n padding: 0.5rem 1rem;\n cursor: pointer;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon {\n display: flex;\n align-items: center;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default,\n .cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active {\n width: 20px;\n height: 20px;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active {\n display: none;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-text {\n color: #737373;\n transition: color 0.4s ease;\n padding-bottom: 0;\n}\n\n.cweb-switcher-item .cweb-switcher-item-link .cweb-switcher-item-link-icon + .cweb-switcher-item-link-text {\n margin-left: 8px;\n padding: 0;\n}\n\n.cweb-switcher-item.is-selected, .cweb-switcher-item:hover, .cweb-switcher-item:active {\n border-color: #0074dd;\n z-index: 1;\n}\n\n.cweb-switcher-item.is-selected .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default, .cweb-switcher-item:hover .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default, .cweb-switcher-item:active .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-default {\n display: none;\n}\n\n.cweb-switcher-item.is-selected .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active, .cweb-switcher-item:hover .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active, .cweb-switcher-item:active .cweb-switcher-item-link .cweb-switcher-item-link-icon .cweb-switcher-item-link-icon-active {\n display: inherit;\n}\n\n.cweb-switcher-item.is-selected .cweb-switcher-item-link .cweb-switcher-item-link-text, .cweb-switcher-item:hover .cweb-switcher-item-link .cweb-switcher-item-link-text, .cweb-switcher-item:active .cweb-switcher-item-link .cweb-switcher-item-link-text {\n color: #0074dd;\n}\n\n.cweb-switcher-item.is-disabled {\n pointer-events: none;\n}\n";
4243
+ styleInject(css_248z$o);
4160
4244
 
4161
4245
  SwitcherItem.propTypes = {
4162
4246
  name: PropTypes.string,
@@ -4489,8 +4573,8 @@ var TagGroup = function TagGroup(_ref) {
4489
4573
  }));
4490
4574
  };
4491
4575
 
4492
- var css_248z$o = ".cweb-textarea {\n border: 1px solid #cccccc;\n border-radius: 4px;\n outline: none;\n background-color: #ffffff;\n resize: none;\n}\n\n.cweb-textarea.has-icon {\n background-size: 24px;\n background-position: 10px 10px;\n background-repeat: no-repeat;\n padding-left: 44px;\n}\n\n.cweb-textarea.resizable {\n resize: both;\n}\n\n.cweb-textarea.resizable-x {\n resize: horizontal;\n}\n\n.cweb-textarea.resizable-y {\n resize: vertical;\n}\n\n.cweb-textarea:-ms-input-placeholder {\n color: #737373;\n}\n\n.cweb-textarea::placeholder {\n color: #737373;\n}\n\n.cweb-textarea:-ms-input-placeholder {\n color: #64748b !important;\n}\n\n.cweb-textarea::-ms-input-placeholder {\n color: #64748b;\n}\n\n.cweb-textarea:focus {\n border-color: #0074dd;\n}\n\n.cweb-textarea:disabled {\n cursor: not-allowed;\n}\n\n.cweb-textarea.has-error {\n border: 1px solid #ff6266;\n color: #ff6266;\n}\n";
4493
- styleInject(css_248z$o);
4576
+ var css_248z$p = ".cweb-textarea {\n border: 1px solid #cccccc;\n border-radius: 4px;\n outline: none;\n background-color: #ffffff;\n resize: none;\n}\n\n.cweb-textarea.has-icon {\n background-size: 24px;\n background-position: 10px 10px;\n background-repeat: no-repeat;\n padding-left: 44px;\n}\n\n.cweb-textarea.resizable {\n resize: both;\n}\n\n.cweb-textarea.resizable-x {\n resize: horizontal;\n}\n\n.cweb-textarea.resizable-y {\n resize: vertical;\n}\n\n.cweb-textarea:-ms-input-placeholder {\n color: #737373;\n}\n\n.cweb-textarea::placeholder {\n color: #737373;\n}\n\n.cweb-textarea:-ms-input-placeholder {\n color: #64748b !important;\n}\n\n.cweb-textarea::-ms-input-placeholder {\n color: #64748b;\n}\n\n.cweb-textarea:focus {\n border-color: #0074dd;\n}\n\n.cweb-textarea:disabled {\n cursor: not-allowed;\n}\n\n.cweb-textarea.has-error {\n border: 1px solid #ff6266;\n color: #ff6266;\n}\n";
4577
+ styleInject(css_248z$p);
4494
4578
 
4495
4579
  var _excluded$f = ["className", "value", "name", "placeholder", "maxLength", "rows", "resizable", "isDisabled", "icon", "onChange", "onBlur", "onFocus", "onKeyPress", "onKeyDown", "onCtrlEnter"];
4496
4580
  var RESIZE_TYPES = {
@@ -4577,8 +4661,8 @@ function Textarea(props) {
4577
4661
  }));
4578
4662
  }
4579
4663
 
4580
- var css_248z$p = ".ql-editor {\n resize: vertical;\n min-height: 10rem;\n}\n\n.ql-snow.ql-toolbar {\n display: block;\n background: #f1f5f9;\n border-top-left-radius: 0.5em;\n border-top-right-radius: 0.5em;\n margin-top: 0.5em;\n}\n";
4581
- styleInject(css_248z$p);
4664
+ var css_248z$q = ".ql-editor {\n resize: vertical;\n min-height: 10rem;\n}\n\n.ql-snow.ql-toolbar {\n display: block;\n background: #f1f5f9;\n border-top-left-radius: 0.5em;\n border-top-right-radius: 0.5em;\n margin-top: 0.5em;\n}\n";
4665
+ styleInject(css_248z$q);
4582
4666
 
4583
4667
  function TextEditor(_ref) {
4584
4668
  var defaultValue = _ref.defaultValue,
@@ -4632,8 +4716,8 @@ TextEditor.propTypes = {
4632
4716
  onValueChange: PropTypes.func.isRequired
4633
4717
  };
4634
4718
 
4635
- var css_248z$q = ".editor .rdw-editor {\n overflow-y: auto;\n}\n\n.editor .rdw-editor .rdw-link-modal {\n width: 20rem;\n height: 19rem;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-label,\n .editor .rdw-editor .rdw-link-modal .rdw-link-modal-target-option {\n font-weight: normal;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-input {\n margin-bottom: 1rem;\n font-size: 16px;\n font-weight: normal;\n line-height: 21px;\n color: #2d2d2d;\n height: 44px;\n border: 1px solid #cccccc;\n border-radius: 4px;\n outline: none;\n background-color: #ffffff;\n padding: 12px;\n caret-color: #0a78b2;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection .rdw-link-modal-btn {\n border-radius: 1.375rem;\n width: 6.5rem;\n height: 2.75rem;\n border: 1px solid #009fe3;\n background-color: transparent;\n color: #009fe3;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection .rdw-link-modal-btn:first-child,\n .editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection .rdw-link-modal-btn:disabled {\n background: #009fe3;\n color: #ffffff;\n}\n\n.editor .rdw-editor .rdw-embedded-modal {\n width: 22rem;\n height: 15rem;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-link-input,\n .editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-size-input {\n font-size: 16px;\n font-weight: normal;\n line-height: 21px;\n color: #2d2d2d;\n height: 44px;\n border: 1px solid #cccccc;\n border-radius: 4px;\n outline: none;\n background-color: #ffffff;\n padding: 12px;\n caret-color: #0a78b2;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-link-input {\n width: 100%;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-size-input {\n width: 90%;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section .rdw-embedded-modal-btn {\n border-radius: 1.375rem;\n width: 6.5rem;\n height: 2.75rem;\n border: 1px solid #009fe3;\n background-color: transparent;\n color: #009fe3;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section .rdw-embedded-modal-btn:first-child,\n .editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section .rdw-embedded-modal-btn:disabled {\n background: #009fe3;\n color: #ffffff;\n}\n\n.editor .rdw-editor .rdw-editor-main {\n min-height: 14rem;\n overflow: hidden;\n}\n\n.editor .rdw-editor .rdw-editor-main .DraftEditor-root {\n margin: 0 12px;\n}\n";
4636
- styleInject(css_248z$q);
4719
+ var css_248z$r = ".editor .rdw-editor {\n overflow-y: auto;\n}\n\n.editor .rdw-editor .rdw-link-modal {\n width: 20rem;\n height: 19rem;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-label,\n .editor .rdw-editor .rdw-link-modal .rdw-link-modal-target-option {\n font-weight: normal;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-input {\n margin-bottom: 1rem;\n font-size: 16px;\n font-weight: normal;\n line-height: 21px;\n color: #2d2d2d;\n height: 44px;\n border: 1px solid #cccccc;\n border-radius: 4px;\n outline: none;\n background-color: #ffffff;\n padding: 12px;\n caret-color: #0a78b2;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection {\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection .rdw-link-modal-btn {\n border-radius: 1.375rem;\n width: 6.5rem;\n height: 2.75rem;\n border: 1px solid #009fe3;\n background-color: transparent;\n color: #009fe3;\n}\n\n.editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection .rdw-link-modal-btn:first-child,\n .editor .rdw-editor .rdw-link-modal .rdw-link-modal-buttonsection .rdw-link-modal-btn:disabled {\n background: #009fe3;\n color: #ffffff;\n}\n\n.editor .rdw-editor .rdw-embedded-modal {\n width: 22rem;\n height: 15rem;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-link-input,\n .editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-size-input {\n font-size: 16px;\n font-weight: normal;\n line-height: 21px;\n color: #2d2d2d;\n height: 44px;\n border: 1px solid #cccccc;\n border-radius: 4px;\n outline: none;\n background-color: #ffffff;\n padding: 12px;\n caret-color: #0a78b2;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-link-input {\n width: 100%;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-size-input {\n width: 90%;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section .rdw-embedded-modal-btn {\n border-radius: 1.375rem;\n width: 6.5rem;\n height: 2.75rem;\n border: 1px solid #009fe3;\n background-color: transparent;\n color: #009fe3;\n}\n\n.editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section .rdw-embedded-modal-btn:first-child,\n .editor .rdw-editor .rdw-embedded-modal .rdw-embedded-modal-btn-section .rdw-embedded-modal-btn:disabled {\n background: #009fe3;\n color: #ffffff;\n}\n\n.editor .rdw-editor .rdw-editor-main {\n min-height: 14rem;\n overflow: hidden;\n}\n\n.editor .rdw-editor .rdw-editor-main .DraftEditor-root {\n margin: 0 12px;\n}\n";
4720
+ styleInject(css_248z$r);
4637
4721
 
4638
4722
  var TextEditorV2 = function TextEditorV2(_ref) {
4639
4723
  var defaultValue = _ref.defaultValue,
@@ -4775,13 +4859,492 @@ var SearchIcon = function SearchIcon(props) {
4775
4859
  }));
4776
4860
  };
4777
4861
 
4778
- var SearchInput = function SearchInput(props) {
4862
+ var SearchInput = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
4779
4863
  return /*#__PURE__*/React__default.createElement(Input, Object.assign({}, props, {
4780
4864
  icon: SearchIcon,
4781
4865
  type: "text",
4782
- clearable: true
4866
+ clearable: true,
4867
+ ref: ref
4868
+ }));
4869
+ });
4870
+
4871
+ /**
4872
+ * Decorator for any input component. Adds a label and additional information to be shown.
4873
+ *
4874
+ * Includes the default error handling from react-hook-form.
4875
+ */
4876
+
4877
+ function FormFieldDecorator(_ref) {
4878
+ var name = _ref.name,
4879
+ children = _ref.children,
4880
+ label = _ref.label,
4881
+ fieldRequired = _ref.fieldRequired,
4882
+ info = _ref.info,
4883
+ fieldErrors = _ref.fieldErrors,
4884
+ decoratorClassname = _ref.decoratorClassname;
4885
+ return /*#__PURE__*/React__default.createElement("div", {
4886
+ className: classNames(decoratorClassname)
4887
+ }, label && /*#__PURE__*/React__default.createElement("label", {
4888
+ className: "cweb-form-field-label block mb-1",
4889
+ htmlFor: name,
4890
+ "data-is-required": fieldRequired
4891
+ }, /*#__PURE__*/React__default.createElement(Text, {
4892
+ className: "cweb-form-field-label-text",
4893
+ inline: true,
4894
+ text: label
4895
+ })), /*#__PURE__*/React__default.createElement("fieldset", {
4896
+ className: "cweb-form-fieldset"
4897
+ }, children), info && /*#__PURE__*/React__default.createElement(Text, {
4898
+ className: "mt-1 cweb-form-info-text",
4899
+ type: "sm",
4900
+ color: "slate-500",
4901
+ text: info
4902
+ }), /*#__PURE__*/React__default.createElement(ErrorMessage, {
4903
+ errors: fieldErrors,
4904
+ name: name,
4905
+ render: function render(_ref2) {
4906
+ var messages = _ref2.messages;
4907
+ return messages && Object.entries(messages).map(function (_ref3) {
4908
+ var key = _ref3[0],
4909
+ message = _ref3[1];
4910
+ return /*#__PURE__*/React__default.createElement(Text, {
4911
+ key: key,
4912
+ className: "mt-1",
4913
+ text: message,
4914
+ color: "red"
4915
+ });
4916
+ });
4917
+ }
4783
4918
  }));
4919
+ }
4920
+
4921
+ var hasError = function hasError(name, errors) {
4922
+ return !!(name && errors && name in errors);
4784
4923
  };
4924
+ var isRequired = function isRequired(options) {
4925
+ return !!(options && "required" in options);
4926
+ };
4927
+
4928
+ var _excluded$h = ["name", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"];
4929
+ /**
4930
+ * Input field that can be used in any react-hook-form context.
4931
+ */
4932
+
4933
+ var FormInputInner = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
4934
+ var name = _ref.name,
4935
+ fieldErrors = _ref.fieldErrors,
4936
+ fieldRequired = _ref.fieldRequired,
4937
+ label = _ref.label,
4938
+ info = _ref.info,
4939
+ decoratorClassname = _ref.decoratorClassname,
4940
+ fieldProps = _objectWithoutPropertiesLoose(_ref, _excluded$h);
4941
+
4942
+ return /*#__PURE__*/React__default.createElement(FormFieldDecorator, {
4943
+ name: name,
4944
+ fieldErrors: fieldErrors,
4945
+ fieldRequired: fieldRequired,
4946
+ label: label,
4947
+ info: info,
4948
+ decoratorClassname: decoratorClassname
4949
+ }, /*#__PURE__*/React__default.createElement(Input, Object.assign({}, fieldProps, {
4950
+ isError: hasError(name, fieldErrors),
4951
+ ref: ref,
4952
+ name: name
4953
+ })));
4954
+ });
4955
+ var FormInput = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
4956
+ return /*#__PURE__*/React__default.createElement(FormInputInner, Object.assign({}, props, {
4957
+ ref: ref
4958
+ }));
4959
+ });
4960
+
4961
+ var css_248z$s = ".radio-form-field-label input[type=\"radio\"]:checked + .radio-circle {\n --bg-opacity: 1;\n background-color: #0074DD;\n background-color: rgba(0, 116, 221, var(--bg-opacity));\n}\n\n.radio-form-field-label[data-has-error=\"true\"] .radio-circle {\n --border-opacity: 1;\n border-color: #c53030;\n border-color: rgba(197, 48, 48, var(--border-opacity));\n outline: 4px solid rgba(255, 98, 102, 0.3);\n outline-offset: 0;\n}\n\n.radio-form-field-label\n input[type=\"radio\"]:checked\n + .radio-circle\n .radio-inner-circle {\n --bg-opacity: 1;\n background-color: #fff;\n background-color: rgba(255, 255, 255, var(--bg-opacity));\n}\n";
4962
+ styleInject(css_248z$s);
4963
+
4964
+ var _excluded$i = ["text", "info", "isError", "innerRef", "className"];
4965
+
4966
+ function RadioInner(_ref) {
4967
+ var text = _ref.text,
4968
+ info = _ref.info,
4969
+ isError = _ref.isError,
4970
+ innerRef = _ref.innerRef,
4971
+ className = _ref.className,
4972
+ otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$i);
4973
+
4974
+ var value = otherProps.value,
4975
+ disabled = otherProps.disabled;
4976
+ var nameHtmlFor = "field-" + value;
4977
+ return /*#__PURE__*/React__default.createElement("label", {
4978
+ className: "radio-form-field-label leading-tight",
4979
+ htmlFor: nameHtmlFor,
4980
+ "data-has-error": isError,
4981
+ "data-test-id": nameHtmlFor
4982
+ }, /*#__PURE__*/React__default.createElement("div", {
4983
+ className: "flex flex-row items-center "
4984
+ }, /*#__PURE__*/React__default.createElement("input", Object.assign({}, otherProps, {
4985
+ className: classNames("appearance-none", className),
4986
+ ref: innerRef,
4987
+ type: "radio",
4988
+ id: nameHtmlFor,
4989
+ disabled: disabled
4990
+ })), /*#__PURE__*/React__default.createElement("span", {
4991
+ className: classNames("flex flex-col items-center justify-center w-4 h-4 transition-colors duration-300 ease-in-out border radio-circle rounded-xl border-slate-300")
4992
+ }, /*#__PURE__*/React__default.createElement("span", {
4993
+ className: "block transition-colors duration-300 ease-in-out radio-inner-circle w-1.5 h-1.5 rounded-xl"
4994
+ })), text && /*#__PURE__*/React__default.createElement("div", {
4995
+ className: "ml-2"
4996
+ }, /*#__PURE__*/React__default.createElement(Text, {
4997
+ inline: true,
4998
+ text: text,
4999
+ type: "base",
5000
+ color: disabled ? "slate-500" : undefined
5001
+ }))), info && /*#__PURE__*/React__default.createElement(Text, {
5002
+ inline: true,
5003
+ className: "ml-6",
5004
+ text: info,
5005
+ type: "sm",
5006
+ color: disabled ? "slate-200" : "slate-500"
5007
+ }));
5008
+ }
5009
+ /**
5010
+ * TODO: The CSS styling is all messed up, including isError
5011
+ * Warning: don't use this prop before this is resolved
5012
+ * Issue to track: https://github.com/Luscii/web-ui/issues/57
5013
+ * TODO: remove this comment once this is resolved
5014
+ */
5015
+
5016
+
5017
+ var RadioV2 = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
5018
+ return /*#__PURE__*/React__default.createElement(RadioInner, Object.assign({}, props, {
5019
+ innerRef: ref
5020
+ }));
5021
+ });
5022
+
5023
+ var _excluded$j = ["innerRef", "options"];
5024
+
5025
+ function RadioGroupInner(_ref) {
5026
+ var innerRef = _ref.innerRef,
5027
+ options = _ref.options,
5028
+ registerProps = _objectWithoutPropertiesLoose(_ref, _excluded$j);
5029
+
5030
+ return /*#__PURE__*/React__default.createElement("div", {
5031
+ className: classNames("flex flex-col space-y-2")
5032
+ }, options.map(function (option) {
5033
+ return /*#__PURE__*/React__default.createElement(RadioV2, Object.assign({
5034
+ key: option.value
5035
+ }, option, registerProps, {
5036
+ ref: innerRef
5037
+ }));
5038
+ }));
5039
+ }
5040
+
5041
+ var RadioGroupV2 = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
5042
+ return /*#__PURE__*/React__default.createElement(RadioGroupInner, Object.assign({}, props, {
5043
+ innerRef: ref
5044
+ }));
5045
+ });
5046
+
5047
+ var _excluded$k = ["innerRef", "name", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"];
5048
+ /**
5049
+ * Input field that can be used in any react-hook-form context.
5050
+ */
5051
+
5052
+ function FormRadioGroupInner(_ref) {
5053
+ var innerRef = _ref.innerRef,
5054
+ name = _ref.name,
5055
+ fieldErrors = _ref.fieldErrors,
5056
+ fieldRequired = _ref.fieldRequired,
5057
+ label = _ref.label,
5058
+ info = _ref.info,
5059
+ decoratorClassname = _ref.decoratorClassname,
5060
+ fieldProps = _objectWithoutPropertiesLoose(_ref, _excluded$k);
5061
+
5062
+ return /*#__PURE__*/React__default.createElement(FormFieldDecorator, {
5063
+ name: name,
5064
+ fieldErrors: fieldErrors,
5065
+ fieldRequired: fieldRequired,
5066
+ label: label,
5067
+ info: info,
5068
+ decoratorClassname: decoratorClassname
5069
+ }, /*#__PURE__*/React__default.createElement(RadioGroupV2, Object.assign({}, fieldProps, {
5070
+ isError: hasError(name, fieldErrors),
5071
+ ref: innerRef,
5072
+ name: name
5073
+ })));
5074
+ }
5075
+
5076
+ var FormRadioGroup = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
5077
+ return /*#__PURE__*/React__default.createElement(FormRadioGroupInner, Object.assign({}, props, {
5078
+ innerRef: ref
5079
+ }));
5080
+ });
5081
+
5082
+ var _excluded$l = ["isError", "styles", "options", "onChange", "value", "isMulti", "className"];
5083
+
5084
+ function generateCustomStyles$1(hasError, isIE11) {
5085
+ return {
5086
+ option: function option(baseStyles, state) {
5087
+ return _extends({}, baseStyles, {
5088
+ fontWeight: state.isSelected ? "bold" : "normal",
5089
+ fontSize: "14px",
5090
+ backgroundColor: "none",
5091
+ color: "inherit",
5092
+ position: "relative",
5093
+ padding: "0.75rem",
5094
+ opacity: state.isDisabled ? "0.5" : 1,
5095
+ "&:after": {
5096
+ visibility: state.isSelected ? "visible" : "hidden"
5097
+ },
5098
+ transition: "background-color 0.3s ease-in-out",
5099
+ "&:hover": {
5100
+ // tailwind blue-50
5101
+ backgroundColor: state.isSelected ? "transparent" : "#F2FAFD"
5102
+ },
5103
+ pointerEvents: state.isDisabled ? "none" : "auto"
5104
+ });
5105
+ },
5106
+ container: function container(baseStyles) {
5107
+ return _extends({}, baseStyles, {
5108
+ flexGrow: isIE11 ? 0.5 : "initial"
5109
+ });
5110
+ },
5111
+ control: function control(baseStyles, state) {
5112
+ var defaultBorderColor = state.isFocused ? "#045baa" : "#D1D5DB";
5113
+ var validatedBorderColor = hasError ? "#c53030" : defaultBorderColor;
5114
+ var defaultOutline = hasError ? "rgba(255, 98, 102, 0.3)" : "rgba(0, 159, 227, 0.3)";
5115
+ var validatedOutline = "4px solid " + (state.isFocused ? defaultOutline : "transparent");
5116
+ return _extends({}, baseStyles, {
5117
+ fontSize: "14px",
5118
+ transition: "border 0.3s ease-in-out",
5119
+ height: isIE11 ? "50px" : "2.75rem",
5120
+ // primary outline
5121
+ outline: validatedOutline,
5122
+ borderColor: validatedBorderColor,
5123
+ borderWidth: "1px !important",
5124
+ borderStyle: "solid",
5125
+ borderRadius: "4px",
5126
+ boxShadow: "0px 1px 2px rgba(0, 0, 0, 0.05)",
5127
+ "&:hover": {
5128
+ borderColor: "#9CA3AF",
5129
+ // selector for the chevron
5130
+ "> [class*=\"IndicatorsContainer\"]": {
5131
+ opacity: 1
5132
+ }
5133
+ }
5134
+ });
5135
+ },
5136
+ // The placeholder has the following css prop: grid-area: 1/1/2/3;
5137
+ // And grid-area doesn't work on IE11, so we need to style it slightly different.
5138
+ placeholder: function placeholder(baseStyles) {
5139
+ return _extends({}, baseStyles, {
5140
+ fontWeight: 100,
5141
+ color: "#6B7280",
5142
+ paddingTop: isIE11 ? "1.2rem" : undefined
5143
+ });
5144
+ },
5145
+ singleValue: function singleValue(baseStyles) {
5146
+ return _extends({}, baseStyles, {
5147
+ paddingTop: isIE11 ? "1.2rem" : undefined,
5148
+ fontSize: "14px"
5149
+ });
5150
+ },
5151
+ indicatorSeparator: function indicatorSeparator() {
5152
+ return {
5153
+ display: "none"
5154
+ };
5155
+ },
5156
+ menu: function menu(baseStyles) {
5157
+ return _extends({}, baseStyles, {
5158
+ zIndex: 20
5159
+ });
5160
+ }
5161
+ };
5162
+ }
5163
+ /**
5164
+ * A wrapper around react-select to style it according to our design specification.
5165
+ *
5166
+ * In addition, the value is taken out of the option, instead of returning the complete option.
5167
+ *
5168
+ * Care when using grouped options: the value of the options overspanning all groups need to be unique!
5169
+ * For instance, if you have an option with value "chocolate" in both the groups "flavor" and "dip", then you get unforeseen errors.
5170
+ * This is a problem within react-select itself, not our wrapper.
5171
+ *
5172
+ * Care when using defaultValue: this still requires the complete Option (instead of the value of the Option).
5173
+ * So far there wasn't a use-case for this.
5174
+ */
5175
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5176
+
5177
+
5178
+ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, innerRef) {
5179
+ var _ref$isError = _ref.isError,
5180
+ isError = _ref$isError === void 0 ? false : _ref$isError,
5181
+ styles = _ref.styles,
5182
+ options = _ref.options,
5183
+ onChange = _ref.onChange,
5184
+ value = _ref.value,
5185
+ isMulti = _ref.isMulti,
5186
+ className = _ref.className,
5187
+ otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$l);
5188
+
5189
+ var isIE11 = "MSInputMethodContext" in window && "documentMode" in document;
5190
+ var customStyles = generateCustomStyles$1(isError, isIE11);
5191
+ var mergedStyles = mergeStyles(customStyles, styles); // the options can be either a list of options or a grouped list of options
5192
+ // this is a typechecker to verify it is the case.
5193
+
5194
+ var isOptionsGrouped = !options ? false : options.reduce(function (acc, o) {
5195
+ return acc || "options" in o && !("values" in o);
5196
+ }, false); // we subsequently flatmap to ensure it's always a list of options
5197
+
5198
+ var flatmappedOptions = !options ? [] : isOptionsGrouped ? options.flatMap(function (g) {
5199
+ return g.options;
5200
+ }) : options; // based on: https://stackoverflow.com/a/70022957
5201
+
5202
+ var onChangeWrapped = !onChange ? undefined : isMulti ? function (val, a) {
5203
+ return onChange(val.map(function (v) {
5204
+ return v.value;
5205
+ }), a);
5206
+ } : function (val, a) {
5207
+ return onChange(val == null ? void 0 : val.value, a);
5208
+ }; // TODO: how can we report the error if a value was given that is not within the options?
5209
+
5210
+ var valueWrapped = !value || !options ? value : isMulti ? flatmappedOptions.filter(function (o) {
5211
+ return value.includes(o.value);
5212
+ }) : flatmappedOptions.find(function (o) {
5213
+ return o.value === value;
5214
+ });
5215
+ return /*#__PURE__*/React__default.createElement(ReactSelect, Object.assign({}, otherProps, {
5216
+ ref: innerRef,
5217
+ styles: mergedStyles,
5218
+ options: options,
5219
+ onChange: onChangeWrapped,
5220
+ value: valueWrapped,
5221
+ isMulti: isMulti,
5222
+ className: classNames("customized-select", className)
5223
+ }));
5224
+ });
5225
+
5226
+ var _excluded$m = ["control", "name", "rules", "fieldErrors", "fieldRequired", "label", "info", "decoratorClassname"];
5227
+
5228
+ var FormSelect = /*#__PURE__*/React__default.forwardRef(function (_ref, innerRef) {
5229
+ var control = _ref.control,
5230
+ name = _ref.name,
5231
+ rules = _ref.rules,
5232
+ fieldErrors = _ref.fieldErrors,
5233
+ fieldRequired = _ref.fieldRequired,
5234
+ label = _ref.label,
5235
+ info = _ref.info,
5236
+ decoratorClassname = _ref.decoratorClassname,
5237
+ selectProps = _objectWithoutPropertiesLoose(_ref, _excluded$m);
5238
+
5239
+ return /*#__PURE__*/React__default.createElement(FormFieldDecorator, {
5240
+ name: name,
5241
+ fieldErrors: fieldErrors,
5242
+ fieldRequired: fieldRequired,
5243
+ label: label,
5244
+ info: info,
5245
+ decoratorClassname: decoratorClassname
5246
+ }, /*#__PURE__*/React__default.createElement(Controller, {
5247
+ name: name,
5248
+ control: control,
5249
+ rules: rules,
5250
+ render: function render(_ref2) {
5251
+ var field = _ref2.field;
5252
+ return /*#__PURE__*/React__default.createElement(Select, Object.assign({}, selectProps, field, {
5253
+ isError: hasError(name, fieldErrors),
5254
+ ref: innerRef
5255
+ }));
5256
+ }
5257
+ }));
5258
+ });
5259
+
5260
+ var _excluded$n = ["type", "name", "options", "fieldProps"];
5261
+ /**
5262
+ * Create a straight forward Form.
5263
+ *
5264
+ * TODO: wrap this in some Page component to style the div and buttons
5265
+ * WARNING: don't use this component before some styling errors are resolved.
5266
+ */
5267
+
5268
+ function Form(_ref) {
5269
+ var fields = _ref.fields,
5270
+ onValid = _ref.onValid,
5271
+ onError = _ref.onError,
5272
+ defaultValues = _ref.defaultValues;
5273
+
5274
+ var _useForm = useForm({
5275
+ criteriaMode: "all",
5276
+ defaultValues: defaultValues
5277
+ }),
5278
+ register = _useForm.register,
5279
+ handleSubmit = _useForm.handleSubmit,
5280
+ control = _useForm.control,
5281
+ errors = _useForm.formState.errors;
5282
+
5283
+ var fieldMapper = function fieldMapper(_ref2) {
5284
+ var type = _ref2.type,
5285
+ name = _ref2.name,
5286
+ options = _ref2.options,
5287
+ _ref2$fieldProps = _ref2.fieldProps,
5288
+ fieldProps = _ref2$fieldProps === void 0 ? {} : _ref2$fieldProps,
5289
+ decoratorProps = _objectWithoutPropertiesLoose(_ref2, _excluded$n);
5290
+
5291
+ switch (type) {
5292
+ case "text":
5293
+ case "number":
5294
+ case "email":
5295
+ case "password":
5296
+ return /*#__PURE__*/React__default.createElement(FormInput, Object.assign({
5297
+ key: name
5298
+ }, decoratorProps, {
5299
+ fieldRequired: isRequired(options),
5300
+ fieldErrors: errors
5301
+ }, fieldProps, register(name, options), {
5302
+ type: type || "text"
5303
+ }));
5304
+
5305
+ case "select":
5306
+ return /*#__PURE__*/React__default.createElement(FormSelect, Object.assign({
5307
+ key: name
5308
+ }, decoratorProps, {
5309
+ fieldRequired: isRequired(options),
5310
+ fieldErrors: errors
5311
+ }, fieldProps, {
5312
+ control: control,
5313
+ rules: options,
5314
+ name: name
5315
+ }));
5316
+
5317
+ case "radioGroup":
5318
+ return /*#__PURE__*/React__default.createElement(FormRadioGroup, Object.assign({
5319
+ key: name
5320
+ }, decoratorProps, {
5321
+ fieldRequired: isRequired(options),
5322
+ fieldErrors: errors
5323
+ }, fieldProps, register(name, options)));
5324
+
5325
+ default:
5326
+ return undefined;
5327
+ }
5328
+ };
5329
+
5330
+ return /*#__PURE__*/React__default.createElement("div", {
5331
+ className: "space-y-4"
5332
+ }, fields.map(function (props) {
5333
+ if (props.type === "row") {
5334
+ var rowFields = props.fields,
5335
+ key = props.key;
5336
+ return /*#__PURE__*/React__default.createElement("div", {
5337
+ className: "flex flex-row",
5338
+ key: key
5339
+ }, rowFields.map(fieldMapper));
5340
+ }
5341
+
5342
+ return fieldMapper(props);
5343
+ }), /*#__PURE__*/React__default.createElement(PrimaryButton, {
5344
+ onClick: handleSubmit(onValid, onError),
5345
+ text: "submit"
5346
+ }));
5347
+ }
4785
5348
 
4786
5349
  var AlertsIcon = function AlertsIcon(props) {
4787
5350
  return /*#__PURE__*/React__default.createElement("svg", {
@@ -5554,5 +6117,5 @@ var SearchCancelIcon = function SearchCancelIcon(props) {
5554
6117
  }));
5555
6118
  };
5556
6119
 
5557
- export { ACKNOWLEDGEMENT_TYPE_OPTIONS, Acknowledgement, AddIcon, AlertsIcon, Avatar, Badge, BellIcon, Breadcrumbs, CRUDPage, Carousel, CenteredHero, ChartIcon, ChatBoxIcon, CheckIcon, Checkbox, CheckboxList, ChevronDoubleIcon, ConfirmationDialog, CrossIcon, Datepicker as DatePicker, DeleteIcon, DownArrowIcon, DragIcon, Dropdown, EditIcon, EmptyListMessage, EmptyStateDashboardIcon, ErrorBlock, ExclamationMarkIcon, EyeIcon, GearIcon, GroupIcon, HamburgerIcon, HeartIcon, INPUT_TYPES, InfoBlock, InfoField, Input, LeftArrowIcon, LightBulbIcon, Line, List, LoadingIndicator, LockIcon, Menu, MessagesIcon, MultiSelect, NavLayout, NavMenu, NotesIcon, NotificationBanner, Page, PageHeader, PaginationMenu, PinIcon, PreviewPhone, PrimaryButton, PrintIcon, Radio, RadioGroup, RightArrowIcon, SearchCancelIcon, SearchIcon, SearchInput, SecondaryButton, Section, SectionItem, SectionItemWithContent, SettingsMenuButton, SmallCircleIcon, SmallDiamondIcon, SmallSquareIcon, SpaceRocketIcon, Spinner, StarIcon, Steps, Switcher, TabLinks, Tabbar, Table, Tag, TagGroup, TertiaryButton, Text, Textarea as TextArea, TextEditor, TextEditorV2, TextLink, Timeline, Title, ViewItem };
6120
+ export { ACKNOWLEDGEMENT_TYPE_OPTIONS, Acknowledgement, AddIcon, AlertsIcon, Avatar, Badge, BellIcon, Breadcrumbs, CRUDPage, Carousel, CenteredHero, ChartIcon, ChatBoxIcon, CheckIcon, Checkbox, CheckboxList, ChevronDoubleIcon, ConfirmationDialog, CrossIcon, Datepicker as DatePicker, DeleteIcon, DownArrowIcon, DragIcon, Dropdown, EditIcon, EmptyListMessage, EmptyStateDashboardIcon, ErrorBlock, ExclamationMarkIcon, EyeIcon, Form, GearIcon, GroupIcon, HamburgerIcon, HeartIcon, INPUT_TYPES, InfoBlock, InfoField, Input, LeftArrowIcon, LightBulbIcon, Line, List, LoadingIndicator, LockIcon, Menu, MessagesIcon, MultiSelect, NavLayout, NavMenu, NotesIcon, NotificationBanner, Page, PageHeader, PaginationMenu, PinIcon, PreviewPhone, PrimaryButton, PrintIcon, Radio, RadioGroup, RightArrowIcon, SearchCancelIcon, SearchIcon, SearchInput, SecondaryButton, Section, SectionItem, SectionItemWithContent, SettingsMenuButton, SmallCircleIcon, SmallDiamondIcon, SmallSquareIcon, SpaceRocketIcon, Spinner, StarIcon, Steps, Switcher, TabLinks, Tabbar, Table, Tag, TagGroup, TertiaryButton, Text, Textarea as TextArea, TextEditor, TextEditorV2, TextLink, Timeline, Title, ViewItem };
5558
6121
  //# sourceMappingURL=web-ui.esm.js.map