@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
package/lib/index.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _extends = require('@babel/runtime/helpers/extends');
5
6
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
7
  var React = require('react');
7
8
  var styled = require('styled-components');
8
9
  var utils = require('@startlibs/utils');
9
- var _extends = require('@babel/runtime/helpers/extends');
10
10
  var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
11
11
  var polished = require('polished');
12
12
  var _fromPairs = require('lodash/fp/fromPairs');
@@ -56,10 +56,10 @@ function _interopNamespace(e) {
56
56
  return Object.freeze(n);
57
57
  }
58
58
 
59
+ var _extends__default = /*#__PURE__*/_interopDefault(_extends);
59
60
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
60
61
  var React__default = /*#__PURE__*/_interopDefault(React);
61
62
  var styled__default = /*#__PURE__*/_interopDefault(styled);
62
- var _extends__default = /*#__PURE__*/_interopDefault(_extends);
63
63
  var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefault(_taggedTemplateLiteral);
64
64
  var _fromPairs__default = /*#__PURE__*/_interopDefault(_fromPairs);
65
65
  var _filter__default = /*#__PURE__*/_interopDefault(_filter);
@@ -85,7 +85,7 @@ var _set__default = /*#__PURE__*/_interopDefault(_set);
85
85
  var _pullAt__default = /*#__PURE__*/_interopDefault(_pullAt);
86
86
  var mitt__default = /*#__PURE__*/_interopDefault(mitt);
87
87
 
88
- const _excluded$m = ["icon", "children", "theme", "clickable", "customIcon", "colorSet", "color"];
88
+ const _excluded$o = ["icon", "children", "theme", "clickable", "customIcon", "colorSet", "color"];
89
89
  class IconComponent extends React__default["default"].Component {
90
90
  constructor() {
91
91
  super(...arguments);
@@ -110,7 +110,7 @@ class IconComponent extends React__default["default"].Component {
110
110
  colorSet,
111
111
  color
112
112
  } = _this$props,
113
- rest = _objectWithoutProperties__default["default"](_this$props, _excluded$m);
113
+ rest = _objectWithoutProperties__default["default"](_this$props, _excluded$o);
114
114
  if ((theme.svgIcons || {})[icon]) {
115
115
  if (this.state.Svg) {
116
116
  return /*#__PURE__*/React__default["default"].createElement(this.state.Svg, rest);
@@ -121,27 +121,52 @@ class IconComponent extends React__default["default"].Component {
121
121
  return /*#__PURE__*/React__default["default"].createElement("span", rest, theme.icons[icon] || customIcon && icon, children);
122
122
  }
123
123
  }
124
- const Icon = /*#__PURE__*/styled__default["default"](styled.withTheme(IconComponent)).withConfig({
124
+ const ThemedIconComponent = /*#__PURE__*/React__default["default"].forwardRef((props, ref) => /*#__PURE__*/React__default["default"].createElement(IconComponent, _extends__default["default"]({
125
+ ref: ref
126
+ }, props, {
127
+ theme: styled.useTheme()
128
+ })));
129
+ const Icon = /*#__PURE__*/styled__default["default"](ThemedIconComponent).withConfig({
125
130
  displayName: "Icon",
126
131
  componentId: "sc-wsq54u-0"
127
- })(["font-family:'", "' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;", ""], props => {
132
+ })(["font-family:", " !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;", ""], props => {
128
133
  var _props$theme;
129
- return (_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.iconFont;
134
+ return "'".concat((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.iconFont, "'");
130
135
  }, props => props.clickable && "\n cursor: pointer;\n &:hover {\n opacity: 0.85;\n }\n ");
131
136
 
132
- const Loading = /*#__PURE__*/styled__default["default"].div.withConfig({
137
+ const _excluded$n = ["color", "white", "size", "borderWidth", "absolute"];
138
+
139
+ // Nome fixo do @keyframes preservado: um `keyframes` do styled-components geraria um nome
140
+ // com hash, diferente do atual "loading-spin" (quebraria quem lê animationName). Por isso
141
+ // o bloco fica fora de um template styled/css/keyframes, registrado pelo CSSOM (sem nonce)
142
+ // no primeiro render do Loading (não no import: o pacote declara "sideEffects": false e
143
+ // código de topo de módulo pode ser descartado por um bundler mais agressivo se achar as
144
+ // exportações não usadas).
145
+ const injectSpinKeyframes = () => utils.insertKeyframes('loading-spin', '100% { transform: rotate(1turn) }');
146
+
147
+ // styled(LoadingBase) mira num componente, não numa tag: ao contrário do antigo styled.div,
148
+ // o styled-components não filtra prop inválida pra <div> nesse caso. Por isso tira aqui,
149
+ // à mão, cada prop que o template do Loading lê, antes de espalhar o resto no elemento real.
150
+ const LoadingBase = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
151
+ let props = _objectWithoutProperties__default["default"](_ref, _excluded$n);
152
+ injectSpinKeyframes();
153
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
154
+ ref: ref
155
+ }, props));
156
+ });
157
+ const Loading = /*#__PURE__*/styled__default["default"](LoadingBase).withConfig({
133
158
  displayName: "Loading",
134
159
  componentId: "sc-5t5spc-0"
135
- })(["z-index:1;--loading-color:", ";--loading-bw:", "px;width:", "px;aspect-ratio:1;flex-shrink:0;border-radius:50%;background:radial-gradient(farthest-side,var(--loading-color) 94%,#0000) top/var(--loading-bw) var(--loading-bw) no-repeat,conic-gradient(#0000 15%,var(--loading-color));-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--loading-bw)),#000 0);mask:radial-gradient(farthest-side,#0000 calc(100% - var(--loading-bw)),#000 0);animation:loading-spin 0.6s infinite linear;", " @keyframes loading-spin{100%{transform:rotate(1turn)}}"], props => props.color || (props.white ? 'rgba(255,255,255,0.9)' : utils.getColor("main")(props)), props => props.borderWidth || 4, props => props.size || 26, props => props.absolute && "\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n margin: auto;\n ");
160
+ })(["z-index:1;--loading-color:", ";--loading-bw:", "px;width:", "px;aspect-ratio:1;flex-shrink:0;border-radius:50%;background:radial-gradient(farthest-side,var(--loading-color) 94%,#0000) top/var(--loading-bw) var(--loading-bw) no-repeat,conic-gradient(#0000 15%,var(--loading-color));-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - var(--loading-bw)),#000 0);mask:radial-gradient(farthest-side,#0000 calc(100% - var(--loading-bw)),#000 0);animation:loading-spin 0.6s infinite linear;", ""], props => props.color || (props.white ? 'rgba(255,255,255,0.9)' : utils.getColor("main")(props)), props => props.borderWidth || 4, props => props.size || 26, props => props.absolute && "\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n margin: auto;\n ");
136
161
 
137
- const _excluded$l = ["href"],
138
- _excluded2$2 = ["to", "onClick"],
139
- _excluded3$1 = ["element", "children"];
162
+ const _excluded$m = ["href"],
163
+ _excluded2$4 = ["to", "onClick"],
164
+ _excluded3$2 = ["element", "children"];
140
165
  const Link = _ref => {
141
166
  let {
142
167
  href
143
168
  } = _ref,
144
- props = _objectWithoutProperties__default["default"](_ref, _excluded$l);
169
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$m);
145
170
  return _isString__default["default"](props.to) ? /*#__PURE__*/React__default["default"].createElement(Wouter__namespace.Link, props) : /*#__PURE__*/React__default["default"].createElement("a", _extends__default["default"]({}, props, {
146
171
  href: href === null || href === void 0 ? void 0 : href.replace("~", "")
147
172
  }));
@@ -151,7 +176,7 @@ const HistoryLink = _ref2 => {
151
176
  to,
152
177
  onClick
153
178
  } = _ref2,
154
- props = _objectWithoutProperties__default["default"](_ref2, _excluded2$2);
179
+ props = _objectWithoutProperties__default["default"](_ref2, _excluded2$4);
155
180
  return /*#__PURE__*/React__default["default"].createElement("a", _extends__default["default"]({
156
181
  onClick: e => {
157
182
  if (onClick && !utils.callIfFunction(onClick, e)) {
@@ -186,7 +211,7 @@ const Route = _ref3 => {
186
211
  element,
187
212
  children
188
213
  } = _ref3,
189
- props = _objectWithoutProperties__default["default"](_ref3, _excluded3$1);
214
+ props = _objectWithoutProperties__default["default"](_ref3, _excluded3$2);
190
215
  return /*#__PURE__*/React__default["default"].createElement(Wouter__namespace.Route, props, element || children);
191
216
  };
192
217
  const Routes = Wouter__namespace.Switch;
@@ -232,14 +257,14 @@ const useSearchParams = defaultParams => {
232
257
  };
233
258
  const Router = Wouter__namespace.Router;
234
259
 
235
- const _excluded$k = ["type", "locked", "color", "alpha", "success", "alert", "warning", "highlight", "light", "hover", "white", "icon", "onlyIcon", "small", "withDropdown", "onlyDropdown", "outline", "dashed", "textOnly", "isLoading", "isLoadingIcon", "dark", "innerAs", "className", "children", "rounded", "tabIndex", "focused", "noFocus", "colorSet", "concealed", "concealedModule", "buttonRef"];
236
- var _templateObject$8, _templateObject2$7, _templateObject3$5;
237
- const DropdownIcon = utils.styledExtend(Icon)(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral__default["default"](["\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n font-size: 12px;\n"])));
260
+ const _excluded$l = ["type", "locked", "color", "alpha", "success", "alert", "warning", "highlight", "light", "hover", "white", "icon", "onlyIcon", "small", "withDropdown", "onlyDropdown", "outline", "dashed", "textOnly", "isLoading", "isLoadingIcon", "dark", "innerAs", "className", "children", "rounded", "tabIndex", "focused", "noFocus", "colorSet", "concealed", "concealedModule", "buttonRef"];
261
+ var _templateObject$7, _templateObject2$6, _templateObject3$5;
262
+ const DropdownIcon = utils.styledExtend(Icon)(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral__default["default"](["\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n font-size: 12px;\n"])));
238
263
  const LockIcon = /*#__PURE__*/styled__default["default"](Icon).withConfig({
239
264
  displayName: "Button__LockIcon",
240
265
  componentId: "sc-qe54pl-0"
241
266
  })(["position:absolute;bottom:10px;right:.75rem;left:auto;top:auto;font-size:18px;"]);
242
- const focus = /*#__PURE__*/styled.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');
267
+ const focus = /*#__PURE__*/styled.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');
243
268
  const Button = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
244
269
  let {
245
270
  type = "button",
@@ -276,11 +301,11 @@ const Button = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__defau
276
301
  concealedModule,
277
302
  buttonRef
278
303
  } = _ref,
279
- props = _objectWithoutProperties__default["default"](_ref, _excluded$k);
304
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$l);
280
305
  return /*#__PURE__*/React__default["default"].createElement(Wrapper, _extends__default["default"]({
281
306
  ref: ref || buttonRef,
282
307
  tabIndex: tabIndex,
283
- className: className + ' styled-button' + (color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning ? ' styled-button-colored' : ''),
308
+ 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' : ''),
284
309
  type: Wrapper === 'button' ? type : ''
285
310
  }, props), icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
286
311
  icon: icon,
@@ -304,7 +329,7 @@ const Button = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__defau
304
329
  })).withConfig({
305
330
  displayName: "Button",
306
331
  componentId: "sc-qe54pl-1"
307
- })(["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', utils.getColor, props => polished.darken(0.05, utils.getColor(props, true)), props => polished.darken(0.08, utils.getColor(props, true)), props => props.nowrap && "\n white-space: nowrap;\n ", props => !props.noFocus && !props.isLoading && styled.css([":focus{", "}", ""], focus, props => props.focused && focus), props => props.hasErrors && styled.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 => polished.transparentize(0.7, utils.getColor("alert")(props))), props => props.icon && styled.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 && styled.css(["padding:0;", "{margin:0;}"], Icon), props => props.small && styled.css(["font-size:13px;padding:3px 1rem;min-width:2rem;min-height:2rem;font-weight:550;", " ", ""], props.icon && styled.css(["", "{font-size:18px;margin-left:-5px;margin-right:5px;line-height:0.9;}"], Icon), props.onlyIcon && styled.css(["padding:0;", "{margin:0;}"], Icon)), props => props.big && styled.css(["font-size:14px;padding:13px 1.75rem;min-height:42px;"]), props => props.withDropdown && styled.css(["padding-right:2.25rem;text-align:left;"]), props => props.onlyDropdown && styled.css(["", "{right:50%;transform:translate(50%,-50%);}"], DropdownIcon), props => props.light && styled.css(["background:", ";color:", ";:hover{background:", ";}:active{background:", ";}"], utils.getColor('bluishGray'), utils.getColor('gray90'), props => polished.darken(0.05, utils.getColor('bluishGray')(props)), props => polished.darken(0.08, utils.getColor('bluishGray')(props))), props => props.lightAlert && styled.css(["background:", ";color:", ";:hover{background:", ";}:active{background:", ";}"], props => polished.transparentize(0.86, utils.getColor("alert")(props)), utils.getColor('alert'), props => polished.transparentize(0.83, utils.getColor("alert")(props)), props => polished.transparentize(0.80, utils.getColor("alert")(props))), props => props.lightWarning && styled.css(["background:", ";color:", ";:hover{background:", ";}:active{background:", ";}"], props => polished.transparentize(0.84, polished.darken(0.05, utils.getColor('warning')(props))), props => polished.darken(0.05, utils.getColor('warning')(props)), props => polished.transparentize(0.78, polished.darken(0.05, utils.getColor('warning')(props))), props => polished.transparentize(0.76, polished.darken(0.05, utils.getColor('warning')(props)))), props => (props.outline || props.dashed || props.textOnly) && styled.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 ? utils.getColor('main') : 'rgba(0,0,0,0.6)', Icon, DropdownIcon, props.white ? 'white' : props.highlight ? utils.getColor('main') : 'rgba(0,0,0,0.5)', props.outline ? 'solid' : props.dashed ? 'dashed' : '', props.white ? 'white' : props.highlight ? utils.getColor('main') : 'rgba(0,0,0,0.35)', props.rounded ? '100px' : '8px', props.textOnly && 'content: none;'), props => props.alpha && styled.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 && styled.css(["color:", ";background:#FFFFFF;:hover{background:", ";}:active{background:", ";}"], utils.getColor('main'), polished.darken(0.05, '#FFFFFF'), polished.darken(0.08, '#FFFFFF')), props => props.isLoading && styled.css(["color:transparent !important;pointer-events:none;", "{visibility:hidden;}"], Icon), props => props.isLoadingIcon && styled.css(["pointer-events:none;", "{visibility:hidden;}", "{left:10px;position:absolute;}"], Icon, Loading), utils.media.mobile(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral__default["default"](["\n ", "\n ", "\n ", "\n "])), props => !props.small && !props.onlyIcon && styled.css(["padding:13px 1.5rem;font-size:14px;"]), props => !props.small && props.onlyIcon && styled.css(["min-width:3.5rem;min-height:3.5rem;"]), props => props.withDropdown && styled.css(["padding-right:2.5rem;", "{right:14px;}"], DropdownIcon)), utils.media.max(359)(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral__default["default"](["\n ", "\n "])), props => !props.small && !props.onlyIcon && !props.onlyDropdown && styled.css(["min-width:0;"])), props => props.fullwidth && "\n width: 100%;\n ", utils.customTheme("Button"));
332
+ })(["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', utils.getColor, props => polished.darken(0.05, utils.getColor(props, true)), props => polished.darken(0.08, utils.getColor(props, true)), props => props.nowrap && "\n white-space: nowrap;\n ", props => !props.noFocus && !props.isLoading && styled.css(["&:focus{", "}", ""], focus, props => props.focused && focus), props => props.hasErrors && styled.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 => polished.transparentize(0.7, utils.getColor("alert")(props))), props => props.icon && styled.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 && styled.css(["padding:0;", "{margin:0;}"], Icon), props => props.small && styled.css(["font-size:13px;padding:3px 1rem;min-width:2rem;min-height:2rem;font-weight:550;", " ", ""], props => props.icon && styled.css(["", "{font-size:18px;margin-left:-5px;margin-right:5px;line-height:0.9;}"], Icon), props => props.onlyIcon && styled.css(["padding:0;", "{margin:0;}"], Icon)), props => props.big && styled.css(["font-size:14px;padding:13px 1.75rem;min-height:42px;"]), props => props.withDropdown && styled.css(["padding-right:2.25rem;text-align:left;"]), props => props.onlyDropdown && styled.css(["", "{right:50%;transform:translate(50%,-50%);}"], DropdownIcon), props => props.light && styled.css(["background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}"], utils.getColor('bluishGray'), utils.getColor('gray90'), props => polished.darken(0.05, utils.getColor('bluishGray')(props)), props => polished.darken(0.08, utils.getColor('bluishGray')(props))), props => props.lightAlert && styled.css(["background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}"], props => polished.transparentize(0.86, utils.getColor("alert")(props)), utils.getColor('alert'), props => polished.transparentize(0.83, utils.getColor("alert")(props)), props => polished.transparentize(0.80, utils.getColor("alert")(props))), props => props.lightWarning && styled.css(["background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}"], props => polished.transparentize(0.84, polished.darken(0.05, utils.getColor('warning')(props))), props => polished.darken(0.05, utils.getColor('warning')(props)), props => polished.transparentize(0.78, polished.darken(0.05, utils.getColor('warning')(props))), props => polished.transparentize(0.76, polished.darken(0.05, utils.getColor('warning')(props)))), props => (props.outline || props.dashed || props.textOnly) && styled.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 ? utils.getColor('main') : 'rgba(0,0,0,0.6)', Icon, DropdownIcon, props => props.white ? 'white' : props.highlight ? utils.getColor('main') : 'rgba(0,0,0,0.5)', props => props.outline ? 'solid' : props.dashed ? 'dashed' : 'none', props => props.white ? 'white' : props.highlight ? utils.getColor('main') : 'rgba(0,0,0,0.35)', props => props.rounded ? '100px' : '8px', props => props.textOnly && 'content: none;'), props => props.alpha && styled.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 && styled.css(["color:", ";background:#FFFFFF;&:hover{background:", ";}&:active{background:", ";}"], utils.getColor('main'), polished.darken(0.05, '#FFFFFF'), polished.darken(0.08, '#FFFFFF')), props => props.isLoading && styled.css(["color:transparent !important;pointer-events:none;", "{visibility:hidden;}"], Icon), props => props.isLoadingIcon && styled.css(["pointer-events:none;", "{visibility:hidden;}", "{left:10px;position:absolute;}"], Icon, Loading), utils.media.mobile(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral__default["default"](["\n ", "\n ", "\n ", "\n "])), props => !props.small && !props.onlyIcon && styled.css(["padding:13px 1.5rem;font-size:14px;"]), props => !props.small && props.onlyIcon && styled.css(["min-width:3.5rem;min-height:3.5rem;"]), props => props.withDropdown && styled.css(["padding-right:2.5rem;", "{right:14px;}"], DropdownIcon)), utils.media.max(359)(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral__default["default"](["\n ", "\n "])), props => !props.small && !props.onlyIcon && !props.onlyDropdown && styled.css(["min-width:0;"])), props => props.fullwidth && "\n width: 100%;\n ", utils.customTheme("Button"));
308
333
  Button.a = props => /*#__PURE__*/React__default["default"].createElement(Button, _extends__default["default"]({}, props, {
309
334
  className: props.className,
310
335
  innerAs: "a"
@@ -314,7 +339,7 @@ Button.Link = props => /*#__PURE__*/React__default["default"].createElement(Butt
314
339
  innerAs: Link
315
340
  }));
316
341
 
317
- const _excluded$j = ["onClick", "children", "onSuccess", "as", "onFailure", "className"];
342
+ const _excluded$k = ["onClick", "children", "onSuccess", "as", "onFailure", "className"];
318
343
  const OnClickLoadingButton = _ref => {
319
344
  let {
320
345
  onClick,
@@ -324,7 +349,7 @@ const OnClickLoadingButton = _ref => {
324
349
  onFailure,
325
350
  className
326
351
  } = _ref,
327
- props = _objectWithoutProperties__default["default"](_ref, _excluded$j);
352
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$k);
328
353
  const loading = core.useToggle();
329
354
  const Element = as;
330
355
  return /*#__PURE__*/React__default["default"].createElement(Element, _extends__default["default"]({
@@ -341,7 +366,7 @@ const OnClickLoadingButton = _ref => {
341
366
  }), children);
342
367
  };
343
368
 
344
- const _excluded$i = ["className", "isLoading", "alert", "fontSize", "children", "innerAs"];
369
+ const _excluded$j = ["className", "isLoading", "alert", "fontSize", "children", "innerAs"];
345
370
  const TextButton = /*#__PURE__*/styled__default["default"](_ref => {
346
371
  let {
347
372
  className,
@@ -351,7 +376,7 @@ const TextButton = /*#__PURE__*/styled__default["default"](_ref => {
351
376
  children,
352
377
  innerAs: Wrapper = 'div'
353
378
  } = _ref,
354
- props = _objectWithoutProperties__default["default"](_ref, _excluded$i);
379
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$j);
355
380
  return /*#__PURE__*/React__default["default"].createElement(Wrapper, _extends__default["default"]({
356
381
  className: className
357
382
  }, props), children, " ", isLoading && /*#__PURE__*/React__default["default"].createElement(Loading, {
@@ -361,7 +386,7 @@ const TextButton = /*#__PURE__*/styled__default["default"](_ref => {
361
386
  }).withConfig({
362
387
  displayName: "TextButton",
363
388
  componentId: "sc-1eydmhc-0"
364
- })(["display:inline-block;font-weight:600;font-size:", "px;color:", ";cursor:pointer;text-decoration:none;:hover,:active{color:", ";}", "{display:inline-block;margin-left:0.25rem;vertical-align:-3px;}", " & ~ &{margin-left:1rem;}"], props => props.fontSize ? props.fontSize : "14", props => props.alert ? utils.getColor('alert') : utils.getColor('main'), props => props.alert ? polished.darken(0.1, utils.getColor("alert")(props)) : polished.darken(0.1, utils.getColor("main")(props)), Loading, props => props.nowrap && "\n white-space: nowrap;\n ");
389
+ })(["display:inline-block;font-weight:600;font-size:", "px;color:", ";cursor:pointer;text-decoration:none;&:hover,&:active{color:", ";}", "{display:inline-block;margin-left:0.25rem;vertical-align:-3px;}", " & ~ &{margin-left:1rem;}"], props => props.fontSize ? props.fontSize : "14", props => props.alert ? utils.getColor('alert') : utils.getColor('main'), props => props.alert ? polished.darken(0.1, utils.getColor("alert")(props)) : polished.darken(0.1, utils.getColor("main")(props)), Loading, props => props.nowrap && "\n white-space: nowrap;\n ");
365
390
  TextButton.a = props => /*#__PURE__*/React__default["default"].createElement(TextButton, _extends__default["default"]({}, props, {
366
391
  className: props.className,
367
392
  innerAs: "a"
@@ -965,7 +990,7 @@ const useFlipAnimation = function (ref, onEnterOrBoth) {
965
990
  }));
966
991
  };
967
992
 
968
- const _excluded$h = ["useAnimation", "outerRef", "onEnter", "onLeave"];
993
+ const _excluded$i = ["useAnimation", "outerRef", "onEnter", "onLeave"];
969
994
  const [loadingEnter, loadingLeave] = utils.twoWayAnimation('opacity:0;', 'opacity:1;');
970
995
  utils.twoWayAnimation('opacity:0; transform:translateY(50%)', 'opacity:1;transform:translateY(0)');
971
996
  const BlockContainer$1 = /*#__PURE__*/styled__default["default"].div.withConfig({
@@ -979,7 +1004,7 @@ const FlipDiv = _ref => {
979
1004
  onEnter = onEnter,
980
1005
  onLeave = onLeave
981
1006
  } = _ref,
982
- props = _objectWithoutProperties__default["default"](_ref, _excluded$h);
1007
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$i);
983
1008
  const ensuredRef = core.useEnsureRef(outerRef);
984
1009
  useAnimation(ensuredRef, onEnter, onLeave);
985
1010
  return /*#__PURE__*/React__default["default"].createElement(BlockContainer$1, _extends__default["default"]({}, props, {
@@ -1036,7 +1061,7 @@ const LoadingDiv = _ref2 => {
1036
1061
  }, children) : children);
1037
1062
  };
1038
1063
 
1039
- var _templateObject$7, _templateObject2$6;
1064
+ const _excluded$h = ["viewportMinWidth", "twoColumnsBelowVW", "margin", "last", "className"];
1040
1065
  const getMarginFromFieldChild = props => {
1041
1066
  if (!props.last) return 0;
1042
1067
  const fields = React__default["default"].Children.toArray(props.children).filter(c => c.type.displayName === "Field" || c.type.displayName === "EnhancedInput");
@@ -1049,10 +1074,80 @@ const splitColumnMargins = {
1049
1074
  'default': 1,
1050
1075
  big: 2
1051
1076
  };
1052
- const SplitColumnsContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
1077
+
1078
+ // viewportMinWidth/twoColumnsBelowVW vêm de props: não tem CSS estático possível pra eles (yak
1079
+ // extrai @media em tempo de build, não a partir de uma prop em tempo de render). Troca o
1080
+ // `media.min`/`media.max` (que embutiam um `@media` dinâmico) por um hook que ouve
1081
+ // `matchMedia` e liga/desliga classe — as duas regras de CSS ficam estáticas, e a mesma soma de
1082
+ // `scrollWidth` que `media()` já fazia entra aqui, pro breakpoint bater igual em px (inclusive
1083
+ // a 610px, entre 600 e 600 + barra de rolagem).
1084
+ const useMatchMedia = query => {
1085
+ const getMatch = () => typeof window !== 'undefined' && window.matchMedia ? window.matchMedia(query).matches : false;
1086
+ const [matches, setMatches] = React__default["default"].useState(getMatch);
1087
+ React__default["default"].useEffect(() => {
1088
+ if (typeof window === 'undefined' || !window.matchMedia) return;
1089
+ const mql = window.matchMedia(query);
1090
+ const onChange = () => setMatches(mql.matches);
1091
+ onChange();
1092
+ const addListener = mql.addEventListener ? cb => mql.addEventListener('change', cb) : cb => mql.addListener(cb);
1093
+ const removeListener = mql.removeEventListener ? cb => mql.removeEventListener('change', cb) : cb => mql.removeListener(cb);
1094
+ addListener(onChange);
1095
+ return () => removeListener(onChange);
1096
+ }, [query]);
1097
+ return matches;
1098
+ };
1099
+
1100
+ // Mesma comparação que checkCustomScreenWidth (utils/src/styled.js) fazia pro theme.overrideMediaWidth:
1101
+ // ignora o browser de verdade e compara direto contra o breakpoint (sem somar scrollWidth — o
1102
+ // override já é uma largura "combinada", não a viewport física). Usado em testes/impressão.
1103
+ const matchesOverrideWidth = (overrideWidth, breakpoint, type) => {
1104
+ const currentWidth = utils.callIfFunction(overrideWidth);
1105
+ return type === 'min-width' ? currentWidth >= breakpoint : currentWidth <= breakpoint;
1106
+ };
1107
+
1108
+ // `breakpoint` null/undefined == bloco original não tinha condição nenhuma pra testar (o `&&`
1109
+ // de `props.twoColumnsBelowVW &&`): nem entra no matchMedia, nem no overrideMediaWidth.
1110
+ const useBreakpointMatch = (breakpoint, type, overrideWidth) => {
1111
+ const hasBreakpoint = breakpoint !== undefined && breakpoint !== null;
1112
+ const useOverride = hasBreakpoint && overrideWidth !== undefined;
1113
+ const query = hasBreakpoint && !useOverride ? "(".concat(type, ": ").concat(breakpoint + utils.scrollWidth, "px)") : 'not all';
1114
+ const mediaMatch = useMatchMedia(query);
1115
+ if (!hasBreakpoint) return false;
1116
+ return useOverride ? matchesOverrideWidth(overrideWidth, breakpoint, type) : mediaMatch;
1117
+ };
1118
+
1119
+ // styled(Base) mira num componente, não numa tag: ao contrário do antigo styled.div, o
1120
+ // styled-components não filtra prop inválida pra <div> nesse caso. Por isso tira aqui, à mão,
1121
+ // toda prop que ou é lida só pelo template (margin, last) ou só existe pra decidir a classe
1122
+ // aqui dentro (viewportMinWidth, twoColumnsBelowVW), antes de espalhar o resto no elemento real.
1123
+ const SplitColumnsContainerBase = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
1124
+ var _useTheme;
1125
+ let {
1126
+ viewportMinWidth = 0,
1127
+ twoColumnsBelowVW,
1128
+ margin,
1129
+ last,
1130
+ className
1131
+ } = _ref,
1132
+ rest = _objectWithoutProperties__default["default"](_ref, _excluded$h);
1133
+ const overrideWidth = (_useTheme = styled.useTheme()) === null || _useTheme === void 0 ? void 0 : _useTheme.overrideMediaWidth;
1134
+ const isFlex = useBreakpointMatch(viewportMinWidth, 'min-width', overrideWidth);
1135
+ const isTwoColumns = useBreakpointMatch(twoColumnsBelowVW, 'max-width', overrideWidth);
1136
+ const classes = [className, isFlex && 'JS-flex-columns', isTwoColumns && 'JS-two-columns'].filter(Boolean).join(' ');
1137
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1138
+ ref: ref,
1139
+ className: classes || undefined
1140
+ }, rest));
1141
+ });
1142
+ const SplitColumnsContainer = /*#__PURE__*/styled__default["default"](SplitColumnsContainerBase).withConfig({
1053
1143
  displayName: "SplitColumnsContainer",
1054
1144
  componentId: "sc-1h4sw88-0"
1055
- })(["margin-bottom:", "rem;", " ", ""], getMarginFromFieldChild, props => styled.css(["", ""], utils.media.min(props.viewportMinWidth || 0)(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral__default["default"](["\n display: flex;\n flex-wrap: nowrap;\n margin-left: -", "rem;\n margin-right: -", "rem;\n margin-top: -", "rem;\n > * {\n flex-basis: 0;\n flex-grow: 1;\n margin-left: ", "rem;\n margin-right: ", "rem;\n margin-top: ", "rem;\n }\n "])), props => utils.getMargin(splitColumnMargins)(props) / 2, props => utils.getMargin(splitColumnMargins)(props) / 2, props => utils.getMargin(splitColumnMargins)(props), props => utils.getMargin(splitColumnMargins)(props) / 2, props => utils.getMargin(splitColumnMargins)(props) / 2, props => utils.getMargin(splitColumnMargins)(props))), props => props.twoColumnsBelowVW && styled.css(["", ""], utils.media.max(props.twoColumnsBelowVW)(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral__default["default"](["\n flex-wrap: wrap;\n > * {\n flex-basis: 47%;\n }\n "])))));
1145
+ })(["margin-bottom:", "rem;&.JS-flex-columns{display:flex;flex-wrap:nowrap;margin-left:", "rem;margin-right:", "rem;margin-top:", "rem;> *{flex-basis:0;flex-grow:1;margin-left:", "rem;margin-right:", "rem;margin-top:", "rem;}}&.JS-two-columns{flex-wrap:wrap;> *{flex-basis:47%;}}"], props => getMarginFromFieldChild(props), props => -utils.getMargin(splitColumnMargins)(props) / 2, props => -utils.getMargin(splitColumnMargins)(props) / 2, props => -utils.getMargin(splitColumnMargins)(props), props => utils.getMargin(splitColumnMargins)(props) / 2, props => utils.getMargin(splitColumnMargins)(props) / 2, props => utils.getMargin(splitColumnMargins)(props));
1146
+ // O plugin/babel-plugin-styled-components infere o displayName do nome da variável — mas só
1147
+ // quando o import `styled` vem de 'styled-components' (modo sc). No lib-yak o arquivo passa a
1148
+ // importar `styled` de '@yak/react' e isso não acontece mais, então fica explícito aqui, nos dois
1149
+ // modos: fixDoubledLastMarginBottom precisa do mesmo valor em "SplitColumnsContainer.displayName".
1150
+ SplitColumnsContainer.displayName = 'SplitColumnsContainer';
1056
1151
  const fixDoubledLastMarginBottom = children => {
1057
1152
  let last = React__default["default"].Children.count(children) - 1;
1058
1153
  function processChild(child, i) {
@@ -1170,8 +1265,9 @@ class ErrorBoundary extends React__default["default"].Component {
1170
1265
 
1171
1266
  // StartlibsProvider.registerInternal('ErrorBoundary',ErrorBoundary)
1172
1267
 
1173
- const _excluded$f = ["timing", "nestedFlip", "enterEffect", "leaveEffect", "modalIn", "modalOut", "blurBackdrop"];
1174
1268
  var _templateObject$6, _templateObject2$5;
1269
+ const _excluded$f = ["tagAs", "withScroll", "fullscreen", "fullscreenOnMobile"],
1270
+ _excluded2$3 = ["timing", "nestedFlip", "enterEffect", "leaveEffect", "modalIn", "modalOut", "blurBackdrop"];
1175
1271
  const dialogFadeInDown = utils.oneWayAnimation('opacity: 0; transform: translateY(50px);', 'opacity: 1; transform: translateY(0);');
1176
1272
  const [dialogModalIn, dialogModalOut] = utils.twoWayAnimation('opacity: 0;', 'opacity: 1;');
1177
1273
  const Modal = /*#__PURE__*/styled__default["default"].div.withConfig({
@@ -1182,10 +1278,28 @@ const ModalContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
1182
1278
  displayName: "DialogContainer__ModalContainer",
1183
1279
  componentId: "sc-wendlg-1"
1184
1280
  })(["position:fixed;top:0;bottom:0;left:0;right:0;scrollbar-color:transparent transparent;"]);
1185
- const DialogCenter = /*#__PURE__*/styled__default["default"].div.withConfig({
1281
+
1282
+ // R6: "as" não existe no yak. tagAs troca a tag renderizada (form quando a dialog embute um
1283
+ // form, senão div). withScroll/fullscreen/fullscreenOnMobile são lidos pelo template abaixo,
1284
+ // mas não são atributos DOM válidos: como o alvo do styled() agora é um componente (não mais
1285
+ // styled.div puro), o styled-components para de filtrar prop inválida sozinho — tiram-se à mão
1286
+ // antes do spread no elemento real.
1287
+ const DialogCenterTagAs = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
1288
+ let {
1289
+ tagAs: Tag = 'div',
1290
+ withScroll,
1291
+ fullscreen,
1292
+ fullscreenOnMobile
1293
+ } = _ref,
1294
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$f);
1295
+ return /*#__PURE__*/React__default["default"].createElement(Tag, _extends__default["default"]({
1296
+ ref: ref
1297
+ }, props));
1298
+ });
1299
+ const DialogCenter = /*#__PURE__*/styled__default["default"](DialogCenterTagAs).withConfig({
1186
1300
  displayName: "DialogContainer__DialogCenter",
1187
1301
  componentId: "sc-wendlg-2"
1188
- })(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}display:-webkit-box;display:-ms-flexbox;display:flex;overflow-y:", ";overflow-x:hidden;scrollbar-color:rgba(255,255,255,0.6) transparent;position:fixed;top:0;bottom:0;left:0;right:0;align-items:center;", " ", ""], props => props.withScroll ? "scroll" : "hidden", utils.media.desktop(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral__default["default"](["\n padding: ", ";\n "])), props => props.fullscreen ? '1rem' : '3rem 0.5rem;'), utils.media.mobile(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral__default["default"](["\n padding: ", ";\n "])), props => props.fullscreenOnMobile ? '0' : '0.5rem'));
1302
+ })(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}display:-webkit-box;display:-ms-flexbox;display:flex;overflow-y:", ";overflow-x:hidden;scrollbar-color:rgba(255,255,255,0.6) transparent;position:fixed;top:0;bottom:0;left:0;right:0;align-items:center;", " ", ""], props => props.withScroll ? "scroll" : "hidden", utils.media.desktop(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral__default["default"](["\n padding: ", ";\n "])), props => props.fullscreen ? '1rem' : '3rem 0.5rem'), utils.media.mobile(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral__default["default"](["\n padding: ", ";\n "])), props => props.fullscreenOnMobile ? '0' : '0.5rem'));
1189
1303
  const PopupSlot = /*#__PURE__*/styled__default["default"](core.Slot).withConfig({
1190
1304
  displayName: "DialogContainer__PopupSlot",
1191
1305
  componentId: "sc-wendlg-3"
@@ -1304,7 +1418,7 @@ const removeWindowScroll = (opening, keepDisabledScroll) => {
1304
1418
  }
1305
1419
  };
1306
1420
  const [useDialogLayers, getDialogLayersSize] = core.willUseLayers(React__default["default"].useLayoutEffect);
1307
- const DialogContainer = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
1421
+ const DialogContainer = /*#__PURE__*/React.forwardRef((_ref2, forwardedRef) => {
1308
1422
  let {
1309
1423
  children,
1310
1424
  title,
@@ -1333,7 +1447,7 @@ const DialogContainer = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
1333
1447
  skipCheckFocus,
1334
1448
  autoComplete,
1335
1449
  blurBackdrop
1336
- } = _ref;
1450
+ } = _ref2;
1337
1451
  const dialogRef = core.useEnsureRef(forwardedRef);
1338
1452
  const prevActiveElement = core.useRefState(document.activeElement);
1339
1453
  const modal = core.useEnsureRef(modalRef);
@@ -1540,13 +1654,13 @@ const DialogContainer = /*#__PURE__*/React.forwardRef((_ref, forwardedRef) => {
1540
1654
  fullscreen: fullscreen,
1541
1655
  fullscreenOnMobile: fullscreenOnMobile,
1542
1656
  ref: modalScroll,
1543
- as: usingForm ? 'form' : undefined,
1657
+ tagAs: usingForm ? 'form' : undefined,
1544
1658
  onClick: checkClick,
1545
1659
  onSubmit: usingForm ? () => {} : undefined,
1546
1660
  onMouseDown: mouseDown
1547
1661
  }, content))));
1548
1662
  });
1549
- const AnimatedModal = /*#__PURE__*/React__default["default"].forwardRef((_ref2, ref) => {
1663
+ const AnimatedModal = /*#__PURE__*/React__default["default"].forwardRef((_ref3, ref) => {
1550
1664
  let {
1551
1665
  timing,
1552
1666
  nestedFlip,
@@ -1555,8 +1669,8 @@ const AnimatedModal = /*#__PURE__*/React__default["default"].forwardRef((_ref2,
1555
1669
  modalIn = dialogModalIn,
1556
1670
  modalOut = dialogModalOut,
1557
1671
  blurBackdrop
1558
- } = _ref2,
1559
- props = _objectWithoutProperties__default["default"](_ref2, _excluded$f);
1672
+ } = _ref3,
1673
+ props = _objectWithoutProperties__default["default"](_ref3, _excluded2$3);
1560
1674
  const modal = core.useEnsureRef(ref);
1561
1675
  useFlipAnimation(modal, modalIn, modalOut, {
1562
1676
  timing,
@@ -1594,7 +1708,28 @@ const BOTTOM_TRIGGER = (posInfo, refInfo) => {
1594
1708
  const SentinelStyle = /*#__PURE__*/styled__default["default"].div.withConfig({
1595
1709
  displayName: "willUseIsSticky__SentinelStyle",
1596
1710
  componentId: "sc-1nsyca-0"
1597
- })(["position:absolute;visibility:hidden;height:1px;width:1px;", ""], props => props.addCss);
1711
+ })(["position:absolute;visibility:hidden;height:1px;width:1px;"]);
1712
+
1713
+ // addCss é texto livre de declarações CSS (ex.: Combobox.jsx em @startlibs/form passa
1714
+ // "margin-top:-3px;"), decidido em tempo de execução pelo chamador — não dá pra virar
1715
+ // `css\`\`` (precisaria do texto na hora do build) nem ficar como interpolação solta no
1716
+ // template (R14: o yak ignora em silêncio uma função que devolve texto livre numa posição de
1717
+ // declaração). Vira `style` inline nos dois modos: mesmo resultado visual, sem CSS-in-JS aqui.
1718
+ const cssTextToStyle = text => {
1719
+ const style = {};
1720
+ for (const declaration of (text || '').split(';')) {
1721
+ const colonIndex = declaration.indexOf(':');
1722
+ if (colonIndex === -1) continue;
1723
+ const property = declaration.slice(0, colonIndex).trim();
1724
+ const value = declaration.slice(colonIndex + 1).trim();
1725
+ if (!property || !value) continue;
1726
+ // Custom property (--foo) mantém o nome; o resto vira camelCase (margin-top -> marginTop),
1727
+ // igual ao que o React espera num objeto de `style`.
1728
+ const camelProperty = property.startsWith('--') ? property : property.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
1729
+ style[camelProperty] = value;
1730
+ }
1731
+ return Object.keys(style).length ? style : undefined;
1732
+ };
1598
1733
  const willUseIsSticky = function () {
1599
1734
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1600
1735
  const [useRegister, onChange] = core.willUseSharedCallback();
@@ -1673,7 +1808,7 @@ const willUseIsSticky = function () {
1673
1808
  const renderSentinel = function () {
1674
1809
  let css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
1675
1810
  return /*#__PURE__*/React__default["default"].createElement(SentinelStyle, {
1676
- addCss: css,
1811
+ style: cssTextToStyle(css),
1677
1812
  className: className,
1678
1813
  ref: ensuredRef
1679
1814
  });
@@ -1683,8 +1818,11 @@ const willUseIsSticky = function () {
1683
1818
  return [WithIsSticky, useSharedIsSticky, resetObservers];
1684
1819
  };
1685
1820
 
1686
- const _excluded$e = ["className", "skipWrap", "wrapChildren", "stickyFooter", "fixTitleMargin", "skipCloseIcon", "isLoading", "footer", "Content", "children", "title", "illustration", "icon", "auxiliarActions", "container", "onClose"];
1687
- var _templateObject$5, _templateObject2$4, _templateObject3$4, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8$1, _templateObject9, _templateObject10;
1821
+ const _excluded$e = ["fixTitleMargin"],
1822
+ _excluded2$2 = ["sticky", "isSticky"],
1823
+ _excluded3$1 = ["className", "style", "skipWrap", "wrapChildren", "stickyFooter", "fixTitleMargin", "skipCloseIcon", "isLoading", "footer", "Content", "children", "title", "illustration", "icon", "auxiliarActions", "container", "onClose"],
1824
+ _excluded4$1 = ["tagAs"];
1825
+ var _templateObject$5, _templateObject2$4, _templateObject3$4, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
1688
1826
  const DialogIcon = /*#__PURE__*/styled__default["default"](Icon).withConfig({
1689
1827
  displayName: "Dialog__DialogIcon",
1690
1828
  componentId: "sc-gai4ey-0"
@@ -1707,14 +1845,31 @@ const DialogContent = /*#__PURE__*/styled__default["default"](props => /*#__PURE
1707
1845
  displayName: "Dialog__DialogContent",
1708
1846
  componentId: "sc-gai4ey-3"
1709
1847
  })(["outline:none;width:100%;position:relative;min-height:5rem;", " ", " p{font-size:14px;}"], props => props.icon && styled.css(["padding-right:8rem;min-height:6rem;"]), props => props.illustration && styled.css(["padding-right:15rem;", ""], utils.media.mobile(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral__default["default"](["\n padding-right: 1.5rem;\n "])))));
1710
- const DialogTitle = /*#__PURE__*/styled__default["default"].h2.withConfig({
1848
+
1849
+ // Host tag (styled.h2) com prop lida só no template: o styled-components filtra sozinho antes do
1850
+ // DOM, mas o yak não filtra atributo inválido em host tag puro — tira-se fixTitleMargin à mão.
1851
+ const TitleBase = /*#__PURE__*/React__default["default"].forwardRef((_ref, ref) => {
1852
+ let props = _objectWithoutProperties__default["default"](_ref, _excluded$e);
1853
+ return /*#__PURE__*/React__default["default"].createElement("h2", _extends__default["default"]({
1854
+ ref: ref
1855
+ }, props));
1856
+ });
1857
+ const DialogTitle = /*#__PURE__*/styled__default["default"](TitleBase).withConfig({
1711
1858
  displayName: "Dialog__DialogTitle",
1712
1859
  componentId: "sc-gai4ey-4"
1713
1860
  })(["margin-bottom:1rem;padding-bottom:1rem;", " ", ""], props => props.fixTitleMargin && "\n padding-bottom: 0;\n ", utils.media.mobile(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral__default["default"](["\n font-size: 19px;\n "]))));
1714
- const DialogFooter = /*#__PURE__*/styled__default["default"].div.withConfig({
1861
+
1862
+ // Mesma razão do TitleBase acima: sticky/isSticky só existem pro template, tiram-se antes do DOM.
1863
+ const FooterBase = /*#__PURE__*/React__default["default"].forwardRef((_ref2, ref) => {
1864
+ let props = _objectWithoutProperties__default["default"](_ref2, _excluded2$2);
1865
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
1866
+ ref: ref
1867
+ }, props));
1868
+ });
1869
+ const DialogFooter = /*#__PURE__*/styled__default["default"](FooterBase).withConfig({
1715
1870
  displayName: "Dialog__DialogFooter",
1716
1871
  componentId: "sc-gai4ey-5"
1717
- })(["display:block;padding-top:1rem;margin-top:1rem;align-items:stretch;text-align:right;", " ", " ", ":not(.styled-button-colored){background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}}"], props => props.sticky && styled.css(["position:sticky;background:white;width:inherit;z-index:50;", " ", " ", ""], utils.media.desktop(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral__default["default"](["\n bottom: -3rem;\n margin-left: -2rem;\n margin-right: -2rem;\n margin-bottom: -1.5rem;\n margin-top: 0.5rem;\n padding: 1.5rem 2rem;\n border-radius: 0 0 1rem 1rem;\n "]))), utils.media.mobile(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral__default["default"](["\n bottom: -0.5rem;\n padding: 0.75rem 1.75rem;\n margin-bottom: -1rem;\n margin-left: -1.75rem;\n margin-right: -1.75rem;\n "]))), props => props.isSticky && "\n box-shadow: 0 0px 2px 0 rgba(0,0,0,0.1), 0 0px 5px 1px rgba(0,0,0,0.15);\n border-radius: 0;\n "), utils.media.max(370)(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral__default["default"](["\n ", " {\n min-width: unset;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n "])), Button), Button, props => polished.darken(0.03, utils.getColor('bluishGray')(props)), utils.getColor('gray90'), props => polished.darken(0.06, utils.getColor('bluishGray')(props)), props => polished.darken(0.09, utils.getColor('bluishGray')(props)));
1872
+ })(["display:block;padding-top:1rem;margin-top:1rem;align-items:stretch;text-align:right;", " ", " ", ":not(.styled-button-colored){background:", ";color:", ";&:hover{background:", ";}&:active{background:", ";}}"], props => props.sticky && styled.css(["position:sticky;background:white;width:inherit;z-index:50;", " ", " ", ""], props => props.isSticky && "\n box-shadow: 0 0px 2px 0 rgba(0,0,0,0.1), 0 0px 5px 1px rgba(0,0,0,0.15);\n border-radius: 0;\n ", utils.media.desktop(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral__default["default"](["\n bottom: -3rem;\n margin-left: -2rem;\n margin-right: -2rem;\n margin-bottom: -1.5rem;\n margin-top: 0.5rem;\n padding: 1.5rem 2rem;\n border-radius: 0 0 1rem 1rem;\n "]))), utils.media.mobile(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral__default["default"](["\n bottom: -0.5rem;\n padding: 0.75rem 1.75rem;\n margin-bottom: -1rem;\n margin-left: -1.75rem;\n margin-right: -1.75rem;\n "])))), utils.media.max(370)(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral__default["default"](["\n ", " {\n min-width: unset;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n "])), Button), Button, props => polished.darken(0.03, utils.getColor('bluishGray')(props)), utils.getColor('gray90'), props => polished.darken(0.06, utils.getColor('bluishGray')(props)), props => polished.darken(0.09, utils.getColor('bluishGray')(props)));
1718
1873
  const FooterAuxiliaryContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
1719
1874
  displayName: "Dialog__FooterAuxiliaryContainer",
1720
1875
  componentId: "sc-gai4ey-6"
@@ -1725,16 +1880,17 @@ const FooterAuxiliaryContainer = /*#__PURE__*/styled__default["default"].div.wit
1725
1880
  const DialogContentWrapper = /*#__PURE__*/styled__default["default"](LoadingDiv).withConfig({
1726
1881
  displayName: "Dialog__DialogContentWrapper",
1727
1882
  componentId: "sc-gai4ey-7"
1728
- })(["padding:2rem;margin:-2rem;", ""], utils.media.mobile(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral__default["default"](["\n padding: 1.75rem;\n margin: -1.75rem;\n "]))));
1883
+ })(["padding:2rem;margin:-2rem;", ""], utils.media.mobile(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral__default["default"](["\n padding: 1.75rem;\n margin: -1.75rem;\n "]))));
1729
1884
  const DialogAlwaysVisibleDiv = /*#__PURE__*/styled__default["default"].div.withConfig({
1730
1885
  displayName: "Dialog__DialogAlwaysVisibleDiv",
1731
1886
  componentId: "sc-gai4ey-8"
1732
1887
  })(["padding:2rem 2rem 0;margin:-2rem;", ""], utils.media.mobile(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral__default["default"](["\n padding: 1.75rem 1.75rem 0;\n margin: -1.75rem;\n "]))));
1733
1888
  // END
1734
1889
 
1735
- const Dialog = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__default["default"].forwardRef((_ref, outerRef) => {
1890
+ const DialogInner = /*#__PURE__*/React__default["default"].forwardRef((_ref3, outerRef) => {
1736
1891
  let {
1737
1892
  className,
1893
+ style,
1738
1894
  skipWrap,
1739
1895
  wrapChildren,
1740
1896
  stickyFooter,
@@ -1750,8 +1906,8 @@ const Dialog = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__defau
1750
1906
  auxiliarActions,
1751
1907
  container = true,
1752
1908
  onClose
1753
- } = _ref,
1754
- props = _objectWithoutProperties__default["default"](_ref, _excluded$e);
1909
+ } = _ref3,
1910
+ props = _objectWithoutProperties__default["default"](_ref3, _excluded3$1);
1755
1911
  const ref = core.useEnsureRef(outerRef);
1756
1912
  const [WithIsSticky] = willUseIsSticky();
1757
1913
  const handleClose = React__default["default"].useCallback(async () => {
@@ -1778,6 +1934,7 @@ const Dialog = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__defau
1778
1934
  }, auxiliarActions && /*#__PURE__*/React__default["default"].createElement(FooterAuxiliaryContainer, null, utils.callIfFunction(auxiliarActions)), utils.callIfFunction(footer)), sentinel())));
1779
1935
  const dialog = confirmCloseDialog => /*#__PURE__*/React__default["default"].createElement("div", {
1780
1936
  className: className + " JS-has-wc JS-dialog",
1937
+ style: style,
1781
1938
  ref: ref
1782
1939
  }, skipWrap ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, alwaysVisible(confirmCloseDialog), content) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(DialogAlwaysVisibleDiv, null, alwaysVisible(confirmCloseDialog)), /*#__PURE__*/React__default["default"].createElement(DialogContentWrapper, {
1783
1940
  isLoading: isLoading
@@ -1787,23 +1944,37 @@ const Dialog = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__defau
1787
1944
  ref: ref,
1788
1945
  title: title,
1789
1946
  closeDialog: handleClose
1790
- }), _ref2 => {
1947
+ }), _ref4 => {
1791
1948
  let {
1792
1949
  confirmCloseDialog
1793
- } = _ref2;
1950
+ } = _ref4;
1794
1951
  return dialog(confirmCloseDialog);
1795
1952
  }) : dialog(handleClose);
1796
- })).withConfig({
1953
+ });
1954
+
1955
+ // R6: "as" não existe no yak. tagAs troca o componente/tag renderizado (ex.: DialogErrorContent
1956
+ // usa tagAs="div" pra reaproveitar o CSS do Dialog sem a lógica interna; DialogWithSidebar usa
1957
+ // tagAs={DialogWithSidebarPresentation}); sem tagAs, renderiza o Dialog de verdade (DialogInner).
1958
+ const DialogTagAs = /*#__PURE__*/React__default["default"].forwardRef((_ref5, ref) => {
1959
+ let {
1960
+ tagAs: Tag = DialogInner
1961
+ } = _ref5,
1962
+ props = _objectWithoutProperties__default["default"](_ref5, _excluded4$1);
1963
+ return /*#__PURE__*/React__default["default"].createElement(Tag, _extends__default["default"]({
1964
+ ref: ref
1965
+ }, props));
1966
+ });
1967
+ const Dialog = /*#__PURE__*/styled__default["default"](DialogTagAs).withConfig({
1797
1968
  displayName: "Dialog",
1798
1969
  componentId: "sc-gai4ey-9"
1799
- })(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}border-radius:24px;padding:2rem;background-color:white;width:100%;max-width:45rem;", " margin:auto;position:relative;align-self:baseline;display:block;> h3:first-child{margin-top:0.5rem;}p{line-height:140%;}", " ", " ", ""], props => props.$maxWidth && styled.css(["max-width:", ";"], props.$maxWidth), utils.media.mobile(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral__default["default"](["\n padding: 1.75rem;\n max-width: 100%;\n ", ";\n "])), props => props.fullscreenOnMobile && "\n border-radius: 0;\n min-height: 100%;\n "), props => props.closeDialog && styled.css(["", "{padding-right:2rem;}"], DialogTitle), utils.customTheme('Dialog'));
1970
+ })(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}border-radius:24px;padding:2rem;background-color:white;width:100%;max-width:45rem;", " margin:auto;position:relative;align-self:baseline;display:block;overflow:clip;> h3:first-child{margin-top:0.5rem;}p{line-height:140%;}", " ", " ", ""], props => props.$maxWidth && styled.css(["max-width:", ";"], props => props.$maxWidth), utils.media.mobile(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral__default["default"](["\n padding: 1.75rem;\n max-width: 100%;\n ", ";\n "])), props => props.fullscreenOnMobile && "\n border-radius: 0;\n min-height: 100%;\n "), props => props.closeDialog && styled.css(["", "{padding-right:2rem;}"], DialogTitle), utils.customTheme('Dialog'));
1800
1971
  const ConfirmDialog = props => /*#__PURE__*/React__default["default"].createElement(Dialog, _extends__default["default"]({}, props, {
1801
1972
  placement: "Confirm-Dialog"
1802
1973
  }), props.children);
1803
- const DefaultConfirmDialog = props => /*#__PURE__*/React__default["default"].createElement(core.StartlibsConsumer, null, _ref3 => {
1974
+ const DefaultConfirmDialog = props => /*#__PURE__*/React__default["default"].createElement(core.StartlibsConsumer, null, _ref6 => {
1804
1975
  let {
1805
1976
  confirmDialogLabels
1806
- } = _ref3;
1977
+ } = _ref6;
1807
1978
  const handleCancel = async () => {
1808
1979
  if (props.onCancel) props.onCancel();
1809
1980
  if (props.onClose) await props.onClose().catch(console.error);
@@ -1838,26 +2009,26 @@ const DialogErrorBadge = /*#__PURE__*/styled__default["default"].div.withConfig(
1838
2009
  displayName: "Dialog__DialogErrorBadge",
1839
2010
  componentId: "sc-gai4ey-11"
1840
2011
  })(["width:72px;height:72px;margin:0 auto 1.5rem;border-radius:50%;background:rgba(0,0,0,0.06);display:flex;align-items:center;justify-content:center;", "{font-size:40px;color:rgba(0,0,0,0.4);}"], Icon);
1841
- const DialogErrorContent = _ref4 => {
2012
+ const DialogErrorContent = _ref7 => {
1842
2013
  let {
1843
2014
  closeDialog,
1844
2015
  onClose,
1845
2016
  title
1846
- } = _ref4;
2017
+ } = _ref7;
1847
2018
  const handleClose = React__default["default"].useCallback(async () => {
1848
2019
  if (onClose) await onClose().catch(console.error);
1849
2020
  if (closeDialog) closeDialog();
1850
2021
  }, [onClose, closeDialog]);
1851
- return /*#__PURE__*/React__default["default"].createElement(core.StartlibsConsumer, null, _ref5 => {
2022
+ return /*#__PURE__*/React__default["default"].createElement(core.StartlibsConsumer, null, _ref8 => {
1852
2023
  let {
1853
2024
  ErrorDialog: {
1854
2025
  title,
1855
2026
  content,
1856
2027
  close
1857
2028
  }
1858
- } = _ref5;
2029
+ } = _ref8;
1859
2030
  return /*#__PURE__*/React__default["default"].createElement(Dialog, {
1860
- as: "div",
2031
+ tagAs: "div",
1861
2032
  $maxWidth: "30rem"
1862
2033
  }, closeDialog && /*#__PURE__*/React__default["default"].createElement(CloseIcon$1, {
1863
2034
  onClick: handleClose
@@ -1872,21 +2043,21 @@ const DialogErrorContent = _ref4 => {
1872
2043
  }, close))));
1873
2044
  });
1874
2045
  };
1875
- const DialogError = _ref6 => {
2046
+ const DialogError = _ref9 => {
1876
2047
  let {
1877
2048
  closeDialog,
1878
2049
  onClose
1879
- } = _ref6;
2050
+ } = _ref9;
1880
2051
  const handleClose = React__default["default"].useCallback(async () => {
1881
2052
  if (onClose) await onClose().catch(console.error);
1882
2053
  if (closeDialog) closeDialog();
1883
2054
  }, [onClose, closeDialog]);
1884
- return /*#__PURE__*/React__default["default"].createElement(core.StartlibsConsumer, null, _ref7 => {
2055
+ return /*#__PURE__*/React__default["default"].createElement(core.StartlibsConsumer, null, _ref10 => {
1885
2056
  let {
1886
2057
  ErrorDialog: {
1887
2058
  title
1888
2059
  }
1889
- } = _ref7;
2060
+ } = _ref10;
1890
2061
  return /*#__PURE__*/React__default["default"].createElement(Dialog, {
1891
2062
  closeDialog: handleClose,
1892
2063
  title: title
@@ -2262,17 +2433,17 @@ const SwitchContainer = _ref2 => {
2262
2433
  }, utils.callIfFunction(children));
2263
2434
  };
2264
2435
 
2265
- var _templateObject$4, _templateObject2$3, _templateObject3$3, _templateObject4$1, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
2436
+ var _templateObject$4, _templateObject2$3, _templateObject3$3, _templateObject4$1, _templateObject5, _templateObject6, _templateObject7;
2266
2437
  function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2267
2438
  function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2268
2439
  const NotificationContainer$1 = /*#__PURE__*/styled__default["default"].div.withConfig({
2269
2440
  displayName: "ToastNotifications__NotificationContainer",
2270
2441
  componentId: "sc-inycsj-0"
2271
- })(["position:fixed;bottom:0;max-height:100%;z-index:999999;display:flex;flex-direction:column-reverse;align-items:flex-end;overflow-y:auto;right:1.5rem;", " ", " ::-webkit-scrollbar{width:21px;height:21px;}::-webkit-scrollbar-thumb{pointer-events:all;background:rgba(0,0,0,0.4);border-radius:100px;background-clip:padding-box;border:6px solid transparent;min-height:30px;min-width:30px;&:hover{background:rgba(0,0,0,0.5);background-clip:padding-box;border:6px solid transparent;}}::-webkit-scrollbar-corner{background:transparent;}", " ", ""], utils.media.desktop(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral__default["default"](["\n padding-bottom: 1.5rem;\n "]))), utils.media.mobile(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral__default["default"](["\n padding-bottom: 0.75rem;\n "]))), utils.media.desktop(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral__default["default"](["\n &.JS-dialog-open {\n right: 2.75rem;\n }\n "]))), utils.media.mobile(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral__default["default"](["\n left: 0.75rem;\n right: 0.75rem;\n "]))));
2442
+ })(["position:fixed;bottom:0;max-height:100%;z-index:999999;display:flex;flex-direction:column-reverse;align-items:flex-end;overflow-y:auto;right:1.5rem;", " ", " &::-webkit-scrollbar{width:21px;height:21px;}&::-webkit-scrollbar-thumb{pointer-events:all;background:rgba(0,0,0,0.4);border-radius:100px;background-clip:padding-box;border:6px solid transparent;min-height:30px;min-width:30px;&:hover{background:rgba(0,0,0,0.5);background-clip:padding-box;border:6px solid transparent;}}&::-webkit-scrollbar-corner{background:transparent;}", " ", ""], utils.media.desktop(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral__default["default"](["\n padding-bottom: 1.5rem;\n "]))), utils.media.mobile(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral__default["default"](["\n padding-bottom: 0.75rem;\n "]))), utils.media.desktop(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral__default["default"](["\n &.JS-dialog-open {\n right: 2.75rem;\n }\n "]))), utils.media.mobile(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral__default["default"](["\n left: 0.75rem;\n right: 0.75rem;\n "]))));
2272
2443
  const ToastBox = /*#__PURE__*/styled__default["default"].div.withConfig({
2273
2444
  displayName: "ToastNotifications__ToastBox",
2274
2445
  componentId: "sc-inycsj-1"
2275
- })(["color:white;font-size:14px;font-weight:500;border-radius:12px;flex-shrink:0;margin-top:0.5rem;overflow:hidden;transition:0.3s background ease,0.4s opacity 1.5s;", " ", " ", ""], utils.media.desktop(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral__default["default"](["\n background: ", ";\n max-width: 300px;\n "])), props => polished.rgba(utils.getColor(props.type)(props), utils.ifUndefined(props.opacity, 0.7))), utils.media.mobile(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral__default["default"](["\n background: ", ";\n "])), props => polished.rgba(utils.getColor(props.type)(props), utils.ifUndefined(props.opacity, 0.8))), props => styled.css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral__default["default"](["background: ", ";"])), utils.getColor(props.type)));
2446
+ })(["color:white;font-size:14px;font-weight:500;border-radius:12px;flex-shrink:0;margin-top:0.5rem;overflow:hidden;transition:0.3s background ease,0.4s opacity 1.5s;", " ", " ", ""], props => styled.css(["background:", ";"], utils.getColor(props.type)), utils.media.desktop(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral__default["default"](["\n background: ", ";\n max-width: 300px;\n "])), props => polished.rgba(utils.getColor(props.type)(props), utils.ifUndefined(props.opacity, 0.7))), utils.media.mobile(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral__default["default"](["\n background: ", ";\n "])), props => polished.rgba(utils.getColor(props.type)(props), utils.ifUndefined(props.opacity, 0.8))));
2276
2447
  const NotificationTitleContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
2277
2448
  displayName: "ToastNotifications__NotificationTitleContainer",
2278
2449
  componentId: "sc-inycsj-2"
@@ -2284,20 +2455,26 @@ const NotificationTitle = /*#__PURE__*/styled__default["default"].div.withConfig
2284
2455
  const NotificationContent = /*#__PURE__*/styled__default["default"].div.withConfig({
2285
2456
  displayName: "ToastNotifications__NotificationContent",
2286
2457
  componentId: "sc-inycsj-4"
2287
- })(["display:flex;align-items:center;text-align:left;padding:1rem 1.5rem;", ""], utils.media.mobile(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral__default["default"](["\n justify-content: center;\n "]))));
2458
+ })(["display:flex;align-items:center;text-align:left;padding:1rem 1.5rem;", ""], utils.media.mobile(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral__default["default"](["\n justify-content: center;\n "]))));
2459
+ // Task 13c: substitui a prop JSX `css="min-width: 0;"` (R13 proíbe essa forma no yak) por um
2460
+ // styled component equivalente.
2461
+ const NotificationContentBody = /*#__PURE__*/styled__default["default"].div.withConfig({
2462
+ displayName: "ToastNotifications__NotificationContentBody",
2463
+ componentId: "sc-inycsj-5"
2464
+ })(["min-width:0;"]);
2288
2465
  const NotificationIconWrapper = /*#__PURE__*/styled__default["default"].div.withConfig({
2289
2466
  displayName: "ToastNotifications__NotificationIconWrapper",
2290
- componentId: "sc-inycsj-5"
2467
+ componentId: "sc-inycsj-6"
2291
2468
  })(["margin-right:1rem;position:relative;width:36px;text-align:center;flex-shrink:0;", "{font-size:", "px;}"], Icon, props => props.isLoading ? 22 : props.iconFontSize || 40);
2292
2469
  const CloseIcon = /*#__PURE__*/styled__default["default"](Icon).attrs({
2293
2470
  icon: 'x'
2294
2471
  }).withConfig({
2295
2472
  displayName: "ToastNotifications__CloseIcon",
2296
- componentId: "sc-inycsj-6"
2297
- })(["font-size:20px;cursor:pointer;width:2rem;height:2rem;line-height:2rem;text-align:center;position:absolute;top:50%;right:0.25rem;transform:translateY(-50%);border-radius:100px;opacity:0.8;:hover,:active{background:rgba(0,0,0,0.1);opacity:1;}"]);
2473
+ componentId: "sc-inycsj-7"
2474
+ })(["font-size:20px;cursor:pointer;width:2rem;height:2rem;line-height:2rem;text-align:center;position:absolute;top:50%;right:0.25rem;transform:translateY(-50%);border-radius:100px;opacity:0.8;&:hover,&:active{background:rgba(0,0,0,0.1);opacity:1;}"]);
2298
2475
  const NotificationDetails = /*#__PURE__*/styled__default["default"].div.withConfig({
2299
2476
  displayName: "ToastNotifications__NotificationDetails",
2300
- componentId: "sc-inycsj-7"
2477
+ componentId: "sc-inycsj-8"
2301
2478
  })(["background:rgba(0,0,0,0.1);border-radius:8px;padding:1rem;margin:0 1rem 1rem;font-weight:400;font-size:13px;"]);
2302
2479
  const [useToastNotifications, _useToastNotificationsRef, setToastNotifications] = core.willUseSharedState([]);
2303
2480
  const formatNotification = (notification, extra) => _isObject__default["default"](notification) ? _objectSpread$4(_objectSpread$4(_objectSpread$4({}, notification), extra), {}, {
@@ -2421,7 +2598,7 @@ const ToastNotifications = () => {
2421
2598
  size: 36,
2422
2599
  white: true,
2423
2600
  absolute: true
2424
- })), /*#__PURE__*/React__default["default"].createElement(_StyledDiv, null, utils.callIfFunction(notification.content, closeWithLock))), notification.details && /*#__PURE__*/React__default["default"].createElement(NotificationDetails, {
2601
+ })), /*#__PURE__*/React__default["default"].createElement(NotificationContentBody, null, utils.callIfFunction(notification.content, closeWithLock))), notification.details && /*#__PURE__*/React__default["default"].createElement(NotificationDetails, {
2425
2602
  onClick: utils.constrainEvent()
2426
2603
  }, notification.details)));
2427
2604
  }))));
@@ -2454,10 +2631,6 @@ const useNotificationContainerWidthLock = containerRef => {
2454
2631
  unlockWidth
2455
2632
  };
2456
2633
  };
2457
- var _StyledDiv = /*#__PURE__*/styled__default["default"]("div").withConfig({
2458
- displayName: "ToastNotifications___StyledDiv",
2459
- componentId: "sc-inycsj-8"
2460
- })(["min-width:0;"]);
2461
2634
 
2462
2635
  const _excluded$a = ["content", "type", "marginTop"];
2463
2636
  var _templateObject$3, _templateObject2$2, _templateObject3$2;
@@ -2484,7 +2657,7 @@ const PersistentNotificationCloseIcon = /*#__PURE__*/styled__default["default"](
2484
2657
  }).withConfig({
2485
2658
  displayName: "PersistentNotifications__PersistentNotificationCloseIcon",
2486
2659
  componentId: "sc-1t7i0dh-4"
2487
- })(["position:absolute;width:30px;height:30px;font-size:20px;line-height:30px;cursor:pointer;border-radius:50%;text-align:center;z-index:1000;top:0.5rem;right:0.5rem;color:", ";background:", ";:hover{background:", ";}:active{background:", ";}"], props => props.type && props.type !== 'main' ? utils.getColor(props.type)(props) : polished.darken(0.1, utils.getColor("main")(props)), props => polished.transparentize(0.90, utils.getColor(props.type || "main")(props)), props => polished.transparentize(0.85, utils.getColor(props.type || "main")(props)), props => polished.transparentize(0.82, utils.getColor(props.type || "main")(props)));
2660
+ })(["position:absolute;width:30px;height:30px;font-size:20px;line-height:30px;cursor:pointer;border-radius:50%;text-align:center;z-index:1000;top:0.5rem;right:0.5rem;color:", ";background:", ";&:hover{background:", ";}&:active{background:", ";}"], props => props.type && props.type !== 'main' ? utils.getColor(props.type)(props) : polished.darken(0.1, utils.getColor("main")(props)), props => polished.transparentize(0.90, utils.getColor(props.type || "main")(props)), props => polished.transparentize(0.85, utils.getColor(props.type || "main")(props)), props => polished.transparentize(0.82, utils.getColor(props.type || "main")(props)));
2488
2661
  const [useNotifications,, setNotifications] = core.willUseSharedState([]);
2489
2662
  const openPersistentNotification = notification => {
2490
2663
  const newNotification = _objectSpread$3({
@@ -3951,7 +4124,15 @@ const slideRight = utils.oneWayAnimation('transform: translateX(-10px)', 'transf
3951
4124
  const slideLeftOnLeft = utils.oneWayAnimation('transform: translateX(10px); pointer-events: none', 'transform: translateX(0px); pointer-events: none');
3952
4125
  utils.animationTiming('0.2s ease-out');
3953
4126
  const areComponentsEqual = (a, b) => a === b;
3954
- const ListItem = /*#__PURE__*/styled__default["default"].li.withConfig({
4127
+
4128
+ // Variantes como classe: no yak, o override de theme.startlibs.ListItem não lê props.
4129
+ // Sem variante, sem a chave className: o yak sobrescreveria a do app com undefined.
4130
+ const ListItem = /*#__PURE__*/styled__default["default"].li.attrs(props => {
4131
+ const variants = [props.hover && 'styled-list-item-hover', props.highlight && 'styled-list-item-highlight'].filter(Boolean);
4132
+ return variants.length ? {
4133
+ className: variants.join(' ')
4134
+ } : {};
4135
+ }).withConfig({
3955
4136
  displayName: "ContextMenu__ListItem",
3956
4137
  componentId: "sc-13y1vvt-0"
3957
4138
  })(["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, utils.media.mobile(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral__default["default"](["\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), utils.ifProp('hover', styled.css(["& > a,& > label{background:", ";color:", ";}"], props => polished.transparentize(0.88, utils.getColor("main")(props)), props => polished.darken(0.03, utils.getColor("main")(props)))), utils.ifProp('highlight', styled.css(["color:", ";"], utils.getColor('main'))), utils.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 "), utils.ifProp('withButton', styled.css(["padding:0.25rem 1rem;", "{width:100%;color:white;font-weight:500;padding:10px 1.25rem;", "}"], Button, utils.media.mobile(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral__default["default"](["\n padding: 13px 1.25rem;\n "]))))), utils.ifProp('smallPaddingRight', styled.css(["& > *{padding-right:1.5rem;}"])), utils.customTheme('ListItem'));
@@ -3982,8 +4163,16 @@ const ListSeparator = /*#__PURE__*/styled__default["default"].li.withConfig({
3982
4163
  const ListHeading = /*#__PURE__*/styled__default["default"].li.withConfig({
3983
4164
  displayName: "ContextMenu__ListHeading",
3984
4165
  componentId: "sc-13y1vvt-7"
3985
- })(["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);}"]);
3986
- const SubmenuArrowIcon = utils.styledExtend(Icon)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral__default["default"](["\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"])));
4166
+ })(["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);}"]);
4167
+
4168
+ /* No sc, styledExtend(Icon) cria uma identidade própria: o seletor ${Icon} do ListItem
4169
+ acima não bate aqui. No yak, styledExtend vira styled(Icon) (plugin, R10) e essa seta
4170
+ herda a classe do Icon, então aquele ${Icon} (2 classes, mais específico) passa a
4171
+ também valer pra ela, incluindo um "left: 0" que nunca existiu aqui. Com left, right
4172
+ e width todos setados o box fica sobreconstrangido e o browser ignora o "right"
4173
+ (ganha left+width): a seta migra pra esquerda. !important nas propriedades em comum,
4174
+ e left:auto explícito, devolvem o tamanho e a posição próprios nos dois modos. */
4175
+ const SubmenuArrowIcon = utils.styledExtend(Icon)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral__default["default"](["\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"])));
3987
4176
  class SimpleLi extends React__default["default"].Component {
3988
4177
  constructor() {
3989
4178
  super(...arguments);
@@ -4286,7 +4475,7 @@ const ContextMenuComponent = /*#__PURE__*/React.forwardRef((_ref2, unesuredRef)
4286
4475
  let sum = 0;
4287
4476
  React__default["default"].Children.forEach(children, child => {
4288
4477
  if (child && !child.props.disabled && !child.props.readOnly) {
4289
- if (!styled.isStyledComponent(child.type) && child.type === Li || child.type.isKeyboardNavigable) {
4478
+ if (child.type === Li || child.type.isKeyboardNavigable) {
4290
4479
  sum += 1;
4291
4480
  }
4292
4481
  if (areComponentsEqual(child.type, StickyContainer) || child.props.nested) {
@@ -4306,7 +4495,7 @@ const ContextMenuComponent = /*#__PURE__*/React.forwardRef((_ref2, unesuredRef)
4306
4495
  let indexRef = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
4307
4496
  current: 0
4308
4497
  };
4309
- return React__default["default"].Children.map(children, (child, j) => child && !child.props.disabled && !child.props.readOnly ? child.props.nested ? /*#__PURE__*/React__default["default"].cloneElement(child, child.props, formatChildren(child.props.children, indexRef)) : !styled.isStyledComponent(child.type) && !reactIs.isMemo(child.type) && areComponentsEqual(child.type, Li) || child.type.isKeyboardNavigable ? /*#__PURE__*/React__default["default"].cloneElement(child, {
4498
+ return React__default["default"].Children.map(children, (child, j) => child && !child.props.disabled && !child.props.readOnly ? child.props.nested ? /*#__PURE__*/React__default["default"].cloneElement(child, child.props, formatChildren(child.props.children, indexRef)) : !reactIs.isMemo(child.type) && areComponentsEqual(child.type, Li) || child.type.isKeyboardNavigable ? /*#__PURE__*/React__default["default"].cloneElement(child, {
4310
4499
  fixedPosition: props.fixed,
4311
4500
  hover: hoverCursor === indexRef.current && layerIndex === layerCursor,
4312
4501
  hoverCursor: hoverCursor,
@@ -4380,7 +4569,7 @@ ContextMenu.ListItem = ListItem;
4380
4569
  const LoadingBar = /*#__PURE__*/styled__default["default"].div.withConfig({
4381
4570
  displayName: "PageLoader__LoadingBar",
4382
4571
  componentId: "sc-96jeob-0"
4383
- })(["width:100%;border-radius:0 1px 1px 0;height:4px;position:fixed;background:", ";transform:translateX(-100%);", " left:0;z-index:99999;box-shadow:", ";", " ", ""], props => props.bottom ? styled.css(["", ""], utils.getColor('main')) : "#84D359", props => props.bottom ? "bottom:69px;" : "top: 0;", props => props.bottom ? "0 0 1px 1px rgba(0,132,214,0.2);" : "0 0 2px 0 rgba(0,0,0,0.5);", props => props.loading && "\n transform: translateX(-30%);\n transition: transform 1.5s ease;\n ", props => props.closing && "\n transform: translateX(0);\n transition: transform 0.3s ease-in;\n ");
4572
+ })(["width:100%;border-radius:0 1px 1px 0;height:4px;position:fixed;background:", ";transform:translateX(-100%);", " left:0;z-index:99999;box-shadow:", ";", " ", ""], props => props.bottom ? utils.getColor('main') : "#84D359", props => props.bottom ? "bottom:69px;" : "top: 0;", props => props.bottom ? "0 0 1px 1px rgba(0,132,214,0.2)" : "0 0 2px 0 rgba(0,0,0,0.5)", props => props.loading && "\n transform: translateX(-30%);\n transition: transform 1.5s ease;\n ", props => props.closing && "\n transform: translateX(0);\n transition: transform 0.3s ease-in;\n ");
4384
4573
  const PageLoader = _ref => {
4385
4574
  let {
4386
4575
  isLoading
@@ -4746,9 +4935,9 @@ var _templateObject$1;
4746
4935
  const DialogWithImageHeader = /*#__PURE__*/styled__default["default"](Dialog).withConfig({
4747
4936
  displayName: "DialogWithImageHeader",
4748
4937
  componentId: "sc-1f1ry4g-0"
4749
- })(["max-width:51rem;", "{background:", ";text-shadow:none;color:rgba(120,120,120,1);font-size:20px;box-shadow:rgba(0,0,0,0.2) 0px 1px 3px 0px,rgba(0,0,0,0.05) 0px 0px 0px 1px;width:36px;height:36px;line-height:36px;transition:0.1s ease-out;:hover{background-color:rgb(230,230,230);}:active{background-color:rgb(220,220,220);transition:0s ease-out;}@supports (position:sticky){position:sticky;top:-2.5rem;right:0rem;float:right;margin-right:-1.25rem;margin-top:0.75rem;}", "}"], CloseIcon$1, utils.getColor('gray240'), utils.media.mobile(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral__default["default"](["\n @supports (position: sticky) {\n top: 0;\n margin-right: -1rem;\n }\n "]))));
4938
+ })(["max-width:51rem;", "{background:", ";text-shadow:none;color:rgba(120,120,120,1);font-size:20px;box-shadow:rgba(0,0,0,0.2) 0px 1px 3px 0px,rgba(0,0,0,0.05) 0px 0px 0px 1px;width:36px;height:36px;line-height:36px;transition:0.1s ease-out;&:hover{background-color:rgb(230,230,230);}&:active{background-color:rgb(220,220,220);transition:0s ease-out;}@supports (position:sticky){position:sticky;top:-2.5rem;right:0rem;float:right;margin-right:-1.25rem;margin-top:0.75rem;}", "}"], CloseIcon$1, utils.getColor('gray240'), utils.media.mobile(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral__default["default"](["\n @supports (position: sticky) {\n top: 0;\n margin-right: -1rem;\n }\n "]))));
4750
4939
 
4751
- const _excluded$1 = ["className", "tabIsOpen", "menuIsOpen", "sidebar", "Content", "openTab", "children", "title"];
4940
+ const _excluded$1 = ["className", "style", "tabIsOpen", "menuIsOpen", "sidebar", "Content", "openTab", "children", "title"];
4752
4941
  var _templateObject, _templateObject2, _templateObject3;
4753
4942
  const SideMenu = /*#__PURE__*/styled__default["default"].div.withConfig({
4754
4943
  displayName: "DialogWithSidebar__SideMenu",
@@ -4757,7 +4946,7 @@ const SideMenu = /*#__PURE__*/styled__default["default"].div.withConfig({
4757
4946
  const DialogTabMenu = /*#__PURE__*/styled__default["default"].ul.withConfig({
4758
4947
  displayName: "DialogWithSidebar__DialogTabMenu",
4759
4948
  componentId: "sc-suvg9r-1"
4760
- })(["cursor:default;overflow:auto;text-align:left;color:inherit;user-select:none;li{position:relative;padding:1rem 2rem 1rem 4.1rem;font-size:14px;", ":hover{background-color:", ";cursor:pointer;}&.selected{color:", ";background:rgba(0,132,214,0.125);pointer-events:none;}}.icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:3rem;text-align:center;line-height:0;font-size:26px;}", ""], utils.media.mobile(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral__default["default"](["\n font-size: 16px;\n "]))), utils.getColor('bluishGray'), utils.getColor('main'), props => props.menuTabIsOpen && "\n li {\n padding: 1.25rem 2rem 1.25rem 3.25rem;\n border-radius: 6px\n }\n .icon{\n left: 0;\n }\n ");
4949
+ })(["cursor:default;overflow:auto;text-align:left;color:inherit;user-select:none;li{position:relative;padding:1rem 2rem 1rem 4.1rem;font-size:14px;", " &:hover{background-color:", ";cursor:pointer;}&.selected{color:", ";background:rgba(0,132,214,0.125);pointer-events:none;}}.icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:3rem;text-align:center;line-height:0;font-size:26px;}", ""], utils.media.mobile(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral__default["default"](["\n font-size: 16px;\n "]))), utils.getColor('bluishGray'), utils.getColor('main'), props => props.menuTabIsOpen && "\n li {\n padding: 1.25rem 2rem 1.25rem 3.25rem;\n border-radius: 6px;\n }\n .icon{\n left: 0;\n }\n ");
4761
4950
  const [fadeIn, relativeFadeout] = utils.twoWayAnimation('opacity: 0;', 'opacity: 0;', 'opacity: 1;');
4762
4951
  const absoluteOnLeave = utils.oneWayAnimation('position: absolute;', 'position: absolute;');
4763
4952
  const fadeOut = [absoluteOnLeave, relativeFadeout];
@@ -4767,6 +4956,7 @@ const MENU_TAB = '$menu$';
4767
4956
  const DialogWithSidebarPresentation = _ref => {
4768
4957
  let {
4769
4958
  className,
4959
+ style,
4770
4960
  tabIsOpen,
4771
4961
  menuIsOpen,
4772
4962
  sidebar,
@@ -4789,6 +4979,7 @@ const DialogWithSidebarPresentation = _ref => {
4789
4979
  } = _ref2;
4790
4980
  return /*#__PURE__*/React__default["default"].createElement("div", {
4791
4981
  className: className + " JS-has-wc",
4982
+ style: style,
4792
4983
  ref: ref
4793
4984
  }, props.closeDialog && /*#__PURE__*/React__default["default"].createElement(CloseIcon$1, {
4794
4985
  onClick: confirmCloseDialog
@@ -4832,9 +5023,11 @@ const TabContent = _ref3 => {
4832
5023
  className: "dialog-content"
4833
5024
  }, utils.callIfFunction(Content, tab), utils.callIfFunction(children, tab));
4834
5025
  };
5026
+
5027
+ // R6: "as" não existe no yak. Dialog expõe "tagAs" no lugar (ver Dialog.jsx).
4835
5028
  const DialogWithSidebar = /*#__PURE__*/styled__default["default"](props => /*#__PURE__*/React__default["default"].createElement(Dialog, _extends__default["default"]({
4836
5029
  fullscreenOnMobile: true,
4837
- as: DialogWithSidebarPresentation
5030
+ tagAs: DialogWithSidebarPresentation
4838
5031
  }, props))).withConfig({
4839
5032
  displayName: "DialogWithSidebar",
4840
5033
  componentId: "sc-suvg9r-2"
@@ -4844,7 +5037,7 @@ const _excluded = ["className", "footer", "Content", "children", "title", "illus
4844
5037
  const MobileBubbleDialogFooter = /*#__PURE__*/styled__default["default"].div.withConfig({
4845
5038
  displayName: "MobileBubbleDialog__MobileBubbleDialogFooter",
4846
5039
  componentId: "sc-riqrem-0"
4847
- })(["background-color:", ";min-height:5rem;color:", ";font-size:13px;font-weight:500;text-transform:uppercase;padding:1rem;user-select:none;display:flex;align-items:center;justify-content:center;cursor:pointer;border-bottom-left-radius:10px;border-bottom-right-radius:10px;:active{background:rgb(232,232,232);}"], utils.getColor('gray240'), utils.getColor('main'));
5040
+ })(["background-color:", ";min-height:5rem;color:", ";font-size:13px;font-weight:500;text-transform:uppercase;padding:1rem;user-select:none;display:flex;align-items:center;justify-content:center;cursor:pointer;border-bottom-left-radius:10px;border-bottom-right-radius:10px;&:active{background:rgb(232,232,232);}"], utils.getColor('gray240'), utils.getColor('main'));
4848
5041
  const MobileBubbleDialog = /*#__PURE__*/styled__default["default"](_ref => {
4849
5042
  let {
4850
5043
  className,
@@ -4882,7 +5075,7 @@ const MobileBubbleDialog = /*#__PURE__*/styled__default["default"](_ref => {
4882
5075
  const BasicBulletList = /*#__PURE__*/styled__default["default"].ul.withConfig({
4883
5076
  displayName: "BasicBulletList",
4884
5077
  componentId: "sc-1u3hhup-0"
4885
- })(["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;}}"]);
5078
+ })(["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;}}"]);
4886
5079
 
4887
5080
  Object.defineProperty(exports, 'useBrowserLocation', {
4888
5081
  enumerable: true,