@startlibs/components 1.1.5 → 1.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/lib/BasicBulletList.mjs +1 -1
  2. package/lib/BasicBulletList.mjs.map +1 -1
  3. package/lib/Button.mjs +3 -3
  4. package/lib/Button.mjs.map +1 -1
  5. package/lib/ContextMenu.mjs +22 -6
  6. package/lib/ContextMenu.mjs.map +1 -1
  7. package/lib/Dialog.mjs +60 -24
  8. package/lib/Dialog.mjs.map +1 -1
  9. package/lib/Icon.mjs +10 -4
  10. package/lib/Icon.mjs.map +1 -1
  11. package/lib/Loading.mjs +26 -3
  12. package/lib/Loading.mjs.map +1 -1
  13. package/lib/PageLoader.mjs +2 -2
  14. package/lib/PageLoader.mjs.map +1 -1
  15. package/lib/PersistentNotifications.mjs +1 -1
  16. package/lib/PersistentNotifications.mjs.map +1 -1
  17. package/lib/SplitColumnsContainer.mjs +77 -6
  18. package/lib/SplitColumnsContainer.mjs.map +1 -1
  19. package/lib/TextButton.mjs +1 -1
  20. package/lib/TextButton.mjs.map +1 -1
  21. package/lib/ToastNotifications.mjs +16 -14
  22. package/lib/ToastNotifications.mjs.map +1 -1
  23. package/lib/alt/dialogs/DialogWithImageHeader.mjs +1 -1
  24. package/lib/alt/dialogs/DialogWithImageHeader.mjs.map +1 -1
  25. package/lib/alt/dialogs/DialogWithSidebar.mjs +7 -3
  26. package/lib/alt/dialogs/DialogWithSidebar.mjs.map +1 -1
  27. package/lib/alt/dialogs/MobileBubbleDialog.mjs +1 -1
  28. package/lib/alt/dialogs/MobileBubbleDialog.mjs.map +1 -1
  29. package/lib/containers/DialogContainer.mjs +29 -10
  30. package/lib/containers/DialogContainer.mjs.map +1 -1
  31. package/lib/index.cjs +286 -93
  32. package/lib/index.cjs.map +1 -1
  33. package/lib/willUseIsSticky.mjs +23 -2
  34. package/lib/willUseIsSticky.mjs.map +1 -1
  35. package/lib-yak/BasicBulletList.mjs +27 -0
  36. package/lib-yak/BasicBulletList.mjs.map +1 -0
  37. package/lib-yak/Button.mjs +374 -0
  38. package/lib-yak/Button.mjs.map +1 -0
  39. package/lib-yak/ContextMenu.mjs +642 -0
  40. package/lib-yak/ContextMenu.mjs.map +1 -0
  41. package/lib-yak/Dialog.mjs +469 -0
  42. package/lib-yak/Dialog.mjs.map +1 -0
  43. package/lib-yak/Draggable.mjs +892 -0
  44. package/lib-yak/Draggable.mjs.map +1 -0
  45. package/lib-yak/ErrorBoundary.mjs +108 -0
  46. package/lib-yak/ErrorBoundary.mjs.map +1 -0
  47. package/lib-yak/FillLastLineResizer.mjs +238 -0
  48. package/lib-yak/FillLastLineResizer.mjs.map +1 -0
  49. package/lib-yak/Flip.mjs +644 -0
  50. package/lib-yak/Flip.mjs.map +1 -0
  51. package/lib-yak/FlipList.mjs +186 -0
  52. package/lib-yak/FlipList.mjs.map +1 -0
  53. package/lib-yak/FormatDate.mjs +25 -0
  54. package/lib-yak/FormatDate.mjs.map +1 -0
  55. package/lib-yak/Icon.mjs +74 -0
  56. package/lib-yak/Icon.mjs.map +1 -0
  57. package/lib-yak/Image.mjs +41 -0
  58. package/lib-yak/Image.mjs.map +1 -0
  59. package/lib-yak/Link.mjs +116 -0
  60. package/lib-yak/Link.mjs.map +1 -0
  61. package/lib-yak/Loading.mjs +54 -0
  62. package/lib-yak/Loading.mjs.map +1 -0
  63. package/lib-yak/LoadingDiv.mjs +82 -0
  64. package/lib-yak/LoadingDiv.mjs.map +1 -0
  65. package/lib-yak/Notifications.mjs +99 -0
  66. package/lib-yak/Notifications.mjs.map +1 -0
  67. package/lib-yak/PageLoader.mjs +61 -0
  68. package/lib-yak/PageLoader.mjs.map +1 -0
  69. package/lib-yak/PersistentNotifications.mjs +209 -0
  70. package/lib-yak/PersistentNotifications.mjs.map +1 -0
  71. package/lib-yak/Popup.mjs +66 -0
  72. package/lib-yak/Popup.mjs.map +1 -0
  73. package/lib-yak/SplitColumnsContainer.mjs +140 -0
  74. package/lib-yak/SplitColumnsContainer.mjs.map +1 -0
  75. package/lib-yak/SwitchDiv.mjs +60 -0
  76. package/lib-yak/SwitchDiv.mjs.map +1 -0
  77. package/lib-yak/TextButton.mjs +61 -0
  78. package/lib-yak/TextButton.mjs.map +1 -0
  79. package/lib-yak/ToastNotifications.mjs +316 -0
  80. package/lib-yak/ToastNotifications.mjs.map +1 -0
  81. package/lib-yak/Tooltip.mjs +176 -0
  82. package/lib-yak/Tooltip.mjs.map +1 -0
  83. package/lib-yak/TransitionDiv.mjs +59 -0
  84. package/lib-yak/TransitionDiv.mjs.map +1 -0
  85. package/lib-yak/WarningDialog.mjs +107 -0
  86. package/lib-yak/WarningDialog.mjs.map +1 -0
  87. package/lib-yak/alt/buttons/OnClickLoadingButton.mjs +36 -0
  88. package/lib-yak/alt/buttons/OnClickLoadingButton.mjs.map +1 -0
  89. package/lib-yak/alt/dialogs/DialogWithImageHeader.mjs +50 -0
  90. package/lib-yak/alt/dialogs/DialogWithImageHeader.mjs.map +1 -0
  91. package/lib-yak/alt/dialogs/DialogWithSidebar.mjs +193 -0
  92. package/lib-yak/alt/dialogs/DialogWithSidebar.mjs.map +1 -0
  93. package/lib-yak/alt/dialogs/MobileBubbleDialog.mjs +82 -0
  94. package/lib-yak/alt/dialogs/MobileBubbleDialog.mjs.map +1 -0
  95. package/lib-yak/containers/DialogContainer.mjs +482 -0
  96. package/lib-yak/containers/DialogContainer.mjs.map +1 -0
  97. package/lib-yak/containers/Reposition.mjs +35 -0
  98. package/lib-yak/containers/Reposition.mjs.map +1 -0
  99. package/lib-yak/containers/usePositioning.mjs +311 -0
  100. package/lib-yak/containers/usePositioning.mjs.map +1 -0
  101. package/lib-yak/index.mjs +37 -0
  102. package/lib-yak/index.mjs.map +1 -0
  103. package/lib-yak/useDialogWithToggle.mjs +18 -0
  104. package/lib-yak/useDialogWithToggle.mjs.map +1 -0
  105. package/lib-yak/willUseIsSticky.mjs +147 -0
  106. package/lib-yak/willUseIsSticky.mjs.map +1 -0
  107. package/package.json +12 -3
  108. package/src/BasicBulletList.jsx +1 -1
  109. package/src/Button.jsx +36 -30
  110. package/src/ContextMenu.jsx +21 -7
  111. package/src/Dialog.jsx +31 -12
  112. package/src/Icon.jsx +5 -4
  113. package/src/Loading.jsx +19 -5
  114. package/src/PageLoader.jsx +3 -3
  115. package/src/PersistentNotifications.jsx +2 -2
  116. package/src/SplitColumnsContainer.jsx +89 -30
  117. package/src/TextButton.jsx +1 -1
  118. package/src/ToastNotifications.jsx +15 -8
  119. package/src/alt/dialogs/DialogWithImageHeader.jsx +2 -2
  120. package/src/alt/dialogs/DialogWithSidebar.jsx +6 -5
  121. package/src/alt/dialogs/MobileBubbleDialog.jsx +1 -1
  122. package/src/containers/DialogContainer.jsx +11 -4
  123. package/src/willUseIsSticky.jsx +22 -2
@@ -3,7 +3,7 @@ import styled from 'styled-components';
3
3
  const BasicBulletList = /*#__PURE__*/styled.ul.withConfig({
4
4
  displayName: "BasicBulletList",
5
5
  componentId: "sc-1u3hhup-0"
6
- })(["margin-bottom:0;font-size:13px;li{margin-top:4px;padding-left:1rem;position:relative;:before{content:'\u2022';font-size:17px;line-height:0;position:absolute;left:0;top:7px;}}"]);
6
+ })(["margin-bottom:0;font-size:13px;li{margin-top:4px;padding-left:1rem;position:relative;&:before{content:'\u2022';font-size:17px;line-height:0;position:absolute;left:0;top:7px;}}"]);
7
7
 
8
8
  export { BasicBulletList };
9
9
  //# sourceMappingURL=BasicBulletList.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasicBulletList.mjs","sources":["../src/BasicBulletList.jsx"],"sourcesContent":["import styled from 'styled-components'\n\nexport const BasicBulletList = styled.ul`\n margin-bottom: 0;\n font-size: 13px;\n\n li {\n margin-top: 4px;\n padding-left: 1rem;\n position: relative;\n\n :before {\n content: '•';\n font-size: 17px;\n line-height: 0;\n position: absolute;\n left: 0;\n top: 7px;\n }\n }\n`"],"names":["BasicBulletList","styled","ul","withConfig","displayName","componentId"],"mappings":";;MAEaA,eAAe,gBAAGC,MAAM,CAACC,EAAE,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,iBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAkBvC,CAAA,CAAA,CAAA,gLAAA,CAAA;;;;"}
1
+ {"version":3,"file":"BasicBulletList.mjs","sources":["../src/BasicBulletList.jsx"],"sourcesContent":["import styled from 'styled-components'\n\nexport const BasicBulletList = styled.ul`\n margin-bottom: 0;\n font-size: 13px;\n\n li {\n margin-top: 4px;\n padding-left: 1rem;\n position: relative;\n\n &:before {\n content: '•';\n font-size: 17px;\n line-height: 0;\n position: absolute;\n left: 0;\n top: 7px;\n }\n }\n`"],"names":["BasicBulletList","styled","ul","withConfig","displayName","componentId"],"mappings":";;MAEaA,eAAe,gBAAGC,MAAM,CAACC,EAAE,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,iBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAkBvC,CAAA,CAAA,CAAA,iLAAA,CAAA;;;;"}
package/lib/Button.mjs CHANGED
@@ -16,7 +16,7 @@ const LockIcon = /*#__PURE__*/styled(Icon).withConfig({
16
16
  displayName: "Button__LockIcon",
17
17
  componentId: "sc-qe54pl-0"
18
18
  })(["position:absolute;bottom:10px;right:.75rem;left:auto;top:auto;font-size:18px;"]);
19
- const focus = /*#__PURE__*/css([":after{content:'';pointer-events:none;position:absolute;top:-3px;right:-3px;left:-3px;bottom:-3px;border-radius:", ";border:2px solid rgba(0,0,0,0.15);}"], props => props.rounded ? '100px' : '11px');
19
+ const focus = /*#__PURE__*/css(["&:after{content:'';pointer-events:none;position:absolute;top:-3px;right:-3px;left:-3px;bottom:-3px;border-radius:", ";border:2px solid rgba(0,0,0,0.15);}"], props => props.rounded ? '100px' : '11px');
20
20
  const Button = /*#__PURE__*/styled(/*#__PURE__*/React.forwardRef((_ref, ref) => {
21
21
  let {
22
22
  type = "button",
@@ -57,7 +57,7 @@ const Button = /*#__PURE__*/styled(/*#__PURE__*/React.forwardRef((_ref, ref) =>
57
57
  return /*#__PURE__*/React.createElement(Wrapper, _extends({
58
58
  ref: ref || buttonRef,
59
59
  tabIndex: tabIndex,
60
- className: className + ' styled-button' + (color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning ? ' styled-button-colored' : ''),
60
+ className: className + ' styled-button' + (color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning ? ' styled-button-colored' : '') + (small ? ' styled-button-small' : ''),
61
61
  type: Wrapper === 'button' ? type : ''
62
62
  }, props), icon && /*#__PURE__*/React.createElement(Icon, {
63
63
  icon: icon,
@@ -81,7 +81,7 @@ const Button = /*#__PURE__*/styled(/*#__PURE__*/React.forwardRef((_ref, ref) =>
81
81
  })).withConfig({
82
82
  displayName: "Button",
83
83
  componentId: "sc-qe54pl-1"
84
- })(["vertical-align:top;border:0;font-size:13px;border-radius:", ";background:", ";color:white;min-width:8rem;font-weight:600;display:inline-block;text-align:center;padding:10px 1.25rem;outline:none;cursor:pointer;position:relative;text-decoration:none;user-select:none;flex-shrink:0;:hover{background:", ";}:active{background:", ";}", " ", " & + &{margin-left:1rem;}", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", ""], props => props.rounded ? '100px' : '8px', getColor, props => darken(0.05, getColor(props, true)), props => darken(0.08, getColor(props, true)), props => props.nowrap && "\n white-space: nowrap;\n ", props => !props.noFocus && !props.isLoading && css([":focus{", "}", ""], focus, props => props.focused && focus), props => props.hasErrors && css([":after{content:'';pointer-events:none;position:absolute;top:-4px;right:-4px;left:-4px;bottom:-4px;border-radius:", ";border:3px solid ", ";}"], props => props.rounded ? '100px' : '11px', props => transparentize(0.7, getColor("alert")(props))), props => props.icon && css(["display:inline-flex;align-items:center;justify-content:center;min-width:3rem;min-height:3rem;", "{font-size:23px;margin-left:-4px;margin-right:8px;pointer-events:none;line-height:0;}"], Icon), props => props.onlyIcon && css(["padding:0;", "{margin:0;}"], Icon), props => props.small && css(["font-size:13px;padding:3px 1rem;min-width:2rem;min-height:2rem;font-weight:550;", " ", ""], props.icon && css(["", "{font-size:18px;margin-left:-5px;margin-right:5px;line-height:0.9;}"], Icon), props.onlyIcon && css(["padding:0;", "{margin:0;}"], Icon)), props => props.big && css(["font-size:14px;padding:13px 1.75rem;min-height:42px;"]), props => props.withDropdown && css(["padding-right:2.25rem;text-align:left;"]), props => props.onlyDropdown && css(["", "{right:50%;transform:translate(50%,-50%);}"], DropdownIcon), props => props.light && css(["background:", ";color:", ";:hover{background:", ";}:active{background:", ";}"], getColor('bluishGray'), getColor('gray90'), props => darken(0.05, getColor('bluishGray')(props)), props => darken(0.08, getColor('bluishGray')(props))), props => props.lightAlert && css(["background:", ";color:", ";:hover{background:", ";}:active{background:", ";}"], props => transparentize(0.86, getColor("alert")(props)), getColor('alert'), props => transparentize(0.83, getColor("alert")(props)), props => transparentize(0.80, getColor("alert")(props))), props => props.lightWarning && css(["background:", ";color:", ";:hover{background:", ";}:active{background:", ";}"], props => transparentize(0.84, darken(0.05, getColor('warning')(props))), props => darken(0.05, getColor('warning')(props)), props => transparentize(0.78, darken(0.05, getColor('warning')(props))), props => transparentize(0.76, darken(0.05, getColor('warning')(props)))), props => (props.outline || props.dashed || props.textOnly) && css(["color:", ";background:none;", ",", "{color:", ";}:before{content:'';border:1px ", " ", ";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:", ";pointer-events:none;}:hover{background-color:rgba(0,0,0,0.05);}:active{background-color:rgba(0,0,0,0.08);}:focus{:before{box-shadow:0 0 0 2px rgba(0,0,0,0.1);", "}:after{content:none;}}"], props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)', Icon, DropdownIcon, props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)', props.outline ? 'solid' : props.dashed ? 'dashed' : '', props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)', props.rounded ? '100px' : '8px', props.textOnly && 'content: none;'), props => props.alpha && css(["background:rgba(0,0,0,0.45);:hover{background:rgba(0,0,0,0.50);}:active{background:rgba(0,0,0,0.55);}"]), props => props.white && !props.outline && !props.dashed && css(["color:", ";background:#FFFFFF;:hover{background:", ";}:active{background:", ";}"], getColor('main'), darken(0.05, '#FFFFFF'), darken(0.08, '#FFFFFF')), props => props.isLoading && css(["color:transparent !important;pointer-events:none;", "{visibility:hidden;}"], Icon), props => props.isLoadingIcon && css(["pointer-events:none;", "{visibility:hidden;}", "{left:10px;position:absolute;}"], Icon, Loading), media.mobile(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n "])), props => !props.small && !props.onlyIcon && css(["padding:13px 1.5rem;font-size:14px;"]), props => !props.small && props.onlyIcon && css(["min-width:3.5rem;min-height:3.5rem;"]), props => props.withDropdown && css(["padding-right:2.5rem;", "{right:14px;}"], DropdownIcon)), media.max(359)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ", "\n "])), props => !props.small && !props.onlyIcon && !props.onlyDropdown && css(["min-width:0;"])), props => props.fullwidth && "\n width: 100%;\n ", customTheme("Button"));
84
+ })(["vertical-align:top;border:0;font-size:13px;border-radius:", ";background:", ";color:white;min-width:8rem;font-weight:600;display:inline-block;text-align:center;padding:10px 1.25rem;outline:none;cursor:pointer;position:relative;text-decoration:none;user-select:none;flex-shrink:0;&:hover{background:", ";}&:active{background:", ";}", " ", " & + &{margin-left:1rem;}", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", ""], props => props.rounded ? '100px' : '8px', getColor, props => darken(0.05, getColor(props, true)), props => darken(0.08, getColor(props, true)), props => props.nowrap && "\n white-space: nowrap;\n ", props => !props.noFocus && !props.isLoading && css(["&:focus{", "}", ""], focus, props => props.focused && focus), props => props.hasErrors && css(["&:after{content:'';pointer-events:none;position:absolute;top:-4px;right:-4px;left:-4px;bottom:-4px;border-radius:", ";border:3px solid ", ";}"], props => props.rounded ? '100px' : '11px', props => transparentize(0.7, getColor("alert")(props))), props => props.icon && css(["display:inline-flex;align-items:center;justify-content:center;min-width:3rem;min-height:3rem;", "{font-size:23px;margin-left:-4px;margin-right:8px;pointer-events:none;line-height:0;}"], Icon), props => props.onlyIcon && css(["padding:0;", "{margin:0;}"], Icon), props => props.small && css(["font-size:13px;padding:3px 1rem;min-width:2rem;min-height:2rem;font-weight:550;", " ", ""], props => props.icon && css(["", "{font-size:18px;margin-left:-5px;margin-right:5px;line-height:0.9;}"], Icon), props => props.onlyIcon && css(["padding:0;", "{margin:0;}"], Icon)), props => props.big && css(["font-size:14px;padding:13px 1.75rem;min-height:42px;"]), props => props.withDropdown && css(["padding-right:2.25rem;text-align:left;"]), props => props.onlyDropdown && css(["", "{right:50%;transform:translate(50%,-50%);}"], DropdownIcon), props => props.light && css(["background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}"], getColor('bluishGray'), getColor('gray90'), props => darken(0.05, getColor('bluishGray')(props)), props => darken(0.08, getColor('bluishGray')(props))), props => props.lightAlert && css(["background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}"], props => transparentize(0.86, getColor("alert")(props)), getColor('alert'), props => transparentize(0.83, getColor("alert")(props)), props => transparentize(0.80, getColor("alert")(props))), props => props.lightWarning && css(["background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}"], props => transparentize(0.84, darken(0.05, getColor('warning')(props))), props => darken(0.05, getColor('warning')(props)), props => transparentize(0.78, darken(0.05, getColor('warning')(props))), props => transparentize(0.76, darken(0.05, getColor('warning')(props)))), props => (props.outline || props.dashed || props.textOnly) && css(["color:", ";background:none;", ",", "{color:", ";}&:before{content:'';border:1px ", " ", ";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:", ";pointer-events:none;}&:hover{background-color:rgba(0,0,0,0.05);}&:active{background-color:rgba(0,0,0,0.08);}&:focus{&:before{box-shadow:0 0 0 2px rgba(0,0,0,0.1);", "}&:after{content:none;}}"], props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)', Icon, DropdownIcon, props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)', props => props.outline ? 'solid' : props.dashed ? 'dashed' : 'none', props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)', props => props.rounded ? '100px' : '8px', props => props.textOnly && 'content: none;'), props => props.alpha && css(["background:rgba(0,0,0,0.45);&:hover{background:rgba(0,0,0,0.50);}&:active{background:rgba(0,0,0,0.55);}"]), props => props.white && !props.outline && !props.dashed && css(["color:", ";background:#FFFFFF;&:hover{background:", ";}&:active{background:", ";}"], getColor('main'), darken(0.05, '#FFFFFF'), darken(0.08, '#FFFFFF')), props => props.isLoading && css(["color:transparent !important;pointer-events:none;", "{visibility:hidden;}"], Icon), props => props.isLoadingIcon && css(["pointer-events:none;", "{visibility:hidden;}", "{left:10px;position:absolute;}"], Icon, Loading), media.mobile(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n "])), props => !props.small && !props.onlyIcon && css(["padding:13px 1.5rem;font-size:14px;"]), props => !props.small && props.onlyIcon && css(["min-width:3.5rem;min-height:3.5rem;"]), props => props.withDropdown && css(["padding-right:2.5rem;", "{right:14px;}"], DropdownIcon)), media.max(359)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n ", "\n "])), props => !props.small && !props.onlyIcon && !props.onlyDropdown && css(["min-width:0;"])), props => props.fullwidth && "\n width: 100%;\n ", customTheme("Button"));
85
85
  Button.a = props => /*#__PURE__*/React.createElement(Button, _extends({}, props, {
86
86
  className: props.className,
87
87
  innerAs: "a"
@@ -1 +1 @@
1
- {"version":3,"file":"Button.mjs","sources":["../src/Button.jsx"],"sourcesContent":["import React from 'react'\n\nimport {customTheme, getColor, media, styledExtend} from '@startlibs/utils'\nimport {darken, transparentize} from 'polished'\nimport styled, {css} from 'styled-components'\n\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const DropdownIcon = styledExtend(Icon)`\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n font-size: 12px;\n`\nconst LockIcon = styled(Icon)`\n position:absolute;\n bottom: 10px;\n right: .75rem;\n left: auto;\n top: auto;\n font-size: 18px;\n`\n\nconst focus = css`\n:after{\n content: '';\n pointer-events: none;\n position: absolute;\n top: -3px;\n right: -3px;\n left: -3px;\n bottom: -3px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 2px solid rgba(0, 0, 0, 0.15);\n}\n`\n\nexport const Button = styled(React.forwardRef(({\n type = \"button\", locked, color, alpha, success, alert, warning, highlight, light, hover, white, icon, onlyIcon, small, withDropdown, onlyDropdown, outline, dashed, textOnly, isLoading, isLoadingIcon, dark,\n innerAs: Wrapper = 'button', className, children, rounded, tabIndex = 1, focused, noFocus,\n colorSet, concealed, concealedModule, buttonRef, ...props\n },ref) =>\n <Wrapper ref={ref || buttonRef} tabIndex={tabIndex} className={className + ' styled-button' + ((color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning) ? ' styled-button-colored' : '')} type={Wrapper === 'button' ? type : ''} {...props}>\n {icon && <Icon icon={icon} aria-hidden=\"true\"/>}\n {isLoadingIcon && <Loading white={!light && !outline && !dashed && !white} size={small ? '10' : '18'} borderWidth={small ? '2' : '3'}/>}\n {(withDropdown || onlyDropdown) && !locked && <DropdownIcon icon='arrow-down' aria-hidden=\"true\"/>}\n {locked && <LockIcon icon=\"lock\" aria-hidden=\"true\"/>}\n {children}\n {isLoading && <Loading white={!light && !outline && !dashed && !white} absolute size={small && '16'} borderWidth={small && '3'} />}\n </Wrapper>))`\n vertical-align: top;\n border: 0;\n font-size: 13px;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n background: ${getColor};\n color: white;\n min-width: 8rem;\n font-weight: 600;\n display: inline-block;\n // line-height: 16px;\n text-align: center;\n padding: 10px 1.25rem;\n outline: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n user-select: none;\n flex-shrink: 0;\n :hover {\n background: ${props => darken(0.05, getColor(props, true))};\n }\n :active {\n background: ${props => darken(0.08, getColor(props, true))};\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n ${props => !props.noFocus && !props.isLoading && css`\n :focus {\n ${focus}\n }\n ${props => props.focused && focus}\n `}\n & + & {\n margin-left: 1rem;\n }\n \n ${props => props.hasErrors && css`\n :after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: -4px;\n right: -4px;\n left: -4px;\n bottom: -4px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 3px solid ${props => transparentize(0.7, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.icon && css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 3rem;\n min-height: 3rem;\n ${Icon} {\n font-size: 23px;\n margin-left: -4px;\n margin-right: 8px;\n pointer-events: none;\n line-height: 0;\n }\n `}\n ${props => props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n ${props => props.small && css`\n font-size: 13px;\n padding: 3px 1rem;\n min-width: 2rem;\n min-height: 2rem;\n font-weight: 550;\n ${props.icon && css`\n ${Icon} {\n font-size: 18px;\n margin-left: -5px;\n margin-right: 5px;\n line-height: 0.9;\n }\n `}\n ${props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n `}\n ${props => props.big && css`\n font-size: 14px;\n padding: 13px 1.75rem;\n min-height: 42px;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.25rem;\n text-align: left;\n `}\n ${props => props.onlyDropdown && css`\n ${DropdownIcon} {\n right: 50%;\n transform: translate(50%,-50%);\n }\n `}\n ${props => props.light && css`\n background: ${getColor('bluishGray')};\n color: ${getColor('gray90')};\n :hover {\n background: ${props => darken(0.05, getColor('bluishGray')(props))};\n }\n :active {\n background: ${props => darken(0.08, getColor('bluishGray')(props))};\n }\n `}\n ${props => props.lightAlert && css`\n background: ${props => transparentize(0.86, getColor(\"alert\")(props))};\n color: ${getColor('alert')};\n :hover {\n background: ${props => transparentize(0.83, getColor(\"alert\")(props))};\n }\n :active {\n background: ${props => transparentize(0.80, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.lightWarning && css`\n background: ${props => transparentize(0.84, darken(0.05, getColor('warning')(props)))};\n color: ${props => darken(0.05, getColor('warning')(props))};\n :hover {\n background: ${props => transparentize(0.78, darken(0.05, getColor('warning')(props)))};\n }\n :active {\n background: ${props => transparentize(0.76, darken(0.05, getColor('warning')(props)))};\n }\n `}\n ${props => (props.outline || props.dashed || props.textOnly) && css`\n color: ${props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)'};\n background: none;\n ${Icon}, ${DropdownIcon} {\n color: ${props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)'};\n }\n :before {\n content: '';\n border: 1px ${props.outline ? 'solid' : props.dashed ? 'dashed' : ''} ${props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)'};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: ${props.rounded ? '100px' : '8px'};\n pointer-events: none;\n }\n :hover {\n background-color: rgba(0,0,0,0.05);\n }\n :active {\n background-color: rgba(0,0,0,0.08);\n }\n :focus {\n :before {\n box-shadow: 0 0 0 2px rgba(0,0,0,0.1);\n ${props.textOnly && 'content: none;'}\n }\n :after {\n content: none;\n }\n }\n `}\n ${props => props.alpha && css`\n background: rgba(0,0,0,0.45);\n :hover {\n background: rgba(0,0,0,0.50);\n }\n :active {\n background: rgba(0,0,0,0.55);\n }\n `}\n ${props => props.white && !props.outline && !props.dashed && css`\n color: ${getColor('main')};\n background: #FFFFFF;\n :hover {\n background: ${darken(0.05, '#FFFFFF')};\n }\n :active {\n background: ${darken(0.08, '#FFFFFF')};\n }\n `}\n ${props => props.isLoading && css`\n color: transparent !important;\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n `}\n ${props => props.isLoadingIcon && css`\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n ${Loading} {\n left: 10px;\n position: absolute;\n }\n `}\n ${media.mobile`\n ${props => !props.small && !props.onlyIcon && css`\n padding: 13px 1.5rem;\n font-size: 14px;\n `}\n ${props => !props.small && props.onlyIcon && css`\n min-width: 3.5rem;\n min-height: 3.5rem;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.5rem;\n ${DropdownIcon} {\n right: 14px;\n }\n `}\n `}\n ${media.max(359)`\n ${props => !props.small && !props.onlyIcon && !props.onlyDropdown && css`\n min-width: 0;\n `}\n `}\n ${props => props.fullwidth && `\n width: 100%;\n `}\n ${customTheme(\"Button\")}\n`\n\nButton.a = (props) => <Button {...props} className={props.className} innerAs=\"a\"/>\nButton.Link = (props) => <Button {...props} className={props.className} innerAs={Link}/>\nexport default Button\n"],"names":["DropdownIcon","styledExtend","Icon","_templateObject","_taggedTemplateLiteral","LockIcon","styled","withConfig","displayName","componentId","focus","css","props","rounded","Button","React","forwardRef","_ref","ref","type","locked","color","alpha","success","alert","warning","highlight","light","hover","white","icon","onlyIcon","small","withDropdown","onlyDropdown","outline","dashed","textOnly","isLoading","isLoadingIcon","dark","innerAs","Wrapper","className","children","tabIndex","focused","noFocus","colorSet","concealed","concealedModule","buttonRef","_objectWithoutProperties","_excluded","createElement","_extends","lightAlert","lightWarning","Loading","size","borderWidth","absolute","getColor","darken","nowrap","hasErrors","transparentize","big","media","mobile","_templateObject2","max","_templateObject3","fullwidth","customTheme","a","Link"],"mappings":";;;;;;;;;;;;;AAUaA,MAAAA,YAAY,GAAGC,YAAY,CAACC,IAAI,CAAC,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,CAM7C,CAAA,4GAAA,CAAA,CAAA,CAAA,EAAA;AACD,MAAMC,QAAQ,gBAAGC,MAAM,CAACJ,IAAI,CAAC,CAAAK,UAAA,CAAA;EAAAC,WAAA,EAAA,kBAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAO5B,CAAA,CAAA,CAAA,+EAAA,CAAA,CAAA,CAAA;AAED,MAAMC,KAAK,gBAAGC,GAAG,CAAA,CAAA,kHAAA,EAAA,sCAAA,CAAA,EASEC,KAAK,IAAIA,KAAK,CAACC,OAAO,GAAG,OAAO,GAAG,MAAM,CAG3D,CAAA;AAEYC,MAAAA,MAAM,gBAAGR,MAAM,cAACS,KAAK,CAACC,UAAU,CAAC,CAAAC,IAAA,EAIdC,GAAG,KAAA;EAAA,IAJY;AACfC,MAAAA,IAAI,GAAG,QAAQ;MAAEC,MAAM;MAAEC,KAAK;MAAEC,KAAK;MAAEC,OAAO;MAAEC,KAAK;MAAEC,OAAO;MAAEC,SAAS;MAAEC,KAAK;MAAEC,KAAK;MAAEC,KAAK;MAAEC,IAAI;MAAEC,QAAQ;MAAEC,KAAK;MAAEC,YAAY;MAAEC,YAAY;MAAEC,OAAO;MAAEC,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,aAAa;MAAEC,IAAI;MAC5MC,OAAO,EAAEC,OAAO,GAAG,QAAQ;MAAEC,SAAS;MAAEC,QAAQ;MAAE/B,OAAO;AAAEgC,MAAAA,QAAQ,GAAG,CAAC;MAAEC,OAAO;MAAEC,OAAO;MACzFC,QAAQ;MAAEC,SAAS;MAAEC,eAAe;AAAEC,MAAAA,SAAAA;AACxC,KAAC,GAAAlC,IAAA;AADqDL,IAAAA,KAAK,GAAAwC,wBAAA,CAAAnC,IAAA,EAAAoC,SAAA,CAAA,CAAA;AAAA,EAAA,oBAEvFtC,KAAA,CAAAuC,aAAA,CAACZ,OAAO,EAAAa,QAAA,CAAA;IAACrC,GAAG,EAAEA,GAAG,IAAIiC,SAAU;AAACN,IAAAA,QAAQ,EAAEA,QAAS;AAACF,IAAAA,SAAS,EAAEA,SAAS,GAAG,gBAAgB,IAAKtB,KAAK,IAAIE,OAAO,IAAIC,KAAK,IAAIC,OAAO,IAAIC,SAAS,IAAIc,IAAI,IAAIZ,KAAK,IAAIO,OAAO,IAAIC,MAAM,IAAIC,QAAQ,IAAIR,KAAK,IAAIP,KAAK,IAAIV,KAAK,CAAC4C,UAAU,IAAI5C,KAAK,CAAC6C,YAAY,GAAI,wBAAwB,GAAG,EAAE,CAAE;AAACtC,IAAAA,IAAI,EAAEuB,OAAO,KAAK,QAAQ,GAAGvB,IAAI,GAAG,EAAA;GAAQP,EAAAA,KAAK,GACjVkB,IAAI,iBAAIf,KAAA,CAAAuC,aAAA,CAACpD,IAAI,EAAA;AAAC4B,IAAAA,IAAI,EAAEA,IAAK;IAAC,aAAY,EAAA,MAAA;GAAO,CAAC,EAC9CS,aAAa,iBAAIxB,KAAA,CAAAuC,aAAA,CAACI,OAAO,EAAA;IAAC7B,KAAK,EAAE,CAACF,KAAK,IAAI,CAACQ,OAAO,IAAI,CAACC,MAAM,IAAI,CAACP,KAAM;AAAC8B,IAAAA,IAAI,EAAE3B,KAAK,GAAG,IAAI,GAAG,IAAK;AAAC4B,IAAAA,WAAW,EAAE5B,KAAK,GAAG,GAAG,GAAG,GAAA;AAAI,GAAC,CAAC,EACtI,CAACC,YAAY,IAAIC,YAAY,KAAK,CAACd,MAAM,iBAAIL,KAAA,CAAAuC,aAAA,CAACtD,YAAY,EAAA;AAAC8B,IAAAA,IAAI,EAAC,YAAY;IAAC,aAAY,EAAA,MAAA;GAAO,CAAC,EACjGV,MAAM,iBAAIL,KAAA,CAAAuC,aAAA,CAACjD,QAAQ,EAAA;AAACyB,IAAAA,IAAI,EAAC,MAAM;IAAC,aAAY,EAAA,MAAA;GAAO,CAAC,EACpDc,QAAQ,EACRN,SAAS,iBAAIvB,KAAA,CAAAuC,aAAA,CAACI,OAAO,EAAA;IAAC7B,KAAK,EAAE,CAACF,KAAK,IAAI,CAACQ,OAAO,IAAI,CAACC,MAAM,IAAI,CAACP,KAAM;IAACgC,QAAQ,EAAA,IAAA;IAACF,IAAI,EAAE3B,KAAK,IAAI,IAAK;IAAC4B,WAAW,EAAE5B,KAAK,IAAI,GAAA;AAAI,GAAE,CAC1H,CAAC,CAAA;AAAA,CAAC,CAAA,CAAC,CAAAzB,UAAA,CAAA;EAAAC,WAAA,EAAA,QAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2DAAA,EAAA,cAAA,EAAA,8NAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,GAAA,EAAA,2BAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAA,EAIKG,KAAK,IAAIA,KAAK,CAACC,OAAO,GAAG,OAAO,GAAG,KAAK,EAC3CiD,QAAQ,EAeNlD,KAAK,IAAImD,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAClD,KAAK,EAAE,IAAI,CAAC,CAAC,EAG5CA,KAAK,IAAImD,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAClD,KAAK,EAAE,IAAI,CAAC,CAAC,EAE1DA,KAAK,IAAIA,KAAK,CAACoD,MAAM,oCAEtB,EACCpD,KAAK,IAAI,CAACA,KAAK,CAACmC,OAAO,IAAI,CAACnC,KAAK,CAAC0B,SAAS,IAAI3B,GAAG,uBAE9CD,KAAK,EAEPE,KAAK,IAAIA,KAAK,CAACkC,OAAO,IAAIpC,KAAK,CAClC,EAKCE,KAAK,IAAIA,KAAK,CAACqD,SAAS,IAAItD,GAAG,CAAA,CAAA,kHAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,EASZC,KAAK,IAAIA,KAAK,CAACC,OAAO,GAAG,OAAO,GAAG,MAAM,EACtCD,KAAK,IAAIsD,cAAc,CAAC,GAAG,EAAEJ,QAAQ,CAAC,OAAO,CAAC,CAAClD,KAAK,CAAC,CAAC,CAE7E,EACCA,KAAK,IAAIA,KAAK,CAACkB,IAAI,IAAInB,GAAG,CAMxBT,CAAAA,+FAAAA,EAAAA,uFAAAA,CAAAA,EAAAA,IAAI,CAOP,EACCU,KAAK,IAAIA,KAAK,CAACmB,QAAQ,IAAIpB,GAAG,CAAA,CAAA,YAAA,EAAA,aAAA,CAAA,EAE5BT,IAAI,CAGP,EACCU,KAAK,IAAIA,KAAK,CAACoB,KAAK,IAAIrB,GAAG,+FAMzBC,KAAK,CAACkB,IAAI,IAAInB,GAAG,CACfT,CAAAA,EAAAA,EAAAA,qEAAAA,CAAAA,EAAAA,IAAI,CAMP,EACCU,KAAK,CAACmB,QAAQ,IAAIpB,GAAG,gCAEnBT,IAAI,CAGP,CACF,EACCU,KAAK,IAAIA,KAAK,CAACuD,GAAG,IAAIxD,GAAG,CAI1B,CAAA,sDAAA,CAAA,CAAA,EACCC,KAAK,IAAIA,KAAK,CAACqB,YAAY,IAAItB,GAAG,4CAGnC,EACCC,KAAK,IAAIA,KAAK,CAACsB,YAAY,IAAIvB,GAAG,CAAA,CAAA,EAAA,EAAA,4CAAA,CAAA,EAChCX,YAAY,CAIf,EACCY,KAAK,IAAIA,KAAK,CAACe,KAAK,IAAIhB,GAAG,mFACbmD,QAAQ,CAAC,YAAY,CAAC,EAC3BA,QAAQ,CAAC,QAAQ,CAAC,EAEXlD,KAAK,IAAImD,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAC,YAAY,CAAC,CAAClD,KAAK,CAAC,CAAC,EAGpDA,KAAK,IAAImD,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAC,YAAY,CAAC,CAAClD,KAAK,CAAC,CAAC,CAErE,EACCA,KAAK,IAAIA,KAAK,CAAC4C,UAAU,IAAI7C,GAAG,CAClBC,CAAAA,aAAAA,EAAAA,SAAAA,EAAAA,qBAAAA,EAAAA,uBAAAA,EAAAA,IAAAA,CAAAA,EAAAA,KAAK,IAAIsD,cAAc,CAAC,IAAI,EAAEJ,QAAQ,CAAC,OAAO,CAAC,CAAClD,KAAK,CAAC,CAAC,EAC5DkD,QAAQ,CAAC,OAAO,CAAC,EAEVlD,KAAK,IAAIsD,cAAc,CAAC,IAAI,EAAEJ,QAAQ,CAAC,OAAO,CAAC,CAAClD,KAAK,CAAC,CAAC,EAGvDA,KAAK,IAAIsD,cAAc,CAAC,IAAI,EAAEJ,QAAQ,CAAC,OAAO,CAAC,CAAClD,KAAK,CAAC,CAAC,CAExE,EACCA,KAAK,IAAIA,KAAK,CAAC6C,YAAY,IAAI9C,GAAG,CAAA,CAAA,aAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,EACpBC,KAAK,IAAIsD,cAAc,CAAC,IAAI,EAAEH,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAC,SAAS,CAAC,CAAClD,KAAK,CAAC,CAAC,CAAC,EAC5EA,KAAK,IAAImD,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAC,SAAS,CAAC,CAAClD,KAAK,CAAC,CAAC,EAE1CA,KAAK,IAAIsD,cAAc,CAAC,IAAI,EAAEH,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAC,SAAS,CAAC,CAAClD,KAAK,CAAC,CAAC,CAAC,EAGvEA,KAAK,IAAIsD,cAAc,CAAC,IAAI,EAAEH,MAAM,CAAC,IAAI,EAAED,QAAQ,CAAC,SAAS,CAAC,CAAClD,KAAK,CAAC,CAAC,CAAC,CAExF,EACCA,KAAK,IAAI,CAACA,KAAK,CAACuB,OAAO,IAAIvB,KAAK,CAACwB,MAAM,IAAIxB,KAAK,CAACyB,QAAQ,KAAK1B,GAAG,CAAA,CAAA,QAAA,EAAA,mBAAA,EAAA,GAAA,EAAA,SAAA,EAAA,kCAAA,EAAA,GAAA,EAAA,iEAAA,EAAA,iKAAA,EAAA,yBAAA,CAAA,EACxDC,KAAK,CAACiB,KAAK,GAAG,OAAO,GAAGjB,KAAK,CAACc,SAAS,GAAGoC,QAAQ,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAErF5D,IAAI,EAAKF,YAAY,EACZY,KAAK,CAACiB,KAAK,GAAG,OAAO,GAAGjB,KAAK,CAACc,SAAS,GAAGoC,QAAQ,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAIzElD,KAAK,CAACuB,OAAO,GAAG,OAAO,GAAGvB,KAAK,CAACwB,MAAM,GAAG,QAAQ,GAAG,EAAE,EAAIxB,KAAK,CAACiB,KAAK,GAAG,OAAO,GAAGjB,KAAK,CAACc,SAAS,GAAGoC,QAAQ,CAAC,MAAM,CAAC,GAAG,kBAAkB,EAMtIlD,KAAK,CAACC,OAAO,GAAG,OAAO,GAAG,KAAK,EAY5CD,KAAK,CAACyB,QAAQ,IAAI,gBAAgB,CAMzC,EACCzB,KAAK,IAAIA,KAAK,CAACU,KAAK,IAAIX,GAAG,2GAQ5B,EACCC,KAAK,IAAIA,KAAK,CAACiB,KAAK,IAAI,CAACjB,KAAK,CAACuB,OAAO,IAAI,CAACvB,KAAK,CAACwB,MAAM,IAAIzB,GAAG,CAAA,CAAA,QAAA,EAAA,wCAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,EACrDmD,QAAQ,CAAC,MAAM,CAAC,EAGTC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAGvBA,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAExC,EACCnD,KAAK,IAAIA,KAAK,CAAC0B,SAAS,IAAI3B,GAAG,CAAA,CAAA,mDAAA,EAAA,sBAAA,CAAA,EAG7BT,IAAI,CAGP,EACCU,KAAK,IAAIA,KAAK,CAAC2B,aAAa,IAAI5B,GAAG,CAEjCT,CAAAA,sBAAAA,EAAAA,sBAAAA,EAAAA,gCAAAA,CAAAA,EAAAA,IAAI,EAGJwD,OAAO,CAIV,EACCU,KAAK,CAACC,MAAM,CAAAC,gBAAA,KAAAA,gBAAA,GAAAlE,sBAAA,2CACVQ,KAAK,IAAI,CAACA,KAAK,CAACoB,KAAK,IAAI,CAACpB,KAAK,CAACmB,QAAQ,IAAIpB,GAAG,CAGhD,CAAA,qCAAA,CAAA,CAAA,EACCC,KAAK,IAAI,CAACA,KAAK,CAACoB,KAAK,IAAIpB,KAAK,CAACmB,QAAQ,IAAIpB,GAAG,yCAG/C,EACCC,KAAK,IAAIA,KAAK,CAACqB,YAAY,IAAItB,GAAG,CAAA,CAAA,uBAAA,EAAA,eAAA,CAAA,EAEhCX,YAAY,CAGf,CAAA,EAEDoE,KAAK,CAACG,GAAG,CAAC,GAAG,CAAC,CAAAC,gBAAA,KAAAA,gBAAA,GAAApE,sBAAA,uBACZQ,KAAK,IAAI,CAACA,KAAK,CAACoB,KAAK,IAAI,CAACpB,KAAK,CAACmB,QAAQ,IAAI,CAACnB,KAAK,CAACsB,YAAY,IAAIvB,GAAG,CAAA,CAAA,cAAA,CAAA,CAEvE,GAEDC,KAAK,IAAIA,KAAK,CAAC6D,SAAS,IAEzB,wBAAA,EACCC,WAAW,CAAC,QAAQ,CAAC,EACxB;AAED5D,MAAM,CAAC6D,CAAC,GAAI/D,KAAK,iBAAKG,KAAA,CAAAuC,aAAA,CAACxC,MAAM,EAAAyC,QAAA,KAAK3C,KAAK,EAAA;EAAE+B,SAAS,EAAE/B,KAAK,CAAC+B,SAAU;AAACF,EAAAA,OAAO,EAAC,GAAA;AAAG,CAAA,CAAC,CAAC,CAAA;AAClF3B,MAAM,CAAC8D,IAAI,GAAIhE,KAAK,iBAAKG,KAAA,CAAAuC,aAAA,CAACxC,MAAM,EAAAyC,QAAA,KAAK3C,KAAK,EAAA;EAAE+B,SAAS,EAAE/B,KAAK,CAAC+B,SAAU;AAACF,EAAAA,OAAO,EAAEmC,IAAAA;AAAK,CAAA,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"Button.mjs","sources":["../src/Button.jsx"],"sourcesContent":["import React from 'react'\n\nimport {customTheme, getColor, media, styledExtend} from '@startlibs/utils'\nimport {darken, transparentize} from 'polished'\nimport styled, {css} from 'styled-components'\n\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const DropdownIcon = styledExtend(Icon)`\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n font-size: 12px;\n`\nconst LockIcon = styled(Icon)`\n position:absolute;\n bottom: 10px;\n right: .75rem;\n left: auto;\n top: auto;\n font-size: 18px;\n`\n\nconst focus = css`\n&:after{\n content: '';\n pointer-events: none;\n position: absolute;\n top: -3px;\n right: -3px;\n left: -3px;\n bottom: -3px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 2px solid rgba(0, 0, 0, 0.15);\n}\n`\n\nexport const Button = styled(React.forwardRef(({\n type = \"button\", locked, color, alpha, success, alert, warning, highlight, light, hover, white, icon, onlyIcon, small, withDropdown, onlyDropdown, outline, dashed, textOnly, isLoading, isLoadingIcon, dark,\n innerAs: Wrapper = 'button', className, children, rounded, tabIndex = 1, focused, noFocus,\n colorSet, concealed, concealedModule, buttonRef, ...props\n },ref) =>\n <Wrapper ref={ref || buttonRef} tabIndex={tabIndex} className={className + ' styled-button' + ((color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning) ? ' styled-button-colored' : '') + (small ? ' styled-button-small' : '')} type={Wrapper === 'button' ? type : ''} {...props}>\n {icon && <Icon icon={icon} aria-hidden=\"true\"/>}\n {isLoadingIcon && <Loading white={!light && !outline && !dashed && !white} size={small ? '10' : '18'} borderWidth={small ? '2' : '3'}/>}\n {(withDropdown || onlyDropdown) && !locked && <DropdownIcon icon='arrow-down' aria-hidden=\"true\"/>}\n {locked && <LockIcon icon=\"lock\" aria-hidden=\"true\"/>}\n {children}\n {isLoading && <Loading white={!light && !outline && !dashed && !white} absolute size={small && '16'} borderWidth={small && '3'} />}\n </Wrapper>))`\n vertical-align: top;\n border: 0;\n font-size: 13px;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n background: ${getColor};\n color: white;\n min-width: 8rem;\n font-weight: 600;\n display: inline-block;\n /* line-height: 16px; */\n text-align: center;\n padding: 10px 1.25rem;\n outline: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n user-select: none;\n flex-shrink: 0;\n &:hover {\n background: ${props => darken(0.05, getColor(props, true))};\n }\n &:active {\n background: ${props => darken(0.08, getColor(props, true))};\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n ${props => !props.noFocus && !props.isLoading && css`\n &:focus {\n ${focus}\n }\n ${props => props.focused && focus}\n `}\n & + & {\n margin-left: 1rem;\n }\n \n ${props => props.hasErrors && css`\n &:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: -4px;\n right: -4px;\n left: -4px;\n bottom: -4px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 3px solid ${props => transparentize(0.7, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.icon && css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 3rem;\n min-height: 3rem;\n ${Icon} {\n font-size: 23px;\n margin-left: -4px;\n margin-right: 8px;\n pointer-events: none;\n line-height: 0;\n }\n `}\n ${props => props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n ${props => props.small && css`\n font-size: 13px;\n padding: 3px 1rem;\n min-width: 2rem;\n min-height: 2rem;\n font-weight: 550;\n ${props => props.icon && css`\n ${Icon} {\n font-size: 18px;\n margin-left: -5px;\n margin-right: 5px;\n line-height: 0.9;\n }\n `}\n ${props => props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n `}\n ${props => props.big && css`\n font-size: 14px;\n padding: 13px 1.75rem;\n min-height: 42px;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.25rem;\n text-align: left;\n `}\n ${props => props.onlyDropdown && css`\n ${DropdownIcon} {\n right: 50%;\n transform: translate(50%,-50%);\n }\n `}\n ${props => props.light && css`\n background: ${getColor('bluishGray')};\n color: ${getColor('gray90')};\n &:hover {\n background: ${props => darken(0.05, getColor('bluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.08, getColor('bluishGray')(props))};\n }\n `}\n ${props => props.lightAlert && css`\n background: ${props => transparentize(0.86, getColor(\"alert\")(props))};\n color: ${getColor('alert')};\n &:hover {\n background: ${props => transparentize(0.83, getColor(\"alert\")(props))};\n }\n &:active {\n background: ${props => transparentize(0.80, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.lightWarning && css`\n background: ${props => transparentize(0.84, darken(0.05, getColor('warning')(props)))};\n color: ${props => darken(0.05, getColor('warning')(props))};\n &:hover {\n background: ${props => transparentize(0.78, darken(0.05, getColor('warning')(props)))};\n }\n &:active {\n background: ${props => transparentize(0.76, darken(0.05, getColor('warning')(props)))};\n }\n `}\n ${props => (props.outline || props.dashed || props.textOnly) && css`\n color: ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)'};\n background: none;\n ${Icon}, ${DropdownIcon} {\n color: ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)'};\n }\n &:before {\n content: '';\n /* 'none' explícito (não ''); yak representa cada interpolação como uma CSS custom property\n (var()) — um var() que resolve pra string vazia dentro do shorthand \"border\" invalida a\n declaração inteira pro navegador (diferente de uma string já resolvida como \"1px cor\",\n que o parser aceita, tratando o espaço duplo como o token de estilo ausente). Com 'none'\n (mesmo efeito visual de estilo ausente: computed border-width vira 0 de qualquer jeito),\n o var() nunca fica vazio e o shorthand permanece válido nos dois modos. */\n border: 1px ${props => props.outline ? 'solid' : props.dashed ? 'dashed' : 'none'} ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)'};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n pointer-events: none;\n }\n &:hover {\n background-color: rgba(0,0,0,0.05);\n }\n &:active {\n background-color: rgba(0,0,0,0.08);\n }\n &:focus {\n &:before {\n box-shadow: 0 0 0 2px rgba(0,0,0,0.1);\n ${props => props.textOnly && 'content: none;'}\n }\n &:after {\n content: none;\n }\n }\n `}\n ${props => props.alpha && css`\n background: rgba(0,0,0,0.45);\n &:hover {\n background: rgba(0,0,0,0.50);\n }\n &:active {\n background: rgba(0,0,0,0.55);\n }\n `}\n ${props => props.white && !props.outline && !props.dashed && css`\n color: ${getColor('main')};\n background: #FFFFFF;\n &:hover {\n background: ${darken(0.05, '#FFFFFF')};\n }\n &:active {\n background: ${darken(0.08, '#FFFFFF')};\n }\n `}\n ${props => props.isLoading && css`\n color: transparent !important;\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n `}\n ${props => props.isLoadingIcon && css`\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n ${Loading} {\n left: 10px;\n position: absolute;\n }\n `}\n ${media.mobile`\n ${props => !props.small && !props.onlyIcon && css`\n padding: 13px 1.5rem;\n font-size: 14px;\n `}\n ${props => !props.small && props.onlyIcon && css`\n min-width: 3.5rem;\n min-height: 3.5rem;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.5rem;\n ${DropdownIcon} {\n right: 14px;\n }\n `}\n `}\n ${media.max(359)`\n ${props => !props.small && !props.onlyIcon && !props.onlyDropdown && css`\n min-width: 0;\n `}\n `}\n ${props => props.fullwidth && `\n width: 100%;\n `}\n ${customTheme(\"Button\")}\n`\n\nButton.a = (props) => <Button {...props} className={props.className} innerAs=\"a\"/>\nButton.Link = (props) => <Button {...props} className={props.className} innerAs={Link}/>\nexport default Button\n"],"names":["DropdownIcon","styledExtend","Icon","_templateObject","_taggedTemplateLiteral","LockIcon","styled","withConfig","displayName","componentId","focus","css","props","rounded","Button","React","forwardRef","_ref","ref","type","locked","color","alpha","success","alert","warning","highlight","light","hover","white","icon","onlyIcon","small","withDropdown","onlyDropdown","outline","dashed","textOnly","isLoading","isLoadingIcon","dark","innerAs","Wrapper","className","children","tabIndex","focused","noFocus","colorSet","concealed","concealedModule","buttonRef","_objectWithoutProperties","_excluded","createElement","_extends","lightAlert","lightWarning","Loading","size","borderWidth","absolute","getColor","darken","nowrap","hasErrors","transparentize","big","media","mobile","_templateObject2","max","_templateObject3","fullwidth","customTheme","a","Link"],"mappings":"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"}
@@ -4,7 +4,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
4
4
  import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
5
5
  import React, { useRef, useEffect, forwardRef, useState, useMemo } from 'react';
6
6
  import ReactDOM from 'react-dom';
7
- import styled, { css, isStyledComponent } from 'styled-components';
7
+ import styled, { css } from 'styled-components';
8
8
  import { useEnsureRef, useToggle, useRefState, willUseLayers, willUseSharedState, Fill } from '@startlibs/core';
9
9
  import { transparentize, darken } from 'polished';
10
10
  import { isMemo } from 'react-is';
@@ -31,7 +31,15 @@ const slideRight = oneWayAnimation('transform: translateX(-10px)', 'transform: n
31
31
  const slideLeftOnLeft = oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none');
32
32
  animationTiming('0.2s ease-out');
33
33
  const areComponentsEqual = (a, b) => a === b;
34
- const ListItem = /*#__PURE__*/styled.li.withConfig({
34
+
35
+ // Variantes como classe: no yak, o override de theme.startlibs.ListItem não lê props.
36
+ // Sem variante, sem a chave className: o yak sobrescreveria a do app com undefined.
37
+ const ListItem = /*#__PURE__*/styled.li.attrs(props => {
38
+ const variants = [props.hover && 'styled-list-item-hover', props.highlight && 'styled-list-item-highlight'].filter(Boolean);
39
+ return variants.length ? {
40
+ className: variants.join(' ')
41
+ } : {};
42
+ }).withConfig({
35
43
  displayName: "ContextMenu__ListItem",
36
44
  componentId: "sc-13y1vvt-0"
37
45
  })(["position:relative;font-size:13px;& > *{padding:11px 1.5rem 11px 3.5rem;display:block;}", " ", ",.icon{font-size:", "px;position:absolute;padding-left:0.25rem;left:0;top:50%;transform:translateY(-50%);width:3.5rem;text-align:center;}", " & > a{color:inherit;font-weight:inherit;text-decoration:inherit;}& > a,& > label{cursor:pointer;}", " ", " input[type=\"radio\"]{display:none;}", " ", " ", " ", ""], props => props.hasSubmenu && "\n & > * {\n padding-right: 3rem;\n }\n ", Icon, props => props.iconSize || 23, media.mobile(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-size: 15px;\n & > * {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n ", ", .icon {\n font-size: ", "px;\n }\n "])), Icon, props => (props.iconSize || 23) + 2), ifProp('hover', css(["& > a,& > label{background:", ";color:", ";}"], props => transparentize(0.88, getColor("main")(props)), props => darken(0.03, getColor("main")(props)))), ifProp('highlight', css(["color:", ";"], getColor('main'))), ifProp('noActions', "\n max-width: 17rem;\n color: rgba(0,0,0,0.4);\n pointer-events: none;\n text-align: center;\n white-space: normal;\n "), ifProp('withButton', css(["padding:0.25rem 1rem;", "{width:100%;color:white;font-weight:500;padding:10px 1.25rem;", "}"], Button, media.mobile(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: 13px 1.25rem;\n "]))))), ifProp('smallPaddingRight', css(["& > *{padding-right:1.5rem;}"])), customTheme('ListItem'));
@@ -62,8 +70,16 @@ const ListSeparator = /*#__PURE__*/styled.li.withConfig({
62
70
  const ListHeading = /*#__PURE__*/styled.li.withConfig({
63
71
  displayName: "ContextMenu__ListHeading",
64
72
  componentId: "sc-13y1vvt-7"
65
- })(["display:flex;align-items:center;padding:.5rem 1rem;color:rgba(0,0,0,0.4);font-size:12px;text-transform:uppercase;:after{content:'';flex-grow:1;margin-left:0.75rem;height:1px;background:rgba(0,0,0,0.15);}"]);
66
- const SubmenuArrowIcon = styledExtend(Icon)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n font-size: 13px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem;\n text-align: center;\n"])));
73
+ })(["display:flex;align-items:center;padding:.5rem 1rem;color:rgba(0,0,0,0.4);font-size:12px;text-transform:uppercase;&:after{content:'';flex-grow:1;margin-left:0.75rem;height:1px;background:rgba(0,0,0,0.15);}"]);
74
+
75
+ /* No sc, styledExtend(Icon) cria uma identidade própria: o seletor ${Icon} do ListItem
76
+ acima não bate aqui. No yak, styledExtend vira styled(Icon) (plugin, R10) e essa seta
77
+ herda a classe do Icon, então aquele ${Icon} (2 classes, mais específico) passa a
78
+ também valer pra ela, incluindo um "left: 0" que nunca existiu aqui. Com left, right
79
+ e width todos setados o box fica sobreconstrangido e o browser ignora o "right"
80
+ (ganha left+width): a seta migra pra esquerda. !important nas propriedades em comum,
81
+ e left:auto explícito, devolvem o tamanho e a posição próprios nos dois modos. */
82
+ const SubmenuArrowIcon = styledExtend(Icon)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n font-size: 13px !important;\n position: absolute;\n left: auto !important;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem !important;\n padding-left: 0 !important;\n text-align: center;\n"])));
67
83
  class SimpleLi extends React.Component {
68
84
  constructor() {
69
85
  super(...arguments);
@@ -366,7 +382,7 @@ const ContextMenuComponent = /*#__PURE__*/forwardRef((_ref2, unesuredRef) => {
366
382
  let sum = 0;
367
383
  React.Children.forEach(children, child => {
368
384
  if (child && !child.props.disabled && !child.props.readOnly) {
369
- if (!isStyledComponent(child.type) && child.type === Li || child.type.isKeyboardNavigable) {
385
+ if (child.type === Li || child.type.isKeyboardNavigable) {
370
386
  sum += 1;
371
387
  }
372
388
  if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {
@@ -386,7 +402,7 @@ const ContextMenuComponent = /*#__PURE__*/forwardRef((_ref2, unesuredRef) => {
386
402
  let indexRef = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
387
403
  current: 0
388
404
  };
389
- return React.Children.map(children, (child, j) => child && !child.props.disabled && !child.props.readOnly ? child.props.nested ? /*#__PURE__*/React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef)) : !isStyledComponent(child.type) && !isMemo(child.type) && areComponentsEqual(child.type, Li) || child.type.isKeyboardNavigable ? /*#__PURE__*/React.cloneElement(child, {
405
+ return React.Children.map(children, (child, j) => child && !child.props.disabled && !child.props.readOnly ? child.props.nested ? /*#__PURE__*/React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef)) : !isMemo(child.type) && areComponentsEqual(child.type, Li) || child.type.isKeyboardNavigable ? /*#__PURE__*/React.cloneElement(child, {
390
406
  fixedPosition: props.fixed,
391
407
  hover: hoverCursor === indexRef.current && layerIndex === layerCursor,
392
408
  hoverCursor: hoverCursor,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.mjs","sources":["../src/ContextMenu.jsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, useRef, forwardRef} from 'react';\nimport ReactDOM from 'react-dom'\nimport styled, {css, isStyledComponent} from 'styled-components'\n\nimport {\n Fill,\n useEnsureRef,\n useRefState,\n useToggle,\n willUseLayers,\n willUseSharedState\n} from '@startlibs/core';\nimport {darken, transparentize} from 'polished'\nimport {isMemo} from 'react-is'\nimport {\n stopPropagation,\n getColor,\n ifProp,\n callIfFunction,\n customTheme,\n oneWayAnimation,\n animationTiming,\n styledExtend,\n media\n} from '@startlibs/utils'\nimport mitt from 'mitt'\n\nimport {Button} from './Button'\nimport {useFlipEnter, useFlipLeave} from './Flip'\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {getDialogLayersSize} from './containers/DialogContainer'\nimport {usePositioning} from './containers/usePositioning'\nimport {createPressAndMoveEvent, isMobile} from '@startlibs/utils'\n\n\nconst fadeIn = oneWayAnimation('opacity: 0', 'opacity: 1')\nconst slideDown = oneWayAnimation('transform: translateY(-10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideUpOnTop = oneWayAnimation('transform: translateY(10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideRight = oneWayAnimation('transform: translateX(-10px)', 'transform: none;')\nconst slideLeftOnLeft = oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none')\n\nconst popupAnimation = animationTiming('0.2s ease-out')\n\nconst areComponentsEqual = (a,b) => a === b\n\nexport const ListItem = styled.li`\n position: relative;\n font-size: 13px;\n & > * {\n padding: 11px 1.5rem 11px 3.5rem;\n display: block;\n }\n ${props => props.hasSubmenu && `\n & > * {\n padding-right: 3rem;\n }\n `}\n ${Icon}, .icon {\n font-size: ${props => props.iconSize || 23}px;\n position: absolute;\n padding-left: 0.25rem;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3.5rem;\n text-align: center;\n }\n ${media.mobile`\n font-size: 15px;\n & > * {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n ${Icon}, .icon {\n font-size: ${props => (props.iconSize || 23) + 2}px;\n }\n `}\n & > a {\n color: inherit;\n font-weight: inherit;\n text-decoration: inherit;\n }\n & > a, & > label {\n cursor: pointer;\n }\n ${ifProp('hover', css`\n & > a, & > label {\n background: ${props => transparentize(0.88, getColor(\"main\")(props))};\n color: ${props => darken(0.03, getColor(\"main\")(props))};\n }`)}\n ${ifProp('highlight', css`\n color: ${getColor('main')};\n `)}\n input[type=\"radio\"] {\n display: none;\n }\n ${ifProp('noActions', `\n max-width: 17rem;\n color: rgba(0,0,0,0.4);\n pointer-events: none;\n text-align: center;\n white-space: normal;\n `)}\n ${ifProp('withButton', css`\n padding: 0.25rem 1rem;\n ${Button} {\n width: 100%;\n color: white;\n font-weight: 500;\n padding: 10px 1.25rem;\n ${media.mobile`\n padding: 13px 1.25rem;\n `}\n }\n `)}\n ${ifProp('smallPaddingRight', css`\n & > * {\n padding-right: 1.5rem;\n }\n `)}\n ${customTheme('ListItem')}\n`\n\nconst ListItemDescText = styled.div`\n font-size: 11px;\n margin-top: 0.25rem;\n opacity: 0.6;\n ${media.mobile `\n font-size: 12px;\n `}\n`\nconst ListItemHelpText = styled.span`\n opacity: 0.5;\n`\n\nexport const ListMenu = styled.ul`\n padding: 0.5rem 0;\n cursor: default;\n overflowY: auto;\n text-align: left;\n color: inherit;\n user-select: none;\n`\n\nexport const ContextListMenu = styled(ListMenu)`\n position: absolute;\n z-index: 999;\n background-color: white;\n backdrop-filter: blur(20px);\n background-color: rgb(255 255 255 / 80%);\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 0px 2px 0px rgba(0,0,0,0.2);\n border-radius: 12px;\n margin-bottom: 0.5rem;\n overflow: auto;\n max-height: 100vh;\n max-height: 100dvh;\n max-width: 100vw;\n max-width: 100dvw;\n ${props => props.withoutIcons && `\n ${ListItem} > * {\n padding-left: 1.5rem;\n }\n `}\n ${ifProp('sub', css`\n ${props => props.fullHeight ? '' : (props.atTop ? 'margin-top: -0.5rem;' : 'margin-top: 0.5rem;')}\n\n ${ifProp('atRight', `\n margin-left: -4px;\n `, `\n margin-left: 4px;\n `)}\n `)}\n ${customTheme('ContextMenu')}\n`\n\nexport const StickyContainer = styled.div`\n position: sticky;\n background: white;\n ${props => props.atBottom && `\n bottom: -0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: -0.5rem;\n `}\n ${props => props.atTop && `\n top: -0.5rem;\n padding-top: 0.5rem;\n margin-top: -0.5rem;\n `}\n`\n\nexport const ListSeparator = styled.li`\n border-bottom: 1px solid rgba(0,0,0,0.1);\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n cursor: default;\n height: 0;\n ${ifProp('lighten', css`\n border-color: rgba(255,255,255,0.15);\n `)}\n`\n\nexport const ListHeading = styled.li`\n display: flex;\n align-items: center;\n padding: .5rem 1rem;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n text-transform: uppercase;\n :after {\n content: '';\n flex-grow: 1;\n margin-left: 0.75rem;\n height: 1px;\n background: rgba(0,0,0,0.15);\n }\n`\n\nconst SubmenuArrowIcon = styledExtend(Icon)`\n font-size: 13px;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem;\n text-align: center;\n`\n\n\nlet layerCursor = 0\n\nexport class SimpleLi extends React.Component {\n\n static isKeyboardNavigable = true\n static defaultProps = {\n emitter: mitt()\n }\n\n componentWillUnmount() {\n this.props.emitter.off('confirm', this.confirm)\n }\n\n componentDidUpdate() {\n if (this.props.hover && this.props.scrollOnHover !== false) {\n this.scrollToVisibility()\n }\n }\n\n componentDidMount() {\n this.props.emitter.on('confirm', this.confirm)\n if (this.props.selected && this.props.setCursorOnHover) {\n this.props.setCursorOnHover(this.props.index)\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n list.scrollTop = el.offsetTop + (el.offsetHeight / 2) - (list.offsetHeight / 2)\n }\n }\n\n scrollToVisibility = () => {\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n if (el.offsetTop < list.scrollTop) {\n list.scrollTop = el.offsetTop\n } else if (el.offsetTop + el.offsetHeight > list.scrollTop + list.offsetHeight) {\n list.scrollTop = el.offsetTop + el.offsetHeight - list.offsetHeight\n }\n }\n\n confirm = () => {\n if (this.props.hover) {\n const node = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n node.click()\n }\n }\n onMouseEnter = () => this.props.setCursorOnHover && this.props.setCursorOnHover(this.props.index)\n onMouseOut = () => this.props.setCursorOnHover && this.props.setCursorOnHover(-1)\n\n touchEnd = (e) => {\n if (this.props.children) {\n e.preventDefault()\n if (!this.props.hover)\n this.onMouseEnter()\n }\n }\n\n onClick = (e) => {\n this.props.onClick && this.props.onClick()\n }\n\n render() {\n const {label, layerIndex, href, linkTo, prefixWith, subMenu, icon, children, scrollOnHover, ...rest} = this.props\n const Tag = (linkTo) ? Link : 'a'\n return <ListItem\n {...rest}\n onClick={this.onClick}\n onMouseLeave={this.onMouseOut}\n onMouseEnter={this.onMouseEnter}\n onTouchEnd={this.touchEnd}\n >\n <Tag href={href} to={linkTo}>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label}\n </Tag>\n </ListItem>\n }\n}\n\nexport const Li = React.forwardRef(({emitter = mitt(), index, menuSlot, keepOpen, hover, layerIndex, hoverCursor, scrollOnHover, passTouchThrough, children, setCursorOnHover, onClick, prefixWith, linkTo, icon, label,descText,helpText, target, href, ...rest},ref) => {\n const nodeRef = useEnsureRef(ref)\n const tagRef = useRef()\n const subMenu = useToggle()\n const subPrevented = useRefState(false)\n\n const onOpenSub = () => {\n subPrevented.set(false)\n if (hover && children) {\n subMenu.open()\n }\n }\n\n const onPreventSub = (subIndex) => {\n if (index !== subIndex)\n subMenu.close()\n subPrevented.set(true)\n }\n\n const confirm = () => {\n if (hover) {\n nodeRef.current.click()\n }\n }\n\n useEffect(() => {\n if (hover && scrollOnHover !== false) {\n try {\n const el = nodeRef.current\n const parent = el.parentElement\n const stickyContainer = parent.lastChild\n const stickyContainerHeight =\n (stickyContainer && stickyContainer.tagName === \"DIV\" && (stickyContainer.offsetTop - parent.scrollTop) < parent.offsetHeight)\n ? stickyContainer.offsetHeight\n : 0\n if (el.offsetTop > parent.offsetHeight + parent.scrollTop - stickyContainerHeight - el.offsetHeight) {\n parent.scroll(0, el.offsetTop - parent.offsetHeight + el.offsetHeight + stickyContainerHeight)\n } else if (el.offsetTop < parent.scrollTop) {\n parent.scroll(0, el.offsetTop)\n }\n } catch (e) {}\n }\n emitter.on('confirm', confirm)\n emitter.on('preventSub', onPreventSub)\n emitter.on('openSub', onOpenSub)\n return () => {\n emitter.off('confirm', confirm)\n emitter.off('preventSub', onPreventSub)\n emitter.off('openSub', onOpenSub)\n }\n }, [hover])\n\n useEffect(() => () => subMenu.close(), [])\n\n useEffect(() => {\n if (children && !isMobile()) {\n if (hover) {\n if (!subMenu.isOpen || subMenu.closing || !subPrevented.get()) {\n subMenu.open()\n }\n } else {\n if (subMenu.isOpen) {\n if (hoverCursor === -1) {\n // Mouse saiu de todos os itens — provavelmente indo até o submenu (que\n // abre ao lado, com um pequeno gap). Janela generosa; ao alcançá-lo, o\n // onMouseEnter/onMouseMove do submenu chama subMenu.open e cancela.\n subMenu.closeAfter(450)\n } else {\n // Mouse foi para outro item do menu — mantém os 200ms originais.\n subMenu.closeAfter(200)\n }\n emitter.emit('preventSub', index)\n }\n }\n }\n }, [hoverCursor])\n\n const onMouseMove = (e) => {\n if (!hover) {\n callIfFunction(setCursorOnHover, index)\n }\n e?.stopPropagation()\n }\n\n const onMouseOut = (e) => {\n callIfFunction(setCursorOnHover, -1)\n e?.stopPropagation()\n }\n\n const onClickHandler = (e) => {\n if (children || keepOpen) {\n e.stopPropagation()\n }\n if (children) {\n if (hover) {\n subMenu.toggle()\n } else {\n onMouseMove()\n }\n } else {\n callIfFunction(onClick, e)\n }\n }\n\n const onCloseSub = () => emitter.emit('openSub')\n\n const addProps = (children) => React.Children.map(children, c => React.cloneElement(c, {\n fixed: rest.fixedPosition,\n closing: subMenu.closing,\n onMouseMove: subMenu.open,\n // onMouseEnter não borbulha, então não é barrado pelo stopPropagation dos itens\n // do submenu (linha onMouseMove do Li). Garante que alcançar o submenu sempre\n // cancele o fechamento agendado por closeAfter(200), mantendo-o aberto.\n onMouseEnter: subMenu.open,\n onClose: onCloseSub,\n sub: true,\n slot: c.props.slot || menuSlot\n }))\n\n const content = <>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label} {helpText && <ListItemHelpText>({helpText})</ListItemHelpText>}\n {descText && <ListItemDescText>{descText}</ListItemDescText>}\n {children && <SubmenuArrowIcon icon=\"arrow-right\"/>}\n </>\n\n const Tag = linkTo ? Link : 'a'\n return <ListItem\n ref={nodeRef}\n {...rest}\n hover={hover}\n onClick={onClickHandler}\n onMouseLeave={onMouseOut}\n onMouseMove={onMouseMove}\n hasSubmenu={children}\n >\n {\n (rest.withButton || rest.noActions)\n ? content\n : <Tag href={href} target={target} to={linkTo} ref={tagRef} onMouseEnter={onMouseMove}>{content}</Tag>\n }\n {\n subMenu.isOpen && addProps(children)\n }\n </ListItem>\n})\nLi.isKeyboardNavigable\nLi.Simple = SimpleLi\n\nconst [useContextMenuLayers, contextMenuLayersSize] = willUseLayers()\nexport const contextMenuLayersQuantity = contextMenuLayersSize\nconst [useContextMenuSharedState] = willUseSharedState()\n\nexport const ContextMenuComponent = forwardRef((\n {\n children, sub, hoverIndex, autoHover, menuSlot, withoutIcons, onClose, onHover = () => 0, fill, onClick, ...props\n },\n unesuredRef\n) => {\n const ref = useEnsureRef(unesuredRef)\n const [hoverCursor, setHoverCursor] = useState(autoHover || sub ? 0 : -1)\n // Hover vindo do mouse não deve rolar a lista: o Chrome dispara mousemove sintético\n // ao fim do scroll, e o item cortado sob o cursor puxaria a lista de volta.\n const hoverFromMouse = useRef(false)\n const [layerCursor, setLayerCursor] = useContextMenuSharedState(0)\n\n const [layerIndex, {getSize}] = useContextMenuLayers()\n\n const itemsEmitter = useMemo(() => mitt(), [])\n useEffect(() => {\n window.addEventListener('keydown', keydown)\n return () => {\n callIfFunction(onClose)\n window.removeEventListener('keydown', keydown)\n }\n }, [layerIndex, layerCursor, hoverCursor])\n\n useEffect(() => {\n if (hoverIndex !== undefined) {\n if (hoverIndex !== hoverCursor) hoverFromMouse.current = false\n setHoverCursor(Math.min(Math.max(hoverIndex, -1), getTotalKeyboardItems(children) + 1))\n }\n }, [hoverIndex !== hoverCursor])\n\n const keydown = (e) => {\n if (e.keyCode === 37 || e.keyCode === 39) {\n if (!e.defaultPrevented) {\n const layers = getSize()\n const direction = e.keyCode - 38\n setLayerCursor((layerCursor + direction + layers) % layers)\n }\n e.preventDefault()\n }\n if (layerIndex !== layerCursor) return\n if (e.keyCode === 27 && ref.current) {\n ref.current.click()\n }\n if (e.keyCode === 13 || e.keyCode === 32 && hoverCursor >= 0) {// enter\n e.preventDefault()\n itemsEmitter.emit('confirm')\n }\n if (e.keyCode === 38 || e.keyCode === 40) { // up down\n e.preventDefault()\n const direction = e.keyCode - 39\n const max = getTotalKeyboardItems(children)\n const newIndex = (hoverCursor + direction + max) % max\n hoverFromMouse.current = false\n setHoverCursor(newIndex)\n onHover(newIndex)\n }\n }\n\n const getTotalKeyboardItems = (children) => {\n let sum = 0\n React.Children.forEach(children, child => {\n if (child && !child.props.disabled && !child.props.readOnly) {\n if ((!isStyledComponent(child.type) && child.type === Li) || child.type.isKeyboardNavigable) {\n sum += 1\n }\n if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {\n sum += getTotalKeyboardItems(child.props.children)\n }\n }\n }\n )\n return sum\n }\n\n const setCursorOnHover = (index) => {\n hoverFromMouse.current = true\n setLayerCursor(layerIndex)\n setHoverCursor(index)\n onHover(index)\n }\n\n const formatChildren = (children, indexRef = {current: 0}) => {\n return React.Children.map(children, (child, j) =>\n child && !child.props.disabled && !child.props.readOnly\n ? (\n child.props.nested\n ? React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef))\n : ((!isStyledComponent(child.type) && !isMemo(child.type) && areComponentsEqual(child.type, Li)) || child.type.isKeyboardNavigable)\n ? React.cloneElement(child, {\n fixedPosition:props.fixed,\n hover: hoverCursor === indexRef.current && layerIndex === layerCursor,\n hoverCursor: hoverCursor,\n scrollOnHover: !hoverFromMouse.current,\n index: indexRef.current++,\n setCursorOnHover,\n emitter: itemsEmitter,\n layerIndex: layerIndex,\n menuSlot\n })\n : (\n areComponentsEqual(child.type, StickyContainer)\n ? React.cloneElement(child, {\n ...child.props,\n children: formatChildren(child.props.children, indexRef)\n })\n : child\n )\n )\n : child\n )\n }\n\n const touchStart = createPressAndMoveEvent((e,prevPos) => {\n // e.preventDefault()\n e.stopPropagation()\n e.target.dispatchEvent(new MouseEvent('mousemove', {bubbles: true}))\n let passedResistance = false\n return (e,nextPos) => {\n const delta = prevPos.clientY - nextPos.clientY\n if (Math.abs(delta) > 10) {\n passedResistance = true\n setCursorOnHover(-1)\n }\n }\n })\n\n return (\n <ContextListMenu\n data-drag={false}\n ref={ref}\n sub={sub}\n onWheel={e => e.stopPropagation()}\n onTouchStart={touchStart}\n withoutIcons={withoutIcons}\n onMouseDown={stopPropagation()}\n {...props}\n >\n {formatChildren(children)}\n </ContextListMenu>\n )\n})\n\n\nexport const ContextMenu = forwardRef(({slot = 'Popup', sub, withoutIcons, children, ...rest}, ref) => {\n const contextMenuRef = useEnsureRef(ref)\n const [positionInfo, placeholder, arrow] = usePositioning(contextMenuRef, rest)\n const {atRight, atBottom} = {...positionInfo}\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n\n const enterAnimation = useMemo(() => [fadeIn, sub ? (atRight ? slideRight : slideLeftOnLeft) : (atBottom ? slideDown : slideUpOnTop)], [atRight, atBottom])\n useFlipEnter(contextMenuRef, !!positionInfo && enterAnimation)\n useFlipLeave(contextMenuRef, !!positionInfo && enterAnimation, sub && {events: {mouseover: rest.onMouseMove}})\n return <>\n {placeholder}\n <Fill name={slotName}>\n <ContextMenuComponent {...rest} menuSlot={slot} sub={sub} {...positionInfo} ref={contextMenuRef} withoutIcons={withoutIcons}>\n {arrow}\n {children}\n </ContextMenuComponent>\n </Fill>\n </>\n})\n\nContextMenu.ListItem = ListItem\n"],"names":["fadeIn","oneWayAnimation","slideDown","slideUpOnTop","slideRight","slideLeftOnLeft","animationTiming","areComponentsEqual","a","b","ListItem","styled","li","withConfig","displayName","componentId","props","hasSubmenu","Icon","iconSize","media","mobile","_templateObject","_taggedTemplateLiteral","ifProp","css","transparentize","getColor","darken","Button","_templateObject2","customTheme","ListItemDescText","div","_templateObject3","ListItemHelpText","span","ListMenu","ul","ContextListMenu","withoutIcons","concat","fullHeight","atTop","StickyContainer","atBottom","ListSeparator","ListHeading","SubmenuArrowIcon","styledExtend","_templateObject4","SimpleLi","React","Component","constructor","arguments","scrollToVisibility","el","ReactDOM","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","findDOMNode","list","parentNode","offsetTop","scrollTop","offsetHeight","confirm","hover","node","click","onMouseEnter","setCursorOnHover","index","onMouseOut","touchEnd","e","children","preventDefault","onClick","componentWillUnmount","emitter","off","componentDidUpdate","scrollOnHover","componentDidMount","on","selected","render","_this$props","label","layerIndex","href","linkTo","prefixWith","subMenu","icon","rest","_objectWithoutProperties","_excluded","Tag","Link","createElement","_extends","onMouseLeave","onTouchEnd","to","isKeyboardNavigable","defaultProps","mitt","Li","forwardRef","_ref","ref","menuSlot","keepOpen","hoverCursor","passTouchThrough","descText","helpText","target","_excluded2","nodeRef","useEnsureRef","tagRef","useRef","useToggle","subPrevented","useRefState","onOpenSub","set","open","onPreventSub","subIndex","close","current","useEffect","parent","parentElement","stickyContainer","lastChild","stickyContainerHeight","tagName","scroll","isMobile","isOpen","closing","get","closeAfter","emit","onMouseMove","callIfFunction","stopPropagation","onClickHandler","toggle","onCloseSub","addProps","Children","map","c","cloneElement","fixed","fixedPosition","onClose","sub","slot","content","Fragment","withButton","noActions","Simple","useContextMenuLayers","contextMenuLayersSize","willUseLayers","contextMenuLayersQuantity","useContextMenuSharedState","willUseSharedState","ContextMenuComponent","_ref2","unesuredRef","hoverIndex","autoHover","onHover","fill","_excluded3","setHoverCursor","useState","hoverFromMouse","layerCursor","setLayerCursor","getSize","itemsEmitter","useMemo","window","addEventListener","keydown","removeEventListener","undefined","Math","min","max","getTotalKeyboardItems","keyCode","defaultPrevented","layers","direction","newIndex","sum","forEach","child","disabled","readOnly","isStyledComponent","type","nested","formatChildren","indexRef","length","j","isMemo","_objectSpread","touchStart","createPressAndMoveEvent","prevPos","dispatchEvent","MouseEvent","bubbles","nextPos","delta","clientY","abs","onWheel","onTouchStart","onMouseDown","ContextMenu","_ref3","_excluded4","contextMenuRef","positionInfo","placeholder","arrow","usePositioning","atRight","slotName","getDialogLayersSize","enterAnimation","useFlipEnter","useFlipLeave","events","mouseover","Fill","name"],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenu.mjs","sources":["../src/ContextMenu.jsx"],"sourcesContent":["import React, {useState, useMemo, useEffect, useRef, forwardRef} from 'react';\nimport ReactDOM from 'react-dom'\nimport styled, {css} from 'styled-components'\n\nimport {\n Fill,\n useEnsureRef,\n useRefState,\n useToggle,\n willUseLayers,\n willUseSharedState\n} from '@startlibs/core';\nimport {darken, transparentize} from 'polished'\nimport {isMemo} from 'react-is'\nimport {\n stopPropagation,\n getColor,\n ifProp,\n callIfFunction,\n customTheme,\n oneWayAnimation,\n animationTiming,\n styledExtend,\n media\n} from '@startlibs/utils'\nimport mitt from 'mitt'\n\nimport {Button} from './Button'\nimport {useFlipEnter, useFlipLeave} from './Flip'\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {getDialogLayersSize} from './containers/DialogContainer'\nimport {usePositioning} from './containers/usePositioning'\nimport {createPressAndMoveEvent, isMobile} from '@startlibs/utils'\n\n\nconst fadeIn = oneWayAnimation('opacity: 0', 'opacity: 1')\nconst slideDown = oneWayAnimation('transform: translateY(-10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideUpOnTop = oneWayAnimation('transform: translateY(10px); pointer-events: none', 'transform: translateY(0); pointer-events: none')\nconst slideRight = oneWayAnimation('transform: translateX(-10px)', 'transform: none;')\nconst slideLeftOnLeft = oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none')\n\nconst popupAnimation = animationTiming('0.2s ease-out')\n\nconst areComponentsEqual = (a,b) => a === b\n\n// Variantes como classe: no yak, o override de theme.startlibs.ListItem não lê props.\n// Sem variante, sem a chave className: o yak sobrescreveria a do app com undefined.\nexport const ListItem = styled.li.attrs((props) => {\n const variants = [props.hover && 'styled-list-item-hover', props.highlight && 'styled-list-item-highlight'].filter(Boolean)\n return variants.length ? {className: variants.join(' ')} : {}\n})`\n position: relative;\n font-size: 13px;\n & > * {\n padding: 11px 1.5rem 11px 3.5rem;\n display: block;\n }\n ${props => props.hasSubmenu && `\n & > * {\n padding-right: 3rem;\n }\n `}\n ${Icon}, .icon {\n font-size: ${props => props.iconSize || 23}px;\n position: absolute;\n padding-left: 0.25rem;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3.5rem;\n text-align: center;\n }\n ${media.mobile`\n font-size: 15px;\n & > * {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n ${Icon}, .icon {\n font-size: ${props => (props.iconSize || 23) + 2}px;\n }\n `}\n & > a {\n color: inherit;\n font-weight: inherit;\n text-decoration: inherit;\n }\n & > a, & > label {\n cursor: pointer;\n }\n ${ifProp('hover', css`\n & > a, & > label {\n background: ${props => transparentize(0.88, getColor(\"main\")(props))};\n color: ${props => darken(0.03, getColor(\"main\")(props))};\n }`)}\n ${ifProp('highlight', css`\n color: ${getColor('main')};\n `)}\n input[type=\"radio\"] {\n display: none;\n }\n ${ifProp('noActions', `\n max-width: 17rem;\n color: rgba(0,0,0,0.4);\n pointer-events: none;\n text-align: center;\n white-space: normal;\n `)}\n ${ifProp('withButton', css`\n padding: 0.25rem 1rem;\n ${Button} {\n width: 100%;\n color: white;\n font-weight: 500;\n padding: 10px 1.25rem;\n ${media.mobile`\n padding: 13px 1.25rem;\n `}\n }\n `)}\n ${ifProp('smallPaddingRight', css`\n & > * {\n padding-right: 1.5rem;\n }\n `)}\n ${customTheme('ListItem')}\n`\n\nconst ListItemDescText = styled.div`\n font-size: 11px;\n margin-top: 0.25rem;\n opacity: 0.6;\n ${media.mobile `\n font-size: 12px;\n `}\n`\nconst ListItemHelpText = styled.span`\n opacity: 0.5;\n`\n\nexport const ListMenu = styled.ul`\n padding: 0.5rem 0;\n cursor: default;\n overflowY: auto;\n text-align: left;\n color: inherit;\n user-select: none;\n`\n\nexport const ContextListMenu = styled(ListMenu)`\n position: absolute;\n z-index: 999;\n background-color: white;\n backdrop-filter: blur(20px);\n background-color: rgb(255 255 255 / 80%);\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 0px 2px 0px rgba(0,0,0,0.2);\n border-radius: 12px;\n margin-bottom: 0.5rem;\n overflow: auto;\n max-height: 100vh;\n max-height: 100dvh;\n max-width: 100vw;\n max-width: 100dvw;\n ${props => props.withoutIcons && `\n ${ListItem} > * {\n padding-left: 1.5rem;\n }\n `}\n ${ifProp('sub', css`\n ${props => props.fullHeight ? '' : (props.atTop ? 'margin-top: -0.5rem;' : 'margin-top: 0.5rem;')}\n\n ${ifProp('atRight', `\n margin-left: -4px;\n `, `\n margin-left: 4px;\n `)}\n `)}\n ${customTheme('ContextMenu')}\n`\n\nexport const StickyContainer = styled.div`\n position: sticky;\n background: white;\n ${props => props.atBottom && `\n bottom: -0.5rem;\n padding-bottom: 0.5rem;\n margin-bottom: -0.5rem;\n `}\n ${props => props.atTop && `\n top: -0.5rem;\n padding-top: 0.5rem;\n margin-top: -0.5rem;\n `}\n`\n\nexport const ListSeparator = styled.li`\n border-bottom: 1px solid rgba(0,0,0,0.1);\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n cursor: default;\n height: 0;\n ${ifProp('lighten', css`\n border-color: rgba(255,255,255,0.15);\n `)}\n`\n\nexport const ListHeading = styled.li`\n display: flex;\n align-items: center;\n padding: .5rem 1rem;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n text-transform: uppercase;\n &:after {\n content: '';\n flex-grow: 1;\n margin-left: 0.75rem;\n height: 1px;\n background: rgba(0,0,0,0.15);\n }\n`\n\n/* No sc, styledExtend(Icon) cria uma identidade própria: o seletor ${Icon} do ListItem\n acima não bate aqui. No yak, styledExtend vira styled(Icon) (plugin, R10) e essa seta\n herda a classe do Icon, então aquele ${Icon} (2 classes, mais específico) passa a\n também valer pra ela, incluindo um \"left: 0\" que nunca existiu aqui. Com left, right\n e width todos setados o box fica sobreconstrangido e o browser ignora o \"right\"\n (ganha left+width): a seta migra pra esquerda. !important nas propriedades em comum,\n e left:auto explícito, devolvem o tamanho e a posição próprios nos dois modos. */\nconst SubmenuArrowIcon = styledExtend(Icon)`\n font-size: 13px !important;\n position: absolute;\n left: auto !important;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 3rem !important;\n padding-left: 0 !important;\n text-align: center;\n`\n\n\nlet layerCursor = 0\n\nexport class SimpleLi extends React.Component {\n\n static isKeyboardNavigable = true\n static defaultProps = {\n emitter: mitt()\n }\n\n componentWillUnmount() {\n this.props.emitter.off('confirm', this.confirm)\n }\n\n componentDidUpdate() {\n if (this.props.hover && this.props.scrollOnHover !== false) {\n this.scrollToVisibility()\n }\n }\n\n componentDidMount() {\n this.props.emitter.on('confirm', this.confirm)\n if (this.props.selected && this.props.setCursorOnHover) {\n this.props.setCursorOnHover(this.props.index)\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n list.scrollTop = el.offsetTop + (el.offsetHeight / 2) - (list.offsetHeight / 2)\n }\n }\n\n scrollToVisibility = () => {\n const el = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n const list = el.parentNode\n if (el.offsetTop < list.scrollTop) {\n list.scrollTop = el.offsetTop\n } else if (el.offsetTop + el.offsetHeight > list.scrollTop + list.offsetHeight) {\n list.scrollTop = el.offsetTop + el.offsetHeight - list.offsetHeight\n }\n }\n\n confirm = () => {\n if (this.props.hover) {\n const node = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode(this)\n node.click()\n }\n }\n onMouseEnter = () => this.props.setCursorOnHover && this.props.setCursorOnHover(this.props.index)\n onMouseOut = () => this.props.setCursorOnHover && this.props.setCursorOnHover(-1)\n\n touchEnd = (e) => {\n if (this.props.children) {\n e.preventDefault()\n if (!this.props.hover)\n this.onMouseEnter()\n }\n }\n\n onClick = (e) => {\n this.props.onClick && this.props.onClick()\n }\n\n render() {\n const {label, layerIndex, href, linkTo, prefixWith, subMenu, icon, children, scrollOnHover, ...rest} = this.props\n const Tag = (linkTo) ? Link : 'a'\n return <ListItem\n {...rest}\n onClick={this.onClick}\n onMouseLeave={this.onMouseOut}\n onMouseEnter={this.onMouseEnter}\n onTouchEnd={this.touchEnd}\n >\n <Tag href={href} to={linkTo}>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label}\n </Tag>\n </ListItem>\n }\n}\n\nexport const Li = React.forwardRef(({emitter = mitt(), index, menuSlot, keepOpen, hover, layerIndex, hoverCursor, scrollOnHover, passTouchThrough, children, setCursorOnHover, onClick, prefixWith, linkTo, icon, label,descText,helpText, target, href, ...rest},ref) => {\n const nodeRef = useEnsureRef(ref)\n const tagRef = useRef()\n const subMenu = useToggle()\n const subPrevented = useRefState(false)\n\n const onOpenSub = () => {\n subPrevented.set(false)\n if (hover && children) {\n subMenu.open()\n }\n }\n\n const onPreventSub = (subIndex) => {\n if (index !== subIndex)\n subMenu.close()\n subPrevented.set(true)\n }\n\n const confirm = () => {\n if (hover) {\n nodeRef.current.click()\n }\n }\n\n useEffect(() => {\n if (hover && scrollOnHover !== false) {\n try {\n const el = nodeRef.current\n const parent = el.parentElement\n const stickyContainer = parent.lastChild\n const stickyContainerHeight =\n (stickyContainer && stickyContainer.tagName === \"DIV\" && (stickyContainer.offsetTop - parent.scrollTop) < parent.offsetHeight)\n ? stickyContainer.offsetHeight\n : 0\n if (el.offsetTop > parent.offsetHeight + parent.scrollTop - stickyContainerHeight - el.offsetHeight) {\n parent.scroll(0, el.offsetTop - parent.offsetHeight + el.offsetHeight + stickyContainerHeight)\n } else if (el.offsetTop < parent.scrollTop) {\n parent.scroll(0, el.offsetTop)\n }\n } catch (e) {}\n }\n emitter.on('confirm', confirm)\n emitter.on('preventSub', onPreventSub)\n emitter.on('openSub', onOpenSub)\n return () => {\n emitter.off('confirm', confirm)\n emitter.off('preventSub', onPreventSub)\n emitter.off('openSub', onOpenSub)\n }\n }, [hover])\n\n useEffect(() => () => subMenu.close(), [])\n\n useEffect(() => {\n if (children && !isMobile()) {\n if (hover) {\n if (!subMenu.isOpen || subMenu.closing || !subPrevented.get()) {\n subMenu.open()\n }\n } else {\n if (subMenu.isOpen) {\n if (hoverCursor === -1) {\n // Mouse saiu de todos os itens — provavelmente indo até o submenu (que\n // abre ao lado, com um pequeno gap). Janela generosa; ao alcançá-lo, o\n // onMouseEnter/onMouseMove do submenu chama subMenu.open e cancela.\n subMenu.closeAfter(450)\n } else {\n // Mouse foi para outro item do menu — mantém os 200ms originais.\n subMenu.closeAfter(200)\n }\n emitter.emit('preventSub', index)\n }\n }\n }\n }, [hoverCursor])\n\n const onMouseMove = (e) => {\n if (!hover) {\n callIfFunction(setCursorOnHover, index)\n }\n e?.stopPropagation()\n }\n\n const onMouseOut = (e) => {\n callIfFunction(setCursorOnHover, -1)\n e?.stopPropagation()\n }\n\n const onClickHandler = (e) => {\n if (children || keepOpen) {\n e.stopPropagation()\n }\n if (children) {\n if (hover) {\n subMenu.toggle()\n } else {\n onMouseMove()\n }\n } else {\n callIfFunction(onClick, e)\n }\n }\n\n const onCloseSub = () => emitter.emit('openSub')\n\n const addProps = (children) => React.Children.map(children, c => React.cloneElement(c, {\n fixed: rest.fixedPosition,\n closing: subMenu.closing,\n onMouseMove: subMenu.open,\n // onMouseEnter não borbulha, então não é barrado pelo stopPropagation dos itens\n // do submenu (linha onMouseMove do Li). Garante que alcançar o submenu sempre\n // cancele o fechamento agendado por closeAfter(200), mantendo-o aberto.\n onMouseEnter: subMenu.open,\n onClose: onCloseSub,\n sub: true,\n slot: c.props.slot || menuSlot\n }))\n\n const content = <>\n {prefixWith}\n {icon && <Icon icon={icon}/>}\n {label} {helpText && <ListItemHelpText>({helpText})</ListItemHelpText>}\n {descText && <ListItemDescText>{descText}</ListItemDescText>}\n {children && <SubmenuArrowIcon icon=\"arrow-right\"/>}\n </>\n\n const Tag = linkTo ? Link : 'a'\n return <ListItem\n ref={nodeRef}\n {...rest}\n hover={hover}\n onClick={onClickHandler}\n onMouseLeave={onMouseOut}\n onMouseMove={onMouseMove}\n hasSubmenu={children}\n >\n {\n (rest.withButton || rest.noActions)\n ? content\n : <Tag href={href} target={target} to={linkTo} ref={tagRef} onMouseEnter={onMouseMove}>{content}</Tag>\n }\n {\n subMenu.isOpen && addProps(children)\n }\n </ListItem>\n})\nLi.isKeyboardNavigable\nLi.Simple = SimpleLi\n\nconst [useContextMenuLayers, contextMenuLayersSize] = willUseLayers()\nexport const contextMenuLayersQuantity = contextMenuLayersSize\nconst [useContextMenuSharedState] = willUseSharedState()\n\nexport const ContextMenuComponent = forwardRef((\n {\n children, sub, hoverIndex, autoHover, menuSlot, withoutIcons, onClose, onHover = () => 0, fill, onClick, ...props\n },\n unesuredRef\n) => {\n const ref = useEnsureRef(unesuredRef)\n const [hoverCursor, setHoverCursor] = useState(autoHover || sub ? 0 : -1)\n // Hover vindo do mouse não deve rolar a lista: o Chrome dispara mousemove sintético\n // ao fim do scroll, e o item cortado sob o cursor puxaria a lista de volta.\n const hoverFromMouse = useRef(false)\n const [layerCursor, setLayerCursor] = useContextMenuSharedState(0)\n\n const [layerIndex, {getSize}] = useContextMenuLayers()\n\n const itemsEmitter = useMemo(() => mitt(), [])\n useEffect(() => {\n window.addEventListener('keydown', keydown)\n return () => {\n callIfFunction(onClose)\n window.removeEventListener('keydown', keydown)\n }\n }, [layerIndex, layerCursor, hoverCursor])\n\n useEffect(() => {\n if (hoverIndex !== undefined) {\n if (hoverIndex !== hoverCursor) hoverFromMouse.current = false\n setHoverCursor(Math.min(Math.max(hoverIndex, -1), getTotalKeyboardItems(children) + 1))\n }\n }, [hoverIndex !== hoverCursor])\n\n const keydown = (e) => {\n if (e.keyCode === 37 || e.keyCode === 39) {\n if (!e.defaultPrevented) {\n const layers = getSize()\n const direction = e.keyCode - 38\n setLayerCursor((layerCursor + direction + layers) % layers)\n }\n e.preventDefault()\n }\n if (layerIndex !== layerCursor) return\n if (e.keyCode === 27 && ref.current) {\n ref.current.click()\n }\n if (e.keyCode === 13 || e.keyCode === 32 && hoverCursor >= 0) {// enter\n e.preventDefault()\n itemsEmitter.emit('confirm')\n }\n if (e.keyCode === 38 || e.keyCode === 40) { // up down\n e.preventDefault()\n const direction = e.keyCode - 39\n const max = getTotalKeyboardItems(children)\n const newIndex = (hoverCursor + direction + max) % max\n hoverFromMouse.current = false\n setHoverCursor(newIndex)\n onHover(newIndex)\n }\n }\n\n const getTotalKeyboardItems = (children) => {\n let sum = 0\n React.Children.forEach(children, child => {\n if (child && !child.props.disabled && !child.props.readOnly) {\n if (child.type === Li || child.type.isKeyboardNavigable) {\n sum += 1\n }\n if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {\n sum += getTotalKeyboardItems(child.props.children)\n }\n }\n }\n )\n return sum\n }\n\n const setCursorOnHover = (index) => {\n hoverFromMouse.current = true\n setLayerCursor(layerIndex)\n setHoverCursor(index)\n onHover(index)\n }\n\n const formatChildren = (children, indexRef = {current: 0}) => {\n return React.Children.map(children, (child, j) =>\n child && !child.props.disabled && !child.props.readOnly\n ? (\n child.props.nested\n ? React.cloneElement(child, child.props, formatChildren(child.props.children, indexRef))\n : ((!isMemo(child.type) && areComponentsEqual(child.type, Li)) || child.type.isKeyboardNavigable)\n ? React.cloneElement(child, {\n fixedPosition:props.fixed,\n hover: hoverCursor === indexRef.current && layerIndex === layerCursor,\n hoverCursor: hoverCursor,\n scrollOnHover: !hoverFromMouse.current,\n index: indexRef.current++,\n setCursorOnHover,\n emitter: itemsEmitter,\n layerIndex: layerIndex,\n menuSlot\n })\n : (\n areComponentsEqual(child.type, StickyContainer)\n ? React.cloneElement(child, {\n ...child.props,\n children: formatChildren(child.props.children, indexRef)\n })\n : child\n )\n )\n : child\n )\n }\n\n const touchStart = createPressAndMoveEvent((e,prevPos) => {\n // e.preventDefault()\n e.stopPropagation()\n e.target.dispatchEvent(new MouseEvent('mousemove', {bubbles: true}))\n let passedResistance = false\n return (e,nextPos) => {\n const delta = prevPos.clientY - nextPos.clientY\n if (Math.abs(delta) > 10) {\n passedResistance = true\n setCursorOnHover(-1)\n }\n }\n })\n\n return (\n <ContextListMenu\n data-drag={false}\n ref={ref}\n sub={sub}\n onWheel={e => e.stopPropagation()}\n onTouchStart={touchStart}\n withoutIcons={withoutIcons}\n onMouseDown={stopPropagation()}\n {...props}\n >\n {formatChildren(children)}\n </ContextListMenu>\n )\n})\n\n\nexport const ContextMenu = forwardRef(({slot = 'Popup', sub, withoutIcons, children, ...rest}, ref) => {\n const contextMenuRef = useEnsureRef(ref)\n const [positionInfo, placeholder, arrow] = usePositioning(contextMenuRef, rest)\n const {atRight, atBottom} = {...positionInfo}\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n\n const enterAnimation = useMemo(() => [fadeIn, sub ? (atRight ? slideRight : slideLeftOnLeft) : (atBottom ? slideDown : slideUpOnTop)], [atRight, atBottom])\n useFlipEnter(contextMenuRef, !!positionInfo && enterAnimation)\n useFlipLeave(contextMenuRef, !!positionInfo && enterAnimation, sub && {events: {mouseover: rest.onMouseMove}})\n return <>\n {placeholder}\n <Fill name={slotName}>\n <ContextMenuComponent {...rest} menuSlot={slot} sub={sub} {...positionInfo} ref={contextMenuRef} withoutIcons={withoutIcons}>\n {arrow}\n {children}\n </ContextMenuComponent>\n </Fill>\n </>\n})\n\nContextMenu.ListItem = ListItem\n"],"names":["fadeIn","oneWayAnimation","slideDown","slideUpOnTop","slideRight","slideLeftOnLeft","animationTiming","areComponentsEqual","a","b","ListItem","styled","li","attrs","props","variants","hover","highlight","filter","Boolean","length","className","join","withConfig","displayName","componentId","hasSubmenu","Icon","iconSize","media","mobile","_templateObject","_taggedTemplateLiteral","ifProp","css","transparentize","getColor","darken","Button","_templateObject2","customTheme","ListItemDescText","div","_templateObject3","ListItemHelpText","span","ListMenu","ul","ContextListMenu","withoutIcons","concat","fullHeight","atTop","StickyContainer","atBottom","ListSeparator","ListHeading","SubmenuArrowIcon","styledExtend","_templateObject4","SimpleLi","React","Component","constructor","arguments","scrollToVisibility","el","ReactDOM","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","findDOMNode","list","parentNode","offsetTop","scrollTop","offsetHeight","confirm","node","click","onMouseEnter","setCursorOnHover","index","onMouseOut","touchEnd","e","children","preventDefault","onClick","componentWillUnmount","emitter","off","componentDidUpdate","scrollOnHover","componentDidMount","on","selected","render","_this$props","label","layerIndex","href","linkTo","prefixWith","subMenu","icon","rest","_objectWithoutProperties","_excluded","Tag","Link","createElement","_extends","onMouseLeave","onTouchEnd","to","isKeyboardNavigable","defaultProps","mitt","Li","forwardRef","_ref","ref","menuSlot","keepOpen","hoverCursor","passTouchThrough","descText","helpText","target","_excluded2","nodeRef","useEnsureRef","tagRef","useRef","useToggle","subPrevented","useRefState","onOpenSub","set","open","onPreventSub","subIndex","close","current","useEffect","parent","parentElement","stickyContainer","lastChild","stickyContainerHeight","tagName","scroll","isMobile","isOpen","closing","get","closeAfter","emit","onMouseMove","callIfFunction","stopPropagation","onClickHandler","toggle","onCloseSub","addProps","Children","map","c","cloneElement","fixed","fixedPosition","onClose","sub","slot","content","Fragment","withButton","noActions","Simple","useContextMenuLayers","contextMenuLayersSize","willUseLayers","contextMenuLayersQuantity","useContextMenuSharedState","willUseSharedState","ContextMenuComponent","_ref2","unesuredRef","hoverIndex","autoHover","onHover","fill","_excluded3","setHoverCursor","useState","hoverFromMouse","layerCursor","setLayerCursor","getSize","itemsEmitter","useMemo","window","addEventListener","keydown","removeEventListener","undefined","Math","min","max","getTotalKeyboardItems","keyCode","defaultPrevented","layers","direction","newIndex","sum","forEach","child","disabled","readOnly","type","nested","formatChildren","indexRef","j","isMemo","_objectSpread","touchStart","createPressAndMoveEvent","prevPos","dispatchEvent","MouseEvent","bubbles","nextPos","delta","clientY","abs","onWheel","onTouchStart","onMouseDown","ContextMenu","_ref3","_excluded4","contextMenuRef","positionInfo","placeholder","arrow","usePositioning","atRight","slotName","getDialogLayersSize","enterAnimation","useFlipEnter","useFlipLeave","events","mouseover","Fill","name"],"mappings":"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"}