@startlibs/form 1.1.3 → 1.2.0-rc.2

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 (112) hide show
  1. package/lib/AutoComplete.mjs +7 -7
  2. package/lib/AutoComplete.mjs.map +1 -1
  3. package/lib/Checkbox.mjs +4 -2
  4. package/lib/Checkbox.mjs.map +1 -1
  5. package/lib/Combobox.mjs +1 -1
  6. package/lib/Combobox.mjs.map +1 -1
  7. package/lib/DatePicker.mjs +25 -9
  8. package/lib/DatePicker.mjs.map +1 -1
  9. package/lib/Errors.mjs +20 -10
  10. package/lib/Errors.mjs.map +1 -1
  11. package/lib/ExpandableBox.mjs +1 -1
  12. package/lib/ExpandableBox.mjs.map +1 -1
  13. package/lib/Field.mjs +10 -5
  14. package/lib/Field.mjs.map +1 -1
  15. package/lib/FieldBox.mjs +3 -3
  16. package/lib/FieldBox.mjs.map +1 -1
  17. package/lib/InputboxGroup.mjs +1 -1
  18. package/lib/InputboxGroup.mjs.map +1 -1
  19. package/lib/RichText.mjs +11 -6
  20. package/lib/RichText.mjs.map +1 -1
  21. package/lib/TextInput.mjs +4 -4
  22. package/lib/TextInput.mjs.map +1 -1
  23. package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
  24. package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
  25. package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
  26. package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
  27. package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
  28. package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
  29. package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
  30. package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
  31. package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
  32. package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
  33. package/lib/index.cjs +94 -51
  34. package/lib/index.cjs.map +1 -1
  35. package/lib/index.mjs +2 -2
  36. package/lib/withFormImageInput.mjs +1 -1
  37. package/lib/withFormImageInput.mjs.map +1 -1
  38. package/lib-yak/AutoComplete.mjs +705 -0
  39. package/lib-yak/AutoComplete.mjs.map +1 -0
  40. package/lib-yak/Checkbox.mjs +80 -0
  41. package/lib-yak/Checkbox.mjs.map +1 -0
  42. package/lib-yak/Combobox.mjs +652 -0
  43. package/lib-yak/Combobox.mjs.map +1 -0
  44. package/lib-yak/ComboboxWithCustom.mjs +77 -0
  45. package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
  46. package/lib-yak/DatePicker.mjs +774 -0
  47. package/lib-yak/DatePicker.mjs.map +1 -0
  48. package/lib-yak/EditableBox.mjs +495 -0
  49. package/lib-yak/EditableBox.mjs.map +1 -0
  50. package/lib-yak/Errors.mjs +226 -0
  51. package/lib-yak/Errors.mjs.map +1 -0
  52. package/lib-yak/ExpandableBox.mjs +247 -0
  53. package/lib-yak/ExpandableBox.mjs.map +1 -0
  54. package/lib-yak/Field.mjs +93 -0
  55. package/lib-yak/Field.mjs.map +1 -0
  56. package/lib-yak/FieldBox.mjs +173 -0
  57. package/lib-yak/FieldBox.mjs.map +1 -0
  58. package/lib-yak/Form.mjs +322 -0
  59. package/lib-yak/Form.mjs.map +1 -0
  60. package/lib-yak/FormValue.mjs +111 -0
  61. package/lib-yak/FormValue.mjs.map +1 -0
  62. package/lib-yak/InputboxGroup.mjs +146 -0
  63. package/lib-yak/InputboxGroup.mjs.map +1 -0
  64. package/lib-yak/Radiobox.mjs +69 -0
  65. package/lib-yak/Radiobox.mjs.map +1 -0
  66. package/lib-yak/RichText.mjs +776 -0
  67. package/lib-yak/RichText.mjs.map +1 -0
  68. package/lib-yak/TextInput.mjs +589 -0
  69. package/lib-yak/TextInput.mjs.map +1 -0
  70. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
  71. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
  72. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
  73. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
  74. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
  75. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
  76. package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
  77. package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
  78. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
  79. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
  80. package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
  81. package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
  82. package/lib-yak/enhanceInput.mjs +131 -0
  83. package/lib-yak/enhanceInput.mjs.map +1 -0
  84. package/lib-yak/index.mjs +28 -0
  85. package/lib-yak/index.mjs.map +1 -0
  86. package/lib-yak/useConfirmDialog.mjs +117 -0
  87. package/lib-yak/useConfirmDialog.mjs.map +1 -0
  88. package/lib-yak/useDraftConfirmation.mjs +56 -0
  89. package/lib-yak/useDraftConfirmation.mjs.map +1 -0
  90. package/lib-yak/validation.mjs +91 -0
  91. package/lib-yak/validation.mjs.map +1 -0
  92. package/lib-yak/withFormImageInput.mjs +298 -0
  93. package/lib-yak/withFormImageInput.mjs.map +1 -0
  94. package/package.json +13 -3
  95. package/src/AutoComplete.jsx +12 -12
  96. package/src/Checkbox.jsx +2 -2
  97. package/src/Combobox.jsx +1 -1
  98. package/src/DatePicker.jsx +25 -22
  99. package/src/Errors.jsx +18 -8
  100. package/src/ExpandableBox.jsx +3 -3
  101. package/src/Field.jsx +9 -4
  102. package/src/FieldBox.jsx +6 -6
  103. package/src/IconRadioBoxOldHubt.jsx +1 -1
  104. package/src/InputboxGroup.jsx +1 -1
  105. package/src/RichText.jsx +17 -13
  106. package/src/TextInput.jsx +37 -26
  107. package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
  108. package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
  109. package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
  110. package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
  111. package/src/alt/radiobox/TabRadiobox.jsx +4 -4
  112. package/src/withFormImageInput.jsx +2 -2
package/lib/FieldBox.mjs CHANGED
@@ -32,13 +32,13 @@ const DeleteButton = /*#__PURE__*/styled(Icon).attrs({
32
32
  }).withConfig({
33
33
  displayName: "FieldBox__DeleteButton",
34
34
  componentId: "sc-18ntu84-4"
35
- })(["width:24px;height:24px;line-height:24px;border-radius:50%;display:inline-block;font-size:18px;margin-left:0.75rem;text-align:center;cursor:pointer;color:", ";background-color:rgba(0,0,0,0.08);flex-shrink:0;:hover{background:rgba(0,0,0,0.11);}:active{background:rgba(0,0,0,0.13);}"], getColor('gray120'));
35
+ })(["width:24px;height:24px;line-height:24px;border-radius:50%;display:inline-block;font-size:18px;margin-left:0.75rem;text-align:center;cursor:pointer;color:", ";background-color:rgba(0,0,0,0.08);flex-shrink:0;&:hover{background:rgba(0,0,0,0.11);}&:active{background:rgba(0,0,0,0.13);}"], getColor('gray120'));
36
36
  const DropdownButton = /*#__PURE__*/styled(Icon).attrs({
37
37
  icon: 'arrow-down'
38
38
  }).withConfig({
39
39
  displayName: "FieldBox__DropdownButton",
40
40
  componentId: "sc-18ntu84-5"
41
- })(["width:24px;height:24px;line-height:24px;border-radius:50%;display:inline-block;font-size:14px;margin-left:0.75rem;text-align:center;cursor:pointer;color:", ";background-color:rgba(0,0,0,0.08);flex-shrink:0;position:relative;:hover{background:rgba(0,0,0,0.11);}:active{background:rgba(0,0,0,0.13);}"], getColor('gray120'));
41
+ })(["width:24px;height:24px;line-height:24px;border-radius:50%;display:inline-block;font-size:14px;margin-left:0.75rem;text-align:center;cursor:pointer;color:", ";background-color:rgba(0,0,0,0.08);flex-shrink:0;position:relative;&:hover{background:rgba(0,0,0,0.11);}&:active{background:rgba(0,0,0,0.13);}"], getColor('gray120'));
42
42
  const DescText = /*#__PURE__*/styled.div.withConfig({
43
43
  displayName: "FieldBox__DescText",
44
44
  componentId: "sc-18ntu84-6"
@@ -74,7 +74,7 @@ const FieldBox = /*#__PURE__*/styled(_ref => {
74
74
  }).withConfig({
75
75
  displayName: "FieldBox",
76
76
  componentId: "sc-18ntu84-7"
77
- })(["display:flex;align-items:center;width:100%;background:", ";border-radius:8px;min-height:42px;padding:1rem 1.25rem;align-items:center;font-size:14px;color:", ";position:relative;transition:border-radius 0.5s ease;", " & ~ &{margin-top:0.75rem;}", " ", ",.rightContainer{margin-left:1rem;}"], getColor('lightBluishGray'), getColor('gray60'), props => props.onClick && css(["cursor:pointer;:hover{background:", ";}:active{background:", ";transition:none;}"], props => darken(0.035, getColor('lightBluishGray')(props)), props => darken(0.05, getColor('lightBluishGray')(props))), media.mobile(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n min-height: 54px;\n font-size: 15px !important;\n "]))), TextButton);
77
+ })(["display:flex;align-items:center;width:100%;background:", ";border-radius:8px;min-height:42px;padding:1rem 1.25rem;align-items:center;font-size:14px;color:", ";position:relative;transition:border-radius 0.5s ease;", " & ~ &{margin-top:0.75rem;}", " ", ",.rightContainer{margin-left:1rem;}"], getColor('lightBluishGray'), getColor('gray60'), props => props.onClick && css(["cursor:pointer;&:hover{background:", ";}&:active{background:", ";transition:none;}"], props => darken(0.035, getColor('lightBluishGray')(props)), props => darken(0.05, getColor('lightBluishGray')(props))), media.mobile(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n min-height: 54px;\n font-size: 15px !important;\n "]))), TextButton);
78
78
 
79
79
  export { FieldBox, FieldBoxAction, FieldBoxHelpText, FieldBoxIcon };
80
80
  //# sourceMappingURL=FieldBox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBox.mjs","sources":["../src/FieldBox.jsx"],"sourcesContent":["import React from 'react'\nimport {darken} from 'polished'\nimport styled, {css} from 'styled-components'\nimport {media, callIfFunction, constrainEvent} from '@startlibs/utils';\nimport {Icon, TextButton} from '@startlibs/components'\nimport {getColor } from '@startlibs/utils';\nimport {usePopupToggle } from '@startlibs/core';\nimport {HelpText} from './Field'\n\nexport const FieldBoxIcon = styled(Icon)`\n font-size: 25px;\n width: 25px;\n text-align: center;\n margin-right: 1rem;\n`\nexport const FieldBoxAction = styled.div`\n margin-left: auto;\n color: ${getColor('main')};\n padding-left: 1rem;\n font-size: 13px;\n font-weight: 500;\n`\n \nexport const FieldBoxHelpText = styled.span`\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n`\n\nconst FieldBoxContent = styled.div`\n margin-right: auto;\n min-width: 0;\n`\n\nconst DeleteButton = styled(Icon).attrs({icon: 'x'})`\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n display: inline-block;\n font-size: 18px;\n margin-left: 0.75rem;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n background-color: rgba(0,0,0,0.08);\n flex-shrink: 0;\n :hover {\n background: rgba(0,0,0,0.11);\n }\n :active {\n background: rgba(0,0,0,0.13);\n }\n`\nconst DropdownButton = styled(Icon).attrs({icon: 'arrow-down'})`\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n display: inline-block;\n font-size: 14px;\n margin-left: 0.75rem;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n background-color: rgba(0,0,0,0.08);\n flex-shrink: 0;\n position: relative;\n :hover {\n background: rgba(0,0,0,0.11);\n }\n :active {\n background: rgba(0,0,0,0.13);\n }\n`\n\nconst DescText = styled.div `\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n margin-top: 0.25rem;\n`\n\n\nexport const FieldBox = styled(({className,label,helpText,descText,actionLabel,rightContainer,onClick,icon,remove,children,dropDownMenu,...props}) => {\n const menuToggle = usePopupToggle()\n return <div className={className} onClick={onClick} {...props}>\n {icon && <FieldBoxIcon icon={icon}/>}\n <FieldBoxContent>\n {label}{helpText && <HelpText> {helpText}</HelpText>}\n {descText && <DescText>{descText}</DescText>}\n {children}\n </FieldBoxContent>\n {actionLabel && <TextButton>{actionLabel}</TextButton>}\n {rightContainer && <div className=\"rightContainer\">{rightContainer}</div>}\n {remove && <DeleteButton onClick={constrainEvent(remove)}/>}\n {\n dropDownMenu && <DropdownButton onClick={constrainEvent(menuToggle.toggle)}>\n {menuToggle.isOpen && callIfFunction(dropDownMenu)}\n </DropdownButton>\n }\n </div>\n})`\n display: flex;\n align-items: center;\n width: 100%;\n background: ${getColor('lightBluishGray')};\n border-radius: 8px;\n min-height: 42px;\n padding: 1rem 1.25rem;\n align-items: center;\n font-size: 14px;\n color: ${getColor('gray60')};\n position: relative;\n transition: border-radius 0.5s ease;\n ${props => props.onClick && css`\n cursor: pointer;\n :hover {\n background: ${props => darken(0.035, getColor('lightBluishGray')(props))};\n }\n :active {\n background: ${props => darken(0.05, getColor('lightBluishGray')(props))};\n transition: none;\n }\n `}\n & ~ & {\n margin-top: 0.75rem;\n }\n ${media.mobile`\n min-height: 54px;\n font-size: 15px !important;\n `}\n ${TextButton}, .rightContainer {\n margin-left: 1rem;\n }\n`"],"names":["FieldBoxIcon","styled","Icon","withConfig","displayName","componentId","FieldBoxAction","div","getColor","FieldBoxHelpText","span","FieldBoxContent","DeleteButton","attrs","icon","DropdownButton","DescText","FieldBox","_ref","className","label","helpText","descText","actionLabel","rightContainer","onClick","remove","children","dropDownMenu","props","_objectWithoutProperties","_excluded","menuToggle","usePopupToggle","React","createElement","_extends","HelpText","TextButton","constrainEvent","toggle","isOpen","callIfFunction","css","darken","media","mobile","_templateObject","_taggedTemplateLiteral"],"mappings":"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"}
1
+ {"version":3,"file":"FieldBox.mjs","sources":["../src/FieldBox.jsx"],"sourcesContent":["import React from 'react'\nimport {darken} from 'polished'\nimport styled, {css} from 'styled-components'\nimport {media, callIfFunction, constrainEvent} from '@startlibs/utils';\nimport {Icon, TextButton} from '@startlibs/components'\nimport {getColor } from '@startlibs/utils';\nimport {usePopupToggle } from '@startlibs/core';\nimport {HelpText} from './Field'\n\nexport const FieldBoxIcon = styled(Icon)`\n font-size: 25px;\n width: 25px;\n text-align: center;\n margin-right: 1rem;\n`\nexport const FieldBoxAction = styled.div`\n margin-left: auto;\n color: ${getColor('main')};\n padding-left: 1rem;\n font-size: 13px;\n font-weight: 500;\n`\n \nexport const FieldBoxHelpText = styled.span`\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n`\n\nconst FieldBoxContent = styled.div`\n margin-right: auto;\n min-width: 0;\n`\n\nconst DeleteButton = styled(Icon).attrs({icon: 'x'})`\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n display: inline-block;\n font-size: 18px;\n margin-left: 0.75rem;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n background-color: rgba(0,0,0,0.08);\n flex-shrink: 0;\n &:hover {\n background: rgba(0,0,0,0.11);\n }\n &:active {\n background: rgba(0,0,0,0.13);\n }\n`\nconst DropdownButton = styled(Icon).attrs({icon: 'arrow-down'})`\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n display: inline-block;\n font-size: 14px;\n margin-left: 0.75rem;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n background-color: rgba(0,0,0,0.08);\n flex-shrink: 0;\n position: relative;\n &:hover {\n background: rgba(0,0,0,0.11);\n }\n &:active {\n background: rgba(0,0,0,0.13);\n }\n`\n\nconst DescText = styled.div `\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n margin-top: 0.25rem;\n`\n\n\nexport const FieldBox = styled(({className,label,helpText,descText,actionLabel,rightContainer,onClick,icon,remove,children,dropDownMenu,...props}) => {\n const menuToggle = usePopupToggle()\n return <div className={className} onClick={onClick} {...props}>\n {icon && <FieldBoxIcon icon={icon}/>}\n <FieldBoxContent>\n {label}{helpText && <HelpText> {helpText}</HelpText>}\n {descText && <DescText>{descText}</DescText>}\n {children}\n </FieldBoxContent>\n {actionLabel && <TextButton>{actionLabel}</TextButton>}\n {rightContainer && <div className=\"rightContainer\">{rightContainer}</div>}\n {remove && <DeleteButton onClick={constrainEvent(remove)}/>}\n {\n dropDownMenu && <DropdownButton onClick={constrainEvent(menuToggle.toggle)}>\n {menuToggle.isOpen && callIfFunction(dropDownMenu)}\n </DropdownButton>\n }\n </div>\n})`\n display: flex;\n align-items: center;\n width: 100%;\n background: ${getColor('lightBluishGray')};\n border-radius: 8px;\n min-height: 42px;\n padding: 1rem 1.25rem;\n align-items: center;\n font-size: 14px;\n color: ${getColor('gray60')};\n position: relative;\n transition: border-radius 0.5s ease;\n ${props => props.onClick && css`\n cursor: pointer;\n &:hover {\n background: ${props => darken(0.035, getColor('lightBluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.05, getColor('lightBluishGray')(props))};\n transition: none;\n }\n `}\n & ~ & {\n margin-top: 0.75rem;\n }\n ${media.mobile`\n min-height: 54px;\n font-size: 15px !important;\n `}\n ${TextButton}, .rightContainer {\n margin-left: 1rem;\n }\n`"],"names":["FieldBoxIcon","styled","Icon","withConfig","displayName","componentId","FieldBoxAction","div","getColor","FieldBoxHelpText","span","FieldBoxContent","DeleteButton","attrs","icon","DropdownButton","DescText","FieldBox","_ref","className","label","helpText","descText","actionLabel","rightContainer","onClick","remove","children","dropDownMenu","props","_objectWithoutProperties","_excluded","menuToggle","usePopupToggle","React","createElement","_extends","HelpText","TextButton","constrainEvent","toggle","isOpen","callIfFunction","css","darken","media","mobile","_templateObject","_taggedTemplateLiteral"],"mappings":";;;;;;;;;;;;;AASO,MAAMA,YAAY,gBAAGC,MAAM,CAACC,IAAI,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAKvC,CAAA,CAAA,CAAA,gEAAA,CAAA,EAAA;MACYC,cAAc,gBAAGL,MAAM,CAACM,GAAG,CAAAJ,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yBAAA,EAAA,oDAAA,CAAA,EAE7BG,QAAQ,CAAC,MAAM,CAAC,EAI1B;MAEYC,gBAAgB,gBAAGR,MAAM,CAACS,IAAI,CAAAP,UAAA,CAAA;EAAAC,WAAA,EAAA,4BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAI1C,CAAA,CAAA,CAAA,uDAAA,CAAA,EAAA;AAED,MAAMM,eAAe,gBAAGV,MAAM,CAACM,GAAG,CAAAJ,UAAA,CAAA;EAAAC,WAAA,EAAA,2BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAGjC,CAAA,CAAA,CAAA,gCAAA,CAAA,CAAA,CAAA;AAED,MAAMO,YAAY,gBAAGX,MAAM,CAACC,IAAI,CAAC,CAACW,KAAK,CAAC;AAACC,EAAAA,IAAI,EAAE,GAAA;AAAG,CAAC,CAAC,CAAAX,UAAA,CAAA;EAAAC,WAAA,EAAA,wBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2JAAA,EAAA,8HAAA,CAAA,EAUzCG,QAAQ,CAAC,SAAS,CAAC,CAS7B,CAAA;AACD,MAAMO,cAAc,gBAAGd,MAAM,CAACC,IAAI,CAAC,CAACW,KAAK,CAAC;AAACC,EAAAA,IAAI,EAAE,YAAA;AAAY,CAAC,CAAC,CAAAX,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2JAAA,EAAA,gJAAA,CAAA,EAUpDG,QAAQ,CAAC,SAAS,CAAC,CAU7B,CAAA;AAED,MAAMQ,QAAQ,gBAAGf,MAAM,CAACM,GAAG,CAAAJ,UAAA,CAAA;EAAAC,WAAA,EAAA,oBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAK1B,CAAA,CAAA,CAAA,0EAAA,CAAA,CAAA,CAAA;MAGYY,QAAQ,gBAAGhB,MAAM,CAACiB,IAAA,IAAuH;EAAA,IAAtH;MAACC,SAAS;MAACC,KAAK;MAACC,QAAQ;MAACC,QAAQ;MAACC,WAAW;MAACC,cAAc;MAACC,OAAO;MAACX,IAAI;MAACY,MAAM;MAACC,QAAQ;AAACC,MAAAA,YAAAA;AAAqB,KAAC,GAAAV,IAAA;AAANW,IAAAA,KAAK,GAAAC,wBAAA,CAAAZ,IAAA,EAAAa,SAAA,CAAA,CAAA;AAC9I,EAAA,MAAMC,UAAU,GAAGC,cAAc,EAAE,CAAA;AACnC,EAAA,oBAAOC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AAAKjB,IAAAA,SAAS,EAAEA,SAAU;AAACM,IAAAA,OAAO,EAAEA,OAAAA;GAAaI,EAAAA,KAAK,GAC1Df,IAAI,iBAAIoB,KAAA,CAAAC,aAAA,CAACnC,YAAY,EAAA;AAACc,IAAAA,IAAI,EAAEA,IAAAA;GAAM,CAAC,eACpCoB,KAAA,CAAAC,aAAA,CAACxB,eAAe,EAAA,IAAA,EACXS,KAAK,EAAEC,QAAQ,iBAAIa,KAAA,CAAAC,aAAA,CAACE,QAAQ,EAAC,IAAA,EAAA,GAAC,EAAChB,QAAmB,CAAC,EACnDC,QAAQ,iBAAIY,KAAA,CAAAC,aAAA,CAACnB,QAAQ,EAAA,IAAA,EAAEM,QAAmB,CAAC,EAC7CK,QACc,CAAC,EACjBJ,WAAW,iBAAIW,KAAA,CAAAC,aAAA,CAACG,UAAU,EAAA,IAAA,EAAEf,WAAwB,CAAC,EACrDC,cAAc,iBAAIU,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKhB,IAAAA,SAAS,EAAC,gBAAA;GAAkBK,EAAAA,cAAoB,CAAC,EACxEE,MAAM,iBAAIQ,KAAA,CAAAC,aAAA,CAACvB,YAAY,EAAA;IAACa,OAAO,EAAEc,cAAc,CAACb,MAAM,CAAA;GAAG,CAAC,EAEzDE,YAAY,iBAAIM,KAAA,CAAAC,aAAA,CAACpB,cAAc,EAAA;AAACU,IAAAA,OAAO,EAAEc,cAAc,CAACP,UAAU,CAACQ,MAAM,CAAA;GACtER,EAAAA,UAAU,CAACS,MAAM,IAAIC,cAAc,CAACd,YAAY,CACnC,CAEf,CAAC,CAAA;AACR,CAAC,CAAC,CAAAzB,UAAA,CAAA;EAAAC,WAAA,EAAA,UAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,wDAAA,EAAA,kGAAA,EAAA,wDAAA,EAAA,6BAAA,EAAA,GAAA,EAAA,qCAAA,CAAA,EAIcG,QAAQ,CAAC,iBAAiB,CAAC,EAMhCA,QAAQ,CAAC,QAAQ,CAAC,EAGzBqB,KAAK,IAAIA,KAAK,CAACJ,OAAO,IAAIkB,GAAG,CAAA,CAAA,oCAAA,EAAA,wBAAA,EAAA,oBAAA,CAAA,EAGbd,KAAK,IAAIe,MAAM,CAAC,KAAK,EAAEpC,QAAQ,CAAC,iBAAiB,CAAC,CAACqB,KAAK,CAAC,CAAC,EAG1DA,KAAK,IAAIe,MAAM,CAAC,IAAI,EAAEpC,QAAQ,CAAC,iBAAiB,CAAC,CAACqB,KAAK,CAAC,CAAC,CAG1E,EAICgB,KAAK,CAACC,MAAM,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,CAIZV,CAAAA,8DAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,UAAU;;;;"}
@@ -55,7 +55,7 @@ const InputboxGroup = /*#__PURE__*/styled(_ref => {
55
55
  }).withConfig({
56
56
  displayName: "InputboxGroup",
57
57
  componentId: "sc-q49nwm-0"
58
- })(["", " ", " ", " ", ""], props => props.wide && "\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n flex-basis: 0;\n }\n ", props => props.unevenlyWide && "\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n }\n ", props => props.horizontal ? "\n @supports (flex-wrap: wrap) {\n display: flex;\n flex-wrap: wrap;\n }\n min-height: 3rem;\n ".concat(SimpleRadiobox, ", ").concat(SimpleCheckbox, " {\n margin-right: 1.5rem;\n margin-bottom: 0.5rem;\n }\n ") : "\n ".concat(SimpleRadiobox, ", ").concat(SimpleCheckbox, " {\n margin-bottom: 0.5rem;\n :last-child {\n margin-bottom: 1.5rem;\n }\n }\n "), props => props.framedBoxes && css(["", ""], props => props.horizontal && "\n margin: -4px;\n width: calc(100% + 8px);\n ".concat(SimpleRadiobox, ", ").concat(SimpleCheckbox, " {\n margin: 4px;\n }\n ")));
58
+ })(["", " ", " ", " ", ""], props => props.wide && "\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n flex-basis: 0;\n }\n ", props => props.unevenlyWide && "\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n }\n ", props => props.horizontal ? "\n @supports (flex-wrap: wrap) {\n display: flex;\n flex-wrap: wrap;\n }\n min-height: 3rem;\n ".concat(SimpleRadiobox, ", ").concat(SimpleCheckbox, " {\n margin-right: 1.5rem;\n margin-bottom: 0.5rem;\n }\n ") : "\n ".concat(SimpleRadiobox, ", ").concat(SimpleCheckbox, " {\n margin-bottom: 0.5rem;\n &:last-child {\n margin-bottom: 1.5rem;\n }\n }\n "), props => props.framedBoxes && css(["", ""], props => props.horizontal && "\n margin: -4px;\n width: calc(100% + 8px);\n ".concat(SimpleRadiobox, ", ").concat(SimpleCheckbox, " {\n margin: 4px;\n }\n ")));
59
59
  const RadioboxGroup = InputboxGroup;
60
60
  const CheckboxGroup = InputboxGroup;
61
61
  CheckboxGroup.createCheckManager = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"InputboxGroup.mjs","sources":["../src/InputboxGroup.jsx"],"sourcesContent":["import React from 'react'\n\nimport {callIfFunction} from '@startlibs/utils'\nimport styled, {css} from 'styled-components'\n\nimport {Field} from './Field'\nimport {SimpleCheckbox} from './alt/checkbox/SimpleCheckbox'\nimport {SimpleRadiobox} from './alt/radiobox/SimpleRadiobox'\nimport {SplitColumnsContainer} from '@startlibs/components'\nimport _ from \"lodash/fp\";\n\nexport const InputboxGroup = styled(({path, className, column, as = column ? SplitColumnsContainer : 'div', children, label, descText,helpText,mandatory,margin, ...rest}) => {\n const size = React.Children.count(children)\n const Wrapper = as\n const boxes = <Wrapper className={className}>{\n React.Children.toArray(children).filter(child => child.props).map((child, i,arr) => React.cloneElement(child, {\n isFirst: i === 0,\n isLast: i === arr.length - 1,\n index: i,\n path,\n ...rest,\n ...child.props,\n }))\n }</Wrapper>\n \n return label \n ? <Field label={label} mandatory={mandatory} descText={descText} helpText={helpText} margin={margin}>{boxes}</Field> \n : boxes\n})`\n ${props => props.wide && `\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n flex-basis: 0;\n }\n `}\n ${props => props.unevenlyWide && `\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n }\n `}\n ${props => props.horizontal ? `\n @supports (flex-wrap: wrap) {\n display: flex;\n flex-wrap: wrap;\n }\n min-height: 3rem;\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin-right: 1.5rem;\n margin-bottom: 0.5rem;\n }\n ` : `\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin-bottom: 0.5rem;\n :last-child {\n margin-bottom: 1.5rem;\n }\n }\n `}\n ${props => props.framedBoxes && css`\n ${props => props.horizontal && `\n margin: -4px;\n width: calc(100% + 8px);\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin: 4px;\n }\n `}\n `}\n`\n\nexport const RadioboxGroup = InputboxGroup\nexport const CheckboxGroup = InputboxGroup\n\nCheckboxGroup.createCheckManager = (path = []) => {\n let lastSelected = null\n const select = (itemOrItems,toggleValue) => {\n lastSelected = _.isArray(itemOrItems) || _.isFunction(itemOrItems) ? lastSelected : itemOrItems\n const items = _.isArray(itemOrItems) ? itemOrItems : [itemOrItems]\n const intersects = (list) => path.length\n ? _.intersectionBy(path,list,items).length === items.length\n : _.intersection(list,items).length === items.length\n return (currentlySelected = []) =>\n _.isFunction(itemOrItems)\n ? itemOrItems(currentlySelected)\n : (toggleValue===false || (toggleValue !== true && intersects(currentlySelected)))\n ? (path.length ? _.differenceBy(path, currentlySelected, items) : _.difference(currentlySelected, items))\n : (path.length ? _.uniqBy(path,currentlySelected.concat(items)) : _.uniq(currentlySelected.concat(items)))\n }\n\n const getIndex = (item,list) => {\n const element = path.length ? _.intersectionBy(path, list, [item])[0] : item\n return list.indexOf(element)\n }\n const shiftSelect = (availableItems,item) => {\n const lastSelectedIndex = getIndex(lastSelected,callIfFunction(availableItems))\n lastSelected = item\n return (currentlySelected=[]) => {\n if (lastSelectedIndex < 0) {\n return select(item)(currentlySelected)\n } else {\n const removing = path.length ? _.intersectionBy(path, [item], currentlySelected).length : (currentlySelected?.indexOf(item)>=0)\n const currentIndex = getIndex(item,callIfFunction(availableItems))\n const firstIndex = currentIndex > lastSelectedIndex ? lastSelectedIndex : currentIndex\n const lastIndex = currentIndex > lastSelectedIndex ? (currentIndex + 1) : (lastSelectedIndex + 1)\n if (removing) {\n return path.length\n ? _.differenceBy(path,currentlySelected,availableItems.slice(firstIndex,lastIndex))\n : _.difference(currentlySelected,availableItems.slice(firstIndex,lastIndex))\n } else {\n return path.length\n ? _.unionBy(path,currentlySelected,availableItems.slice(firstIndex,lastIndex))\n : _.union(currentlySelected,availableItems.slice(firstIndex,lastIndex))\n }\n }\n }\n }\n return {select, shiftSelect}\n}"],"names":["InputboxGroup","styled","_ref","path","className","column","as","SplitColumnsContainer","children","label","descText","helpText","mandatory","margin","rest","_objectWithoutProperties","_excluded","React","Children","count","Wrapper","boxes","createElement","toArray","filter","child","props","map","i","arr","cloneElement","_objectSpread","isFirst","isLast","length","index","Field","withConfig","displayName","componentId","wide","unevenlyWide","horizontal","concat","SimpleRadiobox","SimpleCheckbox","framedBoxes","css","RadioboxGroup","CheckboxGroup","createCheckManager","arguments","undefined","lastSelected","select","itemOrItems","toggleValue","_isArray","_isFunction","items","intersects","list","_intersectionBy","_intersection","currentlySelected","_differenceBy","_difference","_uniqBy","_uniq","getIndex","item","element","indexOf","shiftSelect","availableItems","lastSelectedIndex","callIfFunction","removing","currentIndex","firstIndex","lastIndex","slice","_unionBy","_union"],"mappings":"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"}
1
+ {"version":3,"file":"InputboxGroup.mjs","sources":["../src/InputboxGroup.jsx"],"sourcesContent":["import React from 'react'\n\nimport {callIfFunction} from '@startlibs/utils'\nimport styled, {css} from 'styled-components'\n\nimport {Field} from './Field'\nimport {SimpleCheckbox} from './alt/checkbox/SimpleCheckbox'\nimport {SimpleRadiobox} from './alt/radiobox/SimpleRadiobox'\nimport {SplitColumnsContainer} from '@startlibs/components'\nimport _ from \"lodash/fp\";\n\nexport const InputboxGroup = styled(({path, className, column, as = column ? SplitColumnsContainer : 'div', children, label, descText,helpText,mandatory,margin, ...rest}) => {\n const size = React.Children.count(children)\n const Wrapper = as\n const boxes = <Wrapper className={className}>{\n React.Children.toArray(children).filter(child => child.props).map((child, i,arr) => React.cloneElement(child, {\n isFirst: i === 0,\n isLast: i === arr.length - 1,\n index: i,\n path,\n ...rest,\n ...child.props,\n }))\n }</Wrapper>\n \n return label \n ? <Field label={label} mandatory={mandatory} descText={descText} helpText={helpText} margin={margin}>{boxes}</Field> \n : boxes\n})`\n ${props => props.wide && `\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n flex-basis: 0;\n }\n `}\n ${props => props.unevenlyWide && `\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n }\n `}\n ${props => props.horizontal ? `\n @supports (flex-wrap: wrap) {\n display: flex;\n flex-wrap: wrap;\n }\n min-height: 3rem;\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin-right: 1.5rem;\n margin-bottom: 0.5rem;\n }\n ` : `\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin-bottom: 0.5rem;\n &:last-child {\n margin-bottom: 1.5rem;\n }\n }\n `}\n ${props => props.framedBoxes && css`\n ${props => props.horizontal && `\n margin: -4px;\n width: calc(100% + 8px);\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin: 4px;\n }\n `}\n `}\n`\n\nexport const RadioboxGroup = InputboxGroup\nexport const CheckboxGroup = InputboxGroup\n\nCheckboxGroup.createCheckManager = (path = []) => {\n let lastSelected = null\n const select = (itemOrItems,toggleValue) => {\n lastSelected = _.isArray(itemOrItems) || _.isFunction(itemOrItems) ? lastSelected : itemOrItems\n const items = _.isArray(itemOrItems) ? itemOrItems : [itemOrItems]\n const intersects = (list) => path.length\n ? _.intersectionBy(path,list,items).length === items.length\n : _.intersection(list,items).length === items.length\n return (currentlySelected = []) =>\n _.isFunction(itemOrItems)\n ? itemOrItems(currentlySelected)\n : (toggleValue===false || (toggleValue !== true && intersects(currentlySelected)))\n ? (path.length ? _.differenceBy(path, currentlySelected, items) : _.difference(currentlySelected, items))\n : (path.length ? _.uniqBy(path,currentlySelected.concat(items)) : _.uniq(currentlySelected.concat(items)))\n }\n\n const getIndex = (item,list) => {\n const element = path.length ? _.intersectionBy(path, list, [item])[0] : item\n return list.indexOf(element)\n }\n const shiftSelect = (availableItems,item) => {\n const lastSelectedIndex = getIndex(lastSelected,callIfFunction(availableItems))\n lastSelected = item\n return (currentlySelected=[]) => {\n if (lastSelectedIndex < 0) {\n return select(item)(currentlySelected)\n } else {\n const removing = path.length ? _.intersectionBy(path, [item], currentlySelected).length : (currentlySelected?.indexOf(item)>=0)\n const currentIndex = getIndex(item,callIfFunction(availableItems))\n const firstIndex = currentIndex > lastSelectedIndex ? lastSelectedIndex : currentIndex\n const lastIndex = currentIndex > lastSelectedIndex ? (currentIndex + 1) : (lastSelectedIndex + 1)\n if (removing) {\n return path.length\n ? _.differenceBy(path,currentlySelected,availableItems.slice(firstIndex,lastIndex))\n : _.difference(currentlySelected,availableItems.slice(firstIndex,lastIndex))\n } else {\n return path.length\n ? _.unionBy(path,currentlySelected,availableItems.slice(firstIndex,lastIndex))\n : _.union(currentlySelected,availableItems.slice(firstIndex,lastIndex))\n }\n }\n }\n }\n return {select, shiftSelect}\n}"],"names":["InputboxGroup","styled","_ref","path","className","column","as","SplitColumnsContainer","children","label","descText","helpText","mandatory","margin","rest","_objectWithoutProperties","_excluded","React","Children","count","Wrapper","boxes","createElement","toArray","filter","child","props","map","i","arr","cloneElement","_objectSpread","isFirst","isLast","length","index","Field","withConfig","displayName","componentId","wide","unevenlyWide","horizontal","concat","SimpleRadiobox","SimpleCheckbox","framedBoxes","css","RadioboxGroup","CheckboxGroup","createCheckManager","arguments","undefined","lastSelected","select","itemOrItems","toggleValue","_isArray","_isFunction","items","intersects","list","_intersectionBy","_intersection","currentlySelected","_differenceBy","_difference","_uniqBy","_uniq","getIndex","item","element","indexOf","shiftSelect","availableItems","lastSelectedIndex","callIfFunction","removing","currentIndex","firstIndex","lastIndex","slice","_unionBy","_union"],"mappings":"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"}
package/lib/RichText.mjs CHANGED
@@ -84,18 +84,23 @@ const FIX_STYLE = {
84
84
  return '';
85
85
  }
86
86
  };
87
+
88
+ // Precisa vir antes de RichTextContainer: o yak resolve `${ToolsContainer}` (seletor dentro de
89
+ // props.showToolbar) estaticamente lendo o módulo de cima pra baixo — em tempo de execução
90
+ // (sc) a ordem nunca importou, já que o template só lê ToolsContainer dentro de um callback
91
+ // (props => ...), chamado bem depois do módulo inteiro já ter sido avaliado.
92
+ const ToolsContainer = /*#__PURE__*/styled.div.withConfig({
93
+ displayName: "RichText__ToolsContainer",
94
+ componentId: "sc-x8c1ig-1"
95
+ })(["background:", ";padding:0 0.125rem;border-top-left-radius:7px;border-top-right-radius:7px;transition:0.225s;max-height:0;pointer-events:none;overflow:hidden;display:flex;align-items:center;"], getColor('lightBluishGray'));
87
96
  const RichTextContainer = /*#__PURE__*/styled.div.withConfig({
88
97
  displayName: "RichText__RichTextContainer",
89
- componentId: "sc-x8c1ig-1"
98
+ componentId: "sc-x8c1ig-2"
90
99
  })(["position:relative;width:100%;border:1px solid ", ";border-radius:8px;background:white;", ";", ";", " ", " ", " ul{list-style-type:disc;}ul,ol{padding-inline-start:25px;margin-block-start:0.5em;margin-block-end:0.5em;}"], getColor('gray210'), props => props.hasErrors && "border-color: ".concat(getColor(props)('alert')), props => props.showToolbar && "\n ".concat(ToolsContainer, " {\n transition: 0.5s;\n max-height: 7.5rem;\n transition: 0.6s;\n pointer-events: auto;\n }\n "), props => props.focus && "\n border-color: ".concat(getColor('gray180'), ";\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n "), props => props.locked && css(["padding-right:2.25rem;background:rgba(0,0,0,0.075);"]), props => props.linkColor && css(["a,a:visited,a:focus,a:active{color:", ";}a:hover{color:", ";}"], props.linkColor, darken(0.05, props.linkColor)));
91
100
  const RichTextInput = /*#__PURE__*/styled.div.withConfig({
92
101
  displayName: "RichText__RichTextInput",
93
- componentId: "sc-x8c1ig-2"
94
- })(["font-size:14px;color:", ";background:white;border-radius:7px;> div{overflow:auto;width:100%;outline:none;min-height:", "px;padding:0.7rem;}b,strong{font-weight:600;}a{text-decoration:underline;}> div[contenteditable=true]:empty:before{content:attr(placeholder);color:rgba(0,0,0,0.3);}", ""], getColor('gray60'), props => props.minHeight || 60, props => props.disabled && "\n &[disabled] {\n background: rgba(0, 0, 0, 0.075) !important;\n opacity: 0.75 !important;\n }\n ");
95
- const ToolsContainer = /*#__PURE__*/styled.div.withConfig({
96
- displayName: "RichText__ToolsContainer",
97
102
  componentId: "sc-x8c1ig-3"
98
- })(["background:", ";padding:0 0.125rem;border-top-left-radius:7px;border-top-right-radius:7px;transition:0.225s;max-height:0;pointer-events:none;overflow:hidden;display:flex;align-items:center;"], getColor('lightBluishGray'));
103
+ })(["font-size:14px;color:", ";background:white;border-radius:7px;> div{overflow:auto;width:100%;outline:none;min-height:", "px;padding:0.7rem;}b,strong{font-weight:600;}a{text-decoration:underline;}> div[contenteditable=true]:empty:before{content:attr(placeholder);color:rgba(0,0,0,0.3);}", ""], getColor('gray60'), props => props.minHeight || 60, props => props.disabled && "\n &[disabled] {\n background: rgba(0, 0, 0, 0.075) !important;\n opacity: 0.75 !important;\n }\n ");
99
104
  const ToolButton = /*#__PURE__*/styled(Button).withConfig({
100
105
  displayName: "RichText__ToolButton",
101
106
  componentId: "sc-x8c1ig-4"
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.mjs","sources":["../src/RichText.jsx"],"sourcesContent":["import React, {useContext, useEffect, useRef, useState} from 'react'\nimport styled, {css} from 'styled-components'\nimport ContentEditableModule from 'react-contenteditable'\nimport {darken} from 'polished'\nimport _ from 'lodash/fp'\nimport {getColor, linkRegex, stopPropagation} from '@startlibs/utils'\nimport {StartlibsContext, useEnsureRef, useLazyConstant, useToggle, usePopupToggle, useRefState} from '@startlibs/core'\nimport {Errors} from './Errors'\nimport {Field} from './Field'\nimport {WithForm} from './Form'\nimport {TextInput} from './TextInput'\nimport {useInput} from './enhanceInput'\nimport {Button, Icon} from '@startlibs/components'\n\n// Node/esbuild interop em .mjs devolve module.exports; Rollup devolve o default. Cobre os dois.\nconst ContentEditable = ContentEditableModule.default || ContentEditableModule\n\nconst InputIcon = styled(Icon)`\n position: absolute;\n outline: none;\n bottom: 0;\n font-size: 21px;\n line-height: 3rem;\n right: 0;\n width: 2rem;\n pointer-events: none;\n color: ${getColor('gray150')};\n`\n\nconst FORMAT_TOOLS = {\n 'bold': ['b', 'strong'],\n 'italic': 'i',\n 'underline': 'u',\n 'strikethrough': 'strike',\n 'link': 'a',\n 'insertUnorderedList': ['ul', 'li'],\n 'insertOrderedList': ['ol', 'li'],\n 'outdent': '',\n 'indent': 'blockquote',\n 'fontSizeUp': 'font',\n 'fontSizeDown': 'font'\n}\n\nconst TAG_TO_STYLE_PROPERTY = {\n 'b': 'fontWeight',\n 'strong': 'fontWeight',\n 'u': 'textDecoration',\n 'strike': 'textDecoration',\n 'font': 'fontSize',\n 'i': 'fontStyle'\n}\n\nlet GET_LIMITS_FONT_SIZE_PX = () => {\n const s = document.createElement('span')\n s.style.fontSize = 'medium'\n document.body.appendChild(s)\n const fontSize = parseInt(getComputedStyle(s).fontSize)\n document.body.removeChild(s)\n const limits = [fontSize * 3 / 5, fontSize * 3]\n GET_LIMITS_FONT_SIZE_PX = () => limits\n return limits\n}\n\nconst wrapWith = (el,wrapper) => {\n el.parentNode.insertBefore(wrapper, el);\n wrapper.appendChild(el)\n}\n\nconst FIX_STYLE = {\n 'fontWeight': (v, el) => {\n const intFontWeight = parseInt(window.getComputedStyle(el).fontWeight)\n return intFontWeight <= 400 ? 400 : 600\n },\n 'fontSize': (v, el) => {\n const [min, max] = GET_LIMITS_FONT_SIZE_PX()\n const intFontSize = parseInt(window.getComputedStyle(el).fontSize)\n return Math.min(max, Math.max(min, intFontSize)) + 'px'\n },\n 'textDecoration': (v,el) => {\n const values = v.split(' ').filter(v => v === 'underline' || v === 'line-through')\n if (values.indexOf('underline')>=0) {\n wrapWith(el,document.createElement('u'))\n }\n if (values.indexOf('line-through')>=0) {\n wrapWith(el,document.createElement('strike'))\n }\n return ''\n }\n}\n\nexport const RichTextContainer = styled.div`\n position:relative;\n width: 100%;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n background: white;\n ${props => props.hasErrors && `border-color: ${getColor(props)('alert')}`};\n ${props => props.showToolbar && `\n ${ToolsContainer} {\n transition: 0.5s;\n max-height: 7.5rem;\n transition: 0.6s;\n pointer-events: auto;\n }\n `};\n ${props => props.focus && `\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n ${props => props.locked && css`\n padding-right: 2.25rem;\n background: rgba(0,0,0,0.075);\n `}\n ${props => props.linkColor && css`\n a, a:visited, a:focus, a:active {\n color: ${props.linkColor};\n }\n a:hover {\n color: ${darken(0.05, props.linkColor)};\n }\n `}\n ul {\n list-style-type: disc;\n }\n ul, ol {\n padding-inline-start: 25px;\n margin-block-start: 0.5em;\n margin-block-end: 0.5em;\n }\n`\n\nexport const RichTextInput = styled.div`\n font-size: 14px;\n color: ${getColor('gray60')};\n background: white;\n border-radius: 7px;\n > div {\n overflow: auto;\n width: 100%;\n outline: none;\n min-height: ${props=>props.minHeight || 60}px;\n padding: 0.7rem;\n }\n b, strong {\n font-weight: 600;\n }\n a {\n text-decoration: underline;\n }\n > div[contenteditable=true]:empty:before {\n content: attr(placeholder);\n color: rgba(0,0,0,0.3);\n }\n ${props => props.disabled && `\n &[disabled] {\n background: rgba(0, 0, 0, 0.075) !important;\n opacity: 0.75 !important;\n }\n `}\n`\n\nconst ToolsContainer = styled.div`\n background: ${getColor('lightBluishGray')};\n padding: 0 0.125rem;\n border-top-left-radius: 7px;\n border-top-right-radius: 7px;\n transition: 0.225s;\n max-height: 0;\n pointer-events: none;\n overflow: hidden;\n display: flex;\n align-items: center;\n`\n\nconst ToolButton = styled(Button)`\n min-height: 2rem;\n min-width: 2rem;\n background: transparent;\n box-shadow: none;\n margin: 0.25rem 0.125rem;\n & ~ & {\n margin-left: 0.125rem;\n }\n .icon {\n font-size: 23px;\n color: ${getColor('gray90')};\n position: absolute;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n }\n &:hover, &.activated:hover {\n background: rgba(0,0,0,0.11);\n }\n &.activated {\n background: rgba(0,0,0,0.09);\n }\n &:focus:after {\n content: none;\n }\n`\n\nconst ToolSeparator = styled.span`\n border-left: 1px solid rgba(0,0,0,0.1);\n margin-left: 0.75rem;\n margin-right: 0.5rem;\n height: 1.5rem;\n`\n\nconst JS_CLASS = \"EDITOR--JS\"\n\nconst getNextRegularCharIndex = (text, offset, direction) => {\n const regex = /[A-Za-z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏàáâãäåæçèéêëìíîïÐÑÒÓÔÕÖØÙÚÛÜÝÞßðñòóôõöøùúûüýþÿ]/g\n let cursor = offset\n while ((text[cursor + direction] || '').match(regex)) {\n cursor += direction\n }\n return cursor\n}\n\nconst addHttp = (s) => {\n s = s.replace(/^\\s/, '')\n if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {\n return s\n } else {\n return 'http://' + s\n }\n}\n\nconst getRightMostElement = (node) => {\n if (node.childNodes.length) {\n return getRightMostElement(node.childNodes[node.childNodes.length - 1])\n } else {\n return node\n }\n}\n\nconst setSelectionRange = (input, selectionStart, selectionEnd = 0) => {\n if (!input) return\n let range = document.createRange()\n let sel = window.getSelection()\n range.setStart(input, selectionStart)\n if (selectionEnd) {\n range.setEnd(input, selectionEnd)\n } else {\n range.collapse(true)\n }\n sel.removeAllRanges()\n sel.addRange(range)\n}\n\nconst cleanEditor = (editor, acceptedTags) => {\n Array.prototype.slice.call(editor.querySelectorAll('.Apple-interchange-newline')).forEach(el => el.remove())\n Array.prototype.slice.call(editor.querySelectorAll('iframe')).forEach(el => el.remove())\n\n const acceptedStyles = acceptedTags.map(t => TAG_TO_STYLE_PROPERTY[t]).filter(_.identity)\n\n const newSpace = document.createTextNode('\\u00A0')\n if (window.getSelection().rangeCount) {\n const container = window.getSelection().getRangeAt(0).startContainer\n if (container.nodeType === 3) {\n container.parentNode.insertBefore(newSpace, container.nextSibling)\n } else {\n container.appendChild(newSpace)\n }\n if (newSpace.previousSibling && newSpace.previousSibling.textContent === '\\u00A0') {\n newSpace.previousSibling.remove()\n }\n setSelectionRange(newSpace, 0)\n }\n\n const clean = (children) => {\n Array.prototype.slice.call(children).forEach(el => {\n try {\n if (el.nodeType === 3)\n return\n if (!el.tagName) {\n el.remove()\n return\n }\n let tagName = el.tagName.toLowerCase()\n const style = getComputedStyle(el)\n const rect = el.getBoundingClientRect()\n const isHidden = style.display === 'none' || rect.width === 0 || rect.height === 0\n if (isHidden && (el.children && !el.children.length) && tagName !== 'br') {\n el.remove()\n } else if (acceptedTags.indexOf(tagName) >= 0) {\n clean(el.childNodes)\n el.removeAttribute('class')\n if (tagName === 'a') {\n el.setAttribute('target', '_blank')\n }\n if (el.getAttribute('style')) {\n const usedStyles = _.toPairs(_.pick(acceptedStyles, el.style)).filter(([k, v]) => v !== \"\")\n const fixedStyle = _.fromPairs(usedStyles.map(([k, v]) => [k, (FIX_STYLE[k] || _.identity)(v, el)]))\n el.removeAttribute('style')\n Object.assign(el.style, fixedStyle)\n }\n } else if (tagName === 'a') {\n clean(el.childNodes)\n if (el.textContent !== el.href || el.textContent.length < 5)\n el.outerHTML = el.innerHTML\n } else {\n clean(el.childNodes)\n if (el.hasChildNodes()) {\n const newTagName = style.display === 'inline' ? 'span' : 'div'\n const newEl = document.createElement(newTagName)\n Array.prototype.slice.call(el.childNodes).forEach(child => newEl.appendChild(child))\n el.parentNode.replaceChild(newEl, el)\n } else {\n el.remove()\n }\n }\n } catch (e) {\n if (el && el.remove)\n el.remove()\n }\n })\n }\n clean(editor.childNodes)\n}\n\nconst insertToken = (node, offset) => {\n const parent = node.parentNode\n const token = document.createElement(\"span\")\n if (node.nodeType === Node.TEXT_NODE) {\n const splitted = node.splitText(offset)\n parent.insertBefore(token, splitted)\n } else {\n parent.insertBefore(token, node)\n }\n return token\n}\n\n/*\n* pagely reformat\n .replace(/^[a-z]/, function (e) {\n return e.toUpperCase()\n })\n* */\n\nconst parseAndExecCommand = (c) => {\n if (c === \"strikethrough\" || c === \"underline\") {\n document.execCommand('styleWithCSS', false, false)\n } else {\n document.execCommand('styleWithCSS', false, true)\n }\n if (c.indexOf('fontSize') === 0) {\n const direction = c.indexOf('Up') > 0 ? 1 : -1\n const newValue = Math.min(7, Math.max(1, parseInt(document.queryCommandValue('fontSize') || 3) + direction))\n document.execCommand('fontSize', false, newValue)\n } else {\n const sanitizedCommand = (c.indexOf(\"List\") >= 0 && document.queryCommandState(c)) ? 'outdent' : c // FIX CHROME HANGS when list is called and already active\n\n document.execCommand(sanitizedCommand)\n }\n}\n\nexport const RichText = ({path, inputRef, label, autoHideToolbar, autoFocus, disabled, minHeight, placeholder, className, formatTools = ['bold', 'italic', 'underline', 'strikethrough', 'separator', 'link'], reformatText = _.identity, mandatory, descText, helpText, linkColor, tabIndex = 1, value, setValue,raw, locked}) => {\n\n const linkPopup = usePopupToggle()\n\n const input = useEnsureRef(inputRef)\n const activeLinkNode = useRef()\n const container = useRef()\n const linkJustCreated = useRefState()\n\n // auto-hide needs\n const startSelectionToken = useRefState()\n const endSelectionToken = useRefState()\n const commands = useRefState([])\n const containerFocused = useToggle()\n\n const needsNormalize = useRefState()\n const alreadyCancelled = useRefState()\n\n // const [formValue, setFormValue] = useInput({path})\n const [formValue, _setFormValue, {hasErrors}] = useInput({path,value,setValue},raw)\n\n // const tempValue = useConstant(formValue)\n const tempValue = useRef(formValue)\n const setFormValue = (v) => {\n tempValue.current = v\n _setFormValue(v)\n }\n\n useEffect(() => {\n if((value === formValue) && (formValue !== tempValue)){\n tempValue.current = formValue\n }\n },[path])\n\n const [activatedTools, setActivatedTools] = useState({})\n\n const validElements = useLazyConstant(() => ['br', 'div', 'p', 'span'].concat(_.flatten(formatTools.map(tool => FORMAT_TOOLS[tool] || []))))\n\n useEffect(() => {\n cleanEditor(input.current, validElements)\n }, [])\n\n const focus = () => input.current && input.current.focus()\n\n // Foco inicial opcional (ex.: abrir a dialog já no campo de descrição). Em\n // rAF pra rodar depois que a dialog termina de montar e não perder o foco.\n useEffect(() => {\n if (autoFocus) {\n requestAnimationFrame(focus)\n }\n }, [])\n\n useEffect(() => {\n if (needsNormalize.get()) {\n input.current.normalize()\n needsNormalize.set(false)\n }\n })\n\n const triggerScrollForPanel = (d) => {\n requestAnimationFrame((time) => {\n if (time > d + 250) return\n window.dispatchEvent(new Event('scroll'))\n triggerScrollForPanel(d)\n }\n )\n }\n\n const containerFocus = () => {\n containerFocused.openWith(2)\n triggerScrollForPanel(Date.now())\n }\n\n const containerBlur = (e) => {\n if (containerFocused.isOpen !== 1) {\n containerFocused.close()\n triggerScrollForPanel(Date.now())\n }\n }\n\n\n const onBlur = (e) => {\n const newValue = input.current.textContent.length === 0 ? '' : input.current.innerHTML\n // Só reescreve se o conteúdo mudou de fato: focar/desfocar sem editar não pode\n // marcar o form como alterado (senão dispara a confirmação de descarte à toa).\n // textContent vazio equivale a valor ausente/'' do form.\n if (newValue !== (formValue || '')) {\n setFormValue(newValue)\n }\n }\n\n const keydownHandler = (e) => {\n if (containerFocused.isOpen === 2){\n if (formatTools.indexOf('link') < 0) {\n return\n }\n if((e.key === \"k\" && e.ctrlKey) || (e.key === \"k\" && e.metaKey)){\n e.preventDefault();\n execCommand(null,'link')\n }\n }\n }\n\n useEffect(() => {\n document.addEventListener('keydown',keydownHandler);\n return () => document.removeEventListener('keydown',keydownHandler);\n }, [containerFocused.isOpen])\n\n const execCommand = (e, command) => {\n if (command === 'link') {\n let nodeEl\n if (!isSelectionInsideRichTextEditor()) {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n input.current.appendChild(anchor)\n nodeEl = anchor\n } else {\n const range = window.getSelection().getRangeAt(0)\n const selectedNode = range.startContainer\n if (range.collapsed) {\n const start = getNextRegularCharIndex(selectedNode.textContent, range.startOffset, -1)\n const end = getNextRegularCharIndex(selectedNode.textContent, range.startOffset - 1, 1)\n if (start < range.startOffset && end > range.startOffset - 1) {\n range.setStart(selectedNode, start)\n range.setEnd(selectedNode, end + 1)\n }\n }\n const selectedEl = selectedNode.nodeType === Node.TEXT_NODE ? selectedNode.parentNode : selectedNode\n const parent = selectedEl.closest('a,.'+JS_CLASS)\n if (parent && parent.matches('a')) {\n nodeEl = parent\n } else {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n if (range.collapsed) {\n range.insertNode(anchor)\n } else {\n if (range.commonAncestorContainer === input.current) {\n range.setStart(range.endContainer,0)\n }\n document.execCommand('createLink', false, '_')\n anchor = window.getSelection().anchorNode\n }\n const parent = range.commonAncestorContainer.nodeType === 3 ? range.commonAncestorContainer.parentNode : range.commonAncestorContainer\n const links = parent.querySelectorAll(\"a[href='_']\")\n Array.from(links).slice(0,-1).forEach(removeLinkFromNode)\n nodeEl = _.last(links)\n nodeEl.setAttribute('href', ' ')\n }\n }\n tempValue.current = input.current.innerHTML\n openDialog(nodeEl)\n } else {\n if (!isSelectionInsideRichTextEditor()) {\n input.current.focus()\n const last = document.createTreeWalker(input.current, NodeFilter.SHOW_TEXT).lastChild()\n const range = document.createRange()\n range.selectNodeContents(last || input.current)\n range.collapse(false)\n const sel = window.getSelection()\n sel.removeAllRanges()\n sel.addRange(range)\n }\n document.execCommand(command)\n setFormValue(input.current.innerHTML)\n toggleButtonsState()\n focus()\n }\n }\n\n const isSelectionInsideRichTextEditor = () => {\n const range = window.getSelection().getRangeAt(0)\n if (!range) return false\n const el = range.startContainer\n if (!el) return false\n const node = el.closest ? el : (el.parentNode || document.body)\n return node.closest('.'+JS_CLASS) === input.current\n }\n\n\n const saveRichTextLink = ({linkUrl, linkText}) => {\n const currentActiveLinkNode = activeLinkNode.current\n currentActiveLinkNode.setAttribute('href', addHttp(linkUrl))\n currentActiveLinkNode.setAttribute('target', '_blank')\n if (currentActiveLinkNode.textContent !== linkText) {\n currentActiveLinkNode.innerText = linkText\n }\n linkPopup.close()\n setSelectionRange(currentActiveLinkNode.lastChild, currentActiveLinkNode.textContent.length, 0)\n focus()\n setFormValue(input.current.innerHTML)\n }\n\n const cancelRichTextLink = (e) => {\n if (alreadyCancelled.get()) return\n const currentActiveLinkNode = activeLinkNode.current\n const span = document.createElement('span')\n if (currentActiveLinkNode.nextSibling)\n (currentActiveLinkNode.parentNode).insertBefore(span, currentActiveLinkNode.nextSibling)\n else\n (currentActiveLinkNode.parentNode).append(span)\n setSelectionRange(span, 0, 0)\n focus()\n if (currentActiveLinkNode.getAttribute('href') === ' ') {\n removeLink(e)\n }\n alreadyCancelled.set(true)\n span.remove()\n if (input.current) {\n input.current.normalize()\n } else {\n needsNormalize.set(true)\n }\n linkPopup.close()\n }\n\n const handleKeyUp = (e) => {\n toggleButtonsState()\n setFormValue(reformatText(input.current.innerHTML))\n }\n\n const handleKeyDown = (e) => {\n /*if (linkJustCreated.current && e.which === 8) {\n linkJustCreated.current.outerHTML = linkJustCreated.current.innerHTML\n input.current.normalize()\n return\n }\n commands.set([])\n linkJustCreated.set(null)\n const selectedRange = window.getSelection().getRangeAt(0)\n if (!selectedRange) return\n const possibleTextNode = selectedRange.startContainer\n const node = possibleTextNode.nodeType === Node.TEXT_NODE ? possibleTextNode.parentNode : possibleTextNode\n const parent = node.closest('a,.'+JS_CLASS)\n if ((e.key === 'Enter' || e.which === 32) && parent && parent.matches('.'+JS_CLASS)) {\n const range = document.createRange()\n range.setEnd(selectedRange.startContainer, selectedRange.startOffset)\n range.setStart(selectedRange.startContainer, 0)\n traverseAndAddLink(range)\n }*/\n }\n\n const traverseAndAddLink = (range) => {\n const match = range.toString().match(/[\\s\\t\\n\\r]([^\\s\\t\\n\\r]*)$/)\n if (match) {\n if ((/^(https?:\\/\\/|www\\.)/).test(match[1]) && linkRegex.test(match[1])) {\n range.setStart(range.startContainer, (match).index + 1);\n (range.endContainer).splitText(range.endContainer.textContent.length - 1)\n const newNode = document.createElement('a')\n newNode.href = match[1]\n newNode.appendChild(range.extractContents())\n range.insertNode(newNode)\n window.getSelection().getRangeAt(0).setEndAfter(newNode)\n window.getSelection().getRangeAt(0).setStartAfter(newNode)\n linkJustCreated.set(newNode)\n }\n } else {\n const previous = getPreviousElement(range.startContainer)\n if (previous) {\n range.setStart(previous, 0)\n traverseAndAddLink(range)\n }\n }\n }\n\n const getPreviousElement = (node) => {\n if (node.previousSibling) {\n const rightMost = getRightMostElement(node.previousSibling)\n if (rightMost.nodeType === Node.TEXT_NODE) {\n return rightMost\n } else {\n return getPreviousElement(rightMost)\n }\n } else if (node.parentNode && node !== input.current) {\n return getPreviousElement(node.parentNode)\n } else {\n return null\n }\n }\n\n const handlePasteDrop = (e) => setTimeout(() => pasted(e), 1)\n\n const handleClick = (e) => {\n toggleButtonsState()\n const el = e.target.closest('a,.'+JS_CLASS)\n if (el && el.matches('a') && el.getAttribute('href')) {\n openDialog(el)\n }\n }\n\n const openDialog = (el) => {\n activeLinkNode.current = el\n alreadyCancelled.set(false)\n linkPopup.openWith({linkText: el.textContent, linkUrl: (el.getAttribute('href') || '').trim()})\n }\n\n\n const removeLinkFromNode = (node) => {\n node.outerHTML = node.innerHTML === '\\u200b' ? '' : node.innerHTML\n }\n\n const removeLink = (e) => {\n if (e) e.preventDefault()\n alreadyCancelled.set(true)\n removeLinkFromNode(activeLinkNode.current)\n linkPopup.close()\n if (input.current) {\n setFormValue(input.current.innerHTML)\n input.current.normalize()\n }\n }\n\n const pasted = (e) => {\n cleanEditor(input.current, validElements)\n }\n\n const toggleButtonsState = () => {\n return setActivatedTools(_.zipObject(formatTools,formatTools.map((t)=>window.document.queryCommandState(t))))\n }\n\n const toolButton = (tool) => <ToolButton\n key={tool}\n tabIndex={-1}\n onClick={(e) => execCommand(e, tool)}\n className={'button exec-command rich-text-button only-icon ' + (activatedTools[tool] ? 'activated' : '')}\n type=\"button\"\n >\n <span className={'icon icon-' + tool}/>\n </ToolButton>\n\n const richTextElement = <RichTextContainer\n linkColor={linkColor}\n ref={container}\n onFocus={containerFocus}\n onBlur={containerBlur}\n focus={containerFocused.isOpen}\n showToolbar={!disabled & !autoHideToolbar || containerFocused.isOpen}\n className={className}\n >\n <ToolsContainer className=\"rich-text-tools\">\n {formatTools.map((t, i) => t === 'separator' ? <ToolSeparator className=\"separator\"\n key={\"separator-\" + i}/> : toolButton(t))}\n </ToolsContainer>\n <RichTextInput>\n <ContentEditable\n className={JS_CLASS}\n innerRef={input}\n html={tempValue.current || \"\"}\n onBlur={onBlur}\n onClick={handleClick}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onPaste={handlePasteDrop}\n onDrop={handlePasteDrop}\n tabIndex={tabIndex}\n disabled={disabled}\n minHeight={minHeight}\n placeholder={placeholder}\n />\n </RichTextInput>\n {locked && <InputIcon icon=\"lock\"/>}\n {\n linkPopup.isOpen &&\n <EditLinkPopup\n input={input}\n activeLinkNode={activeLinkNode}\n cancel={cancelRichTextLink}\n values={linkPopup.isOpen}\n removeLink={removeLink}\n saveLink={saveRichTextLink}\n />\n }\n </RichTextContainer>\n return (label\n ? <Field labelClick={focus} descText={descText} helpText={helpText} label={label} mandatory={mandatory}>\n {richTextElement}\n </Field>\n : richTextElement\n )\n}\n\nconst EditLinkPopup = ({cancel, removeLink, activeLinkNode, input, saveLink, values}) => {\n const linkPopup = useRef()\n const formRef = useRef()\n const linkTextRef = useRef()\n const linkUrlRef = useRef()\n const LABELS = useContext(StartlibsContext).labels.RichText\n\n\n const preValidation = (formValues) => {\n let errors\n if (!formValues.linkText) {\n errors = {'linkText': [LABELS.linkTextError]}\n }\n if (!formValues.linkUrl || formValues.linkUrl === ' ' || !linkRegex.test(formValues.linkUrl.trim())) {\n errors = {...errors, 'linkUrl': [LABELS.linkUrlError]}\n }\n return errors\n }\n\n const checkEscOrEnter = (e) => {\n if (e.keyCode === 27) {\n e.stopPropagation()\n cancel(e)\n } else if (e.keyCode === 13) {\n e.preventDefault()\n e.stopPropagation()\n formRef.current.submitForm()\n }\n }\n\n useEffect(() => {\n const currentActiveLinkNode = activeLinkNode.current\n const currentLinkPopup = linkPopup.current\n const offsetLeft = currentActiveLinkNode.getClientRects().length > 1 ? input.offsetLeft : currentActiveLinkNode.offsetLeft\n const left = ((currentActiveLinkNode.offsetWidth) / 2) - (currentLinkPopup.offsetWidth / 2) + offsetLeft\n const top = (currentActiveLinkNode.offsetHeight) + currentActiveLinkNode.offsetTop\n Object.assign(currentLinkPopup.style, {\n 'position': 'absolute',\n 'left': left + 'px',\n 'top': top + 'px'\n })\n if (values.linkText) {\n linkUrlRef.current.focus()\n } else {\n linkTextRef.current.focus()\n }\n return cancel\n }, [])\n\n return <WithForm skipDom ref={formRef} action={saveLink} values={values} preValidation={preValidation}>{form =>\n <div onClick={stopPropagation()} ref={linkPopup} onKeyDown={checkEscOrEnter}\n className=\"popup rich-text-link-editor ignore-link\" contentEditable={false}>\n <TextInput\n ref={linkTextRef}\n mandatory\n path=\"linkText\"\n label={LABELS.popupLinkText}\n />\n <TextInput\n ref={linkUrlRef}\n mandatory\n path=\"linkUrl\"\n label={LABELS.popupLinkUrl}\n />\n <div className=\"popup-footer\">\n <Button className=\"remove-link\" icon=\"remove\" onClick={removeLink}>\n {LABELS.popupRemove}\n </Button>\n <Button onClick={cancel} tabIndex={0}>{LABELS.popupCancel}</Button>\n <Button highlight onClick={form.willSubmitForm}>{LABELS.popupConfirm}</Button>\n </div>\n <Errors/>\n </div>\n }</WithForm>\n}"],"names":["ContentEditable","ContentEditableModule","default","InputIcon","styled","Icon","withConfig","displayName","componentId","getColor","FORMAT_TOOLS","TAG_TO_STYLE_PROPERTY","GET_LIMITS_FONT_SIZE_PX","s","document","createElement","style","fontSize","body","appendChild","parseInt","getComputedStyle","removeChild","limits","wrapWith","el","wrapper","parentNode","insertBefore","FIX_STYLE","fontWeight","v","intFontWeight","window","min","max","intFontSize","Math","textDecoration","values","split","filter","indexOf","RichTextContainer","div","props","hasErrors","concat","showToolbar","ToolsContainer","focus","locked","css","linkColor","darken","RichTextInput","minHeight","disabled","ToolButton","Button","ToolSeparator","span","JS_CLASS","getNextRegularCharIndex","text","offset","direction","regex","cursor","match","addHttp","replace","setSelectionRange","input","selectionStart","selectionEnd","arguments","length","undefined","range","createRange","sel","getSelection","setStart","setEnd","collapse","removeAllRanges","addRange","cleanEditor","editor","acceptedTags","Array","prototype","slice","call","querySelectorAll","forEach","remove","acceptedStyles","map","t","_identity","newSpace","createTextNode","rangeCount","container","getRangeAt","startContainer","nodeType","nextSibling","previousSibling","textContent","clean","children","tagName","toLowerCase","rect","getBoundingClientRect","isHidden","display","width","height","childNodes","removeAttribute","setAttribute","getAttribute","usedStyles","_toPairs","_pick","_ref","k","fixedStyle","_fromPairs","_ref2","Object","assign","href","outerHTML","innerHTML","hasChildNodes","newTagName","newEl","child","replaceChild","e","RichText","_ref3","path","inputRef","label","autoHideToolbar","autoFocus","placeholder","className","formatTools","reformatText","mandatory","descText","helpText","tabIndex","value","setValue","raw","linkPopup","usePopupToggle","useEnsureRef","activeLinkNode","useRef","useRefState","containerFocused","useToggle","needsNormalize","alreadyCancelled","formValue","_setFormValue","useInput","tempValue","setFormValue","current","useEffect","activatedTools","setActivatedTools","useState","validElements","useLazyConstant","_flatten","tool","requestAnimationFrame","get","normalize","set","triggerScrollForPanel","d","time","dispatchEvent","Event","containerFocus","openWith","Date","now","containerBlur","isOpen","close","onBlur","newValue","keydownHandler","key","ctrlKey","metaKey","preventDefault","execCommand","addEventListener","removeEventListener","command","nodeEl","isSelectionInsideRichTextEditor","anchor","selectedNode","collapsed","start","startOffset","end","selectedEl","Node","TEXT_NODE","parent","closest","matches","insertNode","commonAncestorContainer","endContainer","anchorNode","links","from","removeLinkFromNode","_last","openDialog","last","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","selectNodeContents","toggleButtonsState","node","saveRichTextLink","_ref4","linkUrl","linkText","currentActiveLinkNode","innerText","cancelRichTextLink","append","removeLink","handleKeyUp","handleKeyDown","handlePasteDrop","setTimeout","pasted","handleClick","target","trim","_zipObject","queryCommandState","toolButton","React","onClick","type","richTextElement","ref","onFocus","i","innerRef","html","onKeyUp","onKeyDown","onPaste","onDrop","icon","EditLinkPopup","cancel","saveLink","Field","labelClick","_ref5","formRef","linkTextRef","linkUrlRef","LABELS","useContext","StartlibsContext","labels","preValidation","formValues","errors","linkTextError","linkRegex","test","_objectSpread","linkUrlError","checkEscOrEnter","keyCode","stopPropagation","submitForm","currentLinkPopup","offsetLeft","getClientRects","left","offsetWidth","top","offsetHeight","offsetTop","WithForm","skipDom","action","form","contentEditable","TextInput","popupLinkText","popupLinkUrl","popupRemove","popupCancel","highlight","willSubmitForm","popupConfirm","Errors"],"mappings":"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"}
1
+ {"version":3,"file":"RichText.mjs","sources":["../src/RichText.jsx"],"sourcesContent":["import React, {useContext, useEffect, useRef, useState} from 'react'\nimport styled, {css} from 'styled-components'\nimport ContentEditableModule from 'react-contenteditable'\nimport {darken} from 'polished'\nimport _ from 'lodash/fp'\nimport {getColor, linkRegex, stopPropagation} from '@startlibs/utils'\nimport {StartlibsContext, useEnsureRef, useLazyConstant, useToggle, usePopupToggle, useRefState} from '@startlibs/core'\nimport {Errors} from './Errors'\nimport {Field} from './Field'\nimport {WithForm} from './Form'\nimport {TextInput} from './TextInput'\nimport {useInput} from './enhanceInput'\nimport {Button, Icon} from '@startlibs/components'\n\n// Node/esbuild interop em .mjs devolve module.exports; Rollup devolve o default. Cobre os dois.\nconst ContentEditable = ContentEditableModule.default || ContentEditableModule\n\nconst InputIcon = styled(Icon)`\n position: absolute;\n outline: none;\n bottom: 0;\n font-size: 21px;\n line-height: 3rem;\n right: 0;\n width: 2rem;\n pointer-events: none;\n color: ${getColor('gray150')};\n`\n\nconst FORMAT_TOOLS = {\n 'bold': ['b', 'strong'],\n 'italic': 'i',\n 'underline': 'u',\n 'strikethrough': 'strike',\n 'link': 'a',\n 'insertUnorderedList': ['ul', 'li'],\n 'insertOrderedList': ['ol', 'li'],\n 'outdent': '',\n 'indent': 'blockquote',\n 'fontSizeUp': 'font',\n 'fontSizeDown': 'font'\n}\n\nconst TAG_TO_STYLE_PROPERTY = {\n 'b': 'fontWeight',\n 'strong': 'fontWeight',\n 'u': 'textDecoration',\n 'strike': 'textDecoration',\n 'font': 'fontSize',\n 'i': 'fontStyle'\n}\n\nlet GET_LIMITS_FONT_SIZE_PX = () => {\n const s = document.createElement('span')\n s.style.fontSize = 'medium'\n document.body.appendChild(s)\n const fontSize = parseInt(getComputedStyle(s).fontSize)\n document.body.removeChild(s)\n const limits = [fontSize * 3 / 5, fontSize * 3]\n GET_LIMITS_FONT_SIZE_PX = () => limits\n return limits\n}\n\nconst wrapWith = (el,wrapper) => {\n el.parentNode.insertBefore(wrapper, el);\n wrapper.appendChild(el)\n}\n\nconst FIX_STYLE = {\n 'fontWeight': (v, el) => {\n const intFontWeight = parseInt(window.getComputedStyle(el).fontWeight)\n return intFontWeight <= 400 ? 400 : 600\n },\n 'fontSize': (v, el) => {\n const [min, max] = GET_LIMITS_FONT_SIZE_PX()\n const intFontSize = parseInt(window.getComputedStyle(el).fontSize)\n return Math.min(max, Math.max(min, intFontSize)) + 'px'\n },\n 'textDecoration': (v,el) => {\n const values = v.split(' ').filter(v => v === 'underline' || v === 'line-through')\n if (values.indexOf('underline')>=0) {\n wrapWith(el,document.createElement('u'))\n }\n if (values.indexOf('line-through')>=0) {\n wrapWith(el,document.createElement('strike'))\n }\n return ''\n }\n}\n\n// Precisa vir antes de RichTextContainer: o yak resolve `${ToolsContainer}` (seletor dentro de\n// props.showToolbar) estaticamente lendo o módulo de cima pra baixo — em tempo de execução\n// (sc) a ordem nunca importou, já que o template só lê ToolsContainer dentro de um callback\n// (props => ...), chamado bem depois do módulo inteiro já ter sido avaliado.\nconst ToolsContainer = styled.div`\n background: ${getColor('lightBluishGray')};\n padding: 0 0.125rem;\n border-top-left-radius: 7px;\n border-top-right-radius: 7px;\n transition: 0.225s;\n max-height: 0;\n pointer-events: none;\n overflow: hidden;\n display: flex;\n align-items: center;\n`\n\nexport const RichTextContainer = styled.div`\n position:relative;\n width: 100%;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n background: white;\n ${props => props.hasErrors && `border-color: ${getColor(props)('alert')}`};\n ${props => props.showToolbar && `\n ${ToolsContainer} {\n transition: 0.5s;\n max-height: 7.5rem;\n transition: 0.6s;\n pointer-events: auto;\n }\n `};\n ${props => props.focus && `\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n ${props => props.locked && css`\n padding-right: 2.25rem;\n background: rgba(0,0,0,0.075);\n `}\n ${props => props.linkColor && css`\n a, a:visited, a:focus, a:active {\n color: ${props.linkColor};\n }\n a:hover {\n color: ${darken(0.05, props.linkColor)};\n }\n `}\n ul {\n list-style-type: disc;\n }\n ul, ol {\n padding-inline-start: 25px;\n margin-block-start: 0.5em;\n margin-block-end: 0.5em;\n }\n`\n\nexport const RichTextInput = styled.div`\n font-size: 14px;\n color: ${getColor('gray60')};\n background: white;\n border-radius: 7px;\n > div {\n overflow: auto;\n width: 100%;\n outline: none;\n min-height: ${props=>props.minHeight || 60}px;\n padding: 0.7rem;\n }\n b, strong {\n font-weight: 600;\n }\n a {\n text-decoration: underline;\n }\n > div[contenteditable=true]:empty:before {\n content: attr(placeholder);\n color: rgba(0,0,0,0.3);\n }\n ${props => props.disabled && `\n &[disabled] {\n background: rgba(0, 0, 0, 0.075) !important;\n opacity: 0.75 !important;\n }\n `}\n`\n\nconst ToolButton = styled(Button)`\n min-height: 2rem;\n min-width: 2rem;\n background: transparent;\n box-shadow: none;\n margin: 0.25rem 0.125rem;\n & ~ & {\n margin-left: 0.125rem;\n }\n .icon {\n font-size: 23px;\n color: ${getColor('gray90')};\n position: absolute;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n }\n &:hover, &.activated:hover {\n background: rgba(0,0,0,0.11);\n }\n &.activated {\n background: rgba(0,0,0,0.09);\n }\n &:focus:after {\n content: none;\n }\n`\n\nconst ToolSeparator = styled.span`\n border-left: 1px solid rgba(0,0,0,0.1);\n margin-left: 0.75rem;\n margin-right: 0.5rem;\n height: 1.5rem;\n`\n\nconst JS_CLASS = \"EDITOR--JS\"\n\nconst getNextRegularCharIndex = (text, offset, direction) => {\n const regex = /[A-Za-z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏàáâãäåæçèéêëìíîïÐÑÒÓÔÕÖØÙÚÛÜÝÞßðñòóôõöøùúûüýþÿ]/g\n let cursor = offset\n while ((text[cursor + direction] || '').match(regex)) {\n cursor += direction\n }\n return cursor\n}\n\nconst addHttp = (s) => {\n s = s.replace(/^\\s/, '')\n if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {\n return s\n } else {\n return 'http://' + s\n }\n}\n\nconst getRightMostElement = (node) => {\n if (node.childNodes.length) {\n return getRightMostElement(node.childNodes[node.childNodes.length - 1])\n } else {\n return node\n }\n}\n\nconst setSelectionRange = (input, selectionStart, selectionEnd = 0) => {\n if (!input) return\n let range = document.createRange()\n let sel = window.getSelection()\n range.setStart(input, selectionStart)\n if (selectionEnd) {\n range.setEnd(input, selectionEnd)\n } else {\n range.collapse(true)\n }\n sel.removeAllRanges()\n sel.addRange(range)\n}\n\nconst cleanEditor = (editor, acceptedTags) => {\n Array.prototype.slice.call(editor.querySelectorAll('.Apple-interchange-newline')).forEach(el => el.remove())\n Array.prototype.slice.call(editor.querySelectorAll('iframe')).forEach(el => el.remove())\n\n const acceptedStyles = acceptedTags.map(t => TAG_TO_STYLE_PROPERTY[t]).filter(_.identity)\n\n const newSpace = document.createTextNode('\\u00A0')\n if (window.getSelection().rangeCount) {\n const container = window.getSelection().getRangeAt(0).startContainer\n if (container.nodeType === 3) {\n container.parentNode.insertBefore(newSpace, container.nextSibling)\n } else {\n container.appendChild(newSpace)\n }\n if (newSpace.previousSibling && newSpace.previousSibling.textContent === '\\u00A0') {\n newSpace.previousSibling.remove()\n }\n setSelectionRange(newSpace, 0)\n }\n\n const clean = (children) => {\n Array.prototype.slice.call(children).forEach(el => {\n try {\n if (el.nodeType === 3)\n return\n if (!el.tagName) {\n el.remove()\n return\n }\n let tagName = el.tagName.toLowerCase()\n const style = getComputedStyle(el)\n const rect = el.getBoundingClientRect()\n const isHidden = style.display === 'none' || rect.width === 0 || rect.height === 0\n if (isHidden && (el.children && !el.children.length) && tagName !== 'br') {\n el.remove()\n } else if (acceptedTags.indexOf(tagName) >= 0) {\n clean(el.childNodes)\n el.removeAttribute('class')\n if (tagName === 'a') {\n el.setAttribute('target', '_blank')\n }\n if (el.getAttribute('style')) {\n const usedStyles = _.toPairs(_.pick(acceptedStyles, el.style)).filter(([k, v]) => v !== \"\")\n const fixedStyle = _.fromPairs(usedStyles.map(([k, v]) => [k, (FIX_STYLE[k] || _.identity)(v, el)]))\n el.removeAttribute('style')\n Object.assign(el.style, fixedStyle)\n }\n } else if (tagName === 'a') {\n clean(el.childNodes)\n if (el.textContent !== el.href || el.textContent.length < 5)\n el.outerHTML = el.innerHTML\n } else {\n clean(el.childNodes)\n if (el.hasChildNodes()) {\n const newTagName = style.display === 'inline' ? 'span' : 'div'\n const newEl = document.createElement(newTagName)\n Array.prototype.slice.call(el.childNodes).forEach(child => newEl.appendChild(child))\n el.parentNode.replaceChild(newEl, el)\n } else {\n el.remove()\n }\n }\n } catch (e) {\n if (el && el.remove)\n el.remove()\n }\n })\n }\n clean(editor.childNodes)\n}\n\nconst insertToken = (node, offset) => {\n const parent = node.parentNode\n const token = document.createElement(\"span\")\n if (node.nodeType === Node.TEXT_NODE) {\n const splitted = node.splitText(offset)\n parent.insertBefore(token, splitted)\n } else {\n parent.insertBefore(token, node)\n }\n return token\n}\n\n/*\n* pagely reformat\n .replace(/^[a-z]/, function (e) {\n return e.toUpperCase()\n })\n* */\n\nconst parseAndExecCommand = (c) => {\n if (c === \"strikethrough\" || c === \"underline\") {\n document.execCommand('styleWithCSS', false, false)\n } else {\n document.execCommand('styleWithCSS', false, true)\n }\n if (c.indexOf('fontSize') === 0) {\n const direction = c.indexOf('Up') > 0 ? 1 : -1\n const newValue = Math.min(7, Math.max(1, parseInt(document.queryCommandValue('fontSize') || 3) + direction))\n document.execCommand('fontSize', false, newValue)\n } else {\n const sanitizedCommand = (c.indexOf(\"List\") >= 0 && document.queryCommandState(c)) ? 'outdent' : c // FIX CHROME HANGS when list is called and already active\n\n document.execCommand(sanitizedCommand)\n }\n}\n\nexport const RichText = ({path, inputRef, label, autoHideToolbar, autoFocus, disabled, minHeight, placeholder, className, formatTools = ['bold', 'italic', 'underline', 'strikethrough', 'separator', 'link'], reformatText = _.identity, mandatory, descText, helpText, linkColor, tabIndex = 1, value, setValue,raw, locked}) => {\n\n const linkPopup = usePopupToggle()\n\n const input = useEnsureRef(inputRef)\n const activeLinkNode = useRef()\n const container = useRef()\n const linkJustCreated = useRefState()\n\n // auto-hide needs\n const startSelectionToken = useRefState()\n const endSelectionToken = useRefState()\n const commands = useRefState([])\n const containerFocused = useToggle()\n\n const needsNormalize = useRefState()\n const alreadyCancelled = useRefState()\n\n // const [formValue, setFormValue] = useInput({path})\n const [formValue, _setFormValue, {hasErrors}] = useInput({path,value,setValue},raw)\n\n // const tempValue = useConstant(formValue)\n const tempValue = useRef(formValue)\n const setFormValue = (v) => {\n tempValue.current = v\n _setFormValue(v)\n }\n\n useEffect(() => {\n if((value === formValue) && (formValue !== tempValue)){\n tempValue.current = formValue\n }\n },[path])\n\n const [activatedTools, setActivatedTools] = useState({})\n\n const validElements = useLazyConstant(() => ['br', 'div', 'p', 'span'].concat(_.flatten(formatTools.map(tool => FORMAT_TOOLS[tool] || []))))\n\n useEffect(() => {\n cleanEditor(input.current, validElements)\n }, [])\n\n const focus = () => input.current && input.current.focus()\n\n // Foco inicial opcional (ex.: abrir a dialog já no campo de descrição). Em\n // rAF pra rodar depois que a dialog termina de montar e não perder o foco.\n useEffect(() => {\n if (autoFocus) {\n requestAnimationFrame(focus)\n }\n }, [])\n\n useEffect(() => {\n if (needsNormalize.get()) {\n input.current.normalize()\n needsNormalize.set(false)\n }\n })\n\n const triggerScrollForPanel = (d) => {\n requestAnimationFrame((time) => {\n if (time > d + 250) return\n window.dispatchEvent(new Event('scroll'))\n triggerScrollForPanel(d)\n }\n )\n }\n\n const containerFocus = () => {\n containerFocused.openWith(2)\n triggerScrollForPanel(Date.now())\n }\n\n const containerBlur = (e) => {\n if (containerFocused.isOpen !== 1) {\n containerFocused.close()\n triggerScrollForPanel(Date.now())\n }\n }\n\n\n const onBlur = (e) => {\n const newValue = input.current.textContent.length === 0 ? '' : input.current.innerHTML\n // Só reescreve se o conteúdo mudou de fato: focar/desfocar sem editar não pode\n // marcar o form como alterado (senão dispara a confirmação de descarte à toa).\n // textContent vazio equivale a valor ausente/'' do form.\n if (newValue !== (formValue || '')) {\n setFormValue(newValue)\n }\n }\n\n const keydownHandler = (e) => {\n if (containerFocused.isOpen === 2){\n if (formatTools.indexOf('link') < 0) {\n return\n }\n if((e.key === \"k\" && e.ctrlKey) || (e.key === \"k\" && e.metaKey)){\n e.preventDefault();\n execCommand(null,'link')\n }\n }\n }\n\n useEffect(() => {\n document.addEventListener('keydown',keydownHandler);\n return () => document.removeEventListener('keydown',keydownHandler);\n }, [containerFocused.isOpen])\n\n const execCommand = (e, command) => {\n if (command === 'link') {\n let nodeEl\n if (!isSelectionInsideRichTextEditor()) {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n input.current.appendChild(anchor)\n nodeEl = anchor\n } else {\n const range = window.getSelection().getRangeAt(0)\n const selectedNode = range.startContainer\n if (range.collapsed) {\n const start = getNextRegularCharIndex(selectedNode.textContent, range.startOffset, -1)\n const end = getNextRegularCharIndex(selectedNode.textContent, range.startOffset - 1, 1)\n if (start < range.startOffset && end > range.startOffset - 1) {\n range.setStart(selectedNode, start)\n range.setEnd(selectedNode, end + 1)\n }\n }\n const selectedEl = selectedNode.nodeType === Node.TEXT_NODE ? selectedNode.parentNode : selectedNode\n const parent = selectedEl.closest('a,.'+JS_CLASS)\n if (parent && parent.matches('a')) {\n nodeEl = parent\n } else {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n if (range.collapsed) {\n range.insertNode(anchor)\n } else {\n if (range.commonAncestorContainer === input.current) {\n range.setStart(range.endContainer,0)\n }\n document.execCommand('createLink', false, '_')\n anchor = window.getSelection().anchorNode\n }\n const parent = range.commonAncestorContainer.nodeType === 3 ? range.commonAncestorContainer.parentNode : range.commonAncestorContainer\n const links = parent.querySelectorAll(\"a[href='_']\")\n Array.from(links).slice(0,-1).forEach(removeLinkFromNode)\n nodeEl = _.last(links)\n nodeEl.setAttribute('href', ' ')\n }\n }\n tempValue.current = input.current.innerHTML\n openDialog(nodeEl)\n } else {\n if (!isSelectionInsideRichTextEditor()) {\n input.current.focus()\n const last = document.createTreeWalker(input.current, NodeFilter.SHOW_TEXT).lastChild()\n const range = document.createRange()\n range.selectNodeContents(last || input.current)\n range.collapse(false)\n const sel = window.getSelection()\n sel.removeAllRanges()\n sel.addRange(range)\n }\n document.execCommand(command)\n setFormValue(input.current.innerHTML)\n toggleButtonsState()\n focus()\n }\n }\n\n const isSelectionInsideRichTextEditor = () => {\n const range = window.getSelection().getRangeAt(0)\n if (!range) return false\n const el = range.startContainer\n if (!el) return false\n const node = el.closest ? el : (el.parentNode || document.body)\n return node.closest('.'+JS_CLASS) === input.current\n }\n\n\n const saveRichTextLink = ({linkUrl, linkText}) => {\n const currentActiveLinkNode = activeLinkNode.current\n currentActiveLinkNode.setAttribute('href', addHttp(linkUrl))\n currentActiveLinkNode.setAttribute('target', '_blank')\n if (currentActiveLinkNode.textContent !== linkText) {\n currentActiveLinkNode.innerText = linkText\n }\n linkPopup.close()\n setSelectionRange(currentActiveLinkNode.lastChild, currentActiveLinkNode.textContent.length, 0)\n focus()\n setFormValue(input.current.innerHTML)\n }\n\n const cancelRichTextLink = (e) => {\n if (alreadyCancelled.get()) return\n const currentActiveLinkNode = activeLinkNode.current\n const span = document.createElement('span')\n if (currentActiveLinkNode.nextSibling)\n (currentActiveLinkNode.parentNode).insertBefore(span, currentActiveLinkNode.nextSibling)\n else\n (currentActiveLinkNode.parentNode).append(span)\n setSelectionRange(span, 0, 0)\n focus()\n if (currentActiveLinkNode.getAttribute('href') === ' ') {\n removeLink(e)\n }\n alreadyCancelled.set(true)\n span.remove()\n if (input.current) {\n input.current.normalize()\n } else {\n needsNormalize.set(true)\n }\n linkPopup.close()\n }\n\n const handleKeyUp = (e) => {\n toggleButtonsState()\n setFormValue(reformatText(input.current.innerHTML))\n }\n\n const handleKeyDown = (e) => {\n /*if (linkJustCreated.current && e.which === 8) {\n linkJustCreated.current.outerHTML = linkJustCreated.current.innerHTML\n input.current.normalize()\n return\n }\n commands.set([])\n linkJustCreated.set(null)\n const selectedRange = window.getSelection().getRangeAt(0)\n if (!selectedRange) return\n const possibleTextNode = selectedRange.startContainer\n const node = possibleTextNode.nodeType === Node.TEXT_NODE ? possibleTextNode.parentNode : possibleTextNode\n const parent = node.closest('a,.'+JS_CLASS)\n if ((e.key === 'Enter' || e.which === 32) && parent && parent.matches('.'+JS_CLASS)) {\n const range = document.createRange()\n range.setEnd(selectedRange.startContainer, selectedRange.startOffset)\n range.setStart(selectedRange.startContainer, 0)\n traverseAndAddLink(range)\n }*/\n }\n\n const traverseAndAddLink = (range) => {\n const match = range.toString().match(/[\\s\\t\\n\\r]([^\\s\\t\\n\\r]*)$/)\n if (match) {\n if ((/^(https?:\\/\\/|www\\.)/).test(match[1]) && linkRegex.test(match[1])) {\n range.setStart(range.startContainer, (match).index + 1);\n (range.endContainer).splitText(range.endContainer.textContent.length - 1)\n const newNode = document.createElement('a')\n newNode.href = match[1]\n newNode.appendChild(range.extractContents())\n range.insertNode(newNode)\n window.getSelection().getRangeAt(0).setEndAfter(newNode)\n window.getSelection().getRangeAt(0).setStartAfter(newNode)\n linkJustCreated.set(newNode)\n }\n } else {\n const previous = getPreviousElement(range.startContainer)\n if (previous) {\n range.setStart(previous, 0)\n traverseAndAddLink(range)\n }\n }\n }\n\n const getPreviousElement = (node) => {\n if (node.previousSibling) {\n const rightMost = getRightMostElement(node.previousSibling)\n if (rightMost.nodeType === Node.TEXT_NODE) {\n return rightMost\n } else {\n return getPreviousElement(rightMost)\n }\n } else if (node.parentNode && node !== input.current) {\n return getPreviousElement(node.parentNode)\n } else {\n return null\n }\n }\n\n const handlePasteDrop = (e) => setTimeout(() => pasted(e), 1)\n\n const handleClick = (e) => {\n toggleButtonsState()\n const el = e.target.closest('a,.'+JS_CLASS)\n if (el && el.matches('a') && el.getAttribute('href')) {\n openDialog(el)\n }\n }\n\n const openDialog = (el) => {\n activeLinkNode.current = el\n alreadyCancelled.set(false)\n linkPopup.openWith({linkText: el.textContent, linkUrl: (el.getAttribute('href') || '').trim()})\n }\n\n\n const removeLinkFromNode = (node) => {\n node.outerHTML = node.innerHTML === '\\u200b' ? '' : node.innerHTML\n }\n\n const removeLink = (e) => {\n if (e) e.preventDefault()\n alreadyCancelled.set(true)\n removeLinkFromNode(activeLinkNode.current)\n linkPopup.close()\n if (input.current) {\n setFormValue(input.current.innerHTML)\n input.current.normalize()\n }\n }\n\n const pasted = (e) => {\n cleanEditor(input.current, validElements)\n }\n\n const toggleButtonsState = () => {\n return setActivatedTools(_.zipObject(formatTools,formatTools.map((t)=>window.document.queryCommandState(t))))\n }\n\n const toolButton = (tool) => <ToolButton\n key={tool}\n tabIndex={-1}\n onClick={(e) => execCommand(e, tool)}\n className={'button exec-command rich-text-button only-icon ' + (activatedTools[tool] ? 'activated' : '')}\n type=\"button\"\n >\n <span className={'icon icon-' + tool}/>\n </ToolButton>\n\n const richTextElement = <RichTextContainer\n linkColor={linkColor}\n ref={container}\n onFocus={containerFocus}\n onBlur={containerBlur}\n focus={containerFocused.isOpen}\n showToolbar={!disabled & !autoHideToolbar || containerFocused.isOpen}\n className={className}\n >\n <ToolsContainer className=\"rich-text-tools\">\n {formatTools.map((t, i) => t === 'separator' ? <ToolSeparator className=\"separator\"\n key={\"separator-\" + i}/> : toolButton(t))}\n </ToolsContainer>\n <RichTextInput>\n <ContentEditable\n className={JS_CLASS}\n innerRef={input}\n html={tempValue.current || \"\"}\n onBlur={onBlur}\n onClick={handleClick}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onPaste={handlePasteDrop}\n onDrop={handlePasteDrop}\n tabIndex={tabIndex}\n disabled={disabled}\n minHeight={minHeight}\n placeholder={placeholder}\n />\n </RichTextInput>\n {locked && <InputIcon icon=\"lock\"/>}\n {\n linkPopup.isOpen &&\n <EditLinkPopup\n input={input}\n activeLinkNode={activeLinkNode}\n cancel={cancelRichTextLink}\n values={linkPopup.isOpen}\n removeLink={removeLink}\n saveLink={saveRichTextLink}\n />\n }\n </RichTextContainer>\n return (label\n ? <Field labelClick={focus} descText={descText} helpText={helpText} label={label} mandatory={mandatory}>\n {richTextElement}\n </Field>\n : richTextElement\n )\n}\n\nconst EditLinkPopup = ({cancel, removeLink, activeLinkNode, input, saveLink, values}) => {\n const linkPopup = useRef()\n const formRef = useRef()\n const linkTextRef = useRef()\n const linkUrlRef = useRef()\n const LABELS = useContext(StartlibsContext).labels.RichText\n\n\n const preValidation = (formValues) => {\n let errors\n if (!formValues.linkText) {\n errors = {'linkText': [LABELS.linkTextError]}\n }\n if (!formValues.linkUrl || formValues.linkUrl === ' ' || !linkRegex.test(formValues.linkUrl.trim())) {\n errors = {...errors, 'linkUrl': [LABELS.linkUrlError]}\n }\n return errors\n }\n\n const checkEscOrEnter = (e) => {\n if (e.keyCode === 27) {\n e.stopPropagation()\n cancel(e)\n } else if (e.keyCode === 13) {\n e.preventDefault()\n e.stopPropagation()\n formRef.current.submitForm()\n }\n }\n\n useEffect(() => {\n const currentActiveLinkNode = activeLinkNode.current\n const currentLinkPopup = linkPopup.current\n const offsetLeft = currentActiveLinkNode.getClientRects().length > 1 ? input.offsetLeft : currentActiveLinkNode.offsetLeft\n const left = ((currentActiveLinkNode.offsetWidth) / 2) - (currentLinkPopup.offsetWidth / 2) + offsetLeft\n const top = (currentActiveLinkNode.offsetHeight) + currentActiveLinkNode.offsetTop\n Object.assign(currentLinkPopup.style, {\n 'position': 'absolute',\n 'left': left + 'px',\n 'top': top + 'px'\n })\n if (values.linkText) {\n linkUrlRef.current.focus()\n } else {\n linkTextRef.current.focus()\n }\n return cancel\n }, [])\n\n return <WithForm skipDom ref={formRef} action={saveLink} values={values} preValidation={preValidation}>{form =>\n <div onClick={stopPropagation()} ref={linkPopup} onKeyDown={checkEscOrEnter}\n className=\"popup rich-text-link-editor ignore-link\" contentEditable={false}>\n <TextInput\n ref={linkTextRef}\n mandatory\n path=\"linkText\"\n label={LABELS.popupLinkText}\n />\n <TextInput\n ref={linkUrlRef}\n mandatory\n path=\"linkUrl\"\n label={LABELS.popupLinkUrl}\n />\n <div className=\"popup-footer\">\n <Button className=\"remove-link\" icon=\"remove\" onClick={removeLink}>\n {LABELS.popupRemove}\n </Button>\n <Button onClick={cancel} tabIndex={0}>{LABELS.popupCancel}</Button>\n <Button highlight onClick={form.willSubmitForm}>{LABELS.popupConfirm}</Button>\n </div>\n <Errors/>\n </div>\n }</WithForm>\n}"],"names":["ContentEditable","ContentEditableModule","default","InputIcon","styled","Icon","withConfig","displayName","componentId","getColor","FORMAT_TOOLS","TAG_TO_STYLE_PROPERTY","GET_LIMITS_FONT_SIZE_PX","s","document","createElement","style","fontSize","body","appendChild","parseInt","getComputedStyle","removeChild","limits","wrapWith","el","wrapper","parentNode","insertBefore","FIX_STYLE","fontWeight","v","intFontWeight","window","min","max","intFontSize","Math","textDecoration","values","split","filter","indexOf","ToolsContainer","div","RichTextContainer","props","hasErrors","concat","showToolbar","focus","locked","css","linkColor","darken","RichTextInput","minHeight","disabled","ToolButton","Button","ToolSeparator","span","JS_CLASS","getNextRegularCharIndex","text","offset","direction","regex","cursor","match","addHttp","replace","setSelectionRange","input","selectionStart","selectionEnd","arguments","length","undefined","range","createRange","sel","getSelection","setStart","setEnd","collapse","removeAllRanges","addRange","cleanEditor","editor","acceptedTags","Array","prototype","slice","call","querySelectorAll","forEach","remove","acceptedStyles","map","t","_identity","newSpace","createTextNode","rangeCount","container","getRangeAt","startContainer","nodeType","nextSibling","previousSibling","textContent","clean","children","tagName","toLowerCase","rect","getBoundingClientRect","isHidden","display","width","height","childNodes","removeAttribute","setAttribute","getAttribute","usedStyles","_toPairs","_pick","_ref","k","fixedStyle","_fromPairs","_ref2","Object","assign","href","outerHTML","innerHTML","hasChildNodes","newTagName","newEl","child","replaceChild","e","RichText","_ref3","path","inputRef","label","autoHideToolbar","autoFocus","placeholder","className","formatTools","reformatText","mandatory","descText","helpText","tabIndex","value","setValue","raw","linkPopup","usePopupToggle","useEnsureRef","activeLinkNode","useRef","useRefState","containerFocused","useToggle","needsNormalize","alreadyCancelled","formValue","_setFormValue","useInput","tempValue","setFormValue","current","useEffect","activatedTools","setActivatedTools","useState","validElements","useLazyConstant","_flatten","tool","requestAnimationFrame","get","normalize","set","triggerScrollForPanel","d","time","dispatchEvent","Event","containerFocus","openWith","Date","now","containerBlur","isOpen","close","onBlur","newValue","keydownHandler","key","ctrlKey","metaKey","preventDefault","execCommand","addEventListener","removeEventListener","command","nodeEl","isSelectionInsideRichTextEditor","anchor","selectedNode","collapsed","start","startOffset","end","selectedEl","Node","TEXT_NODE","parent","closest","matches","insertNode","commonAncestorContainer","endContainer","anchorNode","links","from","removeLinkFromNode","_last","openDialog","last","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","selectNodeContents","toggleButtonsState","node","saveRichTextLink","_ref4","linkUrl","linkText","currentActiveLinkNode","innerText","cancelRichTextLink","append","removeLink","handleKeyUp","handleKeyDown","handlePasteDrop","setTimeout","pasted","handleClick","target","trim","_zipObject","queryCommandState","toolButton","React","onClick","type","richTextElement","ref","onFocus","i","innerRef","html","onKeyUp","onKeyDown","onPaste","onDrop","icon","EditLinkPopup","cancel","saveLink","Field","labelClick","_ref5","formRef","linkTextRef","linkUrlRef","LABELS","useContext","StartlibsContext","labels","preValidation","formValues","errors","linkTextError","linkRegex","test","_objectSpread","linkUrlError","checkEscOrEnter","keyCode","stopPropagation","submitForm","currentLinkPopup","offsetLeft","getClientRects","left","offsetWidth","top","offsetHeight","offsetTop","WithForm","skipDom","action","form","contentEditable","TextInput","popupLinkText","popupLinkUrl","popupRemove","popupCancel","highlight","willSubmitForm","popupConfirm","Errors"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA;AACA,MAAMA,eAAe,GAAGC,qBAAqB,CAACC,OAAO,IAAID,qBAAqB,CAAA;AAE9E,MAAME,SAAS,gBAAGC,MAAM,CAACC,IAAI,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,qBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uHAAA,EAAA,GAAA,CAAA,EASnBC,QAAQ,CAAC,SAAS,CAAC,CAC7B,CAAA;AAED,MAAMC,YAAY,GAAG;AACnB,EAAA,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;AACvB,EAAA,QAAQ,EAAE,GAAG;AACb,EAAA,WAAW,EAAE,GAAG;AAChB,EAAA,eAAe,EAAE,QAAQ;AACzB,EAAA,MAAM,EAAE,GAAG;AACX,EAAA,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACnC,EAAA,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACjC,EAAA,SAAS,EAAE,EAAE;AACb,EAAA,QAAQ,EAAE,YAAY;AACtB,EAAA,YAAY,EAAE,MAAM;AACpB,EAAA,cAAc,EAAE,MAAA;AAClB,CAAC,CAAA;AAED,MAAMC,qBAAqB,GAAG;AAC5B,EAAA,GAAG,EAAE,YAAY;AACjB,EAAA,QAAQ,EAAE,YAAY;AACtB,EAAA,GAAG,EAAE,gBAAgB;AACrB,EAAA,QAAQ,EAAE,gBAAgB;AAC1B,EAAA,MAAM,EAAE,UAAU;AAClB,EAAA,GAAG,EAAE,WAAA;AACP,CAAC,CAAA;AAED,IAAIC,uBAAuB,GAAGA,MAAM;AAClC,EAAA,MAAMC,CAAC,GAAGC,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC,CAAA;AACxCF,EAAAA,CAAC,CAACG,KAAK,CAACC,QAAQ,GAAG,QAAQ,CAAA;AAC3BH,EAAAA,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACN,CAAC,CAAC,CAAA;EAC5B,MAAMI,QAAQ,GAAGG,QAAQ,CAACC,gBAAgB,CAACR,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAA;AACvDH,EAAAA,QAAQ,CAACI,IAAI,CAACI,WAAW,CAACT,CAAC,CAAC,CAAA;AAC5B,EAAA,MAAMU,MAAM,GAAG,CAACN,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAEA,QAAQ,GAAG,CAAC,CAAC,CAAA;EAC/CL,uBAAuB,GAAGA,MAAMW,MAAM,CAAA;AACtC,EAAA,OAAOA,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAMC,QAAQ,GAAGA,CAACC,EAAE,EAACC,OAAO,KAAK;EAC/BD,EAAE,CAACE,UAAU,CAACC,YAAY,CAACF,OAAO,EAAED,EAAE,CAAC,CAAA;AACvCC,EAAAA,OAAO,CAACP,WAAW,CAACM,EAAE,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,MAAMI,SAAS,GAAG;AAChB,EAAA,YAAY,EAAEC,CAACC,CAAC,EAAEN,EAAE,KAAK;AACvB,IAAA,MAAMO,aAAa,GAAGZ,QAAQ,CAACa,MAAM,CAACZ,gBAAgB,CAACI,EAAE,CAAC,CAACK,UAAU,CAAC,CAAA;AACtE,IAAA,OAAOE,aAAa,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;GACxC;AACD,EAAA,UAAU,EAAEf,CAACc,CAAC,EAAEN,EAAE,KAAK;IACrB,MAAM,CAACS,GAAG,EAAEC,GAAG,CAAC,GAAGvB,uBAAuB,EAAE,CAAA;AAC5C,IAAA,MAAMwB,WAAW,GAAGhB,QAAQ,CAACa,MAAM,CAACZ,gBAAgB,CAACI,EAAE,CAAC,CAACR,QAAQ,CAAC,CAAA;AAClE,IAAA,OAAOoB,IAAI,CAACH,GAAG,CAACC,GAAG,EAAEE,IAAI,CAACF,GAAG,CAACD,GAAG,EAAEE,WAAW,CAAC,CAAC,GAAG,IAAI,CAAA;GACxD;AACD,EAAA,gBAAgB,EAAEE,CAACP,CAAC,EAACN,EAAE,KAAK;IAC1B,MAAMc,MAAM,GAAGR,CAAC,CAACS,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACV,CAAC,IAAIA,CAAC,KAAK,WAAW,IAAIA,CAAC,KAAK,cAAc,CAAC,CAAA;IAClF,IAAIQ,MAAM,CAACG,OAAO,CAAC,WAAW,CAAC,IAAE,CAAC,EAAE;MAClClB,QAAQ,CAACC,EAAE,EAACX,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1C,KAAA;IACA,IAAIwB,MAAM,CAACG,OAAO,CAAC,cAAc,CAAC,IAAE,CAAC,EAAE;MACrClB,QAAQ,CAACC,EAAE,EAACX,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC/C,KAAA;AACA,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACF,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA,MAAM4B,cAAc,gBAAGvC,MAAM,CAACwC,GAAG,CAAAtC,UAAA,CAAA;EAAAC,WAAA,EAAA,0BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,aAAA,EAAA,gLAAA,CAAA,EACjBC,QAAQ,CAAC,iBAAiB,CAAC,CAU1C,CAAA;MAEYoC,iBAAiB,gBAAGzC,MAAM,CAACwC,GAAG,CAAAtC,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,gDAAA,EAAA,sCAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,6GAAA,CAAA,EAGrBC,QAAQ,CAAC,SAAS,CAAC,EAGrCqC,KAAK,IAAIA,KAAK,CAACC,SAAS,qBAAAC,MAAA,CAAqBvC,QAAQ,CAACqC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAE,EACvEA,KAAK,IAAIA,KAAK,CAACG,WAAW,IAAA,QAAA,CAAAD,MAAA,CACxBL,cAAc,EAMjB,yHAAA,CAAA,EACCG,KAAK,IAAIA,KAAK,CAACI,KAAK,IAAAF,sBAAAA,CAAAA,MAAA,CACJvC,QAAQ,CAAC,SAAS,CAAC,4DAEpC,EACCqC,KAAK,IAAIA,KAAK,CAACK,MAAM,IAAIC,GAAG,CAAA,CAAA,qDAAA,CAAA,CAG7B,EACCN,KAAK,IAAIA,KAAK,CAACO,SAAS,IAAID,GAAG,CAEpBN,CAAAA,qCAAAA,EAAAA,kBAAAA,EAAAA,IAAAA,CAAAA,EAAAA,KAAK,CAACO,SAAS,EAGfC,MAAM,CAAC,IAAI,EAAER,KAAK,CAACO,SAAS,CAAC,CAEzC,EASF;MAEYE,aAAa,gBAAGnD,MAAM,CAACwC,GAAG,CAAAtC,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uBAAA,EAAA,6FAAA,EAAA,sKAAA,EAAA,EAAA,CAAA,EAE5BC,QAAQ,CAAC,QAAQ,CAAC,EAOXqC,KAAK,IAAEA,KAAK,CAACU,SAAS,IAAI,EAAE,EAa1CV,KAAK,IAAIA,KAAK,CAACW,QAAQ,yHAKxB,EACF;AAED,MAAMC,UAAU,gBAAGtD,MAAM,CAACuD,MAAM,CAAC,CAAArD,UAAA,CAAA;EAAAC,WAAA,EAAA,sBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,uJAAA,EAAA,yOAAA,CAAA,EAWlBC,QAAQ,CAAC,QAAQ,CAAC,CAgBhC,CAAA;AAED,MAAMmD,aAAa,gBAAGxD,MAAM,CAACyD,IAAI,CAAAvD,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAKhC,CAAA,CAAA,CAAA,8FAAA,CAAA,CAAA,CAAA;AAED,MAAMsD,QAAQ,GAAG,YAAY,CAAA;AAE7B,MAAMC,uBAAuB,GAAGA,CAACC,IAAI,EAAEC,MAAM,EAAEC,SAAS,KAAK;EAC3D,MAAMC,KAAK,GAAG,4EAA4E,CAAA;EAC1F,IAAIC,MAAM,GAAGH,MAAM,CAAA;AACnB,EAAA,OAAO,CAACD,IAAI,CAACI,MAAM,GAAGF,SAAS,CAAC,IAAI,EAAE,EAAEG,KAAK,CAACF,KAAK,CAAC,EAAE;AACpDC,IAAAA,MAAM,IAAIF,SAAS,CAAA;AACrB,GAAA;AACA,EAAA,OAAOE,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAME,OAAO,GAAIzD,CAAC,IAAK;EACrBA,CAAC,GAAGA,CAAC,CAAC0D,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACxB,EAAA,IAAI1D,CAAC,CAAC6B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI7B,CAAC,CAAC6B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC7D,IAAA,OAAO7B,CAAC,CAAA;AACV,GAAC,MAAM;IACL,OAAO,SAAS,GAAGA,CAAC,CAAA;AACtB,GAAA;AACF,CAAC,CAAA;AAUD,MAAM2D,iBAAiB,GAAG,UAACC,KAAK,EAAEC,cAAc,EAAuB;AAAA,EAAA,IAArBC,YAAY,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;EAChE,IAAI,CAACH,KAAK,EAAE,OAAA;AACZ,EAAA,IAAIM,KAAK,GAAGjE,QAAQ,CAACkE,WAAW,EAAE,CAAA;AAClC,EAAA,IAAIC,GAAG,GAAGhD,MAAM,CAACiD,YAAY,EAAE,CAAA;AAC/BH,EAAAA,KAAK,CAACI,QAAQ,CAACV,KAAK,EAAEC,cAAc,CAAC,CAAA;AACrC,EAAA,IAAIC,YAAY,EAAE;AAChBI,IAAAA,KAAK,CAACK,MAAM,CAACX,KAAK,EAAEE,YAAY,CAAC,CAAA;AACnC,GAAC,MAAM;AACLI,IAAAA,KAAK,CAACM,QAAQ,CAAC,IAAI,CAAC,CAAA;AACtB,GAAA;EACAJ,GAAG,CAACK,eAAe,EAAE,CAAA;AACrBL,EAAAA,GAAG,CAACM,QAAQ,CAACR,KAAK,CAAC,CAAA;AACrB,CAAC,CAAA;AAED,MAAMS,WAAW,GAAGA,CAACC,MAAM,EAAEC,YAAY,KAAK;EAC5CC,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACL,MAAM,CAACM,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAACC,OAAO,CAACvE,EAAE,IAAIA,EAAE,CAACwE,MAAM,EAAE,CAAC,CAAA;EAC5GN,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACL,MAAM,CAACM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAACC,OAAO,CAACvE,EAAE,IAAIA,EAAE,CAACwE,MAAM,EAAE,CAAC,CAAA;AAExF,EAAA,MAAMC,cAAc,GAAGR,YAAY,CAACS,GAAG,CAACC,CAAC,IAAIzF,qBAAqB,CAACyF,CAAC,CAAC,CAAC,CAAC3D,MAAM,CAAA4D,SAAW,CAAC,CAAA;AAEzF,EAAA,MAAMC,QAAQ,GAAGxF,QAAQ,CAACyF,cAAc,CAAC,QAAQ,CAAC,CAAA;AAClD,EAAA,IAAItE,MAAM,CAACiD,YAAY,EAAE,CAACsB,UAAU,EAAE;AACtC,IAAA,MAAMC,SAAS,GAAGxE,MAAM,CAACiD,YAAY,EAAE,CAACwB,UAAU,CAAC,CAAC,CAAC,CAACC,cAAc,CAAA;AACpE,IAAA,IAAIF,SAAS,CAACG,QAAQ,KAAK,CAAC,EAAE;MAC5BH,SAAS,CAAC9E,UAAU,CAACC,YAAY,CAAC0E,QAAQ,EAAEG,SAAS,CAACI,WAAW,CAAC,CAAA;AACpE,KAAC,MAAM;AACLJ,MAAAA,SAAS,CAACtF,WAAW,CAACmF,QAAQ,CAAC,CAAA;AACjC,KAAA;IACE,IAAIA,QAAQ,CAACQ,eAAe,IAAIR,QAAQ,CAACQ,eAAe,CAACC,WAAW,KAAK,QAAQ,EAAE;AACjFT,MAAAA,QAAQ,CAACQ,eAAe,CAACb,MAAM,EAAE,CAAA;AACrC,KAAA;AACAzB,IAAAA,iBAAiB,CAAC8B,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC9B,GAAA;EAEA,MAAMU,KAAK,GAAIC,QAAQ,IAAK;AAC1BtB,IAAAA,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACmB,QAAQ,CAAC,CAACjB,OAAO,CAACvE,EAAE,IAAI;MACjD,IAAI;AACJ,QAAA,IAAIA,EAAE,CAACmF,QAAQ,KAAK,CAAC,EACnB,OAAA;AACF,QAAA,IAAI,CAACnF,EAAE,CAACyF,OAAO,EAAE;UACfzF,EAAE,CAACwE,MAAM,EAAE,CAAA;AACX,UAAA,OAAA;AACF,SAAA;QACA,IAAIiB,OAAO,GAAGzF,EAAE,CAACyF,OAAO,CAACC,WAAW,EAAE,CAAA;AACtC,QAAA,MAAMnG,KAAK,GAAGK,gBAAgB,CAACI,EAAE,CAAC,CAAA;AAClC,QAAA,MAAM2F,IAAI,GAAG3F,EAAE,CAAC4F,qBAAqB,EAAE,CAAA;AACvC,QAAA,MAAMC,QAAQ,GAAGtG,KAAK,CAACuG,OAAO,KAAK,MAAM,IAAIH,IAAI,CAACI,KAAK,KAAK,CAAC,IAAIJ,IAAI,CAACK,MAAM,KAAK,CAAC,CAAA;AAClF,QAAA,IAAIH,QAAQ,IAAK7F,EAAE,CAACwF,QAAQ,IAAI,CAACxF,EAAE,CAACwF,QAAQ,CAACpC,MAAO,IAAIqC,OAAO,KAAK,IAAI,EAAE;UACxEzF,EAAE,CAACwE,MAAM,EAAE,CAAA;SACZ,MAAM,IAAIP,YAAY,CAAChD,OAAO,CAACwE,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7CF,UAAAA,KAAK,CAACvF,EAAE,CAACiG,UAAU,CAAC,CAAA;AACpBjG,UAAAA,EAAE,CAACkG,eAAe,CAAC,OAAO,CAAC,CAAA;UACzB,IAAIT,OAAO,KAAK,GAAG,EAAE;AACnBzF,YAAAA,EAAE,CAACmG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACrC,WAAA;AACA,UAAA,IAAInG,EAAE,CAACoG,YAAY,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,MAAMC,UAAU,GAAGC,QAAA,CAAUC,KAAA,CAAO9B,cAAc,EAAEzE,EAAE,CAACT,KAAK,CAAC,CAAC,CAACyB,MAAM,CAACwF,IAAA,IAAA;AAAA,cAAA,IAAC,CAACC,CAAC,EAAEnG,CAAC,CAAC,GAAAkG,IAAA,CAAA;cAAA,OAAKlG,CAAC,KAAK,EAAE,CAAA;aAAC,CAAA,CAAA;YAC3F,MAAMoG,UAAU,GAAGC,UAAA,CAAYN,UAAU,CAAC3B,GAAG,CAACkC,KAAA,IAAA;AAAA,cAAA,IAAC,CAACH,CAAC,EAAEnG,CAAC,CAAC,GAAAsG,KAAA,CAAA;AAAA,cAAA,OAAK,CAACH,CAAC,EAAE,CAACrG,SAAS,CAACqG,CAAC,CAAC,IAAA7B,SAAc,EAAEtE,CAAC,EAAEN,EAAE,CAAC,CAAC,CAAA;AAAA,aAAA,CAAC,CAAC,CAAA;AACxGA,YAAAA,EAAE,CAACkG,eAAe,CAAC,OAAO,CAAC,CAAA;YACvBW,MAAM,CAACC,MAAM,CAAC9G,EAAE,CAACT,KAAK,EAAEmH,UAAU,CAAC,CAAA;AACrC,WAAA;AACJ,SAAC,MAAM,IAAIjB,OAAO,KAAK,GAAG,EAAE;AAC1BF,UAAAA,KAAK,CAACvF,EAAE,CAACiG,UAAU,CAAC,CAAA;UACpB,IAAIjG,EAAE,CAACsF,WAAW,KAAKtF,EAAE,CAAC+G,IAAI,IAAI/G,EAAE,CAACsF,WAAW,CAAClC,MAAM,GAAG,CAAC,EACzDpD,EAAE,CAACgH,SAAS,GAAGhH,EAAE,CAACiH,SAAS,CAAA;AAC/B,SAAC,MAAM;AACL1B,UAAAA,KAAK,CAACvF,EAAE,CAACiG,UAAU,CAAC,CAAA;AACpB,UAAA,IAAIjG,EAAE,CAACkH,aAAa,EAAE,EAAE;YACtB,MAAMC,UAAU,GAAG5H,KAAK,CAACuG,OAAO,KAAK,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAA;AAC9D,YAAA,MAAMsB,KAAK,GAAG/H,QAAQ,CAACC,aAAa,CAAC6H,UAAU,CAAC,CAAA;YAChDjD,KAAK,CAACC,SAAS,CAACC,KAAK,CAACC,IAAI,CAACrE,EAAE,CAACiG,UAAU,CAAC,CAAC1B,OAAO,CAAC8C,KAAK,IAAID,KAAK,CAAC1H,WAAW,CAAC2H,KAAK,CAAC,CAAC,CAAA;YACpFrH,EAAE,CAACE,UAAU,CAACoH,YAAY,CAACF,KAAK,EAAEpH,EAAE,CAAC,CAAA;AACvC,WAAC,MAAM;YACLA,EAAE,CAACwE,MAAM,EAAE,CAAA;AACb,WAAA;AACA,SAAA;OACD,CAAC,OAAO+C,CAAC,EAAE;QACV,IAAIvH,EAAE,IAAIA,EAAE,CAACwE,MAAM,EACjBxE,EAAE,CAACwE,MAAM,EAAE,CAAA;AACf,OAAA;AACF,KAAC,CAAC,CAAA;GACH,CAAA;AACDe,EAAAA,KAAK,CAACvB,MAAM,CAACiC,UAAU,CAAC,CAAA;AAC1B,CAAC,CAAA;AAsCYuB,MAAAA,QAAQ,GAAGC,KAAA,IAA2S;EAAA,IAA1S;IAACC,IAAI;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,eAAe;IAAEC,SAAS;IAAE9F,QAAQ;IAAED,SAAS;IAAEgG,WAAW;IAAEC,SAAS;AAAEC,IAAAA,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;AAAEC,IAAAA,YAAY,GAAAtD,SAAa;IAAEuD,SAAS;IAAEC,QAAQ;IAAEC,QAAQ;IAAEzG,SAAS;AAAE0G,IAAAA,QAAQ,GAAG,CAAC;IAAEC,KAAK;IAAEC,QAAQ;IAACC,GAAG;AAAE/G,IAAAA,MAAAA;AAAM,GAAC,GAAA+F,KAAA,CAAA;AAE5T,EAAA,MAAMiB,SAAS,GAAGC,cAAc,EAAE,CAAA;AAElC,EAAA,MAAM3F,KAAK,GAAG4F,YAAY,CAACjB,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAMkB,cAAc,GAAGC,MAAM,EAAE,CAAA;AAC/B,EAAA,MAAM9D,SAAS,GAAG8D,MAAM,EAAE,CAAA;AAC1B,EAAwBC,WAAW,GAAE;;AAErC;AACA,EAA4BA,WAAW,GAAE;AACzC,EAA0BA,WAAW,GAAE;AACvC,EAAiBA,WAAW,CAAC,EAAE,EAAC;AAChC,EAAA,MAAMC,gBAAgB,GAAGC,SAAS,EAAE,CAAA;AAEpC,EAAA,MAAMC,cAAc,GAAGH,WAAW,EAAE,CAAA;AACpC,EAAA,MAAMI,gBAAgB,GAAGJ,WAAW,EAAE,CAAA;;AAEtC;AACA,EAAA,MAAM,CAACK,SAAS,EAAEC,aAAa,EAAE;AAAC/H,IAAAA,SAAAA;GAAU,CAAC,GAAGgI,QAAQ,CAAC;IAAC5B,IAAI;IAACa,KAAK;AAACC,IAAAA,QAAAA;GAAS,EAACC,GAAG,CAAC,CAAA;;AAEnF;AACA,EAAA,MAAMc,SAAS,GAAGT,MAAM,CAACM,SAAS,CAAC,CAAA;EACnC,MAAMI,YAAY,GAAIlJ,CAAC,IAAK;IAC1BiJ,SAAS,CAACE,OAAO,GAAGnJ,CAAC,CAAA;IACrB+I,aAAa,CAAC/I,CAAC,CAAC,CAAA;GACjB,CAAA;AAEDoJ,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAInB,KAAK,KAAKa,SAAS,IAAMA,SAAS,KAAKG,SAAU,EAAC;MACpDA,SAAS,CAACE,OAAO,GAAGL,SAAS,CAAA;AAC/B,KAAA;AACF,GAAC,EAAC,CAAC1B,IAAI,CAAC,CAAC,CAAA;EAET,MAAM,CAACiC,cAAc,EAAEC,iBAAiB,CAAC,GAAGC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAExD,EAAA,MAAMC,aAAa,GAAGC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAACxI,MAAM,CAACyI,QAAA,CAAU/B,WAAW,CAACvD,GAAG,CAACuF,IAAI,IAAIhL,YAAY,CAACgL,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5IP,EAAAA,SAAS,CAAC,MAAM;AACd3F,IAAAA,WAAW,CAACf,KAAK,CAACyG,OAAO,EAAEK,aAAa,CAAC,CAAA;GAC1C,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMrI,KAAK,GAAGA,MAAMuB,KAAK,CAACyG,OAAO,IAAIzG,KAAK,CAACyG,OAAO,CAAChI,KAAK,EAAE,CAAA;;AAE1D;AACA;AACAiI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI5B,SAAS,EAAE;MACboC,qBAAqB,CAACzI,KAAK,CAAC,CAAA;AAC9B,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAENiI,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIR,cAAc,CAACiB,GAAG,EAAE,EAAE;AACxBnH,MAAAA,KAAK,CAACyG,OAAO,CAACW,SAAS,EAAE,CAAA;AACzBlB,MAAAA,cAAc,CAACmB,GAAG,CAAC,KAAK,CAAC,CAAA;AAC3B,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAMC,qBAAqB,GAAIC,CAAC,IAAK;IACnCL,qBAAqB,CAAEM,IAAI,IAAK;AAC5B,MAAA,IAAIA,IAAI,GAAGD,CAAC,GAAG,GAAG,EAAE,OAAA;MACpB/J,MAAM,CAACiK,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;MACzCJ,qBAAqB,CAACC,CAAC,CAAC,CAAA;AAC1B,KACF,CAAC,CAAA;GACF,CAAA;EAED,MAAMI,cAAc,GAAGA,MAAM;AAC3B3B,IAAAA,gBAAgB,CAAC4B,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC5BN,IAAAA,qBAAqB,CAACO,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;GAClC,CAAA;EAED,MAAMC,aAAa,GAAIxD,CAAC,IAAK;AAC3B,IAAA,IAAIyB,gBAAgB,CAACgC,MAAM,KAAK,CAAC,EAAE;MACjChC,gBAAgB,CAACiC,KAAK,EAAE,CAAA;AACxBX,MAAAA,qBAAqB,CAACO,IAAI,CAACC,GAAG,EAAE,CAAC,CAAA;AACnC,KAAA;GACD,CAAA;EAGD,MAAMI,MAAM,GAAI3D,CAAC,IAAK;AACpB,IAAA,MAAM4D,QAAQ,GAAGnI,KAAK,CAACyG,OAAO,CAACnE,WAAW,CAAClC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAGJ,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAA;AACtF;AACA;AACA;AACA,IAAA,IAAIkE,QAAQ,MAAM/B,SAAS,IAAI,EAAE,CAAC,EAAE;MAClCI,YAAY,CAAC2B,QAAQ,CAAC,CAAA;AACxB,KAAA;GACD,CAAA;EAED,MAAMC,cAAc,GAAI7D,CAAC,IAAK;AAC5B,IAAA,IAAIyB,gBAAgB,CAACgC,MAAM,KAAK,CAAC,EAAC;MAChC,IAAI/C,WAAW,CAAChH,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACnC,QAAA,OAAA;AACF,OAAA;AACA,MAAA,IAAIsG,CAAC,CAAC8D,GAAG,KAAK,GAAG,IAAI9D,CAAC,CAAC+D,OAAO,IAAM/D,CAAC,CAAC8D,GAAG,KAAK,GAAG,IAAI9D,CAAC,CAACgE,OAAQ,EAAC;QAC9DhE,CAAC,CAACiE,cAAc,EAAE,CAAA;AAClBC,QAAAA,WAAW,CAAC,IAAI,EAAC,MAAM,CAAC,CAAA;AAC1B,OAAA;AACF,KAAA;GACD,CAAA;AAED/B,EAAAA,SAAS,CAAC,MAAM;AACdrK,IAAAA,QAAQ,CAACqM,gBAAgB,CAAC,SAAS,EAACN,cAAc,CAAC,CAAA;IACnD,OAAO,MAAM/L,QAAQ,CAACsM,mBAAmB,CAAC,SAAS,EAACP,cAAc,CAAC,CAAA;AACrE,GAAC,EAAE,CAACpC,gBAAgB,CAACgC,MAAM,CAAC,CAAC,CAAA;AAE7B,EAAA,MAAMS,WAAW,GAAGA,CAAClE,CAAC,EAAEqE,OAAO,KAAK;IAClC,IAAIA,OAAO,KAAK,MAAM,EAAE;AACtB,MAAA,IAAIC,MAAM,CAAA;AACV,MAAA,IAAI,CAACC,+BAA+B,EAAE,EAAE;AACtC,QAAA,IAAIC,MAAM,GAAG1M,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;QACxCyM,MAAM,CAAC9E,SAAS,GAAG,SAAS,CAAA;AAC5BjE,QAAAA,KAAK,CAACyG,OAAO,CAAC/J,WAAW,CAACqM,MAAM,CAAC,CAAA;AACjCF,QAAAA,MAAM,GAAGE,MAAM,CAAA;AACjB,OAAC,MAAM;QACL,MAAMzI,KAAK,GAAG9C,MAAM,CAACiD,YAAY,EAAE,CAACwB,UAAU,CAAC,CAAC,CAAC,CAAA;AACjD,QAAA,MAAM+G,YAAY,GAAG1I,KAAK,CAAC4B,cAAc,CAAA;QACzC,IAAI5B,KAAK,CAAC2I,SAAS,EAAE;AACnB,UAAA,MAAMC,KAAK,GAAG5J,uBAAuB,CAAC0J,YAAY,CAAC1G,WAAW,EAAEhC,KAAK,CAAC6I,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;AACtF,UAAA,MAAMC,GAAG,GAAG9J,uBAAuB,CAAC0J,YAAY,CAAC1G,WAAW,EAAEhC,KAAK,CAAC6I,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACvF,UAAA,IAAID,KAAK,GAAG5I,KAAK,CAAC6I,WAAW,IAAIC,GAAG,GAAG9I,KAAK,CAAC6I,WAAW,GAAG,CAAC,EAAE;AAC5D7I,YAAAA,KAAK,CAACI,QAAQ,CAACsI,YAAY,EAAEE,KAAK,CAAC,CAAA;YACnC5I,KAAK,CAACK,MAAM,CAACqI,YAAY,EAAEI,GAAG,GAAG,CAAC,CAAC,CAAA;AACrC,WAAA;AACF,SAAA;AACA,QAAA,MAAMC,UAAU,GAAGL,YAAY,CAAC7G,QAAQ,KAAKmH,IAAI,CAACC,SAAS,GAAGP,YAAY,CAAC9L,UAAU,GAAG8L,YAAY,CAAA;QACpG,MAAMQ,MAAM,GAAGH,UAAU,CAACI,OAAO,CAAC,KAAK,GAACpK,QAAQ,CAAC,CAAA;QACjD,IAAImK,MAAM,IAAIA,MAAM,CAACE,OAAO,CAAC,GAAG,CAAC,EAAE;AACjCb,UAAAA,MAAM,GAAGW,MAAM,CAAA;AACjB,SAAC,MAAM;AACL,UAAA,IAAIT,MAAM,GAAG1M,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC,CAAA;UACxCyM,MAAM,CAAC9E,SAAS,GAAG,SAAS,CAAA;UAC5B,IAAI3D,KAAK,CAAC2I,SAAS,EAAE;AACnB3I,YAAAA,KAAK,CAACqJ,UAAU,CAACZ,MAAM,CAAC,CAAA;AAC1B,WAAC,MAAM;AACL,YAAA,IAAIzI,KAAK,CAACsJ,uBAAuB,KAAK5J,KAAK,CAACyG,OAAO,EAAE;cACnDnG,KAAK,CAACI,QAAQ,CAACJ,KAAK,CAACuJ,YAAY,EAAC,CAAC,CAAC,CAAA;AACtC,aAAA;YACAxN,QAAQ,CAACoM,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AAC9CM,YAAAA,MAAM,GAAGvL,MAAM,CAACiD,YAAY,EAAE,CAACqJ,UAAU,CAAA;AAC3C,WAAA;AACA,UAAA,MAAMN,MAAM,GAAGlJ,KAAK,CAACsJ,uBAAuB,CAACzH,QAAQ,KAAK,CAAC,GAAG7B,KAAK,CAACsJ,uBAAuB,CAAC1M,UAAU,GAAGoD,KAAK,CAACsJ,uBAAuB,CAAA;AACtI,UAAA,MAAMG,KAAK,GAAGP,MAAM,CAAClI,gBAAgB,CAAC,aAAa,CAAC,CAAA;AACpDJ,UAAAA,KAAK,CAAC8I,IAAI,CAACD,KAAK,CAAC,CAAC3I,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC0I,kBAAkB,CAAC,CAAA;AACzDpB,UAAAA,MAAM,GAAGqB,KAAA,CAAOH,KAAK,CAAC,CAAA;AACtBlB,UAAAA,MAAM,CAAC1F,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAClC,SAAA;AACF,OAAA;AACAoD,MAAAA,SAAS,CAACE,OAAO,GAAGzG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAA;MAC3CkG,UAAU,CAACtB,MAAM,CAAC,CAAA;AACpB,KAAC,MAAM;AACL,MAAA,IAAI,CAACC,+BAA+B,EAAE,EAAE;AACtC9I,QAAAA,KAAK,CAACyG,OAAO,CAAChI,KAAK,EAAE,CAAA;AACrB,QAAA,MAAM2L,IAAI,GAAG/N,QAAQ,CAACgO,gBAAgB,CAACrK,KAAK,CAACyG,OAAO,EAAE6D,UAAU,CAACC,SAAS,CAAC,CAACC,SAAS,EAAE,CAAA;AACvF,QAAA,MAAMlK,KAAK,GAAGjE,QAAQ,CAACkE,WAAW,EAAE,CAAA;QACpCD,KAAK,CAACmK,kBAAkB,CAACL,IAAI,IAAIpK,KAAK,CAACyG,OAAO,CAAC,CAAA;AAC/CnG,QAAAA,KAAK,CAACM,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrB,QAAA,MAAMJ,GAAG,GAAGhD,MAAM,CAACiD,YAAY,EAAE,CAAA;QACjCD,GAAG,CAACK,eAAe,EAAE,CAAA;AACrBL,QAAAA,GAAG,CAACM,QAAQ,CAACR,KAAK,CAAC,CAAA;AACrB,OAAA;AACAjE,MAAAA,QAAQ,CAACoM,WAAW,CAACG,OAAO,CAAC,CAAA;AAC7BpC,MAAAA,YAAY,CAACxG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAA;AACrCyG,MAAAA,kBAAkB,EAAE,CAAA;AACpBjM,MAAAA,KAAK,EAAE,CAAA;AACT,KAAA;GACD,CAAA;EAED,MAAMqK,+BAA+B,GAAGA,MAAM;IAC5C,MAAMxI,KAAK,GAAG9C,MAAM,CAACiD,YAAY,EAAE,CAACwB,UAAU,CAAC,CAAC,CAAC,CAAA;AACjD,IAAA,IAAI,CAAC3B,KAAK,EAAE,OAAO,KAAK,CAAA;AACxB,IAAA,MAAMtD,EAAE,GAAGsD,KAAK,CAAC4B,cAAc,CAAA;AAC/B,IAAA,IAAI,CAAClF,EAAE,EAAE,OAAO,KAAK,CAAA;AACrB,IAAA,MAAM2N,IAAI,GAAG3N,EAAE,CAACyM,OAAO,GAAGzM,EAAE,GAAIA,EAAE,CAACE,UAAU,IAAIb,QAAQ,CAACI,IAAK,CAAA;IAC/D,OAAOkO,IAAI,CAAClB,OAAO,CAAC,GAAG,GAACpK,QAAQ,CAAC,KAAKW,KAAK,CAACyG,OAAO,CAAA;GACpD,CAAA;EAGD,MAAMmE,gBAAgB,GAAGC,KAAA,IAAyB;IAAA,IAAxB;MAACC,OAAO;AAAEC,MAAAA,QAAAA;AAAQ,KAAC,GAAAF,KAAA,CAAA;AAC3C,IAAA,MAAMG,qBAAqB,GAAGnF,cAAc,CAACY,OAAO,CAAA;IACpDuE,qBAAqB,CAAC7H,YAAY,CAAC,MAAM,EAAEtD,OAAO,CAACiL,OAAO,CAAC,CAAC,CAAA;AAC5DE,IAAAA,qBAAqB,CAAC7H,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACtD,IAAA,IAAI6H,qBAAqB,CAAC1I,WAAW,KAAKyI,QAAQ,EAAE;MAClDC,qBAAqB,CAACC,SAAS,GAAGF,QAAQ,CAAA;AAC5C,KAAA;IACArF,SAAS,CAACuC,KAAK,EAAE,CAAA;AACjBlI,IAAAA,iBAAiB,CAACiL,qBAAqB,CAACR,SAAS,EAAEQ,qBAAqB,CAAC1I,WAAW,CAAClC,MAAM,EAAE,CAAC,CAAC,CAAA;AAC/F3B,IAAAA,KAAK,EAAE,CAAA;AACP+H,IAAAA,YAAY,CAACxG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAA;GACtC,CAAA;EAED,MAAMiH,kBAAkB,GAAI3G,CAAC,IAAK;AAChC,IAAA,IAAI4B,gBAAgB,CAACgB,GAAG,EAAE,EAAE,OAAA;AAC5B,IAAA,MAAM6D,qBAAqB,GAAGnF,cAAc,CAACY,OAAO,CAAA;AACpD,IAAA,MAAMrH,IAAI,GAAG/C,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI0O,qBAAqB,CAAC5I,WAAW,EAClC4I,qBAAqB,CAAC9N,UAAU,CAAEC,YAAY,CAACiC,IAAI,EAAE4L,qBAAqB,CAAC5I,WAAW,CAAC,CAAA,KAEvF4I,qBAAqB,CAAC9N,UAAU,CAAEiO,MAAM,CAAC/L,IAAI,CAAC,CAAA;AACjDW,IAAAA,iBAAiB,CAACX,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC7BX,IAAAA,KAAK,EAAE,CAAA;IACP,IAAIuM,qBAAqB,CAAC5H,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;MACtDgI,UAAU,CAAC7G,CAAC,CAAC,CAAA;AACf,KAAA;AACA4B,IAAAA,gBAAgB,CAACkB,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1BjI,IAAI,CAACoC,MAAM,EAAE,CAAA;IACb,IAAIxB,KAAK,CAACyG,OAAO,EAAE;AACjBzG,MAAAA,KAAK,CAACyG,OAAO,CAACW,SAAS,EAAE,CAAA;AAC3B,KAAC,MAAM;AACLlB,MAAAA,cAAc,CAACmB,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B,KAAA;IACA3B,SAAS,CAACuC,KAAK,EAAE,CAAA;GAClB,CAAA;EAED,MAAMoD,WAAW,GAAI9G,CAAC,IAAK;AACzBmG,IAAAA,kBAAkB,EAAE,CAAA;IACpBlE,YAAY,CAACtB,YAAY,CAAClF,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAC,CAAA;GACpD,CAAA;EAED,MAAMqH,aAAa,GAAI/G,CAAC,IAAK;AAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACG,CAAA;AAwCD,EAAA,MAAMgH,eAAe,GAAIhH,CAAC,IAAKiH,UAAU,CAAC,MAAMC,MAAM,CAAE,CAAC,EAAE,CAAC,CAAC,CAAA;EAE7D,MAAMC,WAAW,GAAInH,CAAC,IAAK;AACzBmG,IAAAA,kBAAkB,EAAE,CAAA;IACpB,MAAM1N,EAAE,GAAGuH,CAAC,CAACoH,MAAM,CAAClC,OAAO,CAAC,KAAK,GAACpK,QAAQ,CAAC,CAAA;AAC3C,IAAA,IAAIrC,EAAE,IAAIA,EAAE,CAAC0M,OAAO,CAAC,GAAG,CAAC,IAAI1M,EAAE,CAACoG,YAAY,CAAC,MAAM,CAAC,EAAE;MACpD+G,UAAU,CAACnN,EAAE,CAAC,CAAA;AAChB,KAAA;GACD,CAAA;EAED,MAAMmN,UAAU,GAAInN,EAAE,IAAK;IACzB6I,cAAc,CAACY,OAAO,GAAGzJ,EAAE,CAAA;AAC3BmJ,IAAAA,gBAAgB,CAACkB,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B3B,SAAS,CAACkC,QAAQ,CAAC;MAACmD,QAAQ,EAAE/N,EAAE,CAACsF,WAAW;AAAEwI,MAAAA,OAAO,EAAE,CAAC9N,EAAE,CAACoG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,EAAEwI,IAAI,EAAC;AAAC,KAAC,CAAC,CAAA;GAChG,CAAA;EAGD,MAAM3B,kBAAkB,GAAIU,IAAI,IAAK;AACnCA,IAAAA,IAAI,CAAC3G,SAAS,GAAG2G,IAAI,CAAC1G,SAAS,KAAK,QAAQ,GAAG,EAAE,GAAG0G,IAAI,CAAC1G,SAAS,CAAA;GACnE,CAAA;EAED,MAAMmH,UAAU,GAAI7G,CAAC,IAAK;AACxB,IAAA,IAAIA,CAAC,EAAEA,CAAC,CAACiE,cAAc,EAAE,CAAA;AACzBrC,IAAAA,gBAAgB,CAACkB,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B4C,IAAAA,kBAAkB,CAACpE,cAAc,CAACY,OAAO,CAAC,CAAA;IAC1Cf,SAAS,CAACuC,KAAK,EAAE,CAAA;IACjB,IAAIjI,KAAK,CAACyG,OAAO,EAAE;AACjBD,MAAAA,YAAY,CAACxG,KAAK,CAACyG,OAAO,CAACxC,SAAS,CAAC,CAAA;AACrCjE,MAAAA,KAAK,CAACyG,OAAO,CAACW,SAAS,EAAE,CAAA;AAC3B,KAAA;GACD,CAAA;EAED,MAAMqE,MAAM,GAAIlH,CAAC,IAAK;AACpBxD,IAAAA,WAAW,CAACf,KAAK,CAACyG,OAAO,EAAEK,aAAa,CAAC,CAAA;GAC1C,CAAA;EAED,MAAM4D,kBAAkB,GAAGA,MAAM;IAC/B,OAAO9D,iBAAiB,CAACiF,UAAA,CAAY5G,WAAW,EAACA,WAAW,CAACvD,GAAG,CAAEC,CAAC,IAAGnE,MAAM,CAACnB,QAAQ,CAACyP,iBAAiB,CAACnK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;GAC9G,CAAA;EAED,MAAMoK,UAAU,GAAI9E,IAAI,iBAAK+E,KAAA,CAAA1P,aAAA,CAAC2C,UAAU,EAAA;AACtCoJ,IAAAA,GAAG,EAAEpB,IAAK;IACV3B,QAAQ,EAAE,CAAC,CAAE;IACb2G,OAAO,EAAG1H,CAAC,IAAKkE,WAAW,CAAClE,CAAC,EAAE0C,IAAI,CAAE;IACrCjC,SAAS,EAAE,iDAAiD,IAAI2B,cAAc,CAACM,IAAI,CAAC,GAAG,WAAW,GAAG,EAAE,CAAE;AACzGiF,IAAAA,IAAI,EAAC,QAAA;GAELF,eAAAA,KAAA,CAAA1P,aAAA,CAAA,MAAA,EAAA;IAAM0I,SAAS,EAAE,YAAY,GAAGiC,IAAAA;AAAK,GAAC,CAC5B,CAAC,CAAA;AAEb,EAAA,MAAMkF,eAAe,gBAAGH,KAAA,CAAA1P,aAAA,CAAC8B,iBAAiB,EAAA;AACxCQ,IAAAA,SAAS,EAAEA,SAAU;AACrBwN,IAAAA,GAAG,EAAEpK,SAAU;AACfqK,IAAAA,OAAO,EAAE1E,cAAe;AACxBO,IAAAA,MAAM,EAAEH,aAAc;IACtBtJ,KAAK,EAAEuH,gBAAgB,CAACgC,MAAO;IAC/BxJ,WAAW,EAAE,CAACQ,QAAQ,GAAG,CAAC6F,eAAe,IAAImB,gBAAgB,CAACgC,MAAO;AACrEhD,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,eAErBgH,KAAA,CAAA1P,aAAA,CAAC4B,cAAc,EAAA;AAAC8G,IAAAA,SAAS,EAAC,iBAAA;AAAiB,GAAA,EACxCC,WAAW,CAACvD,GAAG,CAAC,CAACC,CAAC,EAAE2K,CAAC,KAAK3K,CAAC,KAAK,WAAW,gBAAGqK,KAAA,CAAA1P,aAAA,CAAC6C,aAAa,EAAA;AAAC6F,IAAAA,SAAS,EAAC,WAAW;IACrBqD,GAAG,EAAE,YAAY,GAAGiE,CAAAA;AAAE,GAAC,CAAC,GAAGP,UAAU,CAACpK,CAAC,CAAC,CACxF,CAAC,eACjBqK,KAAA,CAAA1P,aAAA,CAACwC,aAAa,EAAA,IAAA,eACZkN,KAAA,CAAA1P,aAAA,CAACf,eAAe,EAAA;AACdyJ,IAAAA,SAAS,EAAE3F,QAAS;AACpBkN,IAAAA,QAAQ,EAAEvM,KAAM;AAChBwM,IAAAA,IAAI,EAAEjG,SAAS,CAACE,OAAO,IAAI,EAAG;AAC9ByB,IAAAA,MAAM,EAAEA,MAAO;AACf+D,IAAAA,OAAO,EAAEP,WAAY;AACrBe,IAAAA,OAAO,EAAEpB,WAAY;AACrBqB,IAAAA,SAAS,EAAEpB,aAAc;AACzBqB,IAAAA,OAAO,EAAEpB,eAAgB;AACzBqB,IAAAA,MAAM,EAAErB,eAAgB;AACxBjG,IAAAA,QAAQ,EAAEA,QAAS;AACnBtG,IAAAA,QAAQ,EAAEA,QAAS;AACnBD,IAAAA,SAAS,EAAEA,SAAU;AACrBgG,IAAAA,WAAW,EAAEA,WAAAA;GACd,CACY,CAAC,EACfrG,MAAM,iBAAIsN,KAAA,CAAA1P,aAAA,CAACZ,SAAS,EAAA;AAACmR,IAAAA,IAAI,EAAC,MAAA;GAAO,CAAC,EAEjCnH,SAAS,CAACsC,MAAM,iBAChBgE,KAAA,CAAA1P,aAAA,CAACwQ,aAAa,EAAA;AACZ9M,IAAAA,KAAK,EAAEA,KAAM;AACb6F,IAAAA,cAAc,EAAEA,cAAe;AAC/BkH,IAAAA,MAAM,EAAE7B,kBAAmB;IAC3BpN,MAAM,EAAE4H,SAAS,CAACsC,MAAO;AACzBoD,IAAAA,UAAU,EAAEA,UAAW;AACvB4B,IAAAA,QAAQ,EAAEpC,gBAAAA;AAAiB,GAC5B,CAEc,CAAC,CAAA;AACpB,EAAA,OAAQhG,KAAK,gBACPoH,KAAA,CAAA1P,aAAA,CAAC2Q,KAAK,EAAA;AAACC,IAAAA,UAAU,EAAEzO,KAAM;AAAC2G,IAAAA,QAAQ,EAAEA,QAAS;AAACC,IAAAA,QAAQ,EAAEA,QAAS;AAACT,IAAAA,KAAK,EAAEA,KAAM;AAACO,IAAAA,SAAS,EAAEA,SAAAA;GAC5FgH,EAAAA,eACI,CAAC,GACJA,eAAe,CAAA;AAEvB,EAAC;AAED,MAAMW,aAAa,GAAGK,KAAA,IAAmE;EAAA,IAAlE;IAACJ,MAAM;IAAE3B,UAAU;IAAEvF,cAAc;IAAE7F,KAAK;IAAEgN,QAAQ;AAAElP,IAAAA,MAAAA;AAAM,GAAC,GAAAqP,KAAA,CAAA;AAClF,EAAA,MAAMzH,SAAS,GAAGI,MAAM,EAAE,CAAA;AAC1B,EAAA,MAAMsH,OAAO,GAAGtH,MAAM,EAAE,CAAA;AACxB,EAAA,MAAMuH,WAAW,GAAGvH,MAAM,EAAE,CAAA;AAC5B,EAAA,MAAMwH,UAAU,GAAGxH,MAAM,EAAE,CAAA;EAC3B,MAAMyH,MAAM,GAAGC,UAAU,CAACC,gBAAgB,CAAC,CAACC,MAAM,CAAClJ,QAAQ,CAAA;EAG3D,MAAMmJ,aAAa,GAAIC,UAAU,IAAK;AACpC,IAAA,IAAIC,MAAM,CAAA;AACV,IAAA,IAAI,CAACD,UAAU,CAAC7C,QAAQ,EAAE;AACxB8C,MAAAA,MAAM,GAAG;AAAC,QAAA,UAAU,EAAE,CAACN,MAAM,CAACO,aAAa,CAAA;OAAE,CAAA;AAC/C,KAAA;IACA,IAAI,CAACF,UAAU,CAAC9C,OAAO,IAAI8C,UAAU,CAAC9C,OAAO,KAAK,GAAG,IAAI,CAACiD,SAAS,CAACC,IAAI,CAACJ,UAAU,CAAC9C,OAAO,CAACc,IAAI,EAAE,CAAC,EAAE;AACnGiC,MAAAA,MAAM,GAAAI,aAAA,CAAAA,aAAA,KAAOJ,MAAM,CAAA,EAAA,EAAA,EAAA;AAAE,QAAA,SAAS,EAAE,CAACN,MAAM,CAACW,YAAY,CAAA;OAAE,CAAA,CAAA;AACxD,KAAA;AACA,IAAA,OAAOL,MAAM,CAAA;GACd,CAAA;EAED,MAAMM,eAAe,GAAI5J,CAAC,IAAK;AAC7B,IAAA,IAAIA,CAAC,CAAC6J,OAAO,KAAK,EAAE,EAAE;MACpB7J,CAAC,CAAC8J,eAAe,EAAE,CAAA;MACnBtB,MAAM,CAACxI,CAAC,CAAC,CAAA;AACX,KAAC,MAAM,IAAIA,CAAC,CAAC6J,OAAO,KAAK,EAAE,EAAE;MAC3B7J,CAAC,CAACiE,cAAc,EAAE,CAAA;MAClBjE,CAAC,CAAC8J,eAAe,EAAE,CAAA;AACnBjB,MAAAA,OAAO,CAAC3G,OAAO,CAAC6H,UAAU,EAAE,CAAA;AAC9B,KAAA;GACD,CAAA;AAED5H,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMsE,qBAAqB,GAAGnF,cAAc,CAACY,OAAO,CAAA;AACpD,IAAA,MAAM8H,gBAAgB,GAAG7I,SAAS,CAACe,OAAO,CAAA;AAC1C,IAAA,MAAM+H,UAAU,GAAGxD,qBAAqB,CAACyD,cAAc,EAAE,CAACrO,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAACwO,UAAU,GAAGxD,qBAAqB,CAACwD,UAAU,CAAA;AAC1H,IAAA,MAAME,IAAI,GAAK1D,qBAAqB,CAAC2D,WAAW,GAAI,CAAC,GAAKJ,gBAAgB,CAACI,WAAW,GAAG,CAAE,GAAGH,UAAU,CAAA;IACxG,MAAMI,GAAG,GAAI5D,qBAAqB,CAAC6D,YAAY,GAAI7D,qBAAqB,CAAC8D,SAAS,CAAA;AAClFjL,IAAAA,MAAM,CAACC,MAAM,CAACyK,gBAAgB,CAAChS,KAAK,EAAE;AACpC,MAAA,UAAU,EAAE,UAAU;MACtB,MAAM,EAAEmS,IAAI,GAAG,IAAI;MACnB,KAAK,EAAEE,GAAG,GAAG,IAAA;AACf,KAAC,CAAC,CAAA;IACF,IAAI9Q,MAAM,CAACiN,QAAQ,EAAE;AACnBuC,MAAAA,UAAU,CAAC7G,OAAO,CAAChI,KAAK,EAAE,CAAA;AAC5B,KAAC,MAAM;AACL4O,MAAAA,WAAW,CAAC5G,OAAO,CAAChI,KAAK,EAAE,CAAA;AAC7B,KAAA;AACA,IAAA,OAAOsO,MAAM,CAAA;GACd,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBAAOf,KAAA,CAAA1P,aAAA,CAACyS,QAAQ,EAAA;IAACC,OAAO,EAAA,IAAA;AAAC5C,IAAAA,GAAG,EAAEgB,OAAQ;AAAC6B,IAAAA,MAAM,EAAEjC,QAAS;AAAClP,IAAAA,MAAM,EAAEA,MAAO;AAAC6P,IAAAA,aAAa,EAAEA,aAAAA;AAAc,GAAA,EAAEuB,IAAI,iBAC1GlD,KAAA,CAAA1P,aAAA,CAAA,KAAA,EAAA;IAAK2P,OAAO,EAAEoC,eAAe,EAAG;AAACjC,IAAAA,GAAG,EAAE1G,SAAU;AAACgH,IAAAA,SAAS,EAAEyB,eAAgB;AAC1EnJ,IAAAA,SAAS,EAAC,yCAAyC;AAACmK,IAAAA,eAAe,EAAE,KAAA;AAAM,GAAA,eAC3EnD,KAAA,CAAA1P,aAAA,CAAC8S,SAAS,EAAA;AACRhD,IAAAA,GAAG,EAAEiB,WAAY;IACjBlI,SAAS,EAAA,IAAA;AACTT,IAAAA,IAAI,EAAC,UAAU;IACfE,KAAK,EAAE2I,MAAM,CAAC8B,aAAAA;AAAc,GAC7B,CAAC,eACFrD,KAAA,CAAA1P,aAAA,CAAC8S,SAAS,EAAA;AACRhD,IAAAA,GAAG,EAAEkB,UAAW;IAChBnI,SAAS,EAAA,IAAA;AACTT,IAAAA,IAAI,EAAC,SAAS;IACdE,KAAK,EAAE2I,MAAM,CAAC+B,YAAAA;AAAa,GAC5B,CAAC,eACFtD,KAAA,CAAA1P,aAAA,CAAA,KAAA,EAAA;AAAK0I,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,eAC3BgH,KAAA,CAAA1P,aAAA,CAAC4C,MAAM,EAAA;AAAC8F,IAAAA,SAAS,EAAC,aAAa;AAAC6H,IAAAA,IAAI,EAAC,QAAQ;AAACZ,IAAAA,OAAO,EAAEb,UAAAA;GACpDmC,EAAAA,MAAM,CAACgC,WACF,CAAC,eACTvD,KAAA,CAAA1P,aAAA,CAAC4C,MAAM,EAAA;AAAC+M,IAAAA,OAAO,EAAEc,MAAO;AAACzH,IAAAA,QAAQ,EAAE,CAAA;GAAIiI,EAAAA,MAAM,CAACiC,WAAoB,CAAC,eACnExD,KAAA,CAAA1P,aAAA,CAAC4C,MAAM,EAAA;IAACuQ,SAAS,EAAA,IAAA;IAACxD,OAAO,EAAEiD,IAAI,CAACQ,cAAAA;AAAe,GAAA,EAAEnC,MAAM,CAACoC,YAAqB,CAC1E,CAAC,eACN3D,KAAA,CAAA1P,aAAA,CAACsT,MAAM,EAAC,IAAA,CACL,CACI,CAAC,CAAA;AACd,CAAC;;;;"}
package/lib/TextInput.mjs CHANGED
@@ -7,7 +7,7 @@ import _isFunction from 'lodash/fp/isFunction';
7
7
  import _isRegExp from 'lodash/fp/isRegExp';
8
8
  import _isString from 'lodash/fp/isString';
9
9
  import React, { useState, useEffect, forwardRef } from 'react';
10
- import { Field } from './Field.mjs';
10
+ import { Field, FieldLabel } from './Field.mjs';
11
11
  import { useInput } from './enhanceInput.mjs';
12
12
  import styled, { css } from 'styled-components';
13
13
  import { Icon, Loading } from '@startlibs/components';
@@ -43,11 +43,11 @@ const InputLoading = /*#__PURE__*/styled(Loading).withConfig({
43
43
  const Input = /*#__PURE__*/styled.input.withConfig({
44
44
  displayName: "TextInput__Input",
45
45
  componentId: "sc-yzpeng-5"
46
- })(["width:100%;font-size:14px;border:1px solid ", ";border-radius:8px;outline:0;outline:none;color:", ";background:white;position:relative;height:3rem;padding:0 0.7rem;overflow:auto;", "::-webkit-input-placeholder{color:rgba(0,0,0,0.3);}::-moz-placeholder{color:rgba(0,0,0,0.3);}:-moz-placeholder{color:rgba(0,0,0,0.3);}:-ms-input-placeholder{color:rgba(0,0,0,0.3);}", "::-ms-clear{display:none;}", " ", " ", " ", " ", ""], getColor('gray210'), getColor('gray60'), media.mobile(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n height: 42px;\n padding: 0 1rem;\n @supports (-webkit-touch-callout: none) {\n font-size: 16px;\n }\n "]))), props => !props.hasTextBox && !props.noFocus && css([":focus{border-color:", ";box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);}", ""], getColor('gray180'), props => props.hasErrors && css(["border-color:", " !important;"], getColor('alert'))), props => props.locked && css(["padding-right:2.25rem;background:rgba(0,0,0,0.075);pointer-events:none;"]), props => props.isTextArea && css(["resize:none;min-height:", "px;padding:.7rem;display:block;", " ", ""], props => props.regularInputHeight ? 36 : props.minHeight || 60, props => props.autoResize ? 'overflow:hidden;' : 'overflow:auto;', media.mobile(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n padding: 1rem;\n ", "\n "])), props => props.regularInputHeight && 'min-height: 42px;')), props => props.rounded && css(["border-radius:100px;padding-left:1.25rem;padding-right:1.25rem;"]), props => props.hasIcon && css(["padding-left:", ";", ""], props.rounded ? '3rem' : '2.5rem', media.mobile(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding-left: ", ";\n "])), props.rounded ? '3.25rem' : '2.75rem')), customTheme('TextInput'));
46
+ })(["width:100%;font-size:14px;border:1px solid ", ";border-radius:8px;outline:0;outline:none;color:", ";background:white;position:relative;height:3rem;padding:0 0.7rem;overflow:auto;&::-webkit-input-placeholder{color:rgba(0,0,0,0.3);}&::-moz-placeholder{color:rgba(0,0,0,0.3);}", " &::-ms-clear{display:none;}", " ", " ", " ", " ", " ", " ", " ", ""], getColor('gray210'), getColor('gray60'), props => !props.hasTextBox && !props.noFocus && css(["&:focus{border-color:", ";box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);}", ""], getColor('gray180'), props => props.hasErrors && css(["border-color:", " !important;"], getColor('alert'))), props => props.locked && css(["padding-right:2.25rem;background:rgba(0,0,0,0.075);pointer-events:none;"]), props => props.isTextArea && css(["resize:none;min-height:", "px;padding:.7rem;display:block;", ""], props => props.regularInputHeight ? 36 : props.minHeight || 60, props => props.autoResize ? 'overflow:hidden;' : 'overflow:auto;'), props => props.rounded && css(["border-radius:100px;padding-left:1.25rem;padding-right:1.25rem;"]), props => props.hasIcon && css(["padding-left:", ";"], props.rounded ? '3rem' : '2.5rem'), media.mobile(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n height: 42px;\n padding: 0 1rem;\n @supports (-webkit-touch-callout: none) {\n font-size: 16px;\n }\n "]))), props => props.isTextArea && css(["", ""], media.mobile(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n padding: 1rem;\n ", "\n "])), props => props.regularInputHeight && 'min-height: 42px;')), props => props.hasIcon && css(["", ""], media.mobile(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding-left: ", ";\n "])), props.rounded ? '3.25rem' : '2.75rem')), customTheme('TextInput'));
47
47
  const InputWithTextBox = /*#__PURE__*/styled.div.withConfig({
48
48
  displayName: "TextInput__InputWithTextBox",
49
49
  componentId: "sc-yzpeng-6"
50
- })(["display:flex;border-radius:", ";position:relative;:before{position:absolute;border-radius:", ";top:0;bottom:0;right:0;left:0;z-index:2;pointer-events:none;}", " ", " ", " ", ""], props => props.rounded ? '100px' : '8px', props => props.rounded ? '100px' : '8px', props => props.focused && css(["box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);:before{content:'';border:1px solid ", ";}"], getColor('gray180')), props => props.hasErrors && css([":before{content:'';border:1px solid ", ";}"], getColor('alert')), props => props.textBoxBefore && css(["input{border-top-left-radius:0;border-bottom-left-radius:0;}"]), props => props.textBoxAfter && css(["input{border-top-right-radius:0;border-bottom-right-radius:0;}"]));
50
+ })(["display:flex;border-radius:", ";position:relative;&:before{position:absolute;border-radius:", ";top:0;bottom:0;right:0;left:0;z-index:2;pointer-events:none;}", " ", " ", " ", ""], props => props.rounded ? '100px' : '8px', props => props.rounded ? '100px' : '8px', props => props.focused && css(["box-shadow:0px 0px 0px 2px rgba(0,0,0,0.1);&:before{content:'';border:1px solid ", ";}"], getColor('gray180')), props => props.hasErrors && css(["&:before{content:'';border:1px solid ", ";}"], getColor('alert')), props => props.textBoxBefore && css(["input{border-top-left-radius:0;border-bottom-left-radius:0;}"]), props => props.textBoxAfter && css(["input{border-top-right-radius:0;border-bottom-right-radius:0;}"]));
51
51
  const TextBox = /*#__PURE__*/styled.span.withConfig({
52
52
  displayName: "TextInput__TextBox",
53
53
  componentId: "sc-yzpeng-7"
@@ -350,7 +350,7 @@ TextInput.Input = Input;
350
350
  const FloatingFieldType = /*#__PURE__*/styled(Field).withConfig({
351
351
  displayName: "TextInput__FloatingFieldType",
352
352
  componentId: "sc-yzpeng-11"
353
- })(["input{height:5rem;box-shadow:0 1px 4px rgba(0,0,0,.2);border-radius:8px;font-size:16px;font-weight:400;padding:16px 1rem 0;}", "{position:absolute;top:1.5rem;left:1rem;font-size:20px;font-weight:normal;transition:all .2s ease;color:rgba(0,0,0,.2);pointer-events:none;z-index:1;", "}"], Field.Label, props => (props.value || props.focused) && "\n top: 12px;\n font-size: 14px;\n color: rgba(0,0,0,.4);\n ");
353
+ })(["input{height:5rem;box-shadow:0 1px 4px rgba(0,0,0,.2);border-radius:8px;font-size:16px;font-weight:400;padding:16px 1rem 0;}", "{position:absolute;top:1.5rem;left:1rem;font-size:20px;font-weight:normal;transition:all .2s ease;color:rgba(0,0,0,.2);pointer-events:none;z-index:1;", "}"], FieldLabel, props => (props.value || props.focused) && "\n top: 12px;\n font-size: 14px;\n color: rgba(0,0,0,.4);\n ");
354
354
  const FloatLabelTextInput = props => /*#__PURE__*/React.createElement(TextInput, _extends({}, props, {
355
355
  FieldType: FloatingFieldType
356
356
  }));