@startlibs/utils 1.1.2 → 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 (107) hide show
  1. package/lib/ActionUtils.mjs +4 -4
  2. package/lib/ActionUtils.mjs.map +1 -1
  3. package/lib/FetchUtils.mjs.map +1 -1
  4. package/lib/animationKeyframes.mjs +11 -0
  5. package/lib/animationKeyframes.mjs.map +1 -0
  6. package/lib/createPressEvent.mjs +1 -1
  7. package/lib/createPressEvent.mjs.map +1 -1
  8. package/lib/fixMediaQuery.mjs +43 -17
  9. package/lib/fixMediaQuery.mjs.map +1 -1
  10. package/lib/fixMediaText.mjs +16 -0
  11. package/lib/fixMediaText.mjs.map +1 -0
  12. package/lib/formatDate.mjs.map +1 -1
  13. package/lib/formatUtils.mjs +2 -2
  14. package/lib/formatUtils.mjs.map +1 -1
  15. package/lib/getClosestOffsetScroll.mjs.map +1 -1
  16. package/lib/hooks/useEventListener.mjs.map +1 -1
  17. package/lib/index.cjs +311 -199
  18. package/lib/index.cjs.map +1 -1
  19. package/lib/index.mjs +5 -3
  20. package/lib/index.mjs.map +1 -1
  21. package/lib/insertKeyframes.mjs +68 -0
  22. package/lib/insertKeyframes.mjs.map +1 -0
  23. package/lib/lodashUtils.mjs +6 -6
  24. package/lib/lodashUtils.mjs.map +1 -1
  25. package/lib/promiseUtils.mjs.map +1 -1
  26. package/lib/reactUtils.mjs +1 -1
  27. package/lib/reactUtils.mjs.map +1 -1
  28. package/lib/reduceUtils.mjs.map +1 -1
  29. package/lib/smoothScroll.mjs.map +1 -1
  30. package/lib/styled.mjs +25 -144
  31. package/lib/styled.mjs.map +1 -1
  32. package/lib/styledShared.mjs +125 -0
  33. package/lib/styledShared.mjs.map +1 -0
  34. package/lib/timeUtils.mjs +1 -1
  35. package/lib/timeUtils.mjs.map +1 -1
  36. package/lib/timerUtils.mjs +0 -1
  37. package/lib/timerUtils.mjs.map +1 -1
  38. package/lib/utils.mjs +1 -1
  39. package/lib/utils.mjs.map +1 -1
  40. package/lib/wrapLazy.mjs +2 -2
  41. package/lib/wrapLazy.mjs.map +1 -1
  42. package/lib/yakDomTag.mjs +44 -0
  43. package/lib/yakDomTag.mjs.map +1 -0
  44. package/lib-yak/ActionUtils.mjs +117 -0
  45. package/lib-yak/ActionUtils.mjs.map +1 -0
  46. package/lib-yak/FetchUtils.mjs +100 -0
  47. package/lib-yak/FetchUtils.mjs.map +1 -0
  48. package/lib-yak/animationKeyframes.mjs +31 -0
  49. package/lib-yak/animationKeyframes.mjs.map +1 -0
  50. package/lib-yak/createPressEvent.mjs +74 -0
  51. package/lib-yak/createPressEvent.mjs.map +1 -0
  52. package/lib-yak/fixMediaQuery.mjs +90 -0
  53. package/lib-yak/fixMediaQuery.mjs.map +1 -0
  54. package/lib-yak/fixMediaText.mjs +16 -0
  55. package/lib-yak/fixMediaText.mjs.map +1 -0
  56. package/lib-yak/formatDate.mjs +110 -0
  57. package/lib-yak/formatDate.mjs.map +1 -0
  58. package/lib-yak/formatUtils.mjs +64 -0
  59. package/lib-yak/formatUtils.mjs.map +1 -0
  60. package/lib-yak/getClosestOffsetScroll.mjs +15 -0
  61. package/lib-yak/getClosestOffsetScroll.mjs.map +1 -0
  62. package/lib-yak/hooks/useEventListener.mjs +27 -0
  63. package/lib-yak/hooks/useEventListener.mjs.map +1 -0
  64. package/lib-yak/index.mjs +21 -0
  65. package/lib-yak/index.mjs.map +1 -0
  66. package/lib-yak/insertKeyframes.mjs +68 -0
  67. package/lib-yak/insertKeyframes.mjs.map +1 -0
  68. package/lib-yak/lodashUtils.mjs +131 -0
  69. package/lib-yak/lodashUtils.mjs.map +1 -0
  70. package/lib-yak/promiseUtils.mjs +92 -0
  71. package/lib-yak/promiseUtils.mjs.map +1 -0
  72. package/lib-yak/reactUtils.mjs +12 -0
  73. package/lib-yak/reactUtils.mjs.map +1 -0
  74. package/lib-yak/reduceUtils.mjs +14 -0
  75. package/lib-yak/reduceUtils.mjs.map +1 -0
  76. package/lib-yak/smoothScroll.mjs +59 -0
  77. package/lib-yak/smoothScroll.mjs.map +1 -0
  78. package/lib-yak/styled.mjs +23 -0
  79. package/lib-yak/styled.mjs.map +1 -0
  80. package/lib-yak/styledShared.mjs +129 -0
  81. package/lib-yak/styledShared.mjs.map +1 -0
  82. package/lib-yak/timeUtils.mjs +81 -0
  83. package/lib-yak/timeUtils.mjs.map +1 -0
  84. package/lib-yak/timerUtils.mjs +10 -0
  85. package/lib-yak/timerUtils.mjs.map +1 -0
  86. package/lib-yak/utils.mjs +386 -0
  87. package/lib-yak/utils.mjs.map +1 -0
  88. package/lib-yak/wrapLazy.mjs +132 -0
  89. package/lib-yak/wrapLazy.mjs.map +1 -0
  90. package/lib-yak/yakDomTag.mjs +44 -0
  91. package/lib-yak/yakDomTag.mjs.map +1 -0
  92. package/package.json +14 -3
  93. package/src/animationKeyframes.js +10 -0
  94. package/src/animationKeyframes.test.mjs +75 -0
  95. package/src/animationKeyframes.yak.js +30 -0
  96. package/src/fixMediaQuery.js +40 -19
  97. package/src/fixMediaText.js +18 -0
  98. package/src/fixMediaText.test.mjs +60 -0
  99. package/src/index.js +1 -0
  100. package/src/insertKeyframes.js +73 -0
  101. package/src/insertKeyframes.test.mjs +144 -0
  102. package/src/styled.js +5 -97
  103. package/src/styled.yak.js +30 -0
  104. package/src/styledShared.js +96 -0
  105. package/src/timerUtils.jsx +0 -2
  106. package/src/yakDomTag.jsx +42 -0
  107. package/src/yakDomTag.test.mjs +49 -0
package/lib/index.cjs CHANGED
@@ -12,16 +12,16 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
12
  var _isPlainObject = require('lodash/fp/isPlainObject');
13
13
  var _fromPairs = require('lodash/fp/fromPairs');
14
14
  var _isFinite = require('lodash/fp/isFinite');
15
- var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
16
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
17
15
  var _find = require('lodash/fp/find');
18
- var _reverse = require('lodash/fp/reverse');
19
16
  var _isEqual = require('lodash/fp/isEqual');
20
- var _isFunction = require('lodash/fp/isFunction');
21
17
  var _get = require('lodash/fp/get');
18
+ var _isFunction = require('lodash/fp/isFunction');
19
+ var styled = require('styled-components');
20
+ var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
21
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
22
+ var _reverse = require('lodash/fp/reverse');
22
23
  var _unset = require('lodash/fp/unset');
23
24
  var polished = require('polished');
24
- var styled = require('styled-components');
25
25
  var createEmotion = require('create-emotion');
26
26
  var _flow = require('lodash/fp/flow');
27
27
  var _without = require('lodash/fp/without');
@@ -55,15 +55,15 @@ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
55
55
  var _isPlainObject__default = /*#__PURE__*/_interopDefault(_isPlainObject);
56
56
  var _fromPairs__default = /*#__PURE__*/_interopDefault(_fromPairs);
57
57
  var _isFinite__default = /*#__PURE__*/_interopDefault(_isFinite);
58
- var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefault(_taggedTemplateLiteral);
59
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
60
58
  var _find__default = /*#__PURE__*/_interopDefault(_find);
61
- var _reverse__default = /*#__PURE__*/_interopDefault(_reverse);
62
59
  var _isEqual__default = /*#__PURE__*/_interopDefault(_isEqual);
63
- var _isFunction__default = /*#__PURE__*/_interopDefault(_isFunction);
64
60
  var _get__default = /*#__PURE__*/_interopDefault(_get);
65
- var _unset__default = /*#__PURE__*/_interopDefault(_unset);
61
+ var _isFunction__default = /*#__PURE__*/_interopDefault(_isFunction);
66
62
  var styled__default = /*#__PURE__*/_interopDefault(styled);
63
+ var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefault(_taggedTemplateLiteral);
64
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
65
+ var _reverse__default = /*#__PURE__*/_interopDefault(_reverse);
66
+ var _unset__default = /*#__PURE__*/_interopDefault(_unset);
67
67
  var createEmotion__default = /*#__PURE__*/_interopDefault(createEmotion);
68
68
  var _flow__default = /*#__PURE__*/_interopDefault(_flow);
69
69
  var _without__default = /*#__PURE__*/_interopDefault(_without);
@@ -96,7 +96,7 @@ const createPromiseResolverPair = () => {
96
96
  const createSimplePromiseLock = () => {
97
97
  let promiseQueue = Promise.resolve();
98
98
  return () => {
99
- let resolve = _identity__default['default'];
99
+ let resolve = _identity__default["default"];
100
100
  const nextPromise = new Promise(res => {
101
101
  resolve = res;
102
102
  });
@@ -109,12 +109,12 @@ function createSinglePromiseQueue() {
109
109
  return _createSinglePromiseQueue.apply(this, arguments);
110
110
  }
111
111
  function _createSinglePromiseQueue() {
112
- _createSinglePromiseQueue = _wrapAsyncGenerator__default['default'](function* () {
112
+ _createSinglePromiseQueue = _wrapAsyncGenerator__default["default"](function* () {
113
113
  let lastPromise = Promise.resolve();
114
114
  /* eslint-disable no-await-in-loop */
115
115
  while (true) {
116
- yield _awaitAsyncGenerator__default['default'](lastPromise);
117
- let resolve = _identity__default['default'];
116
+ yield _awaitAsyncGenerator__default["default"](lastPromise);
117
+ let resolve = _identity__default["default"];
118
118
  lastPromise = new Promise(res => {
119
119
  resolve = res;
120
120
  });
@@ -127,12 +127,12 @@ function createPromiseQueue() {
127
127
  return _createPromiseQueue.apply(this, arguments);
128
128
  }
129
129
  function _createPromiseQueue() {
130
- _createPromiseQueue = _wrapAsyncGenerator__default['default'](function () {
130
+ _createPromiseQueue = _wrapAsyncGenerator__default["default"](function () {
131
131
  let parallel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
132
132
  return function* () {
133
- const queues = _times__default['default'](createSinglePromiseQueue, parallel);
133
+ const queues = _times__default["default"](createSinglePromiseQueue, parallel);
134
134
  const promises = queues.map(q => q.next());
135
- const locks = yield _awaitAsyncGenerator__default['default'](Promise.all(promises));
135
+ const locks = yield _awaitAsyncGenerator__default["default"](Promise.all(promises));
136
136
  const getNextAvailableLock = async () => {
137
137
  const index = locks.findIndex(Boolean);
138
138
  if (index >= 0) {
@@ -147,7 +147,7 @@ function _createPromiseQueue() {
147
147
  return getNextAvailableLock();
148
148
  };
149
149
  while (true) {
150
- const lock = yield _awaitAsyncGenerator__default['default'](getNextAvailableLock());
150
+ const lock = yield _awaitAsyncGenerator__default["default"](getNextAvailableLock());
151
151
  yield lock;
152
152
  }
153
153
  }();
@@ -239,7 +239,23 @@ const smoothScroll = function (el) {
239
239
  step();
240
240
  };
241
241
 
242
+ // Soma a largura da scrollbar aos limites de largura de um mediaText.
243
+ // Reconhece a forma antiga (`max-width: 600px`, `min-width: 37.5em`, que o sc emite) e a
244
+ // sintaxe de intervalo (`width <= 600px`, `width < 600px`, `600px <= width`,
245
+ // `400px < width < 600px`), que o Chromium devolve para o CSS estático do yak.
246
+ // Sem lookbehind de propósito: é erro de sintaxe no Safari < 16.4, e o browserslist do pacote
247
+ // ainda promete Safari 11. O caractere antes de `width` é capturado e devolvido igual, só pra
248
+ // não casar o `width` de `device-width`.
249
+ const LEGACY_OR_WIDTH_FIRST = /(m(?:in|ax)-width\s*:\s*|(?:^|[^-\w])width\s*[<>]=?\s*)([\d.]+)(px|em)/gi;
250
+ const VALUE_FIRST = /([\d.]+)(px|em)(\s*[<>]=?\s*width)(?![-\w])/gi;
251
+ function fixMediaText(mediaText, scrollWidth, fontSize) {
252
+ const grow = (value, unit) => unit.toLowerCase() === 'px' ? parseFloat(value) + scrollWidth + unit : (parseFloat(value) * fontSize + scrollWidth) / fontSize + unit;
253
+ return mediaText.replace(LEGACY_OR_WIDTH_FIRST, (match, prefix, value, unit) => prefix + grow(value, unit)).replace(VALUE_FIRST, (match, value, unit, suffix) => grow(value, unit) + suffix);
254
+ }
255
+
242
256
  let fixed = false;
257
+ // Each rule may only get the scrollbar width added once, even if its sheet is seen again.
258
+ const patched = new WeakSet();
243
259
  const scrollWidth = function () {
244
260
  if (!window.document) return 0;
245
261
  const html = document.documentElement;
@@ -252,25 +268,47 @@ const scrollWidth = function () {
252
268
  const fixMediaQueryFn = function () {
253
269
  const fontSize = parseFloat(window.getComputedStyle(document.body).getPropertyValue('font-size'));
254
270
  if (scrollWidth > 0) {
255
- [].slice.call(document.styleSheets).filter(styleSheet => isValidExternal(styleSheet) || isInline(styleSheet)).forEach(stylesheet => {
256
- try {
257
- [].slice.call(stylesheet.cssRules || stylesheet.media).filter(rule => rule.constructor === window.CSSMediaRule).forEach(rule => {
258
- rule.media.mediaText = rule.media.mediaText.replace(/m(in|ax)-width:\s*(\d|\.)+(px|em)/gi, function (strA) {
259
- if (strA.match('px')) {
260
- return strA.replace(/\d+px/gi, function (strB) {
261
- return parseInt(strB, 10) + scrollWidth + 'px';
262
- });
263
- } else {
264
- return strA.replace(/\d.+?em/gi, function (strB) {
265
- return (parseFloat(strB) * fontSize + scrollWidth) / fontSize + 'em';
266
- });
267
- }
268
- });
269
- });
270
- } catch (e) {}
271
- });
271
+ [].slice.call(document.styleSheets).forEach(fixStylesheet);
272
+ watchLateStylesheets();
272
273
  }
273
274
  fixed = true;
275
+ function fixStylesheet(stylesheet) {
276
+ if (!stylesheet || patched.has(stylesheet) || !(isValidExternal(stylesheet) || isInline(stylesheet))) {
277
+ return;
278
+ }
279
+ try {
280
+ [].slice.call(stylesheet.cssRules).filter(rule => rule.constructor === window.CSSMediaRule).forEach(rule => {
281
+ rule.media.mediaText = fixMediaText(rule.media.mediaText, scrollWidth, fontSize);
282
+ });
283
+ patched.add(stylesheet);
284
+ } catch (e) {}
285
+ }
286
+
287
+ // Lazy routes add <link>s, and Vite dev and HMR add or rewrite <style>s, after the first pass.
288
+ function watchLateStylesheets() {
289
+ new MutationObserver(mutations => mutations.forEach(_ref => {
290
+ let target = _ref.target,
291
+ addedNodes = _ref.addedNodes;
292
+ const owner = target.nodeType === Node.TEXT_NODE ? target.parentNode : target;
293
+ if (owner && owner.nodeName === 'STYLE') {
294
+ fixStylesheet(owner.sheet);
295
+ }
296
+ [].slice.call(addedNodes).forEach(node => {
297
+ if (node.nodeName === 'STYLE') {
298
+ fixStylesheet(node.sheet);
299
+ }
300
+ if (node.nodeName === 'LINK' && node.rel === 'stylesheet') {
301
+ // Not parsed yet when added; `load` also fires again if its href changes.
302
+ node.addEventListener('load', () => fixStylesheet(node.sheet));
303
+ fixStylesheet(node.sheet);
304
+ }
305
+ });
306
+ })).observe(document.head, {
307
+ childList: true,
308
+ subtree: true,
309
+ characterData: true
310
+ });
311
+ }
274
312
  function sameOrigin(url) {
275
313
  const loc = window.location,
276
314
  a = document.createElement('a');
@@ -401,7 +439,7 @@ const formatHour = function () {
401
439
  }
402
440
  const h = hour.toString().replace(":", "").slice(-4, -2);
403
441
  const m = hour.toString().replace(":", "").slice(-2);
404
- if (!h && parseInt(m) < 24 && !_isFinite__default['default'](hour)) {
442
+ if (!h && parseInt(m) < 24 && !_isFinite__default["default"](hour)) {
405
443
  return m + ":00";
406
444
  } else if (h) {
407
445
  return (parseInt(h, 10) > 23 ? h.slice(1) : h) + ':' + m;
@@ -513,7 +551,7 @@ function safeNewLineToBr(str, keepMany) {
513
551
  }
514
552
  function padGroups(pattern, value) {
515
553
  return pattern.split('').reduce((_ref2, char, i) => {
516
- let _ref3 = _slicedToArray__default['default'](_ref2, 2),
554
+ let _ref3 = _slicedToArray__default["default"](_ref2, 2),
517
555
  acc = _ref3[0],
518
556
  value = _ref3[1];
519
557
  if (char === '0') {
@@ -645,7 +683,7 @@ const isElementInView = async element => {
645
683
  if (IntersectionObserver) {
646
684
  return new Promise(resolve => {
647
685
  const o = new IntersectionObserver(_ref4 => {
648
- let _ref5 = _slicedToArray__default['default'](_ref4, 1),
686
+ let _ref5 = _slicedToArray__default["default"](_ref4, 1),
649
687
  entry = _ref5[0];
650
688
  resolve(entry.intersectionRatio === 1);
651
689
  o.disconnect();
@@ -657,7 +695,7 @@ const isElementInView = async element => {
657
695
  };
658
696
  let i = 0;
659
697
  const getUID = () => Date.now().toString(36) + Math.random().toString(36).slice(2) + (i++).toString(36);
660
- const getUrlParams = () => _fromPairs__default['default'](Array.from(new URLSearchParams(location.search).entries()));
698
+ const getUrlParams = () => _fromPairs__default["default"](Array.from(new URLSearchParams(location.search).entries()));
661
699
  const isShallowEqualSameKeys = (a, b) => {
662
700
  for (var key in a) {
663
701
  if (a[key] !== b[key]) {
@@ -680,11 +718,11 @@ const isShallowEqual = (a, b) => {
680
718
  return true;
681
719
  };
682
720
 
683
- function ownKeys(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; }
684
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default['default'](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
721
+ function ownKeys$3(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; }
722
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
685
723
  const resolveFetch = async (url, fetchOptions) => {
686
724
  try {
687
- const response = await fetch(url, _objectSpread({
725
+ const response = await fetch(url, _objectSpread$3({
688
726
  credentials: 'same-origin'
689
727
  }, fetchOptions));
690
728
  const text = await response.text();
@@ -700,7 +738,7 @@ const resolveFetch = async (url, fetchOptions) => {
700
738
  };
701
739
  const innerFetcher = async (url, fetchOptions) => {
702
740
  const _await$resolveFetch = await resolveFetch(url, fetchOptions),
703
- _await$resolveFetch2 = _slicedToArray__default['default'](_await$resolveFetch, 2),
741
+ _await$resolveFetch2 = _slicedToArray__default["default"](_await$resolveFetch, 2),
704
742
  data = _await$resolveFetch2[0],
705
743
  response = _await$resolveFetch2[1];
706
744
  if (!response || response.status >= 400) {
@@ -717,7 +755,7 @@ const addQueryString = function () {
717
755
  let existingUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
718
756
  let obj = arguments.length > 1 ? arguments[1] : undefined;
719
757
  const _existingUrl$split = existingUrl.split('?'),
720
- _existingUrl$split2 = _slicedToArray__default['default'](_existingUrl$split, 2),
758
+ _existingUrl$split2 = _slicedToArray__default["default"](_existingUrl$split, 2),
721
759
  onlyUrl = _existingUrl$split2[0],
722
760
  otherQueryString = _existingUrl$split2[1];
723
761
  const params = new URLSearchParams(otherQueryString);
@@ -742,112 +780,119 @@ const cleanNulls = str => str.replace(/\0/g, '');
742
780
  const isSameOrigin = url => new URL(url, window.location.href).origin === window.location.origin;
743
781
  let postFetcherWithResponse = async function (url, jsonOrForm) {
744
782
  let fetchOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
745
- return innerFetcher(url, _objectSpread(_objectSpread({
783
+ return innerFetcher(url, _objectSpread$3(_objectSpread$3({
746
784
  method: 'POST',
747
785
  body: typeof jsonOrForm === 'string' ? jsonOrForm : !jsonOrForm || jsonOrForm.constructor === window.FormData || jsonOrForm.constructor === window.File ? jsonOrForm : cleanNulls(JSON.stringify(jsonOrForm))
748
786
  }, fetchOptions), {}, {
749
- headers: _isPlainObject__default['default'](fetchOptions.headers) || !fetchOptions.headers ? _objectSpread(_objectSpread(_objectSpread({}, jsonOrForm && (typeof jsonOrForm === 'string' || jsonOrForm.constructor === window.FormData) ? {} : {
787
+ headers: _isPlainObject__default["default"](fetchOptions.headers) || !fetchOptions.headers ? _objectSpread$3(_objectSpread$3(_objectSpread$3({}, jsonOrForm && (typeof jsonOrForm === 'string' || jsonOrForm.constructor === window.FormData) ? {} : {
750
788
  'Content-Type': 'application/json; charset=UTF-8'
751
789
  }), isSameOrigin(url) ? {
752
790
  'X-Requested-With': 'XMLHttpRequest'
753
791
  } : {}), fetchOptions.headers) : fetchOptions.headers
754
792
  }));
755
793
  };
756
- let getFetcherWithResponse = async (url, jsonParams, fetchOptions) => innerFetcher(addQueryString(url, jsonParams), _objectSpread(_objectSpread({
794
+ let getFetcherWithResponse = async (url, jsonParams, fetchOptions) => innerFetcher(addQueryString(url, jsonParams), _objectSpread$3(_objectSpread$3({
757
795
  method: 'GET'
758
796
  }, fetchOptions), {}, {
759
- headers: _objectSpread(_objectSpread({}, isSameOrigin(url) ? {
797
+ headers: _objectSpread$3(_objectSpread$3({}, isSameOrigin(url) ? {
760
798
  'X-Requested-With': 'XMLHttpRequest'
761
799
  } : {}), fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.headers)
762
800
  }));
763
801
  let postFetcher = async (url, json, options) => postFetcherWithResponse(url, json, options).then(_ref => {
764
- let _ref2 = _slicedToArray__default['default'](_ref, 1),
802
+ let _ref2 = _slicedToArray__default["default"](_ref, 1),
765
803
  json = _ref2[0];
766
804
  return json;
767
805
  });
768
806
  let getFetcher = async (url, json, options) => getFetcherWithResponse(url, json, options).then(_ref3 => {
769
- let _ref4 = _slicedToArray__default['default'](_ref3, 1),
807
+ let _ref4 = _slicedToArray__default["default"](_ref3, 1),
770
808
  json = _ref4[0];
771
809
  return json;
772
810
  });
773
811
  const formFetchWithResponse = (url, options) => (values, meta) => postFetcherWithResponse(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values));
774
812
  const formFetch = (url, options) => (values, meta) => postFetcher(callIfFunction(url, meta, values), values, callIfFunction(options, meta, values));
775
813
 
776
- const moveElement = _curry__default['default']((from, to, list) => {
814
+ // Saída sc (lib/): o keyframes do emotion, como sempre foi. A saída yak (lib-yak/) usa
815
+ // animationKeyframes.yak.js no lugar deste arquivo (ver tools/rollup.base.mjs).
816
+ const emotion = createEmotion__default["default"]({
817
+ nonce: typeof document !== 'undefined' && (document.querySelector('meta[property="csp-nonce"]') || {}).content || 'animation_nonce'
818
+ });
819
+ const animationKeyframes = emotion.keyframes;
820
+
821
+ const moveElement = _curry__default["default"]((from, to, list) => {
777
822
  const el = list[from];
778
- const without = _pullAt__default['default'](from, list);
823
+ const without = _pullAt__default["default"](from, list);
779
824
  without.splice(to, 0, el);
780
825
  return without;
781
826
  });
782
- const unsetOrRemoveAt = _curry__default['default']((path, value) => {
827
+ const unsetOrRemoveAt = _curry__default["default"]((path, value) => {
783
828
  const pathArr = toPath(path);
784
829
  const _pathArr$slice = pathArr.slice(-1),
785
- _pathArr$slice2 = _slicedToArray__default['default'](_pathArr$slice, 1),
830
+ _pathArr$slice2 = _slicedToArray__default["default"](_pathArr$slice, 1),
786
831
  lastKey = _pathArr$slice2[0];
787
832
  return update(pathArr.slice(0, -1), v => Array.isArray(v) ? removeAt(lastKey, v) : unset(lastKey, v), value);
788
833
  });
789
834
  const pathToString = path => toPath(path).join(".");
790
835
  const sanitizePath = path => Array.isArray(path) ? path.map(sanitizePath) : typeof path === 'number' ? path.toString() : path === undefined ? [] : path;
791
- const toPath = path => _toPath__default['default'](sanitizePath(path));
836
+ const toPath = path => _toPath__default["default"](sanitizePath(path));
792
837
  const isEmptyPath = path => path && !path.length;
793
- const update = _curry__default['default']((path, updater, state) => {
838
+ const update = _curry__default["default"]((path, updater, state) => {
794
839
  const sanitizedPath = sanitizePath(path);
795
840
  if (isEmptyPath(sanitizedPath)) {
796
841
  return updater(state);
797
842
  } else {
798
- return _update__default['default'](sanitizedPath, updater, state);
843
+ return _update__default["default"](sanitizedPath, updater, state);
799
844
  }
800
845
  });
801
- const get = _curry__default['default']((path, state) => {
846
+ const get = _curry__default["default"]((path, state) => {
802
847
  const sanitizedPath = sanitizePath(path);
803
848
  if (isEmptyPath(sanitizedPath)) {
804
849
  return state;
805
850
  } else {
806
- return _get__default['default'](sanitizedPath, state);
851
+ return _get__default["default"](sanitizedPath, state);
807
852
  }
808
853
  });
809
- const set = _curry__default['default']((path, value, state) => {
854
+ const set = _curry__default["default"]((path, value, state) => {
810
855
  const sanitizedPath = sanitizePath(path);
811
856
  if (isEmptyPath(sanitizedPath)) {
812
857
  return value;
813
858
  } else {
814
- return _set__default['default'](sanitizedPath, value, state);
859
+ return _set__default["default"](sanitizedPath, value, state);
815
860
  }
816
861
  });
817
- const unset = _curry__default['default']((path, state) => {
862
+ const unset = _curry__default["default"]((path, state) => {
818
863
  const sanitizedPath = sanitizePath(path);
819
864
  if (isEmptyPath(sanitizedPath)) {
820
865
  return undefined;
821
866
  } else {
822
- return _unset__default['default'](sanitizedPath, state);
867
+ return _unset__default["default"](sanitizedPath, state);
823
868
  }
824
869
  });
825
- const removeNAt = _curry__default['default']((pos, n, value) => [...value.slice(0, Number(pos)), ...value.slice(Number(pos) + n)]);
826
- const removeAt = removeNAt(_2__default['default'], 1);
827
- const when = _curry__default['default']((cond, fn, value) => callIfFunction(cond, value) ? fn(value) : value);
828
- const assign = _curry__default['default']((a, b) => _assign__default['default'](b, a));
829
- const concat = _curry__default['default']((a, b) => _concat__default['default'](b, a));
830
- const each = _each__default['default'].convert({
870
+ const removeNAt = _curry__default["default"]((pos, n, value) => [...value.slice(0, Number(pos)), ...value.slice(Number(pos) + n)]);
871
+ const removeAt = removeNAt(_2__default["default"], 1);
872
+ const when = _curry__default["default"]((cond, fn, value) => callIfFunction(cond, value) ? fn(value) : value);
873
+ const assign = _curry__default["default"]((a, b) => _assign__default["default"](b, a));
874
+ const concat = _curry__default["default"]((a, b) => _concat__default["default"](b, a));
875
+ const each = _each__default["default"].convert({
831
876
  cap: false
832
877
  });
833
- const find = _find__default['default'].convert({
878
+ const find = _find__default["default"].convert({
834
879
  cap: false
835
880
  });
836
- const filter = _filter__default['default'].convert({
881
+ const filter = _filter__default["default"].convert({
837
882
  cap: false
838
883
  });
839
- const map = _map__default['default'].convert({
884
+ const map = _map__default["default"].convert({
840
885
  cap: false
841
886
  });
842
- const mapValues = _mapValues__default['default'].convert({
887
+ const mapValues = _mapValues__default["default"].convert({
843
888
  cap: false
844
889
  });
845
- const flatMap = _flatMap__default['default'].convert({
890
+ const flatMap = _flatMap__default["default"].convert({
846
891
  cap: false
847
892
  });
848
- const insertAt = _curry__default['default']((pos, newElements, value) => [...value.slice(0, pos).concat(newElements), ...value.slice(pos)]);
849
- const select = _curry__default['default']((selector, value) => (_isFunction__default['default'](selector) ? selector : selector ? _get__default['default'](selector) : _identity__default['default'])(value));
850
- const itemToggle = _curry__default['default']((item, list) => (list || []).indexOf(item) >= 0 ? _without__default['default']([item], list) : [...(list || []), item]);
893
+ const insertAt = _curry__default["default"]((pos, newElements, value) => [...value.slice(0, pos).concat(newElements), ...value.slice(pos)]);
894
+ const select = _curry__default["default"]((selector, value) => (_isFunction__default["default"](selector) ? selector : selector ? _get__default["default"](selector) : _identity__default["default"])(value));
895
+ const itemToggle = _curry__default["default"]((item, list) => (list || []).indexOf(item) >= 0 ? _without__default["default"]([item], list) : [...(list || []), item]);
851
896
  const _s = {
852
897
  moveElement,
853
898
  unsetOrRemoveAt,
@@ -875,14 +920,14 @@ const _s = {
875
920
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
876
921
  args[_key] = arguments[_key];
877
922
  }
878
- return _flow__default['default'](...args.filter(Boolean));
923
+ return _flow__default["default"](...args.filter(Boolean));
879
924
  }
880
925
  };
881
926
 
882
927
  var _templateObject;
883
928
  const _excluded = ["theme"];
884
- function ownKeys$1(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; }
885
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default['default'](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
929
+ function ownKeys$2(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; }
930
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
886
931
  const getColor = (propsOrColor, hover) => {
887
932
  if (propsOrColor === undefined) {
888
933
  return _ref => {
@@ -897,11 +942,11 @@ const getColor = (propsOrColor, hover) => {
897
942
  };
898
943
  }
899
944
  const theme = propsOrColor.theme,
900
- props = _objectWithoutProperties__default['default'](propsOrColor, _excluded);
945
+ props = _objectWithoutProperties__default["default"](propsOrColor, _excluded);
901
946
  if (props.dark) {
902
- return polished.darken(0.1, getColor(_objectSpread$1({
947
+ return polished.darken(0.1, getColor(_objectSpread$2({
903
948
  theme
904
- }, _unset__default['default']('dark', props))));
949
+ }, _unset__default["default"]('dark', props))));
905
950
  } else if (hover && props.hover) {
906
951
  return getColor({
907
952
  theme,
@@ -930,11 +975,65 @@ const getMargin = enumeratedMargins => props => enumeratedMargins[props.margin]
930
975
  */
931
976
  const prop = (path, defaultValue) => function () {
932
977
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
933
- return _get__default['default'](path.trim(), props) || defaultValue;
978
+ return _get__default["default"](path.trim(), props) || defaultValue;
934
979
  };
935
980
  const customTheme = type => function () {
936
981
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
937
- return _get__default['default'](["theme", "startlibs", type], props) || '';
982
+ return _get__default["default"](["theme", "startlibs", type], props) || '';
983
+ };
984
+ const vheight = (strings, size) => {
985
+ const propType = strings[0];
986
+ const calc = (strings[1] || "").replace(";", "").trim();
987
+ return "\n ".concat(propType, " ").concat(calc ? "calc(".concat(size, "vh ").concat(calc, ")") : "".concat(size, "vh"), ";\n ").concat(propType, " ").concat(calc ? "calc(calc(var(--vh, 1vh) * ".concat(size, ") ").concat(calc, ")") : "calc(var(--vh, 1vh) * ".concat(size, ")"), ";\n ");
988
+ };
989
+ const getFrameOffset = (i, total) => Math.round(i * 100 / (total - 1));
990
+ const oneWayAnimation = function () {
991
+ for (var _len = arguments.length, frames = new Array(_len), _key = 0; _key < _len; _key++) {
992
+ frames[_key] = arguments[_key];
993
+ }
994
+ return animationKeyframes(_templateObject || (_templateObject = _taggedTemplateLiteral__default["default"](["\n ", ""])), frames.map((frame, i) => !frame ? '' : "".concat(getFrameOffset(i, frames.length), "% {\n ").concat(frame, "\n }")));
995
+ };
996
+ const twoWayAnimation = function () {
997
+ for (var _len2 = arguments.length, frames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
998
+ frames[_key2] = arguments[_key2];
999
+ }
1000
+ return [frames, _reverse__default["default"](frames)].map(frames => oneWayAnimation(...frames));
1001
+ };
1002
+ const animationTiming = props => function () {
1003
+ for (var _len3 = arguments.length, animations = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1004
+ animations[_key3] = arguments[_key3];
1005
+ }
1006
+ return animations.filter(_ => _).map(_ => _ + ' ' + props).join(',');
1007
+ };
1008
+ const identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);');
1009
+ const identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;');
1010
+ function testSinglePath(props, path) {
1011
+ if (typeof path === 'string') {
1012
+ return !!_s.get(path, props);
1013
+ } else if (typeof path === 'number') {
1014
+ return !!props[path];
1015
+ } else {
1016
+ return false;
1017
+ }
1018
+ }
1019
+
1020
+ // ifProp na forma antiga (valor pronto, não template): devolve pass ou fail
1021
+ const ifPropValue = (path, pass, fail) => function () {
1022
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1023
+ let result = false;
1024
+ if (Array.isArray(path)) {
1025
+ result = path.every(p => testSinglePath(props, p));
1026
+ } else if (typeof path === 'object') {
1027
+ result = !Object.entries(path).find(_ref3 => {
1028
+ let _ref4 = _slicedToArray__default["default"](_ref3, 2),
1029
+ k = _ref4[0],
1030
+ v = _ref4[1];
1031
+ return props[k] !== v;
1032
+ });
1033
+ } else {
1034
+ result = testSinglePath(props, path);
1035
+ }
1036
+ return result ? pass : fail;
938
1037
  };
939
1038
 
940
1039
  /**
@@ -952,50 +1051,34 @@ const customTheme = type => function () {
952
1051
  *`
953
1052
  */
954
1053
  const ifProp = (path, pass, fail) => {
955
- if (pass && !_isFunction__default['default'](pass)) {
1054
+ if (pass && !_isFunction__default["default"](pass)) {
956
1055
  // old version
957
- return function () {
958
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
959
- let result = false;
960
- if (Array.isArray(path)) {
961
- result = path.every(p => testSinglePath(props, p));
962
- } else if (typeof path === 'object') {
963
- result = !Object.entries(path).find(_ref3 => {
964
- let _ref4 = _slicedToArray__default['default'](_ref3, 2),
965
- k = _ref4[0],
966
- v = _ref4[1];
967
- return props[k] !== v;
968
- });
969
- } else {
970
- result = testSinglePath(props, path);
971
- }
972
- return result ? pass : fail;
973
- };
1056
+ return ifPropValue(path, pass, fail);
974
1057
  } else {
975
1058
  return function () {
976
1059
  for (var _len = arguments.length, argsTrue = new Array(_len), _key = 0; _key < _len; _key++) {
977
1060
  argsTrue[_key] = arguments[_key];
978
1061
  }
979
- const check = pass || _identity__default['default'];
980
- const fn = props => check(_get__default['default'](path, props)) ? styled.css(...argsTrue) : '';
1062
+ const check = pass || _identity__default["default"];
1063
+ const fn = props => check(_get__default["default"](path, props)) ? styled.css(...argsTrue) : '';
981
1064
  fn.orElse = function () {
982
1065
  for (var _len2 = arguments.length, argsFalse = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
983
1066
  argsFalse[_key2] = arguments[_key2];
984
1067
  }
985
- return props => check(_get__default['default'](path, props)) ? styled.css(...argsTrue) : styled.css(...argsFalse);
1068
+ return props => check(_get__default["default"](path, props)) ? styled.css(...argsTrue) : styled.css(...argsFalse);
986
1069
  };
987
1070
  return fn;
988
1071
  };
989
1072
  }
990
1073
  };
991
- const ifPropEquals = (path, str) => ifProp(path, _isEqual__default['default'](str));
1074
+ const ifPropEquals = (path, str) => ifProp(path, _isEqual__default["default"](str));
992
1075
  const ifNotProp = path => ifProp(path, v => !v);
993
1076
  const checkCustomScreenWidth = (sizeParis, customWidth) => {
994
1077
  const currentWidth = callIfFunction(customWidth);
995
- return !sizeParis.find(_ref5 => {
996
- let _ref6 = _slicedToArray__default['default'](_ref5, 2),
997
- size = _ref6[0],
998
- type = _ref6[1];
1078
+ return !sizeParis.find(_ref => {
1079
+ let _ref2 = _slicedToArray__default["default"](_ref, 2),
1080
+ size = _ref2[0],
1081
+ type = _ref2[1];
999
1082
  if (type === "min-width") {
1000
1083
  return currentWidth < size;
1001
1084
  }
@@ -1014,10 +1097,10 @@ const media = function () {
1014
1097
  }
1015
1098
  return styled.css(["", ""], props => {
1016
1099
  var _props$theme, _props$theme2;
1017
- return (_props$theme = props.theme) !== null && _props$theme !== void 0 && _props$theme.overrideMediaWidth ? checkCustomScreenWidth(sizePairs, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.overrideMediaWidth) ? styled.css(...args) : "" : styled.css(["@media ", "{", "}"], sizePairs.map(_ref7 => {
1018
- let _ref8 = _slicedToArray__default['default'](_ref7, 2),
1019
- size = _ref8[0],
1020
- type = _ref8[1];
1100
+ return (_props$theme = props.theme) !== null && _props$theme !== void 0 && _props$theme.overrideMediaWidth ? checkCustomScreenWidth(sizePairs, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.overrideMediaWidth) ? styled.css(...args) : "" : styled.css(["@media ", "{", "}"], sizePairs.map(_ref3 => {
1101
+ let _ref4 = _slicedToArray__default["default"](_ref3, 2),
1102
+ size = _ref4[0],
1103
+ type = _ref4[1];
1021
1104
  return "(".concat(type, ": ").concat(size + scrollWidth, "px)");
1022
1105
  }).join(' and '), styled.css(...args));
1023
1106
  });
@@ -1028,70 +1111,98 @@ media.between = (min, max) => media([min, 'min-width'], [max, 'max-width']);
1028
1111
  media.max = n => media([n, 'max-width']);
1029
1112
  media.min = n => media([n, 'min-width']);
1030
1113
  media.desktop = media([601, 'min-width']);
1031
- const vheight = (strings, size) => {
1032
- const propType = strings[0];
1033
- const calc = (strings[1] || "").replace(";", "").trim();
1034
- return "\n ".concat(propType, " ").concat(calc ? "calc(".concat(size, "vh ").concat(calc, ")") : "".concat(size, "vh"), ";\n ").concat(propType, " ").concat(calc ? "calc(calc(var(--vh, 1vh) * ".concat(size, ") ").concat(calc, ")") : "calc(var(--vh, 1vh) * ".concat(size, ")"), ";\n ");
1035
- };
1036
- function testSinglePath(props, path) {
1037
- if (typeof path === 'string') {
1038
- return !!_s.get(path, props);
1039
- } else if (typeof path === 'number') {
1040
- return !!props[path];
1041
- } else {
1042
- return false;
1043
- }
1044
- }
1045
- const getFrameOffset = (i, total) => Math.round(i * 100 / (total - 1));
1046
- const emotion = createEmotion__default['default']({
1047
- nonce: typeof document !== 'undefined' && (document.querySelector('meta[property="csp-nonce"]') || {}).content || 'animation_nonce'
1048
- });
1049
- const oneWayAnimation = function () {
1050
- for (var _len5 = arguments.length, frames = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1051
- frames[_key5] = arguments[_key5];
1052
- }
1053
- return emotion.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral__default['default'](["\n ", ""])), frames.map((frame, i) => !frame ? '' : "".concat(getFrameOffset(i, frames.length), "% {\n ").concat(frame, "\n }")));
1054
- };
1055
- const twoWayAnimation = function () {
1056
- for (var _len6 = arguments.length, frames = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1057
- frames[_key6] = arguments[_key6];
1058
- }
1059
- return [frames, _reverse__default['default'](frames)].map(frames => oneWayAnimation(...frames));
1060
- };
1061
- const animationTiming = props => function () {
1062
- for (var _len7 = arguments.length, animations = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1063
- animations[_key7] = arguments[_key7];
1064
- }
1065
- return animations.filter(_ => _).map(_ => _ + ' ' + props).join(',');
1066
- };
1067
- const identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);');
1068
- const identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;');
1069
- const styledExtend = _ref9 => {
1070
- let target = _ref9.target,
1071
- componentStyle = _ref9.componentStyle;
1114
+ const styledExtend = _ref5 => {
1115
+ let target = _ref5.target,
1116
+ componentStyle = _ref5.componentStyle;
1072
1117
  return function () {
1073
- const wasStatic = !_find__default['default'](_isFunction__default['default'], componentStyle.rules);
1074
- for (var _len8 = arguments.length, template = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
1075
- template[_key8] = arguments[_key8];
1118
+ const wasStatic = !_find__default["default"](_isFunction__default["default"], componentStyle.rules);
1119
+ for (var _len5 = arguments.length, template = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1120
+ template[_key5] = arguments[_key5];
1076
1121
  }
1077
- const v = /*#__PURE__*/styled__default['default'](target)(...template, ...(wasStatic ? [] : [() => ""]));
1122
+ const v = /*#__PURE__*/styled__default["default"](target)(...template, ...(wasStatic ? [] : [() => ""]));
1078
1123
  v.componentStyle.rules = [...componentStyle.rules, ...v.componentStyle.rules];
1079
1124
  return v;
1080
1125
  };
1081
1126
  };
1082
1127
  const printerMedia = function () {
1083
- for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
1084
- args[_key9] = arguments[_key9];
1128
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1129
+ args[_key6] = arguments[_key6];
1085
1130
  }
1086
1131
  return props => props.theme.printMode ? styled.css(...args) : styled.css(["@media print{", "}"], styled.css(...args));
1087
1132
  };
1088
1133
  const notPrinterMedia = function () {
1089
- for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) {
1090
- args[_key0] = arguments[_key0];
1134
+ for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
1135
+ args[_key7] = arguments[_key7];
1091
1136
  }
1092
1137
  return props => props.theme.printMode ? '' : styled.css(["@media screen{", "}"], styled.css(...args));
1093
1138
  };
1094
1139
 
1140
+ // Registra um @keyframes pelo CSSOM, sem criar <style> na página: funciona com CSP
1141
+ // `style-src 'self'` sem nonce. Ordem de tentativa:
1142
+ // 1. uma folha construída (new CSSStyleSheet) em document.adoptedStyleSheets;
1143
+ // 2. browser sem folha construída: insertRule numa folha do próprio site já carregada
1144
+ // (de preferência um <link>, que nenhum runtime de CSS-in-JS gerencia);
1145
+ // 3. nenhuma das duas: <style> com o nonce do <meta property="csp-nonce">, se houver.
1146
+ // Cada nome entra uma vez só; quem chama garante que nome igual é conteúdo igual.
1147
+ const inserted = new Set();
1148
+ let adoptedSheet = null;
1149
+ let pageSheet = null;
1150
+ const canAdoptSheets = () => typeof CSSStyleSheet !== 'undefined' && 'replaceSync' in CSSStyleSheet.prototype && 'adoptedStyleSheets' in document;
1151
+
1152
+ // Outro código pode reatribuir document.adoptedStyleSheets e tirar a folha da lista: recoloca.
1153
+ const getAdoptedSheet = () => {
1154
+ if (!adoptedSheet) adoptedSheet = new CSSStyleSheet();
1155
+ if (document.adoptedStyleSheets.indexOf(adoptedSheet) < 0) {
1156
+ document.adoptedStyleSheets = document.adoptedStyleSheets.concat(adoptedSheet);
1157
+ }
1158
+ return adoptedSheet;
1159
+ };
1160
+
1161
+ // Folha que vale pra tela inteira e cujas regras dá pra ler (folha de outra origem lança erro).
1162
+ const isWritable = sheet => {
1163
+ if (sheet.disabled || !sheet.ownerNode || !sheet.ownerNode.isConnected) return false;
1164
+ if (sheet.media && sheet.media.length && sheet.media.mediaText !== 'all') return false;
1165
+ try {
1166
+ return !!sheet.cssRules;
1167
+ } catch (e) {
1168
+ return false;
1169
+ }
1170
+ };
1171
+ const getPageSheet = () => {
1172
+ if (pageSheet && isWritable(pageSheet)) return pageSheet;
1173
+ const sheets = Array.prototype.slice.call(document.styleSheets).filter(isWritable);
1174
+ pageSheet = sheets.filter(sheet => sheet.ownerNode.tagName === 'LINK')[0] || sheets[0] || null;
1175
+ return pageSheet;
1176
+ };
1177
+ const appendRule = (sheet, rule) => {
1178
+ try {
1179
+ sheet.insertRule(rule, sheet.cssRules.length);
1180
+ } catch (e) {
1181
+ // regra que o browser não entende: igual a um <style> com ela, só não faz nada
1182
+ }
1183
+ };
1184
+ const appendStyleElement = (name, rule) => {
1185
+ const style = document.createElement('style');
1186
+ style.id = 'startlibs-keyframes-' + name;
1187
+ const nonce = (document.querySelector('meta[property="csp-nonce"]') || {}).content;
1188
+ if (nonce) style.nonce = nonce;
1189
+ style.textContent = rule;
1190
+ document.head.appendChild(style);
1191
+ };
1192
+ const insertKeyframes = (name, frames) => {
1193
+ if (typeof document === 'undefined' || inserted.has(name)) return name;
1194
+ inserted.add(name);
1195
+ const rule = '@keyframes ' + name + ' {' + frames + '}';
1196
+ if (canAdoptSheets()) {
1197
+ appendRule(getAdoptedSheet(), rule);
1198
+ } else if (getPageSheet()) {
1199
+ appendRule(pageSheet, rule);
1200
+ } else {
1201
+ appendStyleElement(name, rule);
1202
+ }
1203
+ return name;
1204
+ };
1205
+
1095
1206
  const escapedValidParts = /(^|[^\\])(dd?|DD?|mm?|LL?|hh?|MM?|ss|SSS|yy(?:yy)?)/g;
1096
1207
  const validParts = /(dd?|DD?|mm?|LL?|hh?|MM?|yy(?:yy)|yy|ss|SSS)$/;
1097
1208
  const addZero = v => (v < 10 ? '0' : '') + v;
@@ -1190,7 +1301,7 @@ function parseDate(str, possibleDate, format, messages, failOnFormat, noUTC) {
1190
1301
  }, str);
1191
1302
  const date = possibleDate && possibleDate.getTime() !== -1 ? new Date(possibleDate) : now();
1192
1303
  mutations.forEach(_ref => {
1193
- let _ref2 = _slicedToArray__default['default'](_ref, 2),
1304
+ let _ref2 = _slicedToArray__default["default"](_ref, 2),
1194
1305
  setter = _ref2[0],
1195
1306
  text = _ref2[1];
1196
1307
  return setter(text, date, messages, failOnFormat, noUTC);
@@ -1198,8 +1309,8 @@ function parseDate(str, possibleDate, format, messages, failOnFormat, noUTC) {
1198
1309
  return date;
1199
1310
  }
1200
1311
 
1201
- function ownKeys$2(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; }
1202
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty__default['default'](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1312
+ function ownKeys$1(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; }
1313
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1203
1314
  const isNotSelector = v => typeof v !== 'function' || v.length === 0;
1204
1315
  const toSelector = v => isNotSelector(v) ? s => _s.get(callIfFunction(v), s) : v;
1205
1316
  const mergeSelectors = (prev, next) => v => next(prev(v));
@@ -1208,7 +1319,7 @@ const concatSelectors = function () {
1208
1319
  paths[_key] = arguments[_key];
1209
1320
  }
1210
1321
  return paths.reduce((_ref, path) => {
1211
- let _ref2 = _slicedToArray__default['default'](_ref, 2),
1322
+ let _ref2 = _slicedToArray__default["default"](_ref, 2),
1212
1323
  selector = _ref2[0],
1213
1324
  isSelector = _ref2[1];
1214
1325
  return isNotSelector(path) && !isSelector ? [selector.concat(path), false] : [mergeSelectors(toSelector(selector), path), true];
@@ -1225,10 +1336,10 @@ const selectPath = function (useState) {
1225
1336
  paths[_key2 - 1] = arguments[_key2];
1226
1337
  }
1227
1338
  const _useMemo = React.useMemo(() => concatSelectors(...paths), paths),
1228
- _useMemo2 = _slicedToArray__default['default'](_useMemo, 1),
1339
+ _useMemo2 = _slicedToArray__default["default"](_useMemo, 1),
1229
1340
  selector = _useMemo2[0];
1230
1341
  const _useState = useState(selector),
1231
- _useState2 = _slicedToArray__default['default'](_useState, 1),
1342
+ _useState2 = _slicedToArray__default["default"](_useState, 1),
1232
1343
  value = _useState2[0];
1233
1344
  return value;
1234
1345
  };
@@ -1237,8 +1348,8 @@ const Action = function (fnOrArray) {
1237
1348
  const isArray = Array.isArray(fnOrArray);
1238
1349
  if (isArray) {
1239
1350
  // excessive paramaeters called on the action, used for options.
1240
- const actionType = _last__default['default'](prevArgs);
1241
- const _fnOrArray = _slicedToArray__default['default'](fnOrArray, 3),
1351
+ const actionType = _last__default["default"](prevArgs);
1352
+ const _fnOrArray = _slicedToArray__default["default"](fnOrArray, 3),
1242
1353
  fetcher = _fnOrArray[0],
1243
1354
  reducer = _fnOrArray[1],
1244
1355
  rollbacker = _fnOrArray[2];
@@ -1247,7 +1358,7 @@ const Action = function (fnOrArray) {
1247
1358
  } else if (actionType === FETCH) {
1248
1359
  return fetcher();
1249
1360
  } else {
1250
- return _set__default['default']('extra', fnOrArray.extra, [actionType === SKIP_FETCH ? () => Promise.resolve() : fetcher, actionType === SKIP_DISPATCH ? undefined : reducer].concat(rollbacker || []));
1361
+ return _set__default["default"]('extra', fnOrArray.extra, [actionType === SKIP_FETCH ? () => Promise.resolve() : fetcher, actionType === SKIP_DISPATCH ? undefined : reducer].concat(rollbacker || []));
1251
1362
  }
1252
1363
  } else {
1253
1364
  return prevArgs.length < fnOrArray.length ? function () {
@@ -1263,7 +1374,7 @@ const mapAction = (get, dispatcher, firstRun) => action => {
1263
1374
  if (firstRun) {
1264
1375
  return () => mapAction(get, dispatcher)(action);
1265
1376
  }
1266
- const _action = _slicedToArray__default['default'](action, 3),
1377
+ const _action = _slicedToArray__default["default"](action, 3),
1267
1378
  fetcher = _action[0],
1268
1379
  reducer = _action[1],
1269
1380
  rollbacker = _action[2];
@@ -1299,7 +1410,7 @@ const activateActions = function (get, dispatcher) {
1299
1410
  return actions.map(mapAction(get, dispatcher, true));
1300
1411
  };
1301
1412
  const SkipAction = (skip, action) => {
1302
- action.extra = _objectSpread$2(_objectSpread$2({}, action.extra), {}, {
1413
+ action.extra = _objectSpread$1(_objectSpread$1({}, action.extra), {}, {
1303
1414
  skip
1304
1415
  });
1305
1416
  return action;
@@ -1307,19 +1418,19 @@ const SkipAction = (skip, action) => {
1307
1418
 
1308
1419
  const compareBest = compare => (best, next) => best ? compare(best, next) ? next : best : next;
1309
1420
  const toLowest = function () {
1310
- let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default['default'];
1421
+ let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default["default"];
1311
1422
  return compareBest((best, next) => getValue(next) < getValue(best));
1312
1423
  };
1313
1424
  const toHighest = function () {
1314
- let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default['default'];
1425
+ let getValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default["default"];
1315
1426
  return compareBest((best, next) => getValue(next) > getValue(best));
1316
1427
  };
1317
1428
 
1318
- function ownKeys$3(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; }
1319
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty__default['default'](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1429
+ function ownKeys(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; }
1430
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1320
1431
  const addExtraProp = function (element, extra) {
1321
1432
  let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1322
- return /*#__PURE__*/React__default['default'].cloneElement(element, override ? _objectSpread$3(_objectSpread$3({}, element.props), extra) : _objectSpread$3(_objectSpread$3({}, extra), element.props), element.props.children);
1433
+ return /*#__PURE__*/React__default["default"].cloneElement(element, override ? _objectSpread(_objectSpread({}, element.props), extra) : _objectSpread(_objectSpread({}, extra), element.props), element.props.children);
1323
1434
  };
1324
1435
 
1325
1436
  const useEventListener = function (eventName, callback) {
@@ -1365,7 +1476,7 @@ const createPressEvent = onStart => normalizePress((startEvent, info) => {
1365
1476
  });
1366
1477
  const createPressAndHoldEvent = (onStart, interval) => createPressEvent((startEvent, info) => {
1367
1478
  const _concat = [].concat(onStart(startEvent, info)),
1368
- _concat2 = _slicedToArray__default['default'](_concat, 2),
1479
+ _concat2 = _slicedToArray__default["default"](_concat, 2),
1369
1480
  onInterval = _concat2[0],
1370
1481
  onEnd = _concat2[1];
1371
1482
  let i = 0;
@@ -1394,7 +1505,7 @@ const createPressAndHoldEvent = (onStart, interval) => createPressEvent((startEv
1394
1505
  });
1395
1506
  const createPressAndMoveEvent = onStart => createPressEvent((startEvent, info) => {
1396
1507
  const _concat3 = [].concat(onStart(startEvent, info)),
1397
- _concat4 = _slicedToArray__default['default'](_concat3, 2),
1508
+ _concat4 = _slicedToArray__default["default"](_concat3, 2),
1398
1509
  onMove = _concat4[0],
1399
1510
  onEnd = _concat4[1];
1400
1511
  const finish = normalizePress((e, info) => {
@@ -1425,13 +1536,13 @@ const innerWrapLazy = refreshCallback => function (maybePromise) {
1425
1536
  }
1426
1537
  let status;
1427
1538
  let awaitReadResolver;
1428
- let checker = _isEqual__default['default'];
1539
+ let checker = _isEqual__default["default"];
1429
1540
  let lazyArgs = EMPTY_ARGS;
1430
1541
  let uid = Math.random().toString() + Date.now();
1431
1542
  let result;
1432
1543
  let currentValue = UNDEFINED_CURRENT_VALUE;
1433
1544
  const promisify = (maybePromise, resolveNow) => {
1434
- return (_isFunction__default['default'](maybePromise) && !resolveNow ? new Promise(res => awaitReadResolver = res) : Promise.resolve()).then(function () {
1545
+ return (_isFunction__default["default"](maybePromise) && !resolveNow ? new Promise(res => awaitReadResolver = res) : Promise.resolve()).then(function () {
1435
1546
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1436
1547
  args[_key2] = arguments[_key2];
1437
1548
  }
@@ -1457,7 +1568,7 @@ const innerWrapLazy = refreshCallback => function (maybePromise) {
1457
1568
  };
1458
1569
  const suspend = maybePromise => {
1459
1570
  status = "pending";
1460
- awaitReadResolver = _identity__default['default'];
1571
+ awaitReadResolver = _identity__default["default"];
1461
1572
  const returnedPromise = promisify(maybePromise);
1462
1573
  returnedPromise.then(onPromiseSuccess(returnedPromise), onPromiseError(returnedPromise));
1463
1574
  return returnedPromise;
@@ -1559,19 +1670,19 @@ const isSameDay = function (a, b) {
1559
1670
  return getStartOfDay(a, utc).getTime() === getStartOfDay(b, utc).getTime();
1560
1671
  };
1561
1672
  const intervalsIntersect = (_ref, _ref2) => {
1562
- let _ref3 = _slicedToArray__default['default'](_ref, 2),
1673
+ let _ref3 = _slicedToArray__default["default"](_ref, 2),
1563
1674
  a1 = _ref3[0],
1564
1675
  a2 = _ref3[1];
1565
- let _ref4 = _slicedToArray__default['default'](_ref2, 2),
1676
+ let _ref4 = _slicedToArray__default["default"](_ref2, 2),
1566
1677
  b1 = _ref4[0],
1567
1678
  b2 = _ref4[1];
1568
1679
  return b2 >= a1 && b1 <= a2;
1569
1680
  };
1570
1681
  const intervalsIntersectExclusive = (_ref5, _ref6) => {
1571
- let _ref7 = _slicedToArray__default['default'](_ref5, 2),
1682
+ let _ref7 = _slicedToArray__default["default"](_ref5, 2),
1572
1683
  a1 = _ref7[0],
1573
1684
  a2 = _ref7[1];
1574
- let _ref8 = _slicedToArray__default['default'](_ref6, 2),
1685
+ let _ref8 = _slicedToArray__default["default"](_ref6, 2),
1575
1686
  b1 = _ref8[0],
1576
1687
  b2 = _ref8[1];
1577
1688
  return b2 > a1 && b1 < a2;
@@ -1583,10 +1694,10 @@ const intervalsIntersection = (a, b) => {
1583
1694
  return [[Math.max(a[0], b[0]), Math.min(a[1], b[1])]];
1584
1695
  };
1585
1696
  const diffIntervals = (_ref9, _ref0) => {
1586
- let _ref1 = _slicedToArray__default['default'](_ref9, 2),
1697
+ let _ref1 = _slicedToArray__default["default"](_ref9, 2),
1587
1698
  a1 = _ref1[0],
1588
1699
  a2 = _ref1[1];
1589
- let _ref10 = _slicedToArray__default['default'](_ref0, 2),
1700
+ let _ref10 = _slicedToArray__default["default"](_ref0, 2),
1590
1701
  b1 = _ref10[0],
1591
1702
  b2 = _ref10[1];
1592
1703
  if (a1 >= b2 ||
@@ -1639,17 +1750,17 @@ const willFormatDecimal = function () {
1639
1750
  clean = _ref.clean;
1640
1751
  const splitRegex = new RegExp("(\\d+)(\\d{".concat(digits, "})"));
1641
1752
  const singleRegex = new RegExp("/^([^,]*,\\d{0,".concat(digits, ").*/"));
1642
- const pad = str => padTo ? str.indexOf(",") >= 0 ? _padCharsEnd__default['default']("0", str.indexOf(",") + padTo + 1, str) : _padCharsEnd__default['default']("0", str.length + 1 + padTo, str + ",") : str;
1753
+ const pad = str => padTo ? str.indexOf(",") >= 0 ? _padCharsEnd__default["default"]("0", str.indexOf(",") + padTo + 1, str) : _padCharsEnd__default["default"]("0", str.length + 1 + padTo, str + ",") : str;
1643
1754
  const constrain = val => {
1644
- if (_isNumber__default['default'](max) && parseFloat(val.replace(",", ".")) > max) return max.toString();
1645
- if (_isNumber__default['default'](min) && parseFloat(val.replace(",", ".")) < min) return min.toString();
1755
+ if (_isNumber__default["default"](max) && parseFloat(val.replace(",", ".")) > max) return max.toString();
1756
+ if (_isNumber__default["default"](min) && parseFloat(val.replace(",", ".")) < min) return min.toString();
1646
1757
  return val;
1647
1758
  };
1648
1759
  const cleaned = val => clean ? val.replace(/,$/, '').replace(/^0*,/, '0,') || "0" : val;
1649
1760
  return v => {
1650
1761
  const skipZero = finalV => v !== '0' && zeroless && finalV === '0' ? '' : finalV.replace(/^0+([^,])/, '$1');
1651
- const formatted = _flow__default['default'](constrain, pad, skipZero, cleaned);
1652
- if (_isNumber__default['default'](v)) {
1762
+ const formatted = _flow__default["default"](constrain, pad, skipZero, cleaned);
1763
+ if (_isNumber__default["default"](v)) {
1653
1764
  return formatted(v.toString().replace(".", ","));
1654
1765
  }
1655
1766
  const fixComma = v => v.replace(/,/g, '').replace(splitRegex, "$1,$2");
@@ -1658,13 +1769,13 @@ const willFormatDecimal = function () {
1658
1769
  const commaIndex = allowedChars.indexOf(',');
1659
1770
  if (commaIndex >= 0 && commaIndex < allowedChars.length - 1 - digits) {
1660
1771
  const alteredComma = fixComma(allowedChars);
1661
- if (_isNumber__default['default'](max) && parseFloat(alteredComma.replace(",", ".")) > max) {
1772
+ if (_isNumber__default["default"](max) && parseFloat(alteredComma.replace(",", ".")) > max) {
1662
1773
  return fixComma(allowedChars.slice(0, commaIndex + 1 + digits));
1663
1774
  }
1664
1775
  return alteredComma;
1665
1776
  }
1666
1777
  const simpleNumber = allowedChars.replace(singleRegex, "$1");
1667
- if (_isNumber__default['default'](max) && parseInt(simpleNumber) > max) {
1778
+ if (_isNumber__default["default"](max) && parseInt(simpleNumber) > max) {
1668
1779
  return simpleNumber.slice(0, -1);
1669
1780
  }
1670
1781
  return simpleNumber;
@@ -1673,7 +1784,7 @@ const willFormatDecimal = function () {
1673
1784
  return formatted(result);
1674
1785
  };
1675
1786
  };
1676
- const parseDecimalToNumber = v => _isString__default['default'](v) ? Number(v.replace(/\./g, '').replace(',', ".")) : v || 0;
1787
+ const parseDecimalToNumber = v => _isString__default["default"](v) ? Number(v.replace(/\./g, '').replace(',', ".")) : v || 0;
1677
1788
 
1678
1789
  exports.Action = Action;
1679
1790
  exports.COMPLETE_ACTION = COMPLETE_ACTION;
@@ -1744,6 +1855,7 @@ exports.ifNotProp = ifNotProp;
1744
1855
  exports.ifProp = ifProp;
1745
1856
  exports.ifPropEquals = ifPropEquals;
1746
1857
  exports.ifUndefined = ifUndefined;
1858
+ exports.insertKeyframes = insertKeyframes;
1747
1859
  exports.intToHour = intToHour;
1748
1860
  exports.intervalsIntersect = intervalsIntersect;
1749
1861
  exports.intervalsIntersectExclusive = intervalsIntersectExclusive;