@linzjs/lui 11.0.0 → 11.1.3

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/lui.esm.js CHANGED
@@ -3,6 +3,7 @@ import clsx from 'clsx';
3
3
  import { Menu, MenuItem, MenuDivider, MenuHeader, ControlledMenu, useMenuState, FocusableItem } from '@szhsin/react-menu';
4
4
  import '@szhsin/react-menu/dist/index.css';
5
5
  import { Formik, Form, useFormikContext, Field, getIn, connect, ErrorMessage, useField } from 'formik';
6
+ import { v4 } from 'uuid';
6
7
  import camelcase from 'camelcase';
7
8
  import Select from 'react-select';
8
9
  import Lottie from 'lottie-react';
@@ -556,11 +557,6 @@ var LuiTabs = function LuiTabs(props) {
556
557
  }, props.children));
557
558
  };
558
559
 
559
- var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
560
-
561
- var css = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiTab_LuiTab__5d8d8010 {\n background: transparent;\n border-radius: 0;\n color: #2a292c;\n min-width: 10rem;\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: normal;\n}\n.LuiTab_LuiTab__5d8d8010:focus {\n background-color: rgba(0, 165, 153, 0.2);\n}\n.LuiTab_LuiTabsGroup_Justified__5d8d8010 .LuiTab_LuiTab__5d8d8010 {\n width: 100%;\n}\n\n.LuiTab_LuiTab_Active__5d8d8010,\n.LuiTab_LuiTab_Active__5d8d8010:focus {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: 600;\n position: relative;\n outline: none;\n background: transparent;\n}\n.LuiTab_LuiTab_Active__5d8d8010:after,\n.LuiTab_LuiTab_Active__5d8d8010:focus:after {\n content: \"\";\n display: block;\n height: 4px;\n width: 100%;\n padding: 0 32px;\n left: 0;\n right: 0;\n bottom: -1px;\n box-sizing: border-box;\n background: linear-gradient(270deg, #73cdc8 1%, #00a599 100%);\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n position: absolute;\n}";
562
- n(css,{});
563
-
564
560
  var LuiTab = function LuiTab(props) {
565
561
  return React__default.createElement("button", {
566
562
  className: clsx('LuiTab', props.active && 'LuiTab--active'),
@@ -572,9 +568,6 @@ var LuiTab = function LuiTab(props) {
572
568
  }, props.children);
573
569
  };
574
570
 
575
- var css$1 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiTabsGroup_LuiTabsGroup__b045736d {\n border-bottom: 1px solid #beb9b4;\n}\n\n.LuiTabsGroup_LuiTabsGroup_Justified__b045736d {\n display: flex;\n justify-content: space-between;\n}";
576
- n(css$1,{});
577
-
578
571
  var LuiTabsGroup = function LuiTabsGroup(props) {
579
572
  return React__default.createElement("div", {
580
573
  className: "LuiTabsGroup " + (props.justify ? 'LuiTabsGroup--justified' : ''),
@@ -583,9 +576,6 @@ var LuiTabsGroup = function LuiTabsGroup(props) {
583
576
  }, props.children);
584
577
  };
585
578
 
586
- var css$2 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiTabsPanel_LuiTabsPanel__8085964d {\n display: none;\n}\n\n.LuiTabsPanel_LuiTabsPanel_Active__8085964d {\n display: block;\n overflow: auto;\n}";
587
- n(css$2,{});
588
-
589
579
  var LuiTabsPanel = function LuiTabsPanel(props) {
590
580
  var context = useContext(LuiTabsContext);
591
581
  var active = context.activePanel === props.panel;
@@ -622,217 +612,13 @@ function LuiFormikForm(props) {
622
612
  }, React__default.createElement(Form, null, props.children, " ")));
623
613
  }
624
614
 
625
- function LuiFormikCheckbox(props) {
626
- var ctx = useFormikContext();
627
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(Field, {
628
- name: props.name
629
- }, function (_ref) {
630
- var field = _ref.field;
631
- var showError = getIn(ctx == null ? void 0 : ctx.errors, props.name);
632
- return React__default.createElement("div", {
633
- className: clsx(showError && 'lui-input-error')
634
- }, React__default.createElement("div", {
635
- className: "lui-input-group-wrapper "
636
- }, showError && React__default.createElement("i", {
637
- className: "lui-form-status-icon material-icons-round"
638
- }, "error"), React__default.createElement("div", {
639
- className: clsx('lui-checkbox-container', props.className)
640
- }, React__default.createElement("input", Object.assign({}, props.inputProps, {
641
- type: "checkbox",
642
- id: props.value,
643
- disabled: !!props.disabled,
644
- checked: field.value
645
- }, field)), typeof props.label === 'string' ? React__default.createElement("label", {
646
- htmlFor: props.value
647
- }, props.label) : props.label)));
648
- }));
649
- }
650
-
651
- var LuiFormikFormLabel = function LuiFormikFormLabel(props) {
652
- return React__default.createElement("div", {
653
- className: clsx('LuiFormLabel-wrapper', props.className && "" + props.className)
654
- }, props.children, React__default.createElement("label", {
655
- className: "LuiFormLabel",
656
- htmlFor: props["for"]
657
- }, props.required && React__default.createElement("span", {
658
- className: "lui-required-input-icon"
659
- }, "*"), props.label), props.tooltip && React__default.createElement("i", {
660
- className: "material-icons-round"
661
- }, "help"));
662
- };
663
-
664
- var LuiFormikTextInput = /*#__PURE__*/connect(function (props) {
665
- var error = getIn(props.formik.errors, props.name);
666
- var touch = getIn(props.formik.touched, props.name);
667
- var showError = touch && error;
668
-
669
- var _useFormikContext = useFormikContext(),
670
- setFieldValue = _useFormikContext.setFieldValue;
671
-
672
- var multiLineToggle = function multiLineToggle(field) {
673
- return !props.multiLine ? React__default.createElement("input", Object.assign({
674
- id: props.name,
675
- "data-testid": props.name
676
- }, field, {
677
- type: "text"
678
- }, props.inputProps, {
679
- onChange: function onChange(event) {
680
- var _props$validateOnChan;
681
-
682
- setFieldValue(props.name, event.target.value, (_props$validateOnChan = props.validateOnChange) != null ? _props$validateOnChan : true);
683
-
684
- if (props.onValueChange) {
685
- props.onValueChange({
686
- value: event.target.value,
687
- formik: props.formik
688
- });
689
- }
690
- }
691
- })) : React__default.createElement("textarea", Object.assign({
692
- id: props.name,
693
- "data-testid": props.name
694
- }, field, {
695
- rows: 1
696
- }, props.inputProps, {
697
- onChange: function onChange(event) {
698
- var _props$validateOnChan2;
699
-
700
- setFieldValue(props.name, event.target.value, (_props$validateOnChan2 = props.validateOnChange) != null ? _props$validateOnChan2 : true);
701
-
702
- if (props.onValueChange) {
703
- props.onValueChange({
704
- value: event.target.value,
705
- formik: props.formik
706
- });
707
- }
708
- }
709
- }));
710
- };
711
-
712
- return React__default.createElement("div", {
713
- className: clsx(props.className && "" + props.className)
714
- }, props.label && React__default.createElement(LuiFormikFormLabel, {
715
- required: props.required,
716
- label: props.label,
717
- "for": props.name,
718
- tooltip: props.tooltip
719
- }), props.helperInfo, React__default.createElement(Field, {
720
- name: props.name,
721
- validate: props.validate
722
- }, function (_ref) {
723
- var field = _ref.field;
724
- return React__default.createElement("div", {
725
- className: clsx(showError && 'lui-input-error')
726
- }, React__default.createElement(ErrorMessage, {
727
- name: props.name,
728
- render: function render() {
729
- return React__default.createElement("i", {
730
- className: "lui-form-status-icon material-icons-round"
731
- }, "error");
732
- }
733
- }), multiLineToggle(field), React__default.createElement(ErrorMessage, {
734
- name: props.name,
735
- className: 'lui-error-msg',
736
- component: "p"
737
- }));
738
- }));
739
- });
740
-
741
- var LuiFormikRadioButton = function LuiFormikRadioButton(props) {
742
- var _useField = useField(props),
743
- field = _useField[0],
744
- meta = _useField[1];
745
-
746
- return React__default.createElement("div", {
747
- className: props.className
748
- }, meta.touched && meta.error && React__default.createElement("i", {
749
- className: "lui-form-status-icon material-icons-round"
750
- }, "error"), React__default.createElement("div", {
751
- className: 'lui-radio-container'
752
- }, React__default.createElement("input", Object.assign({
753
- disabled: !!props.disabled
754
- }, field, {
755
- checked: props.value === field.value,
756
- value: props.value,
757
- id: props.value,
758
- type: "radio"
759
- }, props.inputProps)), React__default.createElement("label", {
760
- htmlFor: props.value
761
- }, props.label)));
762
- };
763
-
764
- var LuiFormikRadioGroup = function LuiFormikRadioGroup(props) {
765
- var ctx = useFormikContext();
766
- var error = getIn(ctx.errors, props.name);
767
- var touch = getIn(ctx.touched, props.name);
768
- var showError = touch && error;
769
- var describedby = props.hint && camelcase(props == null ? void 0 : props.hint) + 'Id';
770
- var errorDescribedBy = error && camelcase(error) + 'Id';
771
- return React__default.createElement("div", {
772
- className: clsx('lui-fieldsetBlock-form-group', showError && 'lui-input-error')
773
- }, React__default.createElement("fieldset", {
774
- "aria-describedby": clsx(props.hint && describedby + 'Id', showError && errorDescribedBy)
775
- }, React__default.createElement("legend", null, props.required && React__default.createElement("span", {
776
- className: "lui-required-input-icon"
777
- }, "*"), props.legend), showError && React__default.createElement("p", {
778
- id: errorDescribedBy
779
- }, React__default.createElement("span", {
780
- className: "LuiScreenReadersOnly"
781
- }, " Error: "), error), props.hint && React__default.createElement("p", {
782
- className: "lui-fieldset-support-txt small",
783
- id: describedby
784
- }, props.hint), React__default.createElement("div", {
785
- className: "lui-input-group-wrapper"
786
- }, props.children)));
787
- };
788
-
789
- var LuiFormikFormSubmitButton = /*#__PURE__*/connect(function (props) {
790
- return React__default.createElement(LuiButton, {
791
- type: "submit",
792
- className: props.className,
793
- level: "primary",
794
- "data-testid": props['data-testid'],
795
- disabled: !!props.disabled
796
- }, props.children);
797
- });
615
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
798
616
 
799
- var LuiFormikSelect = /*#__PURE__*/connect(function (props) {
800
- var error = getIn(props.formik.errors, props.name);
801
- var touch = getIn(props.formik.touched, props.name);
802
- var showError = touch && error;
803
- return React__default.createElement("div", {
804
- className: props.className
805
- }, props.label && React__default.createElement(LuiFormikFormLabel, {
806
- className: 'lui-margin-bottom-xxs',
807
- "for": props.name,
808
- label: props.label,
809
- required: !!props.required,
810
- tooltip: props.tooltip
811
- }), props.helperInfo, React__default.createElement("div", {
812
- className: clsx('lui-input-wrapper', showError && 'lui-input-error')
813
- }, React__default.createElement(ErrorMessage, {
814
- name: props.name,
815
- render: function render() {
816
- return React__default.createElement("i", {
817
- className: "lui-form-status-icon material-icons-round"
818
- }, "error");
819
- }
820
- }), React__default.createElement(Field, Object.assign({
821
- disabled: props.disabled,
822
- defaultValue: props.defaultValue,
823
- name: props.name,
824
- id: props.name,
825
- validate: props.validate,
826
- as: "select"
827
- }, props.inputProps), props.children), React__default.createElement(ErrorMessage, {
828
- name: props.name,
829
- className: 'lui-error-msg',
830
- component: "p"
831
- })));
832
- });
617
+ var css = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n:root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n.LuiCheckboxInput_LuiCheckboxInput__89cfba8f {\n margin-bottom: 24px;\n box-sizing: border-box;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputGroup__89cfba8f {\n display: block;\n user-select: none;\n cursor: pointer;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f {\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 2px;\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: 600;\n font-size: 14px;\n line-height: 24px;\n margin-bottom: 0;\n}\n.LuiCheckboxInput_isDisabled__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f {\n cursor: not-allowed;\n color: #989189;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputInput__89cfba8f {\n width: 0.1px;\n height: 0.1px;\n opacity: 0;\n overflow: hidden;\n position: absolute;\n z-index: -1;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n font-size: 18px;\n line-height: 10px;\n content: \" \";\n display: block;\n text-align: center;\n color: transparent;\n width: 23px;\n height: 23px;\n border: 2px solid #007198;\n margin-right: 0.5rem;\n border-radius: 5px;\n transition: all 0.2s ease-in-out;\n}\n.LuiCheckboxInput_hasError__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n border-color: #eb5757;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputError__89cfba8f {\n margin-top: 2px;\n text-align: left;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputErrorIcon__89cfba8f {\n margin-left: 2rem;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputInput__89cfba8f:checked + .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before,\n.LuiCheckboxInput_LuiCheckboxInput_IsChecked__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n color: white;\n background: #007198 url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNCAxMSI+CiAgICA8cGF0aCBmaWxsPSIjRkZGIiBkPSJNLjI5NyA0LjkzNGExLjAxMyAxLjAxMyAwIDAgMSAxLjM0NC0uMDc4bC4wODguMDc4TDUuMjU0IDguNDYgMTIuMjE5LjM1M2ExLjAxMyAxLjAxMyAwIDAgMSAxLjMzNC0uMThsLjA5NC4wNzJjLjM5NC4zMzguNDY0LjkxNC4xOCAxLjMzNGwtLjA3Mi4wOTQtNy42NzYgOC45MzVhMS4wMTMgMS4wMTMgMCAwIDEtMS4zOTguMTM0bC0uMDg3LS4wNzhMLjI5NyA2LjM2N2ExLjAxMyAxLjAxMyAwIDAgMSAwLTEuNDMzWiIvPgo8L3N2Zz4=\") no-repeat 50% 50%;\n background-size: 15px;\n}\n\n.LuiCheckboxInput_LuiCheckboxInput_HasError__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n border-color: #cc0000;\n}\n\n.LuiCheckboxInput_LuiCheckboxInput_HasError__89cfba8f.LuiCheckboxInput_LuiCheckboxInput_IsChecked__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n background-color: #cc0000;\n border-color: #cc0000;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputInput__89cfba8f:disabled + .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before,\n.LuiCheckboxInput_LuiCheckboxInput_IsDisabled__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n background-color: #989189;\n border-color: #989189;\n}\n\n.LuiCheckboxInput_LuiCheckboxInputInput__89cfba8f:checked:disabled + .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before,\n.LuiCheckboxInput_LuiCheckboxInput_IsChecked__89cfba8f.LuiCheckboxInput_LuiCheckboxInput_IsDisabled__89cfba8f .LuiCheckboxInput_LuiCheckboxInputLabel__89cfba8f::before {\n color: white;\n background-color: #989189;\n border-color: #989189;\n}\n\n.LuiCheckboxInput_LuiCheckboxInput_Inline__89cfba8f {\n display: inline-block;\n}\n.LuiCheckboxInput_LuiCheckboxInput_Inline__89cfba8f:not(:last-child) {\n margin-bottom: 0;\n margin-right: 24px;\n}";
618
+ n(css,{});
833
619
 
834
- var css$3 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiIcon_LuiIcon__5008522b {\n display: inline-block;\n height: 100%;\n width: 100%;\n}\n\n.LuiIcon_LuiIcon_Xl__5008522b {\n max-height: 64px;\n max-width: 64px;\n}\n.LuiIcon_LuiIcon_Xl__5008522b > svg {\n height: 64px;\n width: 64px;\n}\n\n.LuiIcon_LuiIcon_Lg__5008522b {\n max-height: 48px;\n max-width: 48px;\n}\n.LuiIcon_LuiIcon_Lg__5008522b > svg {\n height: 48px;\n width: 48px;\n}\n\n.LuiIcon_LuiIcon_Md__5008522b {\n height: 24px;\n max-height: 24px;\n max-width: 24px;\n width: 24px;\n}\n.LuiIcon_LuiIcon_Md__5008522b > svg {\n height: 24px;\n width: 24px;\n}\n\n.LuiIcon_LuiIcon_Sm__5008522b {\n max-height: 16px;\n max-width: 16px;\n}\n.LuiIcon_LuiIcon_Sm__5008522b > svg {\n height: 16px;\n width: 16px;\n}\n\n.LuiIcon_LuiIcon_Xs__5008522b {\n max-height: 12px;\n max-width: 12px;\n}\n.LuiIcon_LuiIcon_Xs__5008522b > svg {\n height: 12px;\n width: 12px;\n}\n\n.LuiIcon_LuiIcon_Warning__5008522b {\n fill: #ea6a2e;\n}\n\n.LuiIcon_LuiIcon_Error__5008522b {\n fill: #cc0000;\n}\n\n.LuiIcon_LuiIcon_Success__5008522b {\n fill: #0aa245;\n}\n\n.LuiIcon_LuiIcon_Interactive__5008522b {\n fill: #007198;\n}\n\n.LuiIcon_LuiIcon_Disabled__5008522b {\n fill: #989189;\n}";
835
- n(css$3,{});
620
+ var css$1 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiIcon_LuiIcon__5008522b {\n display: inline-block;\n height: 100%;\n width: 100%;\n}\n\n.LuiIcon_LuiIcon_Xl__5008522b {\n max-height: 64px;\n max-width: 64px;\n}\n.LuiIcon_LuiIcon_Xl__5008522b > svg {\n height: 64px;\n width: 64px;\n}\n\n.LuiIcon_LuiIcon_Lg__5008522b {\n max-height: 48px;\n max-width: 48px;\n}\n.LuiIcon_LuiIcon_Lg__5008522b > svg {\n height: 48px;\n width: 48px;\n}\n\n.LuiIcon_LuiIcon_Md__5008522b {\n height: 24px;\n max-height: 24px;\n max-width: 24px;\n width: 24px;\n}\n.LuiIcon_LuiIcon_Md__5008522b > svg {\n height: 24px;\n width: 24px;\n}\n\n.LuiIcon_LuiIcon_Sm__5008522b {\n max-height: 16px;\n max-width: 16px;\n}\n.LuiIcon_LuiIcon_Sm__5008522b > svg {\n height: 16px;\n width: 16px;\n}\n\n.LuiIcon_LuiIcon_Xs__5008522b {\n max-height: 12px;\n max-width: 12px;\n}\n.LuiIcon_LuiIcon_Xs__5008522b > svg {\n height: 12px;\n width: 12px;\n}\n\n.LuiIcon_LuiIcon_Warning__5008522b {\n fill: #ea6a2e;\n}\n\n.LuiIcon_LuiIcon_Error__5008522b {\n fill: #cc0000;\n}\n\n.LuiIcon_LuiIcon_Success__5008522b {\n fill: #0aa245;\n}\n\n.LuiIcon_LuiIcon_Interactive__5008522b {\n fill: #007198;\n}\n\n.LuiIcon_LuiIcon_Disabled__5008522b {\n fill: #989189;\n}";
621
+ n(css$1,{});
836
622
 
837
623
  // NOTE: This is a generated file, nothing you do here matters
838
624
 
@@ -1127,38 +913,585 @@ var ICON_SIZES = {
1127
913
  xl: 'LuiIcon--xl',
1128
914
  ns: 'LuiIcon--noSize'
1129
915
  };
1130
- var ICON_STATUS = {
1131
- none: '',
1132
- error: 'LuiIcon--error',
1133
- warning: 'LuiIcon--warning',
1134
- success: 'LuiIcon--success',
1135
- interactive: 'LuiIcon--interactive',
1136
- disabled: 'LuiIcon--disabled'
916
+ var ICON_STATUS = {
917
+ none: '',
918
+ error: 'LuiIcon--error',
919
+ warning: 'LuiIcon--warning',
920
+ success: 'LuiIcon--success',
921
+ interactive: 'LuiIcon--interactive',
922
+ disabled: 'LuiIcon--disabled'
923
+ };
924
+ var LuiIcon = function LuiIcon(_ref) {
925
+ var name = _ref.name,
926
+ className = _ref.className,
927
+ _ref$size = _ref.size,
928
+ size = _ref$size === void 0 ? 'ns' : _ref$size,
929
+ title = _ref.title,
930
+ alt = _ref.alt,
931
+ _ref$status = _ref.status,
932
+ status = _ref$status === void 0 ? 'none' : _ref$status,
933
+ spanProps = _ref.spanProps;
934
+ var iconSVG = ICONS[name];
935
+
936
+ if (!iconSVG) {
937
+ console.warn("No icon found for: " + iconSVG);
938
+ return null;
939
+ }
940
+
941
+ return createElement("span", Object.assign({
942
+ className: clsx('LuiIcon', className, size && ICON_SIZES[size], status && ICON_STATUS[status]),
943
+ "data-icon": name,
944
+ title: title,
945
+ "aria-label": alt
946
+ }, spanProps), iconSVG);
947
+ };
948
+
949
+ var css$2 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n:root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n.LuiError_LuiError__4692690f {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: 600;\n font-size: 14px;\n line-height: 24px;\n}\n.LuiError_LuiErrorErrorIcon__4692690f {\n vertical-align: middle;\n display: inline-block;\n}\n.LuiError_LuiErrorErrorText__4692690f {\n margin-left: 0.5rem;\n}";
950
+ n(css$2,{});
951
+
952
+ var LuiError = function LuiError(_ref) {
953
+ var error = _ref.error,
954
+ className = _ref.className;
955
+ return React__default.createElement("div", {
956
+ className: "LuiError " + className + "-error"
957
+ }, React__default.createElement(LuiIcon, {
958
+ className: "LuiError-errorIcon " + className + "-errorIcon",
959
+ alt: 'Error',
960
+ name: "ic_error",
961
+ size: "md",
962
+ status: "error"
963
+ }), error && React__default.createElement("span", {
964
+ className: "LuiError-errorText " + className + "-errorText"
965
+ }, error));
966
+ };
967
+
968
+ var css$3 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiTextInput_LuiTextInput__e438043f {\n margin-bottom: 24px;\n}\n.LuiTextInput_LuiTextInputLabel__e438043f {\n display: block;\n margin-bottom: 6px;\n color: #000000;\n text-align: left;\n}\n.LuiTextInput_isDisabled__e438043f .LuiTextInput_LuiTextInputLabel__e438043f {\n color: #b2b2b2;\n}\n\n.LuiTextInput_LuiTextInputInputWrapper__e438043f {\n position: relative;\n display: block;\n box-shadow: -1px 0 0 0 transparent;\n border-radius: 4px;\n transition: box-shadow 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s, border-color 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;\n}\n.LuiTextInput_hasError__e438043f .LuiTextInput_LuiTextInputInputWrapper__e438043f {\n box-shadow: -8px 0px 0 0 #cc0000;\n border-radius: 4px;\n}\n\n.LuiTextInput_LuiTextInputPasswordReveal__e438043f {\n position: absolute;\n background: transparent;\n min-height: 0;\n min-width: 0;\n margin: 0;\n padding: 12px;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n}\n.LuiTextInput_LuiTextInputPasswordReveal__e438043f:hover {\n background: transparent;\n}\n\n.LuiTextInput_LuiTextInputInput__e438043f {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: normal;\n margin-bottom: 0;\n border: 1px solid #b2b2b2;\n border-radius: 4px;\n height: 48px;\n color: #000000;\n caret-color: #000000;\n padding-top: 14px;\n padding-right: 32px;\n padding-bottom: 14px;\n padding-left: 16px;\n min-width: 300px;\n transition: all 0.15 ease-in-out;\n transition: border 0.2s ease;\n}\n.LuiTextInput_LuiTextInputInput__e438043f:hover, .LuiTextInput_LuiTextInputInput__e438043f:active {\n border-color: #053d52;\n}\n.LuiTextInput_LuiTextInputInput__e438043f:focus {\n outline: none;\n border-color: #053d52;\n}\n.LuiTextInput_LuiTextInputInput__e438043f::placeholder {\n font-weight: normal;\n color: #666666;\n opacity: 1;\n}\n.LuiTextInput_isDisabled__e438043f .LuiTextInput_LuiTextInputInput__e438043f::placeholder {\n color: #b2b2b2;\n}\n.LuiTextInput_hasError__e438043f .LuiTextInput_LuiTextInputInput__e438043f {\n border-color: #cc0000 !important;\n}\n.LuiTextInput_isDisabled__e438043f .LuiTextInput_LuiTextInputInput__e438043f {\n border-color: #b2b2b2;\n background-color: #fff;\n opacity: 0.3;\n cursor: not-allowed;\n}\n\n.LuiTextInput_LuiTextInputError__e438043f {\n position: relative;\n display: flex;\n color: #cc0000;\n text-align: left;\n padding-left: 22px;\n font-size: 14px;\n line-height: 20px;\n margin-top: 2px;\n}\n\n.LuiTextInput_LuiTextInputErrorIcon__e438043f {\n position: absolute;\n left: 0;\n top: 2px;\n}\n\n.LuiTextInput_LuiFieldWrapper__e438043f {\n position: relative;\n box-shadow: -1px 0 0 0 transparent;\n border-radius: 4px;\n transition: box-shadow 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s, border-color 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s;\n}\n.LuiTextInput_LuiFieldWrapper__e438043f input {\n transition: border 0.2s ease;\n}\n.LuiTextInput_LuiFieldWrapper__e438043f.LuiTextInput_LuiFieldWrapper_Error__e438043f {\n box-shadow: -12px 0px 0 0 #cc0000;\n border-radius: 4px;\n}\n.LuiTextInput_LuiFieldWrapper__e438043f.LuiTextInput_LuiFieldWrapper_Error__e438043f input {\n border-color: #cc0000;\n}";
969
+ n(css$3,{});
970
+
971
+ function useGenerateOrDefaultId(idFromProps) {
972
+ var _useState = useState(idFromProps ? idFromProps : v4()),
973
+ id = _useState[0];
974
+
975
+ return id;
976
+ }
977
+ var LuiTextInput = function LuiTextInput(props) {
978
+ var _props$inputProps;
979
+
980
+ var id = useGenerateOrDefaultId((_props$inputProps = props.inputProps) == null ? void 0 : _props$inputProps.id);
981
+ return React__default.createElement("div", {
982
+ className: clsx('LuiTextInput', props.error ? 'LuiTextInput-error' : '')
983
+ }, React__default.createElement("label", {
984
+ className: 'LuiTextInput-label',
985
+ htmlFor: id
986
+ }, React__default.createElement("span", {
987
+ className: clsx(props.hideLabel ? 'LuiScreenReadersOnly' : '')
988
+ }, props.label), React__default.createElement("span", {
989
+ className: "LuiTextInput-inputWrapper"
990
+ }, React__default.createElement("input", Object.assign({
991
+ type: 'text',
992
+ className: clsx('LuiTextInput-input'),
993
+ min: "0",
994
+ value: props.value,
995
+ onChange: props.onChange
996
+ }, props.inputProps, {
997
+ id: id
998
+ }))), props.error && React__default.createElement("span", {
999
+ className: "LuiTextInput-error"
1000
+ }, React__default.createElement(LuiIcon, {
1001
+ alt: "error",
1002
+ name: "ic_error",
1003
+ className: "LuiTextInput-error-icon",
1004
+ size: "sm",
1005
+ status: "error"
1006
+ }), props.error)));
1007
+ };
1008
+
1009
+ var LuiCheckboxInput = function LuiCheckboxInput(props) {
1010
+ var _props$inputProps;
1011
+
1012
+ var id = useGenerateOrDefaultId((_props$inputProps = props.inputProps) == null ? void 0 : _props$inputProps.id);
1013
+ return React__default.createElement("div", {
1014
+ className: clsx('LuiCheckboxInput', {
1015
+ 'LuiCheckboxInput--isChecked': props.isChecked,
1016
+ 'LuiCheckboxInput--hasError': !!props.error
1017
+ })
1018
+ }, React__default.createElement("label", {
1019
+ htmlFor: id,
1020
+ className: "LuiCheckboxInput-group"
1021
+ }, React__default.createElement("input", Object.assign({
1022
+ className: clsx('LuiCheckboxInput-input'),
1023
+ id: id,
1024
+ type: "checkbox",
1025
+ value: props.value,
1026
+ onChange: props.onChange,
1027
+ checked: props.isChecked,
1028
+ disabled: props.isDisabled
1029
+ }, props.inputProps)), React__default.createElement("span", {
1030
+ className: "LuiCheckboxInput-label"
1031
+ }, props.label)), props.error && React__default.createElement(LuiError, {
1032
+ className: "LuiCheckboxInput",
1033
+ error: props.error
1034
+ }));
1035
+ };
1036
+
1037
+ var LuiFileInputBox = function LuiFileInputBox(props) {
1038
+ var _useState = useState(),
1039
+ file = _useState[0],
1040
+ setFile = _useState[1];
1041
+
1042
+ var _useState2 = useState(false),
1043
+ hasFileFormatError = _useState2[0],
1044
+ setHasFileFormatError = _useState2[1];
1045
+
1046
+ var onChange = function onChange(e) {
1047
+ // Logic to go here to check extensions and setHasFileFormatError
1048
+ setHasFileFormatError(false);
1049
+ var files = e.target.files; // File upload box is configured to only accept 1 file, we can't have more than one here
1050
+
1051
+ if (files && files.length === 1) {
1052
+ var selectedFile = files[0];
1053
+ var supportedFileTypes = props.acceptedExtensions.map(function (ext) {
1054
+ return ext.toUpperCase();
1055
+ });
1056
+ var fileName = selectedFile.name;
1057
+
1058
+ if (!supportedFileTypes.includes(getFileNameExtension(fileName))) {
1059
+ setHasFileFormatError(true);
1060
+ setFile(undefined);
1061
+ } else {
1062
+ setFile(selectedFile);
1063
+ props.onValidFileSelected(selectedFile);
1064
+ }
1065
+ }
1066
+ };
1067
+
1068
+ var FileFormatErrorDetails = function FileFormatErrorDetails() {
1069
+ return React__default.createElement("div", {
1070
+ className: "LuiFileInputBox-upload-container"
1071
+ }, React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
1072
+ className: 'LuiFileInputBox-upload-icon-error'
1073
+ }, React__default.createElement(LuiIcon, {
1074
+ name: "ic_error_outline",
1075
+ size: 'ns',
1076
+ alt: "Error"
1077
+ })), props.customFileErrorMessage ? React__default.createElement("p", null, props.customFileErrorMessage) : React__default.createElement("p", {
1078
+ className: "LuiFileInputBox-upload-text"
1079
+ }, "You must select a file with extension of", ' ', extensionsAsHumanReadableList(props.acceptedExtensions), ".")));
1080
+ };
1081
+
1082
+ var hasError = hasFileFormatError || props.showMustSelectFileError === true;
1083
+ return React__default.createElement("div", {
1084
+ className: clsx('LuiFileInputBox-upload', hasError && 'LuiFileInputBox-upload-error'),
1085
+ style: {
1086
+ width: props.width || 320,
1087
+ height: props.height || 320
1088
+ }
1089
+ }, React__default.createElement("input", {
1090
+ role: "button",
1091
+ "aria-label": "File Upload",
1092
+ type: "file",
1093
+ className: "LuiFileInputBox-upload-input",
1094
+ accept: props.acceptedExtensions.map(function (extension) {
1095
+ return "." + extension;
1096
+ }).join(','),
1097
+ onChange: onChange
1098
+ }), React__default.createElement(React__default.Fragment, null, hasError ? React__default.createElement(FileFormatErrorDetails, null) : React__default.createElement(FileUploadInfo, {
1099
+ fileName: file == null ? void 0 : file.name,
1100
+ fileFormatText: props.fileFormatText,
1101
+ fileDescription: props.fileDescription
1102
+ })));
1103
+ }; // Only exported for chromatic
1104
+
1105
+ var FileUploadInfo = function FileUploadInfo(props) {
1106
+ var DragAndDropInstruction = function DragAndDropInstruction() {
1107
+ return React__default.createElement("p", {
1108
+ className: "LuiFileInputBox-upload-text"
1109
+ }, "Drag and drop your ", props.fileDescription, " into the box", React__default.createElement("br", null), React__default.createElement("span", null, "(or upload file manually)"));
1110
+ };
1111
+
1112
+ var WaitingForFileSelection = function WaitingForFileSelection() {
1113
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
1114
+ className: 'LuiFileInputBox-upload-icon-upload'
1115
+ }, React__default.createElement(LuiIcon, {
1116
+ name: "ic_publish",
1117
+ size: 'ns',
1118
+ alt: "Upload"
1119
+ })), React__default.createElement(DragAndDropInstruction, null), props.fileFormatText && React__default.createElement("p", {
1120
+ className: "LuiFileInputBox-upload-text LuiFileInputBox-upload-text-no-padding"
1121
+ }, props.fileFormatText));
1122
+ };
1123
+
1124
+ var UploadSuccess = function UploadSuccess() {
1125
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
1126
+ className: 'LuiFileInputBox-upload-icon-success'
1127
+ }, React__default.createElement(LuiIcon, {
1128
+ name: "ic_check_circle_outline",
1129
+ size: 'ns',
1130
+ alt: "Success"
1131
+ })), React__default.createElement("p", {
1132
+ className: "LuiFileInputBox-upload-file-name"
1133
+ }, props.fileName), React__default.createElement(DragAndDropInstruction, null));
1134
+ };
1135
+
1136
+ return React__default.createElement("div", {
1137
+ className: "LuiFileInputBox-upload-container"
1138
+ }, props.fileName ? React__default.createElement(UploadSuccess, null) : React__default.createElement(WaitingForFileSelection, null));
1139
+ };
1140
+ /**
1141
+ * Get the extension from a filename in upper-case.
1142
+ *
1143
+ * @param fileName File-name to get extension from.
1144
+ * @return fileName extension in upper-case if found else empty string.
1145
+ */
1146
+
1147
+ var getFileNameExtension = function getFileNameExtension(fileName) {
1148
+ var idx = fileName.lastIndexOf('.');
1149
+ return idx === -1 ? '' : fileName.substr(idx + 1).toUpperCase();
1150
+ };
1151
+ /**
1152
+ * Convert an array of extensions to a human readable string in upper-case.
1153
+ * e.g. JPG, TIFF or BMP.
1154
+ *
1155
+ * @param extensions List of extensions to convert.
1156
+ * @return Extensions in a human readable string in upper-case.
1157
+ */
1158
+
1159
+ var extensionsAsHumanReadableList = function extensionsAsHumanReadableList(extensions) {
1160
+ var uppercaseExtensions = extensions.map(function (extension) {
1161
+ return extension.toUpperCase();
1162
+ });
1163
+ if (!extensions.length) return '';
1164
+ if (extensions.length === 1) return uppercaseExtensions[0];
1165
+ return uppercaseExtensions.slice(0, -1).join(', ') + " or " + uppercaseExtensions[extensions.length - 1];
1166
+ };
1167
+
1168
+ var css$4 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiSelectInput_LuiSelect__42744a23 {\n margin-bottom: 24px;\n}\n\n.LuiSelectInput_LuiSelectLabelText__42744a23 {\n display: block;\n margin-bottom: 6px;\n color: #000000;\n text-align: left;\n}\n.LuiSelectInput_isDisabled__42744a23 .LuiSelectInput_LuiSelectLabelText__42744a23 {\n color: #b2b2b2;\n}\n\n.LuiSelectInput_LuiSelectSelect__42744a23 {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: normal;\n margin-bottom: 0;\n border: 1px solid #b2b2b2;\n border-radius: 4px;\n display: block;\n height: 48px;\n color: #000000;\n caret-color: #000000;\n padding-right: 32px;\n padding-left: 16px;\n width: 100%;\n transition: all 0.15 ease-in-out;\n appearance: none;\n}\n.LuiSelectInput_LuiSelectSelect__42744a23:hover, .LuiSelectInput_LuiSelectSelect__42744a23:active {\n border-color: #053d52;\n cursor: pointer;\n}\n.LuiSelectInput_LuiSelectSelect__42744a23:focus {\n outline: none;\n border-color: #053d52;\n}\n.LuiSelectInput_hasError__42744a23 .LuiSelectInput_LuiSelectSelect__42744a23 {\n border-color: #eb5757;\n}\n.LuiSelectInput_isDisabled__42744a23 .LuiSelectInput_LuiSelectSelect__42744a23 {\n border-color: #b2b2b2;\n background-color: #fff;\n color: #b2b2b2;\n opacity: 0.3;\n cursor: not-allowed;\n}\n.LuiSelectInput_hasPlaceholder__42744a23 .LuiSelectInput_LuiSelectSelect__42744a23 {\n color: #b2b2b2;\n}\n.LuiSelectInput_hasValue__42744a23 .LuiSelectInput_LuiSelectSelect__42744a23 {\n color: #2a292c;\n}\n\n.LuiSelectInput_LuiSelectWrapper__42744a23 {\n position: relative;\n max-width: 300px;\n}\n\n.LuiSelectInput_LuiSelectChevronIcon__42744a23 {\n position: absolute;\n right: 16px;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n}\n\n.LuiSelectInput_LuiSelectError__42744a23 {\n position: relative;\n display: flex;\n color: #eb5757;\n text-align: left;\n padding-left: 22px;\n font-size: 14px;\n line-height: 20px;\n margin-top: 2px;\n}\n\n.LuiSelectInput_LuiSelectErrorIcon__42744a23 {\n position: absolute;\n left: 0;\n top: 2px;\n}";
1169
+ n(css$4,{});
1170
+
1171
+ var LuiSelectInput = function LuiSelectInput(props) {
1172
+ var _props$selectProps;
1173
+
1174
+ var id = useGenerateOrDefaultId((_props$selectProps = props.selectProps) == null ? void 0 : _props$selectProps.id);
1175
+ return React__default.createElement("div", {
1176
+ className: 'LuiSelect'
1177
+ }, React__default.createElement("label", {
1178
+ htmlFor: id,
1179
+ className: "LuiSelect-label"
1180
+ }, React__default.createElement("span", {
1181
+ className: clsx('LuiSelect-label-text', props.hideLabel ? 'LuiScreenReadersOnly' : '')
1182
+ }, props.label), React__default.createElement("div", {
1183
+ className: "LuiSelect-wrapper"
1184
+ }, React__default.createElement("select", Object.assign({
1185
+ name: id,
1186
+ onChange: props.onChange,
1187
+ value: props.value,
1188
+ className: "LuiSelect-select"
1189
+ }, props.selectProps), props.placeholderText && React__default.createElement("option", {
1190
+ value: "",
1191
+ disabled: true
1192
+ }, props.placeholderText), props.options.map(function (selection) {
1193
+ return React__default.createElement("option", {
1194
+ key: selection.value,
1195
+ value: selection.value
1196
+ }, selection.label);
1197
+ })), React__default.createElement(LuiIcon, {
1198
+ alt: 'Error',
1199
+ name: "ic_arrow_drop_down",
1200
+ className: "LuiSelect-chevron-icon",
1201
+ size: "sm"
1202
+ })), props.error && React__default.createElement("span", {
1203
+ className: "LuiSelect-error"
1204
+ }, React__default.createElement(LuiIcon, {
1205
+ alt: 'Error',
1206
+ name: "ic_error",
1207
+ className: "LuiSelect-error-icon",
1208
+ size: "sm",
1209
+ status: "error"
1210
+ }), props.error)));
1211
+ };
1212
+
1213
+ var css$5 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}\n\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46 {\n width: 100%;\n margin-bottom: 24px;\n position: relative;\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46 textarea {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: normal;\n border-radius: 4px;\n border: solid 1px #b2b2b2;\n background: #fff;\n padding-top: 14px;\n padding-right: 32px;\n padding-bottom: 14px;\n padding-left: 16px;\n box-sizing: border-box;\n width: 100%;\n resize: vertical;\n min-height: 100px;\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46 textarea {\n font-size: 14px;\n}\n@media screen and (min-width: 1px) {\n .LuiTextAreaInput_LuiTextAreaInput__f628aa46 textarea {\n font-size: calc(\n 14px + 2 *\n (\n (100vw - 1px) / 1279\n )\n );\n }\n}\n@media screen and (min-width: 1280px) {\n .LuiTextAreaInput_LuiTextAreaInput__f628aa46 textarea {\n font-size: 16px;\n }\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46 textarea:focus {\n outline: none;\n border-color: #053d52;\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46 label,\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46 textarea {\n display: block;\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46.LuiTextAreaInput_hasError__f628aa46 textarea,\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46.LuiTextAreaInput_hasError__f628aa46 select {\n border-color: #eb5757;\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46.LuiTextAreaInput_isDisabled__f628aa46 textarea {\n border-color: #b2b2b2;\n background-color: #fff;\n cursor: not-allowed;\n opacity: 0.3;\n}\n.LuiTextAreaInput_LuiTextAreaInput__f628aa46.LuiTextAreaInput_isDisabled__f628aa46 label {\n opacity: 0.3;\n}\n\n.LuiTextAreaInput_LuiTextAreaInputLabel__f628aa46 {\n font-family: \"Open Sans\", system-ui, sans-serif;\n font-style: normal;\n font-weight: 700;\n display: block;\n font-size: 14px;\n line-height: 1.25;\n margin-bottom: 6px;\n color: #000;\n text-align: left;\n}\n\n.LuiTextAreaInput_LuiTextAreaInputError__f628aa46 {\n position: relative;\n display: flex;\n color: #eb5757;\n text-align: left;\n padding-left: 22px;\n font-size: 14px;\n line-height: 20px;\n margin-top: 2px;\n}\n\n.LuiTextAreaInput_LuiTextAreaInputErrorIcon__f628aa46 {\n position: absolute;\n left: 0;\n top: 2px;\n}";
1214
+ n(css$5,{});
1215
+
1216
+ var LuiTextAreaInput = function LuiTextAreaInput(props) {
1217
+ var _props$inputProps;
1218
+
1219
+ var id = useGenerateOrDefaultId((_props$inputProps = props.inputProps) == null ? void 0 : _props$inputProps.id);
1220
+ return React__default.createElement("div", {
1221
+ className: clsx('LuiTextAreaInput')
1222
+ }, React__default.createElement("label", {
1223
+ htmlFor: id
1224
+ }, React__default.createElement("span", {
1225
+ className: "LuiTextAreaInput-label"
1226
+ }, props.label), React__default.createElement("textarea", Object.assign({
1227
+ id: id,
1228
+ value: props.value,
1229
+ onChange: props.onChange,
1230
+ rows: 5
1231
+ }, props.inputProps))), props.error && React__default.createElement("span", {
1232
+ className: "LuiTextAreaInput-error"
1233
+ }, React__default.createElement(LuiIcon, {
1234
+ alt: "error",
1235
+ name: "ic_error",
1236
+ className: "LuiTextAreaInput-error-icon",
1237
+ size: "sm",
1238
+ status: "error"
1239
+ }), props.error));
1240
+ };
1241
+
1242
+ var LuiRadioInput = function LuiRadioInput(props) {
1243
+ var _props$inputProps;
1244
+
1245
+ var id = useGenerateOrDefaultId((_props$inputProps = props.inputProps) == null ? void 0 : _props$inputProps.id);
1246
+ return React__default.createElement("fieldset", {
1247
+ className: 'LuiRadioInput'
1248
+ }, props.legend && React__default.createElement("legend", {
1249
+ className: "LuiRadioInput-legend"
1250
+ }, props.legend), props.options.map(function (option, index) {
1251
+ var radioId = id + "-" + index;
1252
+ var isChecked = props.selectedValue === option;
1253
+ var isDisabled = props.isOptionDisabled && props.isOptionDisabled(index);
1254
+ return React__default.createElement("div", {
1255
+ className: clsx('LuiRadioInput-option', {
1256
+ isDisabled: isDisabled
1257
+ }),
1258
+ key: radioId
1259
+ }, React__default.createElement("label", {
1260
+ htmlFor: radioId,
1261
+ className: "LuiRadioInput-option-label",
1262
+ key: radioId
1263
+ }, React__default.createElement("input", Object.assign({
1264
+ disabled: isDisabled,
1265
+ className: "LuiRadioInput-option-button",
1266
+ type: "radio",
1267
+ id: radioId,
1268
+ name: option,
1269
+ value: option,
1270
+ checked: isChecked,
1271
+ onChange: props.onChange
1272
+ }, props.inputProps)), React__default.createElement("span", {
1273
+ className: clsx('LuiRadioInput-option-check', {
1274
+ isChecked: isChecked
1275
+ })
1276
+ }), props.renderLabelFor ? props.renderLabelFor(option) : option));
1277
+ }), props.error && React__default.createElement("div", {
1278
+ className: "LuiRadioInput-error"
1279
+ }, React__default.createElement(LuiIcon, {
1280
+ alt: 'error',
1281
+ name: "ic_error",
1282
+ size: "sm",
1283
+ status: "error"
1284
+ }), React__default.createElement("span", null, props.error)));
1285
+ };
1286
+
1287
+ function LuiFormikCheckbox(props) {
1288
+ var ctx = useFormikContext();
1289
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(Field, {
1290
+ name: props.name
1291
+ }, function (_ref) {
1292
+ var field = _ref.field;
1293
+ var showError = getIn(ctx == null ? void 0 : ctx.errors, props.name);
1294
+ return React__default.createElement("div", {
1295
+ className: clsx(showError && 'lui-input-error')
1296
+ }, React__default.createElement("div", {
1297
+ className: "lui-input-group-wrapper "
1298
+ }, showError && React__default.createElement("i", {
1299
+ className: "lui-form-status-icon material-icons-round"
1300
+ }, "error"), React__default.createElement("div", {
1301
+ className: clsx('lui-checkbox-container', props.className)
1302
+ }, React__default.createElement("input", Object.assign({}, props.inputProps, {
1303
+ type: "checkbox",
1304
+ id: props.value,
1305
+ disabled: !!props.disabled,
1306
+ checked: field.value
1307
+ }, field)), typeof props.label === 'string' ? React__default.createElement("label", {
1308
+ htmlFor: props.value
1309
+ }, props.label) : props.label)));
1310
+ }));
1311
+ }
1312
+
1313
+ var LuiFormikFormLabel = function LuiFormikFormLabel(props) {
1314
+ return React__default.createElement("div", {
1315
+ className: clsx('LuiFormLabel-wrapper', props.className && "" + props.className)
1316
+ }, props.children, React__default.createElement("label", {
1317
+ className: "LuiFormLabel",
1318
+ htmlFor: props["for"]
1319
+ }, props.required && React__default.createElement("span", {
1320
+ className: "lui-required-input-icon"
1321
+ }, "*"), props.label), props.tooltip && React__default.createElement("i", {
1322
+ className: "material-icons-round"
1323
+ }, "help"));
1324
+ };
1325
+
1326
+ var LuiFormikTextInput = /*#__PURE__*/connect(function (props) {
1327
+ var error = getIn(props.formik.errors, props.name);
1328
+ var touch = getIn(props.formik.touched, props.name);
1329
+ var showError = touch && error;
1330
+
1331
+ var _useFormikContext = useFormikContext(),
1332
+ setFieldValue = _useFormikContext.setFieldValue;
1333
+
1334
+ var multiLineToggle = function multiLineToggle(field) {
1335
+ return !props.multiLine ? React__default.createElement("input", Object.assign({
1336
+ id: props.name,
1337
+ "data-testid": props.name
1338
+ }, field, {
1339
+ type: "text"
1340
+ }, props.inputProps, {
1341
+ onChange: function onChange(event) {
1342
+ var _props$validateOnChan;
1343
+
1344
+ setFieldValue(props.name, event.target.value, (_props$validateOnChan = props.validateOnChange) != null ? _props$validateOnChan : true);
1345
+
1346
+ if (props.onValueChange) {
1347
+ props.onValueChange({
1348
+ value: event.target.value,
1349
+ formik: props.formik
1350
+ });
1351
+ }
1352
+ }
1353
+ })) : React__default.createElement("textarea", Object.assign({
1354
+ id: props.name,
1355
+ "data-testid": props.name
1356
+ }, field, {
1357
+ rows: 1
1358
+ }, props.inputProps, {
1359
+ onChange: function onChange(event) {
1360
+ var _props$validateOnChan2;
1361
+
1362
+ setFieldValue(props.name, event.target.value, (_props$validateOnChan2 = props.validateOnChange) != null ? _props$validateOnChan2 : true);
1363
+
1364
+ if (props.onValueChange) {
1365
+ props.onValueChange({
1366
+ value: event.target.value,
1367
+ formik: props.formik
1368
+ });
1369
+ }
1370
+ }
1371
+ }));
1372
+ };
1373
+
1374
+ return React__default.createElement("div", {
1375
+ className: clsx(props.className && "" + props.className)
1376
+ }, props.label && React__default.createElement(LuiFormikFormLabel, {
1377
+ required: props.required,
1378
+ label: props.label,
1379
+ "for": props.name,
1380
+ tooltip: props.tooltip
1381
+ }), props.helperInfo, React__default.createElement(Field, {
1382
+ name: props.name,
1383
+ validate: props.validate
1384
+ }, function (_ref) {
1385
+ var field = _ref.field;
1386
+ return React__default.createElement("div", {
1387
+ className: clsx(showError && 'lui-input-error')
1388
+ }, React__default.createElement(ErrorMessage, {
1389
+ name: props.name,
1390
+ render: function render() {
1391
+ return React__default.createElement("i", {
1392
+ className: "lui-form-status-icon material-icons-round"
1393
+ }, "error");
1394
+ }
1395
+ }), multiLineToggle(field), React__default.createElement(ErrorMessage, {
1396
+ name: props.name,
1397
+ className: 'lui-error-msg',
1398
+ component: "p"
1399
+ }));
1400
+ }));
1401
+ });
1402
+
1403
+ var LuiFormikRadioButton = function LuiFormikRadioButton(props) {
1404
+ var _useField = useField(props),
1405
+ field = _useField[0],
1406
+ meta = _useField[1];
1407
+
1408
+ return React__default.createElement("div", {
1409
+ className: props.className
1410
+ }, meta.touched && meta.error && React__default.createElement("i", {
1411
+ className: "lui-form-status-icon material-icons-round"
1412
+ }, "error"), React__default.createElement("div", {
1413
+ className: 'lui-radio-container'
1414
+ }, React__default.createElement("input", Object.assign({
1415
+ disabled: !!props.disabled
1416
+ }, field, {
1417
+ checked: props.value === field.value,
1418
+ value: props.value,
1419
+ id: props.value,
1420
+ type: "radio"
1421
+ }, props.inputProps)), React__default.createElement("label", {
1422
+ htmlFor: props.value
1423
+ }, props.label)));
1424
+ };
1425
+
1426
+ var LuiFormikRadioGroup = function LuiFormikRadioGroup(props) {
1427
+ var ctx = useFormikContext();
1428
+ var error = getIn(ctx.errors, props.name);
1429
+ var touch = getIn(ctx.touched, props.name);
1430
+ var showError = touch && error;
1431
+ var describedby = props.hint && camelcase(props == null ? void 0 : props.hint) + 'Id';
1432
+ var errorDescribedBy = error && camelcase(error) + 'Id';
1433
+ return React__default.createElement("div", {
1434
+ className: clsx('lui-fieldsetBlock-form-group', showError && 'lui-input-error')
1435
+ }, React__default.createElement("fieldset", {
1436
+ "aria-describedby": clsx(props.hint && describedby + 'Id', showError && errorDescribedBy)
1437
+ }, React__default.createElement("legend", null, props.required && React__default.createElement("span", {
1438
+ className: "lui-required-input-icon"
1439
+ }, "*"), props.legend), showError && React__default.createElement("p", {
1440
+ id: errorDescribedBy
1441
+ }, React__default.createElement("span", {
1442
+ className: "LuiScreenReadersOnly"
1443
+ }, " Error: "), error), props.hint && React__default.createElement("p", {
1444
+ className: "lui-fieldset-support-txt small",
1445
+ id: describedby
1446
+ }, props.hint), React__default.createElement("div", {
1447
+ className: "lui-input-group-wrapper"
1448
+ }, props.children)));
1137
1449
  };
1138
- var LuiIcon = function LuiIcon(_ref) {
1139
- var name = _ref.name,
1140
- className = _ref.className,
1141
- _ref$size = _ref.size,
1142
- size = _ref$size === void 0 ? 'ns' : _ref$size,
1143
- title = _ref.title,
1144
- alt = _ref.alt,
1145
- _ref$status = _ref.status,
1146
- status = _ref$status === void 0 ? 'none' : _ref$status,
1147
- spanProps = _ref.spanProps;
1148
- var iconSVG = ICONS[name];
1149
1450
 
1150
- if (!iconSVG) {
1151
- console.warn("No icon found for: " + iconSVG);
1152
- return null;
1153
- }
1451
+ var LuiFormikFormSubmitButton = /*#__PURE__*/connect(function (props) {
1452
+ return React__default.createElement(LuiButton, {
1453
+ type: "submit",
1454
+ className: props.className,
1455
+ level: "primary",
1456
+ "data-testid": props['data-testid'],
1457
+ disabled: !!props.disabled
1458
+ }, props.children);
1459
+ });
1154
1460
 
1155
- return createElement("span", Object.assign({
1156
- className: clsx('LuiIcon', className, size && ICON_SIZES[size], status && ICON_STATUS[status]),
1157
- "data-icon": name,
1158
- title: title,
1159
- "aria-label": alt
1160
- }, spanProps), iconSVG);
1161
- };
1461
+ var LuiFormikSelect = /*#__PURE__*/connect(function (props) {
1462
+ var error = getIn(props.formik.errors, props.name);
1463
+ var touch = getIn(props.formik.touched, props.name);
1464
+ var showError = touch && error;
1465
+ return React__default.createElement("div", {
1466
+ className: props.className
1467
+ }, props.label && React__default.createElement(LuiFormikFormLabel, {
1468
+ className: 'lui-margin-bottom-xxs',
1469
+ "for": props.name,
1470
+ label: props.label,
1471
+ required: !!props.required,
1472
+ tooltip: props.tooltip
1473
+ }), props.helperInfo, React__default.createElement("div", {
1474
+ className: clsx('lui-input-wrapper', showError && 'lui-input-error')
1475
+ }, React__default.createElement(ErrorMessage, {
1476
+ name: props.name,
1477
+ render: function render() {
1478
+ return React__default.createElement("i", {
1479
+ className: "lui-form-status-icon material-icons-round"
1480
+ }, "error");
1481
+ }
1482
+ }), React__default.createElement(Field, Object.assign({
1483
+ disabled: props.disabled,
1484
+ defaultValue: props.defaultValue,
1485
+ name: props.name,
1486
+ id: props.name,
1487
+ validate: props.validate,
1488
+ as: "select"
1489
+ }, props.inputProps), props.children), React__default.createElement(ErrorMessage, {
1490
+ name: props.name,
1491
+ className: 'lui-error-msg',
1492
+ component: "p"
1493
+ })));
1494
+ });
1162
1495
 
1163
1496
  var LuiBearingInput = function LuiBearingInput(props) {
1164
1497
  var maxDecimal = 1;
@@ -4659,9 +4992,9 @@ function isChromatic() {
4659
4992
  return !!(window.navigator.userAgent.match(/Chromatic/) || window.location.href.match(/chromatic=true/));
4660
4993
  }
4661
4994
 
4662
- var css$4 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}";
4995
+ var css$6 = ":root {\n --grey-80: #2a292c;\n --grey-60: #6b6966;\n --$gray: #989189;\n --grey-20: #beb9b4;\n --grey-10: #eaeaea;\n --grey-05: #f9f9f9;\n --teal: #00425d;\n --sea: #007198;\n --electric: #0096cc;\n --spray: #73c8e1;\n --polar: #e2f3f7;\n --sherpa: #004b50;\n --surfie: #017a76;\n --persian: #00a599;\n --downy: #73cdc8;\n --iceberg: #dcf5f0;\n --sacramento: #004e32;\n --salem: #08814d;\n --pigment: #0aa245;\n --granny: #9bd79b;\n --panache: #e9fae7;\n --brand-primary: #004b50;\n --brand-secondary: #017a76;\n --success: #0aa245;\n --success-bg: #e9fae7;\n --info: #3a7cdf;\n --info-bg: #d8e5f9;\n --warning: #ea6a2e;\n --warning-bg: #fbdfd2;\n --error: #cc0000;\n --error-focus: #5a0000;\n --error-bg: #f5cccc;\n --visited: #00425d;\n --green-hover: #08814d;\n --color-green-active: #004e32;\n --green-btn: #0aa245;\n --txt-link: #0096cc;\n --color-primary-hover-btn: #007198;\n --color-selection: #c7e9f3;\n --heading-color: #017a76;\n --heading-color--secondary: #2a292c;\n --base-type-color: #2a292c;\n --base-icon-color: #007198;\n --disabled-color: #989189;\n --disabled-color-dark: #6b6966;\n --linz-color-primary: #023d48;\n --linz-color-primary-hover: #01818a;\n --linz-color-tertiary: #e1e44a;\n --linz-color-tertiary-hover: #cdcf59;\n --color-test-pink: #f09;\n --linz-linear-gradient-blue: linear-gradient(70deg, #00425d 12%, #007198 100%);\n --linz-linear-gradient-teal: linear-gradient(270deg, #00a599 1%, #73cdc8 100%);\n}";
4663
4996
  var modules_5b17bb95 = {"charcoal":"#2a292c","fuscous":"#6b6966","gray":"#989189","silver":"#beb9b4","lily":"#eaeaea","hint":"#f9f9f9","snow":"#ffffff","white":"#ffffff","teal":"#00425d","sea":"#007198","electric":"#0096cc","spray":"#73c8e1","polar":"#e2f3f7","sherpa":"#004b50","surfie":"#017a76","persian":"#00a599","downy":"#73cdc8","iceberg":"#dcf5f0","sacramento":"#004e32","salem":"#08814d","pigment":"#0aa245","granny":"#9bd79b","panache":"#e9fae7","brand-primary":"#004b50","brand-secondary":"#017a76","error":"#cc0000","error-bg":"#f5cccc","error-focus":"#5a0000","warning":"#ea6a2e","warning-bg":"#fbdfd2","warning-focus":"#b33a01","success":"#0aa245","success-bg":"#e9fae7","info":"#3a7cdf","info-bg":"#d8e5f9","visited":"#00425d","green-hover":"#08814d","green-active":"#004e32","green-btn":"#0aa245","txt-link":"#0096cc","primary-hover-btn":"#007198","selection":"#c7e9f3","heading-color":"#017a76","heading-color--secondary":"#2a292c","base-type-color":"#2a292c","base-icon-color":"#007198","disabled-color":"#989189","disabled-color-dark":"#6b6966","linz-color-primary":"#023d48","linz-color-primary-hover":"#01818a","linz-color-tertiary":"#e1e44a","linz-color-tertiary-hover":"#cdcf59","color-test-pink":"#f09","linz-linear-gradient-blue":"linear-gradient(70deg, #00425d 12%, #007198 100%)","linz-linear-gradient-teal":"linear-gradient(270deg, #00a599 1%, #73cdc8 100%)"};
4664
- n(css$4,{});
4997
+ n(css$6,{});
4665
4998
 
4666
4999
  /**
4667
5000
  * A wrapper around React Select with Lui styling
@@ -6865,137 +7198,6 @@ var LuiTooltip = function LuiTooltip(props) {
6865
7198
  }, children);
6866
7199
  };
6867
7200
 
6868
- var LuiFileInputBox = function LuiFileInputBox(props) {
6869
- var _useState = useState(),
6870
- file = _useState[0],
6871
- setFile = _useState[1];
6872
-
6873
- var _useState2 = useState(false),
6874
- hasFileFormatError = _useState2[0],
6875
- setHasFileFormatError = _useState2[1];
6876
-
6877
- var onChange = function onChange(e) {
6878
- // Logic to go here to check extensions and setHasFileFormatError
6879
- setHasFileFormatError(false);
6880
- var files = e.target.files; // File upload box is configured to only accept 1 file, we can't have more than one here
6881
-
6882
- if (files && files.length === 1) {
6883
- var selectedFile = files[0];
6884
- var supportedFileTypes = props.acceptedExtensions.map(function (ext) {
6885
- return ext.toUpperCase();
6886
- });
6887
- var fileName = selectedFile.name;
6888
-
6889
- if (!supportedFileTypes.includes(getFileNameExtension(fileName))) {
6890
- setHasFileFormatError(true);
6891
- setFile(undefined);
6892
- } else {
6893
- setFile(selectedFile);
6894
- props.onValidFileSelected(selectedFile);
6895
- }
6896
- }
6897
- };
6898
-
6899
- var FileFormatErrorDetails = function FileFormatErrorDetails() {
6900
- return React__default.createElement("div", {
6901
- className: "LuiFileInputBox-upload-container"
6902
- }, React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
6903
- className: 'LuiFileInputBox-upload-icon-error'
6904
- }, React__default.createElement(LuiIcon, {
6905
- name: "ic_error_outline",
6906
- size: 'ns',
6907
- alt: "Error"
6908
- })), React__default.createElement("p", {
6909
- className: "LuiFileInputBox-upload-text"
6910
- }, "You must select a file with extension of", ' ', extensionsAsHumanReadableList(props.acceptedExtensions), ".")));
6911
- };
6912
-
6913
- var hasError = hasFileFormatError || props.showMustSelectFileError === true;
6914
- return React__default.createElement("div", {
6915
- className: clsx('LuiFileInputBox-upload', hasError && 'LuiFileInputBox-upload-error'),
6916
- style: {
6917
- width: props.width || 320,
6918
- height: props.height || 320
6919
- }
6920
- }, React__default.createElement("input", {
6921
- role: "button",
6922
- "aria-label": "File Upload",
6923
- type: "file",
6924
- className: "LuiFileInputBox-upload-input",
6925
- accept: props.acceptedExtensions.map(function (extension) {
6926
- return "." + extension;
6927
- }).join(','),
6928
- onChange: onChange
6929
- }), React__default.createElement(React__default.Fragment, null, hasError ? React__default.createElement(FileFormatErrorDetails, null) : React__default.createElement(FileUploadInfo, {
6930
- fileName: file == null ? void 0 : file.name,
6931
- fileFormatText: props.fileFormatText,
6932
- fileDescription: props.fileDescription
6933
- })));
6934
- }; // Only exported for chromatic
6935
-
6936
- var FileUploadInfo = function FileUploadInfo(props) {
6937
- var DragAndDropInstruction = function DragAndDropInstruction() {
6938
- return React__default.createElement("p", {
6939
- className: "LuiFileInputBox-upload-text"
6940
- }, "Drag and drop your ", props.fileDescription, " into the box", React__default.createElement("br", null), React__default.createElement("span", null, "(or upload file manually)"));
6941
- };
6942
-
6943
- var WaitingForFileSelection = function WaitingForFileSelection() {
6944
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
6945
- className: 'LuiFileInputBox-upload-icon-upload'
6946
- }, React__default.createElement(LuiIcon, {
6947
- name: "ic_publish",
6948
- size: 'ns',
6949
- alt: "Upload"
6950
- })), React__default.createElement(DragAndDropInstruction, null), props.fileFormatText && React__default.createElement("p", {
6951
- className: "LuiFileInputBox-upload-text LuiFileInputBox-upload-text-no-padding"
6952
- }, props.fileFormatText));
6953
- };
6954
-
6955
- var UploadSuccess = function UploadSuccess() {
6956
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
6957
- className: 'LuiFileInputBox-upload-icon-success'
6958
- }, React__default.createElement(LuiIcon, {
6959
- name: "ic_check_circle_outline",
6960
- size: 'ns',
6961
- alt: "Success"
6962
- })), React__default.createElement("p", {
6963
- className: "LuiFileInputBox-upload-file-name"
6964
- }, props.fileName), React__default.createElement(DragAndDropInstruction, null));
6965
- };
6966
-
6967
- return React__default.createElement("div", {
6968
- className: "LuiFileInputBox-upload-container"
6969
- }, props.fileName ? React__default.createElement(UploadSuccess, null) : React__default.createElement(WaitingForFileSelection, null));
6970
- };
6971
- /**
6972
- * Get the extension from a filename in upper-case.
6973
- *
6974
- * @param fileName File-name to get extension from.
6975
- * @return fileName extension in upper-case if found else empty string.
6976
- */
6977
-
6978
- var getFileNameExtension = function getFileNameExtension(fileName) {
6979
- var idx = fileName.lastIndexOf('.');
6980
- return idx === -1 ? '' : fileName.substr(idx + 1).toUpperCase();
6981
- };
6982
- /**
6983
- * Convert an array of extensions to a human readable string in upper-case.
6984
- * e.g. JPG, TIFF or BMP.
6985
- *
6986
- * @param extensions List of extensions to convert.
6987
- * @return Extensions in a human readable string in upper-case.
6988
- */
6989
-
6990
- var extensionsAsHumanReadableList = function extensionsAsHumanReadableList(extensions) {
6991
- var uppercaseExtensions = extensions.map(function (extension) {
6992
- return extension.toUpperCase();
6993
- });
6994
- if (!extensions.length) return '';
6995
- if (extensions.length === 1) return uppercaseExtensions[0];
6996
- return uppercaseExtensions.slice(0, -1).join(', ') + " or " + uppercaseExtensions[extensions.length - 1];
6997
- };
6998
-
6999
7201
  /**
7000
7202
  * This hook will callback with handleClickOutside() when "mousedown" dom event occurs off the refElement
7001
7203
  * usage:
@@ -7026,5 +7228,5 @@ function useClickedOutsideElement(refElement, handleClickOutside) {
7026
7228
  }, []);
7027
7229
  }
7028
7230
 
7029
- export { FIRM_KEY, FIRM_NAME_KEY, GLOBAL_CLIENT_REFERENCE_KEY, LOLActiveFirmMessage, LOLAuthorisedLink, LOLCommonDrawerMenu, LOLCommonDrawerMenuAfterLinks, LOLDrawerMenu, LOLFirmSwitcherMenu, LOLGlobalClientRefContext, LOLGlobalClientRefContextProvider, LOLLogoutLink, LOLUserContext, LOLUserContextProvider, LOLUserLastLogin, LuiAlertModal, LuiAlertModalButtons, LuiBanner, LuiBannerContent, LuiBearingFormikInput, LuiBearingInput, LuiButton, LuiButtonGroup, LuiCloseableHeaderMenuContext, LuiCloseableHeaderMenuItem, LuiComboSelect, LuiControlledMenu, LuiDrawerMenu, LuiDrawerMenuDivider, LuiDrawerMenuOption, LuiDrawerMenuOptions, LuiDrawerMenuSection, LuiDropdownMenu, LuiErrorPage, LuiExpandableBanner, LuiFileInputBox, LuiFilterContainer, LuiFilterMenu, LuiFooter, LuiFormikCheckbox, LuiFormikForm, LuiFormikFormLabel, LuiFormikFormSubmitButton, LuiFormikRadioButton, LuiFormikRadioGroup, LuiFormikSelect, LuiFormikTextInput, LuiHeader, LuiHeaderMenuItem, LuiIcon, LuiLoadingSpinner, LuiMenu, LuiMenuCloseButton, LuiMenuDivider, LuiMenuHeader, LuiMenuItem, LuiMessagingContextProvider, LuiMiniSpinner, LuiModal, LuiStaticMessage, LuiStatusSpinner, LuiTab, LuiTabs, LuiTabsContext, LuiTabsGroup, LuiTabsPanel, LuiTabsPanelSwitch, LuiToastMessage, LuiTooltip, LuiUpdatesSplashModal, useClickedOutsideElement, useLOLGlobalClientRefContext, useLOLUserContext, useShowLUIMessage };
7231
+ export { FIRM_KEY, FIRM_NAME_KEY, GLOBAL_CLIENT_REFERENCE_KEY, LOLActiveFirmMessage, LOLAuthorisedLink, LOLCommonDrawerMenu, LOLCommonDrawerMenuAfterLinks, LOLDrawerMenu, LOLFirmSwitcherMenu, LOLGlobalClientRefContext, LOLGlobalClientRefContextProvider, LOLLogoutLink, LOLUserContext, LOLUserContextProvider, LOLUserLastLogin, LuiAlertModal, LuiAlertModalButtons, LuiBanner, LuiBannerContent, LuiBearingFormikInput, LuiBearingInput, LuiButton, LuiButtonGroup, LuiCheckboxInput, LuiCloseableHeaderMenuContext, LuiCloseableHeaderMenuItem, LuiComboSelect, LuiControlledMenu, LuiDrawerMenu, LuiDrawerMenuDivider, LuiDrawerMenuOption, LuiDrawerMenuOptions, LuiDrawerMenuSection, LuiDropdownMenu, LuiErrorPage, LuiExpandableBanner, LuiFileInputBox, LuiFilterContainer, LuiFilterMenu, LuiFooter, LuiFormikCheckbox, LuiFormikForm, LuiFormikFormLabel, LuiFormikFormSubmitButton, LuiFormikRadioButton, LuiFormikRadioGroup, LuiFormikSelect, LuiFormikTextInput, LuiHeader, LuiHeaderMenuItem, LuiIcon, LuiLoadingSpinner, LuiMenu, LuiMenuCloseButton, LuiMenuDivider, LuiMenuHeader, LuiMenuItem, LuiMessagingContextProvider, LuiMiniSpinner, LuiModal, LuiRadioInput, LuiSelectInput, LuiStaticMessage, LuiStatusSpinner, LuiTab, LuiTabs, LuiTabsContext, LuiTabsGroup, LuiTabsPanel, LuiTabsPanelSwitch, LuiTextAreaInput, LuiTextInput, LuiToastMessage, LuiTooltip, LuiUpdatesSplashModal, useClickedOutsideElement, useLOLGlobalClientRefContext, useLOLUserContext, useShowLUIMessage };
7030
7232
  //# sourceMappingURL=lui.esm.js.map