@startlibs/components 1.1.4 → 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 (124) 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 +30 -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
  124. package/lib/index.js +0 -5444
@@ -30,7 +30,28 @@ const BOTTOM_TRIGGER = (posInfo, refInfo) => {
30
30
  const SentinelStyle = /*#__PURE__*/styled.div.withConfig({
31
31
  displayName: "willUseIsSticky__SentinelStyle",
32
32
  componentId: "sc-1nsyca-0"
33
- })(["position:absolute;visibility:hidden;height:1px;width:1px;", ""], props => props.addCss);
33
+ })(["position:absolute;visibility:hidden;height:1px;width:1px;"]);
34
+
35
+ // addCss é texto livre de declarações CSS (ex.: Combobox.jsx em @startlibs/form passa
36
+ // "margin-top:-3px;"), decidido em tempo de execução pelo chamador — não dá pra virar
37
+ // `css\`\`` (precisaria do texto na hora do build) nem ficar como interpolação solta no
38
+ // template (R14: o yak ignora em silêncio uma função que devolve texto livre numa posição de
39
+ // declaração). Vira `style` inline nos dois modos: mesmo resultado visual, sem CSS-in-JS aqui.
40
+ const cssTextToStyle = text => {
41
+ const style = {};
42
+ for (const declaration of (text || '').split(';')) {
43
+ const colonIndex = declaration.indexOf(':');
44
+ if (colonIndex === -1) continue;
45
+ const property = declaration.slice(0, colonIndex).trim();
46
+ const value = declaration.slice(colonIndex + 1).trim();
47
+ if (!property || !value) continue;
48
+ // Custom property (--foo) mantém o nome; o resto vira camelCase (margin-top -> marginTop),
49
+ // igual ao que o React espera num objeto de `style`.
50
+ const camelProperty = property.startsWith('--') ? property : property.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
51
+ style[camelProperty] = value;
52
+ }
53
+ return Object.keys(style).length ? style : undefined;
54
+ };
34
55
  const willUseIsSticky = function () {
35
56
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
57
  const [useRegister, onChange] = willUseSharedCallback();
@@ -109,7 +130,7 @@ const willUseIsSticky = function () {
109
130
  const renderSentinel = function () {
110
131
  let css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
111
132
  return /*#__PURE__*/React.createElement(SentinelStyle, {
112
- addCss: css,
133
+ style: cssTextToStyle(css),
113
134
  className: className,
114
135
  ref: ensuredRef
115
136
  });
@@ -1 +1 @@
1
- {"version":3,"file":"willUseIsSticky.mjs","sources":["../src/willUseIsSticky.jsx"],"sourcesContent":["import React, {useEffect, useState} from 'react'\nimport {useEnsureRef, willUseSharedState, willUseSharedCallback} from '@startlibs/core'\nimport styled from 'styled-components'\nimport _ from 'lodash/fp'\nimport {callIfFunction} from '@startlibs/utils'\n\n\nconst TOP_TRIGGER = (posInfo,refInfo) => {\n // Started sticking.\n if (posInfo.bottom < refInfo.top) {\n return true\n }\n // Stopped sticking.\n if (posInfo.bottom >= refInfo.top &&\n posInfo.bottom < refInfo.bottom) {\n return false\n }\n}\nconst BOTTOM_TRIGGER = (posInfo,refInfo) => {\n // Started sticking.\n if (posInfo.top > refInfo.bottom) {\n return true\n }\n if (posInfo.top <= refInfo.bottom &&\n posInfo.top > refInfo.top) {\n return false\n }\n}\n\nconst SentinelStyle = styled.div`\n position:absolute;\n visibility: hidden;\n height:1px;\n width: 1px;\n ${props => props.addCss}\n`\n\nexport const willUseIsSticky = (options = {}) => {\n\n const [useRegister, onChange] = willUseSharedCallback()\n const [useSharedIsSticky,, setSharedIsSticky] = willUseSharedState()\n\n const createObserver = (root) => window.IntersectionObserver ? new window.IntersectionObserver((records, observer) => {\n for (const record of records) {\n const targetInfo = record.boundingClientRect\n const rootBoundsInfo = record.rootBounds\n if (!rootBoundsInfo) {\n return\n }\n onChange(targetInfo,rootBoundsInfo, record.target, record.isIntersecting)\n }\n },{root,...options}) : {observe:_.identity,unobserve:_.identity}\n\n const observerMap = new Map()\n const getObserver = (root = null) => {\n const result = observerMap.get(root)\n if (result) {\n return result\n }\n const observer = createObserver(root)\n observerMap.set(root,observer)\n return observer\n }\n \n let activeObserved = []\n const resetObservers = (root = null) => {\n const observer = getObserver(root)\n activeObserved.forEach((observed) => {\n observer.unobserve(observed)\n observer.observe(observed)\n })\n }\n\n const WithIsSticky = React.forwardRef(({className, id, css, children,bottom, root, intersection,onChange},ref) => {\n const ensuredRef = useEnsureRef(ref)\n const [isSticky,setIsSticky] = useState(false)\n\n useRegister((posInfo,refInfo,target, isIntersecting) => {\n if (ensuredRef.current === target) {\n const value = intersection ? isIntersecting : (bottom ? BOTTOM_TRIGGER(posInfo,refInfo) : TOP_TRIGGER(posInfo,refInfo))\n if (value!==undefined) {\n setIsSticky(value)\n callIfFunction(onChange,value)\n if (!id) {\n setSharedIsSticky(value)\n } else if (value) {\n setSharedIsSticky(id)\n }\n }\n }\n })\n\n useEffect(() => {\n setIsSticky(false)\n getObserver(callIfFunction(root)).observe(ensuredRef.current)\n activeObserved = activeObserved.concat(ensuredRef.current)\n return () => {\n // observer.unobserve(ref.current)\n activeObserved = _.without([ensuredRef.current],activeObserved)\n }\n },[])\n\n const renderSentinel = (css = \"\") => <SentinelStyle addCss={css} className={className} ref={ensuredRef} />\n\n return children\n ? children(renderSentinel,isSticky)\n : renderSentinel(css)\n\n })\n\n\n return [WithIsSticky, useSharedIsSticky, resetObservers]\n}"],"names":["TOP_TRIGGER","posInfo","refInfo","bottom","top","BOTTOM_TRIGGER","SentinelStyle","styled","div","withConfig","displayName","componentId","props","addCss","willUseIsSticky","options","arguments","length","undefined","useRegister","onChange","willUseSharedCallback","useSharedIsSticky","setSharedIsSticky","willUseSharedState","createObserver","root","window","IntersectionObserver","records","observer","record","targetInfo","boundingClientRect","rootBoundsInfo","rootBounds","target","isIntersecting","_objectSpread","observe","_identity","unobserve","observerMap","Map","getObserver","result","get","set","activeObserved","resetObservers","forEach","observed","WithIsSticky","React","forwardRef","_ref","ref","className","id","css","children","intersection","ensuredRef","useEnsureRef","isSticky","setIsSticky","useState","current","value","callIfFunction","useEffect","concat","_without","renderSentinel","createElement"],"mappings":";;;;;;;;;;AAOA,MAAMA,WAAW,GAAGA,CAACC,OAAO,EAACC,OAAO,KAAK;AACvC;AACA,EAAA,IAAID,OAAO,CAACE,MAAM,GAAGD,OAAO,CAACE,GAAG,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA;AACA,EAAA,IAAIH,OAAO,CAACE,MAAM,IAAID,OAAO,CAACE,GAAG,IAC/BH,OAAO,CAACE,MAAM,GAAGD,OAAO,CAACC,MAAM,EAAE;AACjC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACF,CAAC,CAAA;AACD,MAAME,cAAc,GAAGA,CAACJ,OAAO,EAACC,OAAO,KAAK;AAC1C;AACA,EAAA,IAAID,OAAO,CAACG,GAAG,GAAGF,OAAO,CAACC,MAAM,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIF,OAAO,CAACG,GAAG,IAAIF,OAAO,CAACC,MAAM,IACjCF,OAAO,CAACG,GAAG,GAAGF,OAAO,CAACE,GAAG,EAAE;AACzB,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACF,CAAC,CAAA;AAED,MAAME,aAAa,gBAAGC,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,gCAAA;EAAAC,WAAA,EAAA,aAAA;AAAA,CAAA,CAAA,CAAA,CAAA,2DAAA,EAAA,EAAA,CAAA,EAK5BC,KAAK,IAAIA,KAAK,CAACC,MAAM,CACxB,CAAA;AAEYC,MAAAA,eAAe,GAAG,YAAkB;AAAA,EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAE1C,MAAM,CAACG,WAAW,EAAEC,QAAQ,CAAC,GAAGC,qBAAqB,EAAE,CAAA;EACvD,MAAM,CAACC,iBAAiB,GAAGC,iBAAiB,CAAC,GAAGC,kBAAkB,EAAE,CAAA;AAEpE,EAAA,MAAMC,cAAc,GAAIC,IAAI,IAAKC,MAAM,CAACC,oBAAoB,GAAG,IAAID,MAAM,CAACC,oBAAoB,CAAC,CAACC,OAAO,EAAEC,QAAQ,KAAK;AACpH,IAAA,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;AAC5B,MAAA,MAAMG,UAAU,GAAGD,MAAM,CAACE,kBAAkB,CAAA;AAC5C,MAAA,MAAMC,cAAc,GAAGH,MAAM,CAACI,UAAU,CAAA;MACxC,IAAI,CAACD,cAAc,EAAE;AACnB,QAAA,OAAA;AACF,OAAA;AACAd,MAAAA,QAAQ,CAACY,UAAU,EAACE,cAAc,EAAEH,MAAM,CAACK,MAAM,EAAEL,MAAM,CAACM,cAAc,CAAC,CAAA;AAC3E,KAAA;AACF,GAAC,EAAAC,aAAA,CAAA;AAAEZ,IAAAA,IAAAA;GAAQX,EAAAA,OAAO,CAAC,CAAC,GAAG;AAACwB,IAAAA,OAAO,EAAAC,SAAW;AAACC,IAAAA,SAAS,EAAAD,SAAAA;GAAY,CAAA;AAEhE,EAAA,MAAME,WAAW,GAAG,IAAIC,GAAG,EAAE,CAAA;AAC7B,EAAA,MAAMC,WAAW,GAAG,YAAiB;AAAA,IAAA,IAAhBlB,IAAI,GAAAV,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAC9B,IAAA,MAAM6B,MAAM,GAAGH,WAAW,CAACI,GAAG,CAACpB,IAAI,CAAC,CAAA;AACpC,IAAA,IAAImB,MAAM,EAAE;AACV,MAAA,OAAOA,MAAM,CAAA;AACf,KAAA;AACA,IAAA,MAAMf,QAAQ,GAAGL,cAAc,CAACC,IAAI,CAAC,CAAA;AACrCgB,IAAAA,WAAW,CAACK,GAAG,CAACrB,IAAI,EAACI,QAAQ,CAAC,CAAA;AAC9B,IAAA,OAAOA,QAAQ,CAAA;GAChB,CAAA;EAED,IAAIkB,cAAc,GAAG,EAAE,CAAA;AACvB,EAAA,MAAMC,cAAc,GAAG,YAAiB;AAAA,IAAA,IAAhBvB,IAAI,GAAAV,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AACjC,IAAA,MAAMc,QAAQ,GAAGc,WAAW,CAAClB,IAAI,CAAC,CAAA;AAClCsB,IAAAA,cAAc,CAACE,OAAO,CAAEC,QAAQ,IAAK;AACnCrB,MAAAA,QAAQ,CAACW,SAAS,CAACU,QAAQ,CAAC,CAAA;AAC5BrB,MAAAA,QAAQ,CAACS,OAAO,CAACY,QAAQ,CAAC,CAAA;AAC5B,KAAC,CAAC,CAAA;GACH,CAAA;EAED,MAAMC,YAAY,gBAAGC,KAAK,CAACC,UAAU,CAAC,CAAAC,IAAA,EAAoEC,GAAG,KAAK;IAAA,IAA3E;MAACC,SAAS;MAAEC,EAAE;MAAEC,GAAG;MAAEC,QAAQ;MAACzD,MAAM;MAAEuB,IAAI;MAAEmC,YAAY;AAACzC,MAAAA,QAAAA;AAAQ,KAAC,GAAAmC,IAAA,CAAA;AACvG,IAAA,MAAMO,UAAU,GAAGC,YAAY,CAACP,GAAG,CAAC,CAAA;IACpC,MAAM,CAACQ,QAAQ,EAACC,WAAW,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE9C/C,WAAW,CAAC,CAAClB,OAAO,EAACC,OAAO,EAACkC,MAAM,EAAEC,cAAc,KAAK;AACtD,MAAA,IAAIyB,UAAU,CAACK,OAAO,KAAK/B,MAAM,EAAE;QACjC,MAAMgC,KAAK,GAAGP,YAAY,GAAIxB,cAAc,GAAIlC,MAAM,GAAGE,cAAc,CAACJ,OAAO,EAACC,OAAO,CAAC,GAAGF,WAAW,CAACC,OAAO,EAACC,OAAO,CAAE,CAAA;QACxH,IAAIkE,KAAK,KAAGlD,SAAS,EAAE;UACrB+C,WAAW,CAACG,KAAK,CAAC,CAAA;AAClBC,UAAAA,cAAc,CAACjD,QAAQ,EAACgD,KAAK,CAAC,CAAA;UAC9B,IAAI,CAACV,EAAE,EAAE;YACPnC,iBAAiB,CAAC6C,KAAK,CAAC,CAAA;WACzB,MAAM,IAAIA,KAAK,EAAE;YAChB7C,iBAAiB,CAACmC,EAAE,CAAC,CAAA;AACvB,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAC,CAAC,CAAA;AAEFY,IAAAA,SAAS,CAAC,MAAM;MACdL,WAAW,CAAC,KAAK,CAAC,CAAA;AAClBrB,MAAAA,WAAW,CAACyB,cAAc,CAAC3C,IAAI,CAAC,CAAC,CAACa,OAAO,CAACuB,UAAU,CAACK,OAAO,CAAC,CAAA;MAC7DnB,cAAc,GAAGA,cAAc,CAACuB,MAAM,CAACT,UAAU,CAACK,OAAO,CAAC,CAAA;AAC1D,MAAA,OAAO,MAAM;AACX;QACAnB,cAAc,GAAGwB,QAAA,CAAU,CAACV,UAAU,CAACK,OAAO,CAAC,EAACnB,cAAc,CAAC,CAAA;OAChE,CAAA;KACF,EAAC,EAAE,CAAC,CAAA;IAEL,MAAMyB,cAAc,GAAG,YAAA;AAAA,MAAA,IAACd,GAAG,GAAA3C,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,MAAA,oBAAKqC,KAAA,CAAAqB,aAAA,CAACpE,aAAa,EAAA;AAACO,QAAAA,MAAM,EAAE8C,GAAI;AAACF,QAAAA,SAAS,EAAEA,SAAU;AAACD,QAAAA,GAAG,EAAEM,UAAAA;AAAW,OAAE,CAAC,CAAA;AAAA,KAAA,CAAA;AAE1G,IAAA,OAAOF,QAAQ,GACXA,QAAQ,CAACa,cAAc,EAACT,QAAQ,CAAC,GACjCS,cAAc,CAACd,GAAG,CAAC,CAAA;AAEzB,GAAC,CAAC,CAAA;AAGF,EAAA,OAAO,CAACP,YAAY,EAAE9B,iBAAiB,EAAE2B,cAAc,CAAC,CAAA;AAC1D;;;;"}
1
+ {"version":3,"file":"willUseIsSticky.mjs","sources":["../src/willUseIsSticky.jsx"],"sourcesContent":["import React, {useEffect, useState} from 'react'\nimport {useEnsureRef, willUseSharedState, willUseSharedCallback} from '@startlibs/core'\nimport styled from 'styled-components'\nimport _ from 'lodash/fp'\nimport {callIfFunction} from '@startlibs/utils'\n\n\nconst TOP_TRIGGER = (posInfo,refInfo) => {\n // Started sticking.\n if (posInfo.bottom < refInfo.top) {\n return true\n }\n // Stopped sticking.\n if (posInfo.bottom >= refInfo.top &&\n posInfo.bottom < refInfo.bottom) {\n return false\n }\n}\nconst BOTTOM_TRIGGER = (posInfo,refInfo) => {\n // Started sticking.\n if (posInfo.top > refInfo.bottom) {\n return true\n }\n if (posInfo.top <= refInfo.bottom &&\n posInfo.top > refInfo.top) {\n return false\n }\n}\n\nconst SentinelStyle = styled.div`\n position:absolute;\n visibility: hidden;\n height:1px;\n width: 1px;\n`\n\n// addCss é texto livre de declarações CSS (ex.: Combobox.jsx em @startlibs/form passa\n// \"margin-top:-3px;\"), decidido em tempo de execução pelo chamador — não dá pra virar\n// `css\\`\\`` (precisaria do texto na hora do build) nem ficar como interpolação solta no\n// template (R14: o yak ignora em silêncio uma função que devolve texto livre numa posição de\n// declaração). Vira `style` inline nos dois modos: mesmo resultado visual, sem CSS-in-JS aqui.\nconst cssTextToStyle = (text) => {\n const style = {}\n for (const declaration of (text || '').split(';')) {\n const colonIndex = declaration.indexOf(':')\n if (colonIndex === -1) continue\n const property = declaration.slice(0, colonIndex).trim()\n const value = declaration.slice(colonIndex + 1).trim()\n if (!property || !value) continue\n // Custom property (--foo) mantém o nome; o resto vira camelCase (margin-top -> marginTop),\n // igual ao que o React espera num objeto de `style`.\n const camelProperty = property.startsWith('--') ? property : property.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())\n style[camelProperty] = value\n }\n return Object.keys(style).length ? style : undefined\n}\n\nexport const willUseIsSticky = (options = {}) => {\n\n const [useRegister, onChange] = willUseSharedCallback()\n const [useSharedIsSticky,, setSharedIsSticky] = willUseSharedState()\n\n const createObserver = (root) => window.IntersectionObserver ? new window.IntersectionObserver((records, observer) => {\n for (const record of records) {\n const targetInfo = record.boundingClientRect\n const rootBoundsInfo = record.rootBounds\n if (!rootBoundsInfo) {\n return\n }\n onChange(targetInfo,rootBoundsInfo, record.target, record.isIntersecting)\n }\n },{root,...options}) : {observe:_.identity,unobserve:_.identity}\n\n const observerMap = new Map()\n const getObserver = (root = null) => {\n const result = observerMap.get(root)\n if (result) {\n return result\n }\n const observer = createObserver(root)\n observerMap.set(root,observer)\n return observer\n }\n \n let activeObserved = []\n const resetObservers = (root = null) => {\n const observer = getObserver(root)\n activeObserved.forEach((observed) => {\n observer.unobserve(observed)\n observer.observe(observed)\n })\n }\n\n const WithIsSticky = React.forwardRef(({className, id, css, children,bottom, root, intersection,onChange},ref) => {\n const ensuredRef = useEnsureRef(ref)\n const [isSticky,setIsSticky] = useState(false)\n\n useRegister((posInfo,refInfo,target, isIntersecting) => {\n if (ensuredRef.current === target) {\n const value = intersection ? isIntersecting : (bottom ? BOTTOM_TRIGGER(posInfo,refInfo) : TOP_TRIGGER(posInfo,refInfo))\n if (value!==undefined) {\n setIsSticky(value)\n callIfFunction(onChange,value)\n if (!id) {\n setSharedIsSticky(value)\n } else if (value) {\n setSharedIsSticky(id)\n }\n }\n }\n })\n\n useEffect(() => {\n setIsSticky(false)\n getObserver(callIfFunction(root)).observe(ensuredRef.current)\n activeObserved = activeObserved.concat(ensuredRef.current)\n return () => {\n // observer.unobserve(ref.current)\n activeObserved = _.without([ensuredRef.current],activeObserved)\n }\n },[])\n\n const renderSentinel = (css = \"\") => <SentinelStyle style={cssTextToStyle(css)} className={className} ref={ensuredRef} />\n\n return children\n ? children(renderSentinel,isSticky)\n : renderSentinel(css)\n\n })\n\n\n return [WithIsSticky, useSharedIsSticky, resetObservers]\n}"],"names":["TOP_TRIGGER","posInfo","refInfo","bottom","top","BOTTOM_TRIGGER","SentinelStyle","styled","div","withConfig","displayName","componentId","cssTextToStyle","text","style","declaration","split","colonIndex","indexOf","property","slice","trim","value","camelProperty","startsWith","replace","_","letter","toUpperCase","Object","keys","length","undefined","willUseIsSticky","options","arguments","useRegister","onChange","willUseSharedCallback","useSharedIsSticky","setSharedIsSticky","willUseSharedState","createObserver","root","window","IntersectionObserver","records","observer","record","targetInfo","boundingClientRect","rootBoundsInfo","rootBounds","target","isIntersecting","_objectSpread","observe","_identity","unobserve","observerMap","Map","getObserver","result","get","set","activeObserved","resetObservers","forEach","observed","WithIsSticky","React","forwardRef","_ref","ref","className","id","css","children","intersection","ensuredRef","useEnsureRef","isSticky","setIsSticky","useState","current","callIfFunction","useEffect","concat","_without","renderSentinel","createElement"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { yakDomTag } from '@startlibs/utils/yakDomTag';
2
+ import { styled } from '@yak/react';
3
+
4
+ const BasicBulletList = styled(yakDomTag("ul")).attrs({
5
+ className: "styled-basic-bullet-list"
6
+ })`
7
+ margin-bottom: 0;
8
+ font-size: 13px;
9
+
10
+ li {
11
+ margin-top: 4px;
12
+ padding-left: 1rem;
13
+ position: relative;
14
+
15
+ &:before {
16
+ content: '•';
17
+ font-size: 17px;
18
+ line-height: 0;
19
+ position: absolute;
20
+ left: 0;
21
+ top: 7px;
22
+ }
23
+ }
24
+ `;
25
+
26
+ export { BasicBulletList };
27
+ //# sourceMappingURL=BasicBulletList.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasicBulletList.mjs","sources":["../src/BasicBulletList.jsx"],"sourcesContent":["import styled from 'styled-components'\n\nexport const BasicBulletList = styled.ul`\n margin-bottom: 0;\n font-size: 13px;\n\n li {\n margin-top: 4px;\n padding-left: 1rem;\n position: relative;\n\n &:before {\n content: '•';\n font-size: 17px;\n line-height: 0;\n position: absolute;\n left: 0;\n top: 7px;\n }\n }\n`"],"names":["BasicBulletList","styled","yakDomTag","attrs","className"],"mappings":";;;MAEaA,eAAe,GAAGC,MAAA,CAAAC,SAAA,QAAAC,KAAA,CAAA;EAAAC,SAAA,EAAA,0BAAA;AAAA,CAAA,CAAA,CAAA;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
@@ -0,0 +1,374 @@
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import React from 'react';
4
+ import { getColor } from '@startlibs/utils';
5
+ import { darken, transparentize } from 'polished';
6
+ import { styled, css } from '@yak/react';
7
+ import { Icon } from './Icon.mjs';
8
+ import { Link } from './Link.mjs';
9
+ import { Loading } from './Loading.mjs';
10
+
11
+ const _excluded = ["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"];
12
+ const DropdownIcon = styled(Icon).attrs({
13
+ className: "styled-dropdown-icon"
14
+ })`
15
+ position: absolute;
16
+ top: 51%;
17
+ transform: translateY(-50%);
18
+ right: 1rem;
19
+ font-size: 12px;
20
+ `;
21
+ const LockIcon = styled(Icon)`
22
+ position:absolute;
23
+ bottom: 10px;
24
+ right: .75rem;
25
+ left: auto;
26
+ top: auto;
27
+ font-size: 18px;
28
+ `;
29
+ const focus = css`
30
+ &:after{
31
+ content: '';
32
+ pointer-events: none;
33
+ position: absolute;
34
+ top: -3px;
35
+ right: -3px;
36
+ left: -3px;
37
+ bottom: -3px;
38
+ border-radius: ${props => props.rounded ? '100px' : '11px'};
39
+ border: 2px solid rgba(0, 0, 0, 0.15);
40
+ }
41
+ `;
42
+ const Button = styled(/*#__PURE__*/React.forwardRef((_ref, ref) => {
43
+ let {
44
+ type = "button",
45
+ locked,
46
+ color,
47
+ alpha,
48
+ success,
49
+ alert,
50
+ warning,
51
+ highlight,
52
+ light,
53
+ hover,
54
+ white,
55
+ icon,
56
+ onlyIcon,
57
+ small,
58
+ withDropdown,
59
+ onlyDropdown,
60
+ outline,
61
+ dashed,
62
+ textOnly,
63
+ isLoading,
64
+ isLoadingIcon,
65
+ dark,
66
+ innerAs: Wrapper = 'button',
67
+ className,
68
+ children,
69
+ rounded,
70
+ tabIndex = 1,
71
+ focused,
72
+ noFocus,
73
+ colorSet,
74
+ concealed,
75
+ concealedModule,
76
+ buttonRef
77
+ } = _ref,
78
+ props = _objectWithoutProperties(_ref, _excluded);
79
+ return /*#__PURE__*/React.createElement(Wrapper, _extends({
80
+ ref: ref || buttonRef,
81
+ tabIndex: tabIndex,
82
+ 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' : ''),
83
+ type: Wrapper === 'button' ? type : ''
84
+ }, props), icon && /*#__PURE__*/React.createElement(Icon, {
85
+ icon: icon,
86
+ "aria-hidden": "true"
87
+ }), isLoadingIcon && /*#__PURE__*/React.createElement(Loading, {
88
+ white: !light && !outline && !dashed && !white,
89
+ size: small ? '10' : '18',
90
+ borderWidth: small ? '2' : '3'
91
+ }), (withDropdown || onlyDropdown) && !locked && /*#__PURE__*/React.createElement(DropdownIcon, {
92
+ icon: "arrow-down",
93
+ "aria-hidden": "true"
94
+ }), locked && /*#__PURE__*/React.createElement(LockIcon, {
95
+ icon: "lock",
96
+ "aria-hidden": "true"
97
+ }), children, isLoading && /*#__PURE__*/React.createElement(Loading, {
98
+ white: !light && !outline && !dashed && !white,
99
+ absolute: true,
100
+ size: small && '16',
101
+ borderWidth: small && '3'
102
+ }));
103
+ })).attrs({
104
+ className: "styled-button styled-theme-button"
105
+ })`
106
+ vertical-align: top;
107
+ border: 0;
108
+ font-size: 13px;
109
+ border-radius: ${props => props.rounded ? '100px' : '8px'};
110
+ background: ${__yakProps => {
111
+ const v = getColor;
112
+ return typeof v === 'function' ? v(__yakProps) : v;
113
+ }};
114
+ color: white;
115
+ min-width: 8rem;
116
+ font-weight: 600;
117
+ display: inline-block;
118
+ /* line-height: 16px; */
119
+ text-align: center;
120
+ padding: 10px 1.25rem;
121
+ outline: none;
122
+ cursor: pointer;
123
+ position: relative;
124
+ text-decoration: none;
125
+ user-select: none;
126
+ flex-shrink: 0;
127
+ &:hover {
128
+ background: ${props => darken(0.05, getColor(props, true))};
129
+ }
130
+ &:active {
131
+ background: ${props => darken(0.08, getColor(props, true))};
132
+ }
133
+ ${props => props.nowrap && css`
134
+ white-space: nowrap;
135
+ `}
136
+ ${props => !props.noFocus && !props.isLoading && css`
137
+ &:focus {
138
+ ${focus}
139
+ }
140
+ ${props => props.focused && focus}
141
+ `}
142
+ & + & {
143
+ margin-left: 1rem;
144
+ }
145
+
146
+ ${props => props.hasErrors && css`
147
+ &:after {
148
+ content: '';
149
+ pointer-events: none;
150
+ position: absolute;
151
+ top: -4px;
152
+ right: -4px;
153
+ left: -4px;
154
+ bottom: -4px;
155
+ border-radius: ${props => props.rounded ? '100px' : '11px'};
156
+ border: 3px solid ${props => transparentize(0.7, getColor("alert")(props))};
157
+ }
158
+ `}
159
+ ${props => props.icon && css`
160
+ display: inline-flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ min-width: 3rem;
164
+ min-height: 3rem;
165
+ ${Icon} {
166
+ font-size: 23px;
167
+ margin-left: -4px;
168
+ margin-right: 8px;
169
+ pointer-events: none;
170
+ line-height: 0;
171
+ }
172
+ `}
173
+ ${props => props.onlyIcon && css`
174
+ padding: 0;
175
+ ${Icon} {
176
+ margin: 0;
177
+ }
178
+ `}
179
+ ${props => props.small && css`
180
+ font-size: 13px;
181
+ padding: 3px 1rem;
182
+ min-width: 2rem;
183
+ min-height: 2rem;
184
+ font-weight: 550;
185
+ ${props => props.icon && css`
186
+ ${Icon} {
187
+ font-size: 18px;
188
+ margin-left: -5px;
189
+ margin-right: 5px;
190
+ line-height: 0.9;
191
+ }
192
+ `}
193
+ ${props => props.onlyIcon && css`
194
+ padding: 0;
195
+ ${Icon} {
196
+ margin: 0;
197
+ }
198
+ `}
199
+ `}
200
+ ${props => props.big && css`
201
+ font-size: 14px;
202
+ padding: 13px 1.75rem;
203
+ min-height: 42px;
204
+ `}
205
+ ${props => props.withDropdown && css`
206
+ padding-right: 2.25rem;
207
+ text-align: left;
208
+ `}
209
+ ${props => props.onlyDropdown && css`
210
+ ${DropdownIcon} {
211
+ right: 50%;
212
+ transform: translate(50%,-50%);
213
+ }
214
+ `}
215
+ ${props => props.light && css`
216
+ background: ${__yakProps => {
217
+ const v = getColor('bluishGray');
218
+ return typeof v === 'function' ? v(__yakProps) : v;
219
+ }};
220
+ color: ${__yakProps => {
221
+ const v = getColor('gray90');
222
+ return typeof v === 'function' ? v(__yakProps) : v;
223
+ }};
224
+ &:hover {
225
+ background: ${props => darken(0.05, getColor('bluishGray')(props))};
226
+ }
227
+ &:active {
228
+ background: ${props => darken(0.08, getColor('bluishGray')(props))};
229
+ }
230
+ `}
231
+ ${props => props.lightAlert && css`
232
+ background: ${props => transparentize(0.86, getColor("alert")(props))};
233
+ color: ${__yakProps => {
234
+ const v = getColor('alert');
235
+ return typeof v === 'function' ? v(__yakProps) : v;
236
+ }};
237
+ &:hover {
238
+ background: ${props => transparentize(0.83, getColor("alert")(props))};
239
+ }
240
+ &:active {
241
+ background: ${props => transparentize(0.80, getColor("alert")(props))};
242
+ }
243
+ `}
244
+ ${props => props.lightWarning && css`
245
+ background: ${props => transparentize(0.84, darken(0.05, getColor('warning')(props)))};
246
+ color: ${props => darken(0.05, getColor('warning')(props))};
247
+ &:hover {
248
+ background: ${props => transparentize(0.78, darken(0.05, getColor('warning')(props)))};
249
+ }
250
+ &:active {
251
+ background: ${props => transparentize(0.76, darken(0.05, getColor('warning')(props)))};
252
+ }
253
+ `}
254
+ ${props => (props.outline || props.dashed || props.textOnly) && css`
255
+ color: ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)'};
256
+ background: none;
257
+ ${Icon}, ${DropdownIcon} {
258
+ color: ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)'};
259
+ }
260
+ &:before {
261
+ content: '';
262
+ /* 'none' explícito (não ''); yak representa cada interpolação como uma CSS custom property
263
+ (var()) — um var() que resolve pra string vazia dentro do shorthand "border" invalida a
264
+ declaração inteira pro navegador (diferente de uma string já resolvida como "1px cor",
265
+ que o parser aceita, tratando o espaço duplo como o token de estilo ausente). Com 'none'
266
+ (mesmo efeito visual de estilo ausente: computed border-width vira 0 de qualquer jeito),
267
+ o var() nunca fica vazio e o shorthand permanece válido nos dois modos. */
268
+ border: 1px ${props => props.outline ? 'solid' : props.dashed ? 'dashed' : 'none'} ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)'};
269
+ position: absolute;
270
+ top: 0;
271
+ right: 0;
272
+ bottom: 0;
273
+ left: 0;
274
+ border-radius: ${props => props.rounded ? '100px' : '8px'};
275
+ pointer-events: none;
276
+ }
277
+ &:hover {
278
+ background-color: rgba(0,0,0,0.05);
279
+ }
280
+ &:active {
281
+ background-color: rgba(0,0,0,0.08);
282
+ }
283
+ &:focus {
284
+ &:before {
285
+ box-shadow: 0 0 0 2px rgba(0,0,0,0.1);
286
+ ${props => props.textOnly && css`content: none;`}
287
+ }
288
+ &:after {
289
+ content: none;
290
+ }
291
+ }
292
+ `}
293
+ ${props => props.alpha && css`
294
+ background: rgba(0,0,0,0.45);
295
+ &:hover {
296
+ background: rgba(0,0,0,0.50);
297
+ }
298
+ &:active {
299
+ background: rgba(0,0,0,0.55);
300
+ }
301
+ `}
302
+ ${props => props.white && !props.outline && !props.dashed && css`
303
+ color: ${__yakProps => {
304
+ const v = getColor('main');
305
+ return typeof v === 'function' ? v(__yakProps) : v;
306
+ }};
307
+ background: #FFFFFF;
308
+ &:hover {
309
+ background: ${__yakProps => {
310
+ const v = darken(0.05, '#FFFFFF');
311
+ return typeof v === 'function' ? v(__yakProps) : v;
312
+ }};
313
+ }
314
+ &:active {
315
+ background: ${__yakProps => {
316
+ const v = darken(0.08, '#FFFFFF');
317
+ return typeof v === 'function' ? v(__yakProps) : v;
318
+ }};
319
+ }
320
+ `}
321
+ ${props => props.isLoading && css`
322
+ color: transparent !important;
323
+ pointer-events: none;
324
+ ${Icon} {
325
+ visibility: hidden;
326
+ }
327
+ `}
328
+ ${props => props.isLoadingIcon && css`
329
+ pointer-events: none;
330
+ ${Icon} {
331
+ visibility: hidden;
332
+ }
333
+ ${Loading} {
334
+ left: 10px;
335
+ position: absolute;
336
+ }
337
+ `}
338
+ @media (max-width: 600px) {
339
+ ${props => !props.small && !props.onlyIcon && css`
340
+ padding: 13px 1.5rem;
341
+ font-size: 14px;
342
+ `}
343
+ ${props => !props.small && props.onlyIcon && css`
344
+ min-width: 3.5rem;
345
+ min-height: 3.5rem;
346
+ `}
347
+ ${props => props.withDropdown && css`
348
+ padding-right: 2.5rem;
349
+ ${DropdownIcon} {
350
+ right: 14px;
351
+ }
352
+ `}
353
+ }
354
+ @media (max-width: 359px) {
355
+ ${props => !props.small && !props.onlyIcon && !props.onlyDropdown && css`
356
+ min-width: 0;
357
+ `}
358
+ }
359
+ ${props => props.fullwidth && css`
360
+ width: 100%;
361
+ `}
362
+
363
+ `;
364
+ Button.a = props => /*#__PURE__*/React.createElement(Button, _extends({}, props, {
365
+ className: props.className,
366
+ innerAs: "a"
367
+ }));
368
+ Button.Link = props => /*#__PURE__*/React.createElement(Button, _extends({}, props, {
369
+ className: props.className,
370
+ innerAs: Link
371
+ }));
372
+
373
+ export { Button, DropdownIcon, Button as default };
374
+ //# sourceMappingURL=Button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.mjs","sources":["../src/Button.jsx"],"sourcesContent":["import React from 'react'\n\nimport {customTheme, getColor, media, styledExtend} from '@startlibs/utils'\nimport {darken, transparentize} from 'polished'\nimport styled, {css} from 'styled-components'\n\nimport {Icon} from './Icon'\nimport {Link} from './Link'\nimport {Loading} from './Loading'\n\nexport const DropdownIcon = styledExtend(Icon)`\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n font-size: 12px;\n`\nconst LockIcon = styled(Icon)`\n position:absolute;\n bottom: 10px;\n right: .75rem;\n left: auto;\n top: auto;\n font-size: 18px;\n`\n\nconst focus = css`\n&:after{\n content: '';\n pointer-events: none;\n position: absolute;\n top: -3px;\n right: -3px;\n left: -3px;\n bottom: -3px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 2px solid rgba(0, 0, 0, 0.15);\n}\n`\n\nexport const Button = styled(React.forwardRef(({\n type = \"button\", locked, color, alpha, success, alert, warning, highlight, light, hover, white, icon, onlyIcon, small, withDropdown, onlyDropdown, outline, dashed, textOnly, isLoading, isLoadingIcon, dark,\n innerAs: Wrapper = 'button', className, children, rounded, tabIndex = 1, focused, noFocus,\n colorSet, concealed, concealedModule, buttonRef, ...props\n },ref) =>\n <Wrapper ref={ref || buttonRef} tabIndex={tabIndex} className={className + ' styled-button' + ((color || success || alert || warning || highlight || dark || hover || outline || dashed || textOnly || white || alpha || props.lightAlert || props.lightWarning) ? ' styled-button-colored' : '') + (small ? ' styled-button-small' : '')} type={Wrapper === 'button' ? type : ''} {...props}>\n {icon && <Icon icon={icon} aria-hidden=\"true\"/>}\n {isLoadingIcon && <Loading white={!light && !outline && !dashed && !white} size={small ? '10' : '18'} borderWidth={small ? '2' : '3'}/>}\n {(withDropdown || onlyDropdown) && !locked && <DropdownIcon icon='arrow-down' aria-hidden=\"true\"/>}\n {locked && <LockIcon icon=\"lock\" aria-hidden=\"true\"/>}\n {children}\n {isLoading && <Loading white={!light && !outline && !dashed && !white} absolute size={small && '16'} borderWidth={small && '3'} />}\n </Wrapper>))`\n vertical-align: top;\n border: 0;\n font-size: 13px;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n background: ${getColor};\n color: white;\n min-width: 8rem;\n font-weight: 600;\n display: inline-block;\n /* line-height: 16px; */\n text-align: center;\n padding: 10px 1.25rem;\n outline: none;\n cursor: pointer;\n position: relative;\n text-decoration: none;\n user-select: none;\n flex-shrink: 0;\n &:hover {\n background: ${props => darken(0.05, getColor(props, true))};\n }\n &:active {\n background: ${props => darken(0.08, getColor(props, true))};\n }\n ${props => props.nowrap && `\n white-space: nowrap;\n `}\n ${props => !props.noFocus && !props.isLoading && css`\n &:focus {\n ${focus}\n }\n ${props => props.focused && focus}\n `}\n & + & {\n margin-left: 1rem;\n }\n \n ${props => props.hasErrors && css`\n &:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: -4px;\n right: -4px;\n left: -4px;\n bottom: -4px;\n border-radius: ${props => props.rounded ? '100px' : '11px'};\n border: 3px solid ${props => transparentize(0.7, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.icon && css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 3rem;\n min-height: 3rem;\n ${Icon} {\n font-size: 23px;\n margin-left: -4px;\n margin-right: 8px;\n pointer-events: none;\n line-height: 0;\n }\n `}\n ${props => props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n ${props => props.small && css`\n font-size: 13px;\n padding: 3px 1rem;\n min-width: 2rem;\n min-height: 2rem;\n font-weight: 550;\n ${props => props.icon && css`\n ${Icon} {\n font-size: 18px;\n margin-left: -5px;\n margin-right: 5px;\n line-height: 0.9;\n }\n `}\n ${props => props.onlyIcon && css`\n padding: 0;\n ${Icon} {\n margin: 0;\n }\n `}\n `}\n ${props => props.big && css`\n font-size: 14px;\n padding: 13px 1.75rem;\n min-height: 42px;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.25rem;\n text-align: left;\n `}\n ${props => props.onlyDropdown && css`\n ${DropdownIcon} {\n right: 50%;\n transform: translate(50%,-50%);\n }\n `}\n ${props => props.light && css`\n background: ${getColor('bluishGray')};\n color: ${getColor('gray90')};\n &:hover {\n background: ${props => darken(0.05, getColor('bluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.08, getColor('bluishGray')(props))};\n }\n `}\n ${props => props.lightAlert && css`\n background: ${props => transparentize(0.86, getColor(\"alert\")(props))};\n color: ${getColor('alert')};\n &:hover {\n background: ${props => transparentize(0.83, getColor(\"alert\")(props))};\n }\n &:active {\n background: ${props => transparentize(0.80, getColor(\"alert\")(props))};\n }\n `}\n ${props => props.lightWarning && css`\n background: ${props => transparentize(0.84, darken(0.05, getColor('warning')(props)))};\n color: ${props => darken(0.05, getColor('warning')(props))};\n &:hover {\n background: ${props => transparentize(0.78, darken(0.05, getColor('warning')(props)))};\n }\n &:active {\n background: ${props => transparentize(0.76, darken(0.05, getColor('warning')(props)))};\n }\n `}\n ${props => (props.outline || props.dashed || props.textOnly) && css`\n color: ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.6)'};\n background: none;\n ${Icon}, ${DropdownIcon} {\n color: ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.5)'};\n }\n &:before {\n content: '';\n /* 'none' explícito (não ''); yak representa cada interpolação como uma CSS custom property\n (var()) — um var() que resolve pra string vazia dentro do shorthand \"border\" invalida a\n declaração inteira pro navegador (diferente de uma string já resolvida como \"1px cor\",\n que o parser aceita, tratando o espaço duplo como o token de estilo ausente). Com 'none'\n (mesmo efeito visual de estilo ausente: computed border-width vira 0 de qualquer jeito),\n o var() nunca fica vazio e o shorthand permanece válido nos dois modos. */\n border: 1px ${props => props.outline ? 'solid' : props.dashed ? 'dashed' : 'none'} ${props => props.white ? 'white' : props.highlight ? getColor('main') : 'rgba(0,0,0,0.35)'};\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n pointer-events: none;\n }\n &:hover {\n background-color: rgba(0,0,0,0.05);\n }\n &:active {\n background-color: rgba(0,0,0,0.08);\n }\n &:focus {\n &:before {\n box-shadow: 0 0 0 2px rgba(0,0,0,0.1);\n ${props => props.textOnly && 'content: none;'}\n }\n &:after {\n content: none;\n }\n }\n `}\n ${props => props.alpha && css`\n background: rgba(0,0,0,0.45);\n &:hover {\n background: rgba(0,0,0,0.50);\n }\n &:active {\n background: rgba(0,0,0,0.55);\n }\n `}\n ${props => props.white && !props.outline && !props.dashed && css`\n color: ${getColor('main')};\n background: #FFFFFF;\n &:hover {\n background: ${darken(0.05, '#FFFFFF')};\n }\n &:active {\n background: ${darken(0.08, '#FFFFFF')};\n }\n `}\n ${props => props.isLoading && css`\n color: transparent !important;\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n `}\n ${props => props.isLoadingIcon && css`\n pointer-events: none;\n ${Icon} {\n visibility: hidden;\n }\n ${Loading} {\n left: 10px;\n position: absolute;\n }\n `}\n ${media.mobile`\n ${props => !props.small && !props.onlyIcon && css`\n padding: 13px 1.5rem;\n font-size: 14px;\n `}\n ${props => !props.small && props.onlyIcon && css`\n min-width: 3.5rem;\n min-height: 3.5rem;\n `}\n ${props => props.withDropdown && css`\n padding-right: 2.5rem;\n ${DropdownIcon} {\n right: 14px;\n }\n `}\n `}\n ${media.max(359)`\n ${props => !props.small && !props.onlyIcon && !props.onlyDropdown && css`\n min-width: 0;\n `}\n `}\n ${props => props.fullwidth && `\n width: 100%;\n `}\n ${customTheme(\"Button\")}\n`\n\nButton.a = (props) => <Button {...props} className={props.className} innerAs=\"a\"/>\nButton.Link = (props) => <Button {...props} className={props.className} innerAs={Link}/>\nexport default Button\n"],"names":["DropdownIcon","styled","Icon","attrs","className","LockIcon","focus","css","props","rounded","Button","React","forwardRef","_ref","ref","type","locked","color","alpha","success","alert","warning","highlight","light","hover","white","icon","onlyIcon","small","withDropdown","onlyDropdown","outline","dashed","textOnly","isLoading","isLoadingIcon","dark","innerAs","Wrapper","children","tabIndex","focused","noFocus","colorSet","concealed","concealedModule","buttonRef","_objectWithoutProperties","_excluded","createElement","_extends","lightAlert","lightWarning","Loading","size","borderWidth","absolute","__yakProps","v","getColor","darken","nowrap","hasErrors","transparentize","big","fullwidth","a","Link"],"mappings":"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"}