@makeswift/runtime 0.2.18 → 0.3.0

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 (235) hide show
  1. package/dist/Box.cjs.js +35 -70
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +34 -65
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +176 -208
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +177 -208
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +227 -249
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +229 -247
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +270 -203
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +273 -202
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +50 -71
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +51 -68
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +6 -17
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +7 -14
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +723 -553
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +723 -552
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +16 -38
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +17 -38
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/Navigation.cjs.js +318 -224
  34. package/dist/Navigation.cjs.js.map +1 -1
  35. package/dist/Navigation.es.js +318 -220
  36. package/dist/Navigation.es.js.map +1 -1
  37. package/dist/Root.cjs.js +116 -78
  38. package/dist/Root.cjs.js.map +1 -1
  39. package/dist/Root.es.js +99 -77
  40. package/dist/Root.es.js.map +1 -1
  41. package/dist/SocialLinks.cjs.js +119 -86
  42. package/dist/SocialLinks.cjs.js.map +1 -1
  43. package/dist/SocialLinks.es.js +120 -83
  44. package/dist/SocialLinks.es.js.map +1 -1
  45. package/dist/Text.cjs.js +83 -99
  46. package/dist/Text.cjs.js.map +1 -1
  47. package/dist/Text.es.js +84 -99
  48. package/dist/Text.es.js.map +1 -1
  49. package/dist/Video.cjs.js +8 -19
  50. package/dist/Video.cjs.js.map +1 -1
  51. package/dist/Video.es.js +8 -18
  52. package/dist/Video.es.js.map +1 -1
  53. package/dist/actions.cjs.js +6 -1
  54. package/dist/actions.cjs.js.map +1 -1
  55. package/dist/actions.es.js +6 -2
  56. package/dist/actions.es.js.map +1 -1
  57. package/dist/components.cjs.js +6 -18
  58. package/dist/components.cjs.js.map +1 -1
  59. package/dist/components.es.js +5 -8
  60. package/dist/components.es.js.map +1 -1
  61. package/dist/controls.es.js +1 -1
  62. package/dist/grid-item.cjs.js +612 -0
  63. package/dist/grid-item.cjs.js.map +1 -0
  64. package/dist/grid-item.es.js +604 -0
  65. package/dist/grid-item.es.js.map +1 -0
  66. package/dist/index.cjs.js +592 -275
  67. package/dist/index.cjs.js.map +1 -1
  68. package/dist/index.cjs2.js +98 -474
  69. package/dist/index.cjs2.js.map +1 -1
  70. package/dist/index.cjs3.js +20 -107
  71. package/dist/index.cjs3.js.map +1 -1
  72. package/dist/index.es.js +587 -274
  73. package/dist/index.es.js.map +1 -1
  74. package/dist/index.es2.js +99 -473
  75. package/dist/index.es2.js.map +1 -1
  76. package/dist/index.es3.js +21 -103
  77. package/dist/index.es3.js.map +1 -1
  78. package/dist/next.cjs.js +1 -2
  79. package/dist/next.cjs.js.map +1 -1
  80. package/dist/next.es.js +2 -3
  81. package/dist/next.es.js.map +1 -1
  82. package/dist/react-builder-preview.cjs.js +16 -3
  83. package/dist/react-builder-preview.cjs.js.map +1 -1
  84. package/dist/react-builder-preview.es.js +19 -6
  85. package/dist/react-builder-preview.es.js.map +1 -1
  86. package/dist/react.cjs.js +1 -2
  87. package/dist/react.cjs.js.map +1 -1
  88. package/dist/react.es.js +1 -2
  89. package/dist/react.es.js.map +1 -1
  90. package/dist/slot.cjs.js +41 -6
  91. package/dist/slot.cjs.js.map +1 -1
  92. package/dist/slot.es.js +36 -6
  93. package/dist/slot.es.js.map +1 -1
  94. package/dist/types/src/components/builtin/Box/Box.d.ts +7 -7
  95. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  96. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -1
  97. package/dist/types/src/components/builtin/Box/register.d.ts.map +1 -1
  98. package/dist/types/src/components/builtin/Button/Button.d.ts +46 -34
  99. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -1
  100. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts +5 -5
  101. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  102. package/dist/types/src/components/builtin/Carousel/register.d.ts.map +1 -1
  103. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts +3 -3
  104. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  105. package/dist/types/src/components/builtin/Countdown/register.d.ts.map +1 -1
  106. package/dist/types/src/components/builtin/Divider/Divider.d.ts +3 -3
  107. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -1
  108. package/dist/types/src/components/builtin/Divider/register.d.ts.map +1 -1
  109. package/dist/types/src/components/builtin/Embed/Embed.d.ts +3 -3
  110. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -1
  111. package/dist/types/src/components/builtin/Form/Form.d.ts +3 -3
  112. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -1
  113. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +4 -6
  114. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -1
  115. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +3 -0
  116. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -1
  117. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +2 -0
  118. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -1
  119. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts +3 -7
  120. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -1
  121. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts +7 -13
  122. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -1
  123. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +2 -0
  124. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -1
  125. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -1
  126. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +2 -0
  127. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -1
  128. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +2 -0
  129. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -1
  130. package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -1
  131. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +4 -8
  132. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -1
  133. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +2 -0
  134. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -1
  135. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -1
  136. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -1
  137. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts +2 -7
  138. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -1
  139. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +2 -0
  140. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -1
  141. package/dist/types/src/components/builtin/Form/components/Field/services/{cssField.d.ts → responsiveField.d.ts} +5 -4
  142. package/dist/types/src/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -0
  143. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts +2 -3
  144. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  145. package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts.map +1 -1
  146. package/dist/types/src/components/builtin/Form/register.d.ts.map +1 -1
  147. package/dist/types/src/components/builtin/Image/Image.d.ts +7 -7
  148. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -1
  149. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts +3 -3
  150. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  151. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts +8 -81
  152. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -1
  153. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -1
  154. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +8 -81
  155. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -1
  156. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
  157. package/dist/types/src/components/builtin/Navigation/register.d.ts.map +1 -1
  158. package/dist/types/src/components/builtin/Root/Root.d.ts +1 -2
  159. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -1
  160. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts +1 -2
  161. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -1
  162. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts +3 -3
  163. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  164. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -1
  165. package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +1 -1
  166. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -3
  167. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  168. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +8 -11
  169. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -1
  170. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +3 -6
  171. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -1
  172. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts +1 -1
  173. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -1
  174. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -1
  175. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -1
  176. package/dist/types/src/components/builtin/Video/Video.d.ts +4 -4
  177. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -1
  178. package/dist/types/src/components/builtin/Video/register.d.ts.map +1 -1
  179. package/dist/types/src/components/hooks/useBackgrounds.d.ts +1 -1
  180. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -1
  181. package/dist/types/src/components/index.d.ts +0 -1
  182. package/dist/types/src/components/index.d.ts.map +1 -1
  183. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
  184. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -1
  185. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +255 -4
  186. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  187. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -1
  188. package/dist/types/src/components/shared/GutterContainer/index.d.ts +8 -4
  189. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -1
  190. package/dist/types/src/components/shared/grid-item.d.ts +17 -0
  191. package/dist/types/src/components/shared/grid-item.d.ts.map +1 -0
  192. package/dist/types/src/components/utils/responsive-style.d.ts +22 -1
  193. package/dist/types/src/components/utils/responsive-style.d.ts.map +1 -1
  194. package/dist/types/src/controls/style.d.ts +5 -65
  195. package/dist/types/src/controls/style.d.ts.map +1 -1
  196. package/dist/types/src/css/border-radius.d.ts +20 -0
  197. package/dist/types/src/css/border-radius.d.ts.map +1 -0
  198. package/dist/types/src/css/border.d.ts +31 -0
  199. package/dist/types/src/css/border.d.ts.map +1 -0
  200. package/dist/types/src/css/length-percentage.d.ts +10 -0
  201. package/dist/types/src/css/length-percentage.d.ts.map +1 -0
  202. package/dist/types/src/css/length.d.ts +14 -0
  203. package/dist/types/src/css/length.d.ts.map +1 -0
  204. package/dist/types/src/css/margin.d.ts +20 -0
  205. package/dist/types/src/css/margin.d.ts.map +1 -0
  206. package/dist/types/src/css/padding.d.ts +20 -0
  207. package/dist/types/src/css/padding.d.ts.map +1 -0
  208. package/dist/types/src/next/document.d.ts.map +1 -1
  209. package/dist/types/src/prop-controllers/descriptors.d.ts +96 -33
  210. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  211. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -1
  212. package/dist/types/src/runtimes/react/controls.d.ts +10 -2
  213. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  214. package/dist/types/src/runtimes/react/use-global-style.d.ts +3 -0
  215. package/dist/types/src/runtimes/react/use-global-style.d.ts.map +1 -0
  216. package/dist/types/src/state/actions.d.ts +13 -1
  217. package/dist/types/src/state/actions.d.ts.map +1 -1
  218. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  219. package/dist/useMediaQuery.es.js +1 -1
  220. package/package.json +1 -3
  221. package/dist/cssMediaRules.cjs.js +0 -210
  222. package/dist/cssMediaRules.cjs.js.map +0 -1
  223. package/dist/cssMediaRules.es.js +0 -201
  224. package/dist/cssMediaRules.es.js.map +0 -1
  225. package/dist/index.cjs4.js +0 -18
  226. package/dist/index.cjs4.js.map +0 -1
  227. package/dist/index.es4.js +0 -13
  228. package/dist/index.es4.js.map +0 -1
  229. package/dist/types/src/components/builtin/Form/components/Field/services/cssField.d.ts.map +0 -1
  230. package/dist/types/src/components/utils/cssMediaRules.d.ts +0 -69
  231. package/dist/types/src/components/utils/cssMediaRules.d.ts.map +0 -1
  232. package/dist/useBoxShadow.cjs.js +0 -78
  233. package/dist/useBoxShadow.cjs.js.map +0 -1
  234. package/dist/useBoxShadow.es.js +0 -77
  235. package/dist/useBoxShadow.es.js.map +0 -1
@@ -1,9 +1,39 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
21
+ var __objRest = (source, exclude) => {
22
+ var target = {};
23
+ for (var prop in source)
24
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
+ target[prop] = source[prop];
26
+ if (source != null && __getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(source)) {
28
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
+ target[prop] = source[prop];
30
+ }
31
+ return target;
32
+ };
2
33
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
34
+ var css = require("@emotion/css");
3
35
  var React = require("react");
4
- var styled = require("styled-components");
5
36
  var next = require("./index.cjs.js");
6
- var cssMediaRules = require("./cssMediaRules.cjs.js");
7
37
  var jsxRuntime = require("react/jsx-runtime");
8
38
  require("use-sync-external-store/shim/with-selector");
9
39
  require("./react-page.cjs.js");
@@ -19,7 +49,6 @@ require("slate");
19
49
  require("./graphql.cjs.js");
20
50
  require("./text-input.cjs.js");
21
51
  require("./combobox.cjs.js");
22
- require("@emotion/css");
23
52
  require("color");
24
53
  require("scroll-into-view-if-needed");
25
54
  require("./box-models.cjs.js");
@@ -35,208 +64,246 @@ require("http-proxy");
35
64
  require("set-cookie-parser");
36
65
  require("uuid/v4");
37
66
  require("corporate-ipsum");
38
- function _interopDefaultLegacy(e) {
39
- return e && typeof e === "object" && "default" in e ? e : { "default": e };
67
+ const BLOCK_CLASS_NAME = "block";
68
+ function Block(_a) {
69
+ var _b = _a, {
70
+ className
71
+ } = _b, restOfProps = __objRest(_b, [
72
+ "className"
73
+ ]);
74
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({}, restOfProps), {
75
+ className: css.cx(BLOCK_CLASS_NAME, next.useStyle({
76
+ display: "block",
77
+ padding: "0.5em",
78
+ fontSize: "1em"
79
+ }), className)
80
+ }));
81
+ }
82
+ const LABEL_CLASS_NAME = "label";
83
+ function Label(_c) {
84
+ var _d = _c, {
85
+ className
86
+ } = _d, restOfProps = __objRest(_d, [
87
+ "className"
88
+ ]);
89
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({}, restOfProps), {
90
+ className: css.cx(LABEL_CLASS_NAME, next.useStyle({
91
+ marginTop: "0.25em"
92
+ }), className)
93
+ }));
40
94
  }
41
- var styled__default = /* @__PURE__ */ _interopDefaultLegacy(styled);
42
- const Block = styled__default["default"].div`
43
- display: block;
44
- padding: 0.5em;
45
- font-size: 1em;
46
- `;
47
- const Label = styled__default["default"].div`
48
- margin-top: 0.25em;
49
- `;
50
- const Segment = styled__default["default"].div`
51
- flex: 1;
52
- text-align: center;
53
- `;
54
- const Container = styled__default["default"].div.withConfig({
55
- shouldForwardProp: (prop) => !["width", "margin", "variant", "size", "shape", "gap", "labelColor", "numberFont", "numberColor", "blockColor", "labelFont"].includes(prop)
56
- })`
57
- display: flex;
58
- ${cssMediaRules.cssWidth("560px")}
59
- ${cssMediaRules.cssMargin()}
60
- ${(p) => cssMediaRules.cssMediaRules([p.size], ([size = "medium"]) => {
61
- switch (size) {
62
- case "small":
63
- return styled.css`
64
- font-size: 18px;
65
-
66
- ${Label} {
67
- font-size: 14px;
95
+ const SEGMENT_CLASS_NAME = "segment";
96
+ function Segment(_e) {
97
+ var _f = _e, {
98
+ className
99
+ } = _f, restOfProps = __objRest(_f, [
100
+ "className"
101
+ ]);
102
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({}, restOfProps), {
103
+ className: css.cx(SEGMENT_CLASS_NAME, next.useStyle({
104
+ flex: 1,
105
+ textAlign: "center"
106
+ }), className)
107
+ }));
108
+ }
109
+ const Container = React.forwardRef(function Container2(_g, ref) {
110
+ var _h = _g, {
111
+ className,
112
+ width,
113
+ margin,
114
+ variant,
115
+ size,
116
+ shape,
117
+ gap,
118
+ labelColor,
119
+ numberFont,
120
+ numberColor,
121
+ blockColor,
122
+ labelFont
123
+ } = _h, restOfProps = __objRest(_h, [
124
+ "className",
125
+ "width",
126
+ "margin",
127
+ "variant",
128
+ "size",
129
+ "shape",
130
+ "gap",
131
+ "labelColor",
132
+ "numberFont",
133
+ "numberColor",
134
+ "blockColor",
135
+ "labelFont"
136
+ ]);
137
+ return /* @__PURE__ */ jsxRuntime.jsx("div", __spreadProps(__spreadValues({}, restOfProps), {
138
+ ref,
139
+ className: css.cx(next.useStyle({
140
+ display: "flex"
141
+ }), width, margin, next.useStyle(next.responsiveStyle([size], ([size2 = "medium"]) => {
142
+ switch (size2) {
143
+ case "small":
144
+ return {
145
+ fontSize: 18,
146
+ [`.${LABEL_CLASS_NAME}`]: {
147
+ fontSize: 14
68
148
  }
69
- `;
70
- case "large":
71
- return styled.css`
72
- font-size: 32px;
73
-
74
- ${Label} {
75
- font-size: 18px;
149
+ };
150
+ case "large":
151
+ return {
152
+ fontSize: 32,
153
+ [`.${LABEL_CLASS_NAME}`]: {
154
+ fontSize: 18
76
155
  }
77
- `;
78
- default:
79
- return styled.css`
80
- font-size: 24px;
81
-
82
- ${Label} {
83
- font-size: 16px;
156
+ };
157
+ default:
158
+ return {
159
+ fontSize: 24,
160
+ [`.${LABEL_CLASS_NAME}`]: {
161
+ fontSize: 16
84
162
  }
85
- `;
86
- }
87
- })}
88
-
89
- ${Segment} {
90
- ${(p) => cssMediaRules.cssMediaRules([p.gap], ([gap]) => styled.css`
91
- margin: 0 ${gap == null ? 0 : `${gap.value / 2}${gap.unit}`};
92
-
93
- &:first-child {
94
- margin-left: 0;
95
- }
96
-
97
- &:last-child {
98
- margin-right: 0;
99
- }
100
- `)}
101
- }
102
-
103
- ${Block} {
104
- ${(p) => cssMediaRules.cssMediaRules([p.shape], ([shape = "rounded"]) => {
105
- switch (shape) {
106
- case "pill":
107
- return styled.css`
108
- border-radius: 500px;
109
- `;
110
- case "rounded":
111
- return styled.css`
112
- border-radius: 6px;
113
- `;
114
- default:
115
- return styled.css`
116
- border-radius: 0;
117
- `;
118
- }
119
- })}
120
- ${(p) => cssMediaRules.cssMediaRules([p.variant, p.blockColor, p.numberColor, p.numberFont], ([variant = "filled", blockColor = {
121
- swatch: {
122
- hue: 0,
123
- saturation: 0,
124
- lightness: 0
125
- },
126
- alpha: 1
127
- }, numberColor = {
128
- swatch: {
129
- hue: 0,
130
- saturation: 0,
131
- lightness: 100
132
- },
133
- alpha: 1
134
- }, numberFont = "sans-serif"]) => {
135
- switch (variant) {
136
- case "filled":
137
- return styled.css`
138
- font-family: '${numberFont}';
139
- color: ${next.colorToString(numberColor)};
140
- background: ${next.colorToString(blockColor)};
141
- `;
142
- case "filled-split":
143
- return styled.css`
144
- position: relative;
145
- color: ${next.colorToString(numberColor)};
146
- font-family: '${numberFont}';
147
-
148
- > span {
149
- position: relative;
150
- z-index: 1;
151
- }
152
-
153
- ::before {
154
- content: '';
155
- position: absolute;
156
- top: 0;
157
- left: 0;
158
- right: 0;
159
- bottom: calc(50% + 1px);
160
- border-top-left-radius: inherit;
161
- border-top-right-radius: inherit;
162
- background: ${next.colorToString(blockColor)};
163
- }
164
-
165
- ::after {
166
- content: '';
167
- position: absolute;
168
- left: 0;
169
- right: 0;
170
- top: calc(50% + 1px);
171
- bottom: 0;
172
- border-bottom-left-radius: inherit;
173
- border-bottom-right-radius: inherit;
174
- background: ${next.colorToString(blockColor)};
175
- }
176
- `;
177
- case "outline":
178
- return styled.css`
179
- font-family: '${numberFont}';
180
- color: ${next.colorToString(numberColor)};
181
- background: transparent;
182
- border: 2px solid ${next.colorToString(blockColor)};
183
- `;
184
- case "outline-split":
185
- return styled.css`
186
- position: relative;
187
- font-family: '${numberFont}';
188
- color: ${next.colorToString(numberColor)};
189
- border: 2px solid ${next.colorToString(blockColor)};
190
-
191
- > span {
192
- position: relative;
193
- z-index: 1;
194
- }
195
-
196
- ::before {
197
- content: '';
198
- position: absolute;
199
- top: 50%;
200
- left: 0;
201
- right: 0;
202
- height: 2px;
203
- margin-top: -1px;
204
- background: ${next.colorToString(blockColor)};
205
- }
206
- `;
207
- default:
208
- return styled.css`
209
- font-family: '${numberFont}';
210
- background: transparent;
211
- color: ${next.colorToString(numberColor)};
212
- padding-top: 0;
213
- padding-bottom: 0;
214
- `;
215
- }
216
- })}
217
- }
218
-
219
- ${Label} {
220
- ${(p) => cssMediaRules.cssMediaRules([p.labelColor, p.labelFont], ([labelColor = {
221
- swatch: {
222
- hue: 0,
223
- saturation: 0,
224
- lightness: 0
225
- },
226
- alpha: 1
227
- }, labelFont = "sans-serif"]) => styled.css`
228
- font-family: '${labelFont}';
229
- color: ${next.colorToString(labelColor)};
230
- `)}
231
- }
232
- `;
163
+ };
164
+ }
165
+ })), next.useStyle({
166
+ [`.${SEGMENT_CLASS_NAME}`]: next.responsiveStyle([gap], ([gap2]) => ({
167
+ margin: `0 ${gap2 == null ? 0 : `${gap2.value / 2}${gap2.unit}`}`,
168
+ "&:first-child": {
169
+ marginLeft: 0
170
+ },
171
+ "&:last-child": {
172
+ marginRight: 0
173
+ }
174
+ }))
175
+ }), next.useStyle({
176
+ [`.${BLOCK_CLASS_NAME}`]: next.responsiveStyle([shape], ([shape2 = "rounded"]) => {
177
+ switch (shape2) {
178
+ case "pill":
179
+ return {
180
+ borderRadius: 500
181
+ };
182
+ case "rounded":
183
+ return {
184
+ borderRadius: 6
185
+ };
186
+ default:
187
+ return {
188
+ borderRadius: 0
189
+ };
190
+ }
191
+ })
192
+ }), next.useStyle({
193
+ [`.${BLOCK_CLASS_NAME}`]: next.responsiveStyle([variant, blockColor, numberColor, numberFont], ([variant2 = "filled", blockColor2 = {
194
+ swatch: {
195
+ hue: 0,
196
+ saturation: 0,
197
+ lightness: 0
198
+ },
199
+ alpha: 1
200
+ }, numberColor2 = {
201
+ swatch: {
202
+ hue: 0,
203
+ saturation: 0,
204
+ lightness: 100
205
+ },
206
+ alpha: 1
207
+ }, numberFont2 = "sans-serif"]) => {
208
+ switch (variant2) {
209
+ case "filled":
210
+ return {
211
+ fontFamily: numberFont2,
212
+ color: next.colorToString(numberColor2),
213
+ background: next.colorToString(blockColor2)
214
+ };
215
+ case "filled-split":
216
+ return {
217
+ position: "relative",
218
+ color: next.colorToString(numberColor2),
219
+ fontFamily: numberFont2,
220
+ "> span": {
221
+ position: "relative",
222
+ zIndex: 1
223
+ },
224
+ "::before": {
225
+ content: '""',
226
+ position: "absolute",
227
+ top: 0,
228
+ left: 0,
229
+ right: 0,
230
+ bottom: "calc(50% + 1px)",
231
+ borderTopLeftRadius: "inherit",
232
+ borderTopRightRadius: "inherit",
233
+ background: next.colorToString(blockColor2)
234
+ },
235
+ "::after": {
236
+ content: '""',
237
+ position: "absolute",
238
+ left: 0,
239
+ right: 0,
240
+ top: "calc(50% + 1px)",
241
+ bottom: 0,
242
+ borderBottomLeftRadius: "inherit",
243
+ borderBottomRightRadius: "inherit",
244
+ background: next.colorToString(blockColor2)
245
+ }
246
+ };
247
+ case "outline":
248
+ return {
249
+ fontFamily: numberFont2,
250
+ color: next.colorToString(numberColor2),
251
+ background: "transparent",
252
+ border: `2px solid ${next.colorToString(blockColor2)}`
253
+ };
254
+ case "outline-split":
255
+ return {
256
+ position: "relative",
257
+ fontFamily: numberFont2,
258
+ color: next.colorToString(numberColor2),
259
+ border: `2px solid ${next.colorToString(blockColor2)}`,
260
+ "> span": {
261
+ position: "relative",
262
+ zIndex: 1
263
+ },
264
+ "::before": {
265
+ content: '""',
266
+ position: "absolute",
267
+ top: "50%",
268
+ left: 0,
269
+ right: 0,
270
+ height: 2,
271
+ marginTop: -1,
272
+ background: next.colorToString(blockColor2)
273
+ }
274
+ };
275
+ default:
276
+ return {
277
+ fontFamily: numberFont2,
278
+ background: "transparent",
279
+ color: next.colorToString(numberColor2),
280
+ paddingTop: 0,
281
+ paddingBottom: 0
282
+ };
283
+ }
284
+ })
285
+ }), next.useStyle({
286
+ [`.${LABEL_CLASS_NAME}`]: next.responsiveStyle([labelColor, labelFont], ([labelColor2 = {
287
+ swatch: {
288
+ hue: 0,
289
+ saturation: 0,
290
+ lightness: 0
291
+ },
292
+ alpha: 1
293
+ }, labelFont2 = "sans-serif"]) => ({
294
+ fontFamily: labelFont2,
295
+ color: next.colorToString(labelColor2)
296
+ }))
297
+ }), className)
298
+ }));
299
+ });
233
300
  const getRemaining = (date) => {
234
301
  if (date == null)
235
302
  return {
236
- days: 0,
237
- hours: 0,
238
- minutes: 0,
239
- seconds: 0
303
+ days: "0",
304
+ hours: "0",
305
+ minutes: "0",
306
+ seconds: "0"
240
307
  };
241
308
  const timeDiff = new Date(date).getTime() - Date.now();
242
309
  if (timeDiff <= 0)
@@ -255,10 +322,10 @@ const getRemaining = (date) => {
255
322
  delta -= minutes * 60;
256
323
  const seconds = parseInt(String(delta % 60), 10);
257
324
  return {
258
- days,
259
- hours,
260
- minutes,
261
- seconds
325
+ days: days.toString(),
326
+ hours: hours.toString(),
327
+ minutes: minutes.toString(),
328
+ seconds: seconds.toString()
262
329
  };
263
330
  };
264
331
  const Countdown = React.forwardRef(function Countdown2({
@@ -285,7 +352,7 @@ const Countdown = React.forwardRef(function Countdown2({
285
352
  hours,
286
353
  minutes,
287
354
  seconds
288
- }, setRemaining] = React.useState(getRemaining(date));
355
+ }, setRemaining] = React.useState(getRemaining(null));
289
356
  React.useEffect(() => {
290
357
  setRemaining(getRemaining(date));
291
358
  const intervalId = setInterval(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Countdown.cjs.js","sources":["../src/components/builtin/Countdown/Countdown.tsx"],"sourcesContent":["import { useState, useEffect, Ref, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { colorToString } from '../../utils/colorToString'\nimport { ColorValue as Color } from '../../utils/types'\nimport { cssMediaRules, cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport {\n ResponsiveValue,\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n MarginValue,\n ResponsiveIconRadioGroupValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\n\ntype Props = {\n id?: ElementIDValue\n date?: DateValue\n variant?: ResponsiveIconRadioGroupValue<\n 'filled' | 'filled-split' | 'outline' | 'outline-split' | 'clear'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n gap?: GapXValue\n numberFont?: FontValue\n numberColor?: ResponsiveColor | null\n blockColor?: ResponsiveColor | null\n labelFont?: FontValue\n labelColor?: ResponsiveColor | null\n width?: WidthValue\n margin?: MarginValue\n daysLabel?: TextInputValue\n hoursLabel?: TextInputValue\n minutesLabel?: TextInputValue\n secondsLabel?: TextInputValue\n}\n\nconst Block = styled.div`\n display: block;\n padding: 0.5em;\n font-size: 1em;\n`\n\nconst Label = styled.div`\n margin-top: 0.25em;\n`\n\nconst Segment = styled.div`\n flex: 1;\n text-align: center;\n`\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop =>\n ![\n 'width',\n 'margin',\n 'variant',\n 'size',\n 'shape',\n 'gap',\n 'labelColor',\n 'numberFont',\n 'numberColor',\n 'blockColor',\n 'labelFont',\n ].includes(prop),\n})<{\n width: Props['width']\n margin: Props['margin']\n variant: Props['variant']\n size: Props['size']\n shape: Props['shape']\n gap: Props['gap']\n labelColor?: ResponsiveValue<Color> | null\n numberFont?: ResponsiveValue<string>\n numberColor?: ResponsiveValue<Color> | null\n blockColor?: ResponsiveValue<Color> | null\n labelFont?: ResponsiveValue<string>\n}>`\n display: flex;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${p =>\n cssMediaRules([p.size] as const, ([size = 'medium']) => {\n switch (size) {\n case 'small':\n return css`\n font-size: 18px;\n\n ${Label} {\n font-size: 14px;\n }\n `\n case 'large':\n return css`\n font-size: 32px;\n\n ${Label} {\n font-size: 18px;\n }\n `\n default:\n return css`\n font-size: 24px;\n\n ${Label} {\n font-size: 16px;\n }\n `\n }\n })}\n\n ${Segment} {\n ${p =>\n cssMediaRules(\n [p.gap] as const,\n ([gap]) => css`\n margin: 0 ${gap == null ? 0 : `${gap.value / 2}${gap.unit}`};\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n `,\n )}\n }\n\n ${Block} {\n ${p =>\n cssMediaRules([p.shape] as const, ([shape = 'rounded']) => {\n switch (shape) {\n case 'pill':\n return css`\n border-radius: 500px;\n `\n case 'rounded':\n return css`\n border-radius: 6px;\n `\n default:\n return css`\n border-radius: 0;\n `\n }\n })}\n ${p =>\n cssMediaRules(\n [p.variant, p.blockColor, p.numberColor, p.numberFont] as const,\n ([\n variant = 'filled',\n blockColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n numberColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n numberFont = 'sans-serif',\n ]) => {\n switch (variant) {\n case 'filled':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: ${colorToString(blockColor)};\n `\n case 'filled-split':\n return css`\n position: relative;\n color: ${colorToString(numberColor)};\n font-family: '${numberFont}';\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n ::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: calc(50% + 1px);\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n\n ::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n top: calc(50% + 1px);\n bottom: 0;\n border-bottom-left-radius: inherit;\n border-bottom-right-radius: inherit;\n background: ${colorToString(blockColor)};\n }\n `\n case 'outline':\n return css`\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n background: transparent;\n border: 2px solid ${colorToString(blockColor)};\n `\n case 'outline-split':\n return css`\n position: relative;\n font-family: '${numberFont}';\n color: ${colorToString(numberColor)};\n border: 2px solid ${colorToString(blockColor)};\n\n > span {\n position: relative;\n z-index: 1;\n }\n\n ::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n height: 2px;\n margin-top: -1px;\n background: ${colorToString(blockColor)};\n }\n `\n default:\n return css`\n font-family: '${numberFont}';\n background: transparent;\n color: ${colorToString(numberColor)};\n padding-top: 0;\n padding-bottom: 0;\n `\n }\n },\n )}\n }\n\n ${Label} {\n ${p =>\n cssMediaRules(\n [p.labelColor, p.labelFont] as const,\n ([\n labelColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n labelFont = 'sans-serif',\n ]) => css`\n font-family: '${labelFont}';\n color: ${colorToString(labelColor)};\n `,\n )}\n }\n`\n\nconst getRemaining = (date: Props['date'] | undefined) => {\n if (date == null) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n const timeDiff = new Date(date).getTime() - Date.now()\n\n if (timeDiff <= 0) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n let delta = Math.abs(timeDiff) / 1000\n\n const days = Math.floor(delta / 86400)\n delta -= days * 86400\n\n const hours = Math.floor(delta / 3600) % 24\n delta -= hours * 3600\n\n const minutes = Math.floor(delta / 60) % 60\n delta -= minutes * 60\n\n const seconds = parseInt(String(delta % 60), 10)\n\n return { days, hours, minutes, seconds }\n}\n\nconst Countdown = forwardRef(function Countdown(\n {\n id,\n margin,\n width,\n date,\n variant,\n size,\n shape,\n gap,\n labelColor,\n labelFont,\n numberColor,\n numberFont,\n blockColor,\n daysLabel,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [{ days, hours, minutes, seconds }, setRemaining] = useState(getRemaining(date))\n\n useEffect(() => {\n setRemaining(getRemaining(date))\n\n const intervalId = setInterval(() => {\n setRemaining(getRemaining(date))\n }, 1000)\n\n return () => clearInterval(intervalId)\n }, [date])\n\n return (\n <Container\n ref={ref}\n id={id}\n width={width}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={labelColor}\n labelFont={labelFont}\n numberColor={numberColor}\n numberFont={numberFont}\n blockColor={blockColor}\n gap={gap}\n >\n <Segment>\n <Block>\n <span>{days}</span>\n </Block>\n <Label>{daysLabel == null ? 'Days' : daysLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{hours}</span>\n </Block>\n <Label>{hoursLabel == null ? 'Hours' : hoursLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{minutes}</span>\n </Block>\n <Label>{minutesLabel == null ? 'Minutes' : minutesLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{seconds}</span>\n </Block>\n <Label>{secondsLabel == null ? 'Seconds' : secondsLabel}</Label>\n </Segment>\n </Container>\n )\n})\n\nexport default Countdown\n"],"names":["Block","styled","div","Label","Segment","Container","withConfig","shouldForwardProp","prop","includes","cssWidth","cssMargin","p","cssMediaRules","size","css","gap","value","unit","shape","variant","blockColor","numberColor","numberFont","swatch","hue","saturation","lightness","alpha","colorToString","labelColor","labelFont","getRemaining","date","days","hours","minutes","seconds","timeDiff","Date","getTime","now","delta","Math","abs","floor","parseInt","String","Countdown","forwardRef","id","margin","width","daysLabel","hoursLabel","minutesLabel","secondsLabel","ref","setRemaining","useState","useEffect","intervalId","setInterval","clearInterval","_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Countdown.cjs.js","sources":["../src/components/builtin/Countdown/Countdown.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef, ForwardedRef, forwardRef, Ref, useEffect, useState } from 'react'\nimport {\n DateValue,\n ElementIDValue,\n FontValue,\n GapXValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveValue,\n TextInputValue,\n} from '../../../prop-controllers/descriptors'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { colorToString } from '../../utils/colorToString'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { ColorValue as Color } from '../../utils/types'\n\ntype Props = {\n id?: ElementIDValue\n date?: DateValue\n variant?: ResponsiveIconRadioGroupValue<\n 'filled' | 'filled-split' | 'outline' | 'outline-split' | 'clear'\n >\n shape?: ResponsiveIconRadioGroupValue<'pill' | 'rounded' | 'square'>\n size?: ResponsiveIconRadioGroupValue<'small' | 'medium' | 'large'>\n gap?: GapXValue\n numberFont?: FontValue\n numberColor?: ResponsiveColor | null\n blockColor?: ResponsiveColor | null\n labelFont?: FontValue\n labelColor?: ResponsiveColor | null\n width?: string\n margin?: string\n daysLabel?: TextInputValue\n hoursLabel?: TextInputValue\n minutesLabel?: TextInputValue\n secondsLabel?: TextInputValue\n}\n\nconst BLOCK_CLASS_NAME = 'block'\n\ntype BlockProps = ComponentPropsWithoutRef<'div'>\n\nfunction Block({ className, ...restOfProps }: BlockProps) {\n return (\n <div\n {...restOfProps}\n className={cx(\n BLOCK_CLASS_NAME,\n useStyle({ display: 'block', padding: '0.5em', fontSize: '1em' }),\n className,\n )}\n />\n )\n}\n\nconst LABEL_CLASS_NAME = 'label'\n\ntype LabelProps = ComponentPropsWithoutRef<'div'>\n\nfunction Label({ className, ...restOfProps }: LabelProps) {\n return (\n <div\n {...restOfProps}\n className={cx(LABEL_CLASS_NAME, useStyle({ marginTop: '0.25em' }), className)}\n />\n )\n}\n\nconst SEGMENT_CLASS_NAME = 'segment'\n\ntype SegmentProps = ComponentPropsWithoutRef<'div'>\n\nfunction Segment({ className, ...restOfProps }: SegmentProps) {\n return (\n <div\n {...restOfProps}\n className={cx(SEGMENT_CLASS_NAME, useStyle({ flex: 1, textAlign: 'center' }), className)}\n />\n )\n}\n\ntype ContainerBaseProps = {\n width?: string\n margin?: string\n variant: Props['variant']\n size: Props['size']\n shape: Props['shape']\n gap: Props['gap']\n labelColor?: ResponsiveValue<Color> | null\n numberFont?: ResponsiveValue<string>\n numberColor?: ResponsiveValue<Color> | null\n blockColor?: ResponsiveValue<Color> | null\n labelFont?: ResponsiveValue<string>\n}\n\ntype ContainerProps = ContainerBaseProps &\n Omit<ComponentPropsWithoutRef<'div'>, keyof ContainerBaseProps>\n\nconst Container = forwardRef(function Container(\n {\n className,\n width,\n margin,\n variant,\n size,\n shape,\n gap,\n labelColor,\n numberFont,\n numberColor,\n blockColor,\n labelFont,\n ...restOfProps\n }: ContainerProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <div\n {...restOfProps}\n ref={ref}\n className={cx(\n useStyle({ display: 'flex' }),\n width,\n margin,\n useStyle(\n responsiveStyle([size] as const, ([size = 'medium']) => {\n switch (size) {\n case 'small':\n return { fontSize: 18, [`.${LABEL_CLASS_NAME}`]: { fontSize: 14 } }\n\n case 'large':\n return { fontSize: 32, [`.${LABEL_CLASS_NAME}`]: { fontSize: 18 } }\n\n default:\n return { fontSize: 24, [`.${LABEL_CLASS_NAME}`]: { fontSize: 16 } }\n }\n }),\n ),\n useStyle({\n [`.${SEGMENT_CLASS_NAME}`]: responsiveStyle([gap] as const, ([gap]) => ({\n margin: `0 ${gap == null ? 0 : `${gap.value / 2}${gap.unit}`}`,\n\n '&:first-child': {\n marginLeft: 0,\n },\n\n '&:last-child': {\n marginRight: 0,\n },\n })),\n }),\n useStyle({\n [`.${BLOCK_CLASS_NAME}`]: responsiveStyle([shape] as const, ([shape = 'rounded']) => {\n switch (shape) {\n case 'pill':\n return { borderRadius: 500 }\n\n case 'rounded':\n return { borderRadius: 6 }\n\n default:\n return { borderRadius: 0 }\n }\n }),\n }),\n useStyle({\n [`.${BLOCK_CLASS_NAME}`]: responsiveStyle(\n [variant, blockColor, numberColor, numberFont] as const,\n ([\n variant = 'filled',\n blockColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n numberColor = { swatch: { hue: 0, saturation: 0, lightness: 100 }, alpha: 1 },\n numberFont = 'sans-serif',\n ]) => {\n switch (variant) {\n case 'filled':\n return {\n fontFamily: numberFont,\n color: colorToString(numberColor),\n background: colorToString(blockColor),\n }\n\n case 'filled-split':\n return {\n position: 'relative',\n color: colorToString(numberColor),\n fontFamily: numberFont,\n\n '> span': {\n position: 'relative',\n zIndex: 1,\n },\n\n '::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 'calc(50% + 1px)',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n background: colorToString(blockColor),\n },\n\n '::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n right: 0,\n top: 'calc(50% + 1px)',\n bottom: 0,\n borderBottomLeftRadius: 'inherit',\n borderBottomRightRadius: 'inherit',\n background: colorToString(blockColor),\n },\n }\n\n case 'outline':\n return {\n fontFamily: numberFont,\n color: colorToString(numberColor),\n background: 'transparent',\n border: `2px solid ${colorToString(blockColor)}`,\n }\n\n case 'outline-split':\n return {\n position: 'relative',\n fontFamily: numberFont,\n color: colorToString(numberColor),\n border: `2px solid ${colorToString(blockColor)}`,\n\n '> span': {\n position: 'relative',\n zIndex: 1,\n },\n\n '::before': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: 0,\n right: 0,\n height: 2,\n marginTop: -1,\n background: colorToString(blockColor),\n },\n }\n\n default:\n return {\n fontFamily: numberFont,\n background: 'transparent',\n color: colorToString(numberColor),\n paddingTop: 0,\n paddingBottom: 0,\n }\n }\n },\n ),\n }),\n useStyle({\n [`.${LABEL_CLASS_NAME}`]: responsiveStyle(\n [labelColor, labelFont] as const,\n ([\n labelColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n labelFont = 'sans-serif',\n ]) => ({\n fontFamily: labelFont,\n color: colorToString(labelColor),\n }),\n ),\n }),\n className,\n )}\n />\n )\n})\n\nconst getRemaining = (date: Props['date'] | null | undefined) => {\n if (date == null) return { days: '0', hours: '0', minutes: '0', seconds: '0' }\n\n const timeDiff = new Date(date).getTime() - Date.now()\n\n if (timeDiff <= 0) return { days: 0, hours: 0, minutes: 0, seconds: 0 }\n\n let delta = Math.abs(timeDiff) / 1000\n\n const days = Math.floor(delta / 86400)\n delta -= days * 86400\n\n const hours = Math.floor(delta / 3600) % 24\n delta -= hours * 3600\n\n const minutes = Math.floor(delta / 60) % 60\n delta -= minutes * 60\n\n const seconds = parseInt(String(delta % 60), 10)\n\n return {\n days: days.toString(),\n hours: hours.toString(),\n minutes: minutes.toString(),\n seconds: seconds.toString(),\n }\n}\n\nconst Countdown = forwardRef(function Countdown(\n {\n id,\n margin,\n width,\n date,\n variant,\n size,\n shape,\n gap,\n labelColor,\n labelFont,\n numberColor,\n numberFont,\n blockColor,\n daysLabel,\n hoursLabel,\n minutesLabel,\n secondsLabel,\n }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const [{ days, hours, minutes, seconds }, setRemaining] = useState(getRemaining(null))\n\n useEffect(() => {\n setRemaining(getRemaining(date))\n\n const intervalId = setInterval(() => {\n setRemaining(getRemaining(date))\n }, 1000)\n\n return () => clearInterval(intervalId)\n }, [date])\n\n return (\n <Container\n ref={ref}\n id={id}\n width={width}\n margin={margin}\n variant={variant}\n size={size}\n shape={shape}\n labelColor={labelColor}\n labelFont={labelFont}\n numberColor={numberColor}\n numberFont={numberFont}\n blockColor={blockColor}\n gap={gap}\n >\n <Segment>\n <Block>\n <span>{days}</span>\n </Block>\n <Label>{daysLabel == null ? 'Days' : daysLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{hours}</span>\n </Block>\n <Label>{hoursLabel == null ? 'Hours' : hoursLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{minutes}</span>\n </Block>\n <Label>{minutesLabel == null ? 'Minutes' : minutesLabel}</Label>\n </Segment>\n <Segment>\n <Block>\n <span>{seconds}</span>\n </Block>\n <Label>{secondsLabel == null ? 'Seconds' : secondsLabel}</Label>\n </Segment>\n </Container>\n )\n})\n\nexport default Countdown\n"],"names":["BLOCK_CLASS_NAME","className","restOfProps","cx","useStyle","display","padding","fontSize","LABEL_CLASS_NAME","marginTop","SEGMENT_CLASS_NAME","flex","textAlign","Container","forwardRef","ref","width","margin","variant","size","shape","gap","labelColor","numberFont","numberColor","blockColor","labelFont","responsiveStyle","value","unit","marginLeft","marginRight","borderRadius","swatch","hue","saturation","lightness","alpha","fontFamily","color","colorToString","background","position","zIndex","content","top","left","right","bottom","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","height","paddingTop","paddingBottom","getRemaining","date","days","hours","minutes","seconds","timeDiff","Date","getTime","now","delta","Math","abs","floor","parseInt","String","toString","Countdown","id","daysLabel","hoursLabel","minutesLabel","secondsLabel","setRemaining","useState","useEffect","intervalId","setInterval","clearInterval","_jsxs","_jsx"],"mappings":"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"}