@helpdice/theme 1.0.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 (134) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +37 -0
  3. package/dist/css-baseline/css-baseline.d.ts +9 -0
  4. package/dist/css-baseline/index.d.ts +1 -0
  5. package/dist/css-baseline/index.js +868 -0
  6. package/dist/index.d.ts +12 -0
  7. package/dist/index.js +1516 -0
  8. package/dist/shared/css-transition.d.ts +13 -0
  9. package/dist/styled-jsx.cjs.js +748 -0
  10. package/dist/themes/index.d.ts +4 -0
  11. package/dist/themes/index.js +299 -0
  12. package/dist/themes/presets/dark.d.ts +8 -0
  13. package/dist/themes/presets/default.d.ts +8 -0
  14. package/dist/themes/presets/index.d.ts +90 -0
  15. package/dist/themes/presets/shared.d.ts +4 -0
  16. package/dist/themes/themes.d.ts +18 -0
  17. package/dist/ui-provider/index.d.ts +3 -0
  18. package/dist/ui-provider/index.js +1425 -0
  19. package/dist/ui-provider/theme-provider.d.ts +8 -0
  20. package/dist/ui-provider/ui-provider.d.ts +8 -0
  21. package/dist/use-all-themes/all-themes-context.d.ts +7 -0
  22. package/dist/use-all-themes/index.d.ts +3 -0
  23. package/dist/use-all-themes/index.js +311 -0
  24. package/dist/use-classes/index.d.ts +2 -0
  25. package/dist/use-classes/index.js +48 -0
  26. package/dist/use-classes/use-classes.d.ts +4 -0
  27. package/dist/use-current-state/index.d.ts +2 -0
  28. package/dist/use-current-state/index.js +72 -0
  29. package/dist/use-current-state/use-current-state.d.ts +4 -0
  30. package/dist/use-media-query/index.js +444 -0
  31. package/dist/use-theme/index.d.ts +2 -0
  32. package/dist/use-theme/index.js +309 -0
  33. package/dist/use-theme/theme-context.d.ts +4 -0
  34. package/dist/use-toasts/helpers.d.ts +18 -0
  35. package/dist/use-toasts/index.js +204 -0
  36. package/dist/use-toasts/toast-container.d.ts +3 -0
  37. package/dist/use-toasts/toast-item.d.ts +8 -0
  38. package/dist/use-toasts/use-toast.d.ts +40 -0
  39. package/dist/utils/collections.d.ts +15 -0
  40. package/dist/utils/layouts.d.ts +20 -0
  41. package/dist/utils/prop-types.d.ts +19 -0
  42. package/dist/utils/types.d.ts +3 -0
  43. package/dist/utils/use-current-state.d.ts +2 -0
  44. package/dist/utils/use-hd-ui-context.d.ts +16 -0
  45. package/dist/utils/use-portal.d.ts +2 -0
  46. package/dist/utils/use-ssr.d.ts +6 -0
  47. package/esm/css-baseline/css-baseline.d.ts +9 -0
  48. package/esm/css-baseline/css-baseline.js +23 -0
  49. package/esm/css-baseline/index.d.ts +1 -0
  50. package/esm/css-baseline/index.js +2 -0
  51. package/esm/index.d.ts +12 -0
  52. package/esm/index.js +11 -0
  53. package/esm/shared/backdrop.js +66 -0
  54. package/esm/shared/css-transition.d.ts +13 -0
  55. package/esm/shared/css-transition.js +65 -0
  56. package/esm/shared/dropdown.js +99 -0
  57. package/esm/shared/ellipsis.js +13 -0
  58. package/esm/shared/expand.js +86 -0
  59. package/esm/shared/highlight.js +46 -0
  60. package/esm/styled-jsx-server.es.js +5 -0
  61. package/esm/styled-jsx.es.js +737 -0
  62. package/esm/themes/index.d.ts +4 -0
  63. package/esm/themes/index.js +2 -0
  64. package/esm/themes/presets/dark.d.ts +8 -0
  65. package/esm/themes/presets/dark.js +64 -0
  66. package/esm/themes/presets/default.d.ts +8 -0
  67. package/esm/themes/presets/default.js +64 -0
  68. package/esm/themes/presets/index.d.ts +90 -0
  69. package/esm/themes/presets/index.js +1 -0
  70. package/esm/themes/presets/shared.d.ts +4 -0
  71. package/esm/themes/presets/shared.js +42 -0
  72. package/esm/themes/themes.d.ts +18 -0
  73. package/esm/themes/themes.js +77 -0
  74. package/esm/ui-provider/index.d.ts +3 -0
  75. package/esm/ui-provider/index.js +4 -0
  76. package/esm/ui-provider/theme-provider.d.ts +8 -0
  77. package/esm/ui-provider/theme-provider.js +45 -0
  78. package/esm/ui-provider/ui-provider.d.ts +8 -0
  79. package/esm/ui-provider/ui-provider.js +55 -0
  80. package/esm/use-all-themes/all-themes-context.d.ts +7 -0
  81. package/esm/use-all-themes/all-themes-context.js +11 -0
  82. package/esm/use-all-themes/index.d.ts +3 -0
  83. package/esm/use-all-themes/index.js +2 -0
  84. package/esm/use-classes/index.d.ts +2 -0
  85. package/esm/use-classes/index.js +2 -0
  86. package/esm/use-classes/use-classes.d.ts +4 -0
  87. package/esm/use-classes/use-classes.js +34 -0
  88. package/esm/use-current-state/index.d.ts +2 -0
  89. package/esm/use-current-state/index.js +2 -0
  90. package/esm/use-current-state/use-current-state.d.ts +4 -0
  91. package/esm/use-current-state/use-current-state.js +23 -0
  92. package/esm/use-media-query/index.js +2 -0
  93. package/esm/use-media-query/use-media-query.js +81 -0
  94. package/esm/use-theme/index.d.ts +2 -0
  95. package/esm/use-theme/index.js +2 -0
  96. package/esm/use-theme/theme-context.d.ts +4 -0
  97. package/esm/use-theme/theme-context.js +9 -0
  98. package/esm/use-toasts/helpers.d.ts +18 -0
  99. package/esm/use-toasts/helpers.js +66 -0
  100. package/esm/use-toasts/index.js +2 -0
  101. package/esm/use-toasts/toast-container.d.ts +3 -0
  102. package/esm/use-toasts/toast-container.js +120 -0
  103. package/esm/use-toasts/toast-item.d.ts +8 -0
  104. package/esm/use-toasts/toast-item.js +45 -0
  105. package/esm/use-toasts/use-toast.d.ts +40 -0
  106. package/esm/use-toasts/use-toast.js +103 -0
  107. package/esm/utils/calculations.js +29 -0
  108. package/esm/utils/collections.d.ts +15 -0
  109. package/esm/utils/collections.js +128 -0
  110. package/esm/utils/color.js +35 -0
  111. package/esm/utils/layouts.d.ts +20 -0
  112. package/esm/utils/layouts.js +73 -0
  113. package/esm/utils/prop-types.d.ts +19 -0
  114. package/esm/utils/prop-types.js +20 -0
  115. package/esm/utils/types.d.ts +3 -0
  116. package/esm/utils/types.js +1 -0
  117. package/esm/utils/use-click-anywhere.js +15 -0
  118. package/esm/utils/use-context-state/create-ui-context.js +50 -0
  119. package/esm/utils/use-context-state/use-context-state.js +40 -0
  120. package/esm/utils/use-current-state.d.ts +2 -0
  121. package/esm/utils/use-current-state.js +2 -0
  122. package/esm/utils/use-default-props.js +17 -0
  123. package/esm/utils/use-dom-observer.js +26 -0
  124. package/esm/utils/use-hd-ui-context.d.ts +16 -0
  125. package/esm/utils/use-hd-ui-context.js +27 -0
  126. package/esm/utils/use-portal.d.ts +2 -0
  127. package/esm/utils/use-portal.js +34 -0
  128. package/esm/utils/use-previous.js +11 -0
  129. package/esm/utils/use-real-shape.js +47 -0
  130. package/esm/utils/use-resize.js +19 -0
  131. package/esm/utils/use-ssr.d.ts +6 -0
  132. package/esm/utils/use-ssr.js +19 -0
  133. package/esm/utils/use-warning.js +13 -0
  134. package/package.json +111 -0
@@ -0,0 +1,9 @@
1
+ import React, { ReactElement } from 'react';
2
+ export type FlushToReact = <T>(opts?: {
3
+ nonce?: string;
4
+ }) => Array<ReactElement<T>>;
5
+ type MemoCssBaselineComponent<P = {}> = React.NamedExoticComponent<P> & {
6
+ flush: FlushToReact;
7
+ };
8
+ declare const MemoCssBaseline: MemoCssBaselineComponent<React.PropsWithChildren<unknown>>;
9
+ export default MemoCssBaseline;
@@ -0,0 +1,23 @@
1
+ import _JSXStyle from "../styled-jsx.es.js";
2
+ /* "use client" */
3
+ import React from 'react';
4
+ import useTheme from '../use-theme';
5
+ // import flush from 'styled-jsx'
6
+
7
+ // export type FlushToReact = <T>(opts?: { nonce?: string }) => Array<ReactElement<T>>
8
+
9
+ // export type FlushToHTML = (opts?: { nonce?: string }) => string
10
+
11
+ var CssBaseline = function CssBaseline(_ref) {
12
+ var children = _ref.children;
13
+ var theme = useTheme();
14
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement(_JSXStyle, {
15
+ id: "3647548829",
16
+ dynamic: [theme.palette.background, theme.palette.foreground, theme.palette.background, theme.font.sans, theme.font.sans, theme.palette.link, theme.expressiveness.linkStyle, theme.expressiveness.linkHoverStyle, theme.layout.gapHalf, theme.layout.gapHalf, theme.layout.gapHalf, theme.layout.gap, theme.palette.foreground, theme.palette.code, theme.font.mono, theme.layout.gap, theme.layout.gap, theme.layout.gap, theme.palette.accents_2, theme.layout.radius, theme.font.mono, theme.palette.foreground, theme.palette.accents_2, theme.palette.accents_1, theme.layout.gap, theme.layout.gap, theme.palette.accents_5, theme.palette.accents_1, theme.layout.radius, theme.palette.border, theme.palette.selection, theme.palette.foreground]
17
+ }, "html,body{background-color:".concat(theme.palette.background, ";color:").concat(theme.palette.foreground, ";}html{font-size:16px;--helpdice-icons-background:").concat(theme.palette.background, ";}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:1rem;line-height:1.5;margin:0;padding:0;min-height:100%;position:relative;overflow-x:hidden;font-family:").concat(theme.font.sans, ";}#__next{overflow-x:hidden;}*,*:before,*:after{box-sizing:inherit;text-rendering:geometricPrecision;-webkit-tap-highlight-color:transparent;}p,small{font-weight:400;color:inherit;-webkit-letter-spacing:-0.005625em;-moz-letter-spacing:-0.005625em;-ms-letter-spacing:-0.005625em;letter-spacing:-0.005625em;font-family:").concat(theme.font.sans, ";}p{margin:1em 0;font-size:1em;line-height:1.625em;}small{margin:0;line-height:1.5;font-size:0.875em;}b{font-weight:600;}span{font-size:inherit;color:inherit;font-weight:inherit;}img{max-width:100%;}a{cursor:pointer;font-size:inherit;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-box-align:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:").concat(theme.palette.link, ";-webkit-text-decoration:").concat(theme.expressiveness.linkStyle, ";text-decoration:").concat(theme.expressiveness.linkStyle, ";}a:hover{-webkit-text-decoration:").concat(theme.expressiveness.linkHoverStyle, ";text-decoration:").concat(theme.expressiveness.linkHoverStyle, ";}ul,ol{padding:0;list-style-type:none;margin:").concat(theme.layout.gapHalf, " ").concat(theme.layout.gapHalf, " ").concat(theme.layout.gapHalf, " ").concat(theme.layout.gap, ";color:").concat(theme.palette.foreground, ";}ol{list-style-type:decimal;}li{margin-bottom:0.625em;font-size:1em;line-height:1.625em;}h1,h2,h3,h4,h5,h6{color:inherit;margin:0 0 0.7rem 0;}h1{font-size:3rem;-webkit-letter-spacing:-0.02em;-moz-letter-spacing:-0.02em;-ms-letter-spacing:-0.02em;letter-spacing:-0.02em;line-height:1.5;font-weight:700;}h2{font-size:2.25rem;-webkit-letter-spacing:-0.02em;-moz-letter-spacing:-0.02em;-ms-letter-spacing:-0.02em;letter-spacing:-0.02em;font-weight:600;}h3{font-size:1.5rem;-webkit-letter-spacing:-0.02em;-moz-letter-spacing:-0.02em;-ms-letter-spacing:-0.02em;letter-spacing:-0.02em;font-weight:600;}h4{font-size:1.25rem;-webkit-letter-spacing:-0.02em;-moz-letter-spacing:-0.02em;-ms-letter-spacing:-0.02em;letter-spacing:-0.02em;font-weight:600;}h5{font-size:1rem;-webkit-letter-spacing:-0.01em;-moz-letter-spacing:-0.01em;-ms-letter-spacing:-0.01em;letter-spacing:-0.01em;font-weight:600;}h6{font-size:0.875rem;-webkit-letter-spacing:-0.005em;-moz-letter-spacing:-0.005em;-ms-letter-spacing:-0.005em;letter-spacing:-0.005em;font-weight:600;}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;margin:0;}button:focus,input:focus,select:focus,textarea:focus{outline:none;}code{color:").concat(theme.palette.code, ";font-family:").concat(theme.font.mono, ";font-size:0.9em;white-space:pre-wrap;}code:before,code:after{content:'\\`';}pre{padding:calc(").concat(theme.layout.gap, " * 0.9) ").concat(theme.layout.gap, ";margin:").concat(theme.layout.gap, " 0;border:1px solid ").concat(theme.palette.accents_2, ";border-radius:").concat(theme.layout.radius, ";font-family:").concat(theme.font.mono, ";white-space:pre;overflow:auto;line-height:1.5;text-align:left;font-size:14px;-webkit-overflow-scrolling:touch;}pre code{color:").concat(theme.palette.foreground, ";font-size:1em;line-height:1.25em;white-space:pre;}pre code:before,pre code:after{display:none;}pre p{margin:0;}pre::-webkit-scrollbar{display:none;width:0;height:0;background:transparent;}hr{border-color:").concat(theme.palette.accents_2, ";}details{background-color:").concat(theme.palette.accents_1, ";border:none;}details:focus,details:hover,details:active{outline:none;}summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;outline:none;}summary::marker,summary::before,summary::-webkit-details-marker{display:none;}summary::-moz-list-bullet{font-size:0;}summary:focus,summary:hover,summary:active{outline:none;list-style:none;}blockquote{padding:calc(0.667 * ").concat(theme.layout.gap, ") ").concat(theme.layout.gap, ";color:").concat(theme.palette.accents_5, ";background-color:").concat(theme.palette.accents_1, ";border-radius:").concat(theme.layout.radius, ";margin:1.5em 0;border:1px solid ").concat(theme.palette.border, ";}blockquote *:first-child{margin-top:0;}blockquote *:last-child{margin-bottom:0;}::selection{background-color:").concat(theme.palette.selection, ";color:").concat(theme.palette.foreground, ";}")));
18
+ };
19
+ var MemoCssBaseline = /*#__PURE__*/React.memo(CssBaseline);
20
+ // MemoCssBaseline.flush = flush.StyleRegistry
21
+ // MemoCssBaseline.flushToHTML = flushToReact
22
+
23
+ export default MemoCssBaseline;
@@ -0,0 +1 @@
1
+ export { default } from './css-baseline';
@@ -0,0 +1,2 @@
1
+ /* "use client" */
2
+ export { default } from './css-baseline';
package/esm/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import useTheme from './use-theme';
2
+ export { default as UiProvider } from './ui-provider';
3
+ export type { UiProviderProps } from './ui-provider';
4
+ export { default as Themes } from './themes';
5
+ export type { HUIThemes, HUserTheme } from './themes';
6
+ export { default as useAllThemes } from './use-all-themes';
7
+ export type { AllThemesConfig } from './use-all-themes';
8
+ export { default as CssBaseline } from './css-baseline';
9
+ export { default as useTheme } from './use-theme';
10
+ export { useRect } from './utils/layouts';
11
+ export type { ReactiveDomReact } from './utils/layouts';
12
+ export default useTheme;
package/esm/index.js ADDED
@@ -0,0 +1,11 @@
1
+ // @ts-ignore
2
+ /// <reference types="styled-jsx" />
3
+
4
+ import useTheme from './use-theme';
5
+ export { default as UiProvider } from './ui-provider';
6
+ export { default as Themes } from './themes';
7
+ export { default as useAllThemes } from './use-all-themes';
8
+ export { default as CssBaseline } from './css-baseline';
9
+ export { default as useTheme } from './use-theme';
10
+ export { useRect } from './utils/layouts';
11
+ export default useTheme;
@@ -0,0 +1,66 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["children", "onClick", "visible", "width", "onContentClick", "backdropClassName", "positionClassName", "layerClassName"];
5
+ import _JSXStyle from "../styled-jsx.es.js";
6
+ import React from 'react';
7
+ import useTheme from '../use-theme';
8
+ import CssTransition from './css-transition';
9
+ import useCurrentState from '../utils/use-current-state';
10
+ import useClasses from '../use-classes';
11
+ var Backdrop = /*#__PURE__*/React.memo(function (_ref) {
12
+ var children = _ref.children,
13
+ _ref$onClick = _ref.onClick,
14
+ onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
15
+ _ref$visible = _ref.visible,
16
+ visible = _ref$visible === void 0 ? false : _ref$visible,
17
+ width = _ref.width,
18
+ _ref$onContentClick = _ref.onContentClick,
19
+ onContentClick = _ref$onContentClick === void 0 ? function () {} : _ref$onContentClick,
20
+ _ref$backdropClassNam = _ref.backdropClassName,
21
+ backdropClassName = _ref$backdropClassNam === void 0 ? '' : _ref$backdropClassNam,
22
+ _ref$positionClassNam = _ref.positionClassName,
23
+ positionClassName = _ref$positionClassNam === void 0 ? '' : _ref$positionClassNam,
24
+ _ref$layerClassName = _ref.layerClassName,
25
+ layerClassName = _ref$layerClassName === void 0 ? '' : _ref$layerClassName,
26
+ props = _objectWithoutProperties(_ref, _excluded);
27
+ var theme = useTheme();
28
+ var _useCurrentState = useCurrentState(false),
29
+ _useCurrentState2 = _slicedToArray(_useCurrentState, 3),
30
+ setIsContentMouseDown = _useCurrentState2[1],
31
+ IsContentMouseDownRef = _useCurrentState2[2];
32
+ var clickHandler = function clickHandler(event) {
33
+ if (IsContentMouseDownRef.current) return;
34
+ onClick && onClick(event);
35
+ };
36
+ var mouseUpHandler = function mouseUpHandler() {
37
+ if (!IsContentMouseDownRef.current) return;
38
+ var timer = setTimeout(function () {
39
+ setIsContentMouseDown(false);
40
+ clearTimeout(timer);
41
+ }, 0);
42
+ };
43
+ return /*#__PURE__*/React.createElement(CssTransition, {
44
+ name: "backdrop-wrapper",
45
+ visible: visible,
46
+ clearTime: 300
47
+ }, /*#__PURE__*/React.createElement("div", _extends({
48
+ onClick: clickHandler,
49
+ onMouseUp: mouseUpHandler
50
+ }, props, {
51
+ className: _JSXStyle.dynamic([["2021762493", [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity]]]) + " " + (props && props.className != null && props.className || useClasses('backdrop', backdropClassName) || "")
52
+ }), /*#__PURE__*/React.createElement("div", {
53
+ className: _JSXStyle.dynamic([["2021762493", [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity]]]) + " " + (useClasses('layer', layerClassName) || "")
54
+ }), /*#__PURE__*/React.createElement("div", {
55
+ onClick: onContentClick,
56
+ onMouseDown: function onMouseDown() {
57
+ return setIsContentMouseDown(true);
58
+ },
59
+ className: _JSXStyle.dynamic([["2021762493", [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity]]]) + " " + (useClasses('position', positionClassName) || "")
60
+ }, children), /*#__PURE__*/React.createElement(_JSXStyle, {
61
+ id: "2021762493",
62
+ dynamic: [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity]
63
+ }, ".backdrop.__jsx-style-dynamic-selector{position:fixed;top:0;left:0;right:0;bottom:0;overflow:auto;z-index:1000;-webkit-overflow-scrolling:touch;box-sizing:border-box;text-align:center;}.position.__jsx-style-dynamic-selector{position:relative;z-index:1001;outline:none;max-width:90%;width:".concat(width, ";margin:20px auto;vertical-align:middle;display:inline-block;}.backdrop.__jsx-style-dynamic-selector:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:'';}.layer.__jsx-style-dynamic-selector{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;opacity:").concat(theme.expressiveness.portalOpacity, ";background-color:black;-webkit-transition:opacity 0.35s cubic-bezier(0.4,0,0.2,1);transition:opacity 0.35s cubic-bezier(0.4,0,0.2,1);pointer-events:none;z-index:1000;}.backdrop-wrapper-enter.__jsx-style-dynamic-selector .layer.__jsx-style-dynamic-selector{opacity:0;}.backdrop-wrapper-enter-active.__jsx-style-dynamic-selector .layer.__jsx-style-dynamic-selector{opacity:").concat(theme.expressiveness.portalOpacity, ";}.backdrop-wrapper-leave.__jsx-style-dynamic-selector .layer.__jsx-style-dynamic-selector{opacity:").concat(theme.expressiveness.portalOpacity, ";}.backdrop-wrapper-leave-active.__jsx-style-dynamic-selector .layer.__jsx-style-dynamic-selector{opacity:0;}"))));
64
+ });
65
+ Backdrop.displayName = 'Backdrop';
66
+ export default Backdrop;
@@ -0,0 +1,13 @@
1
+ import React, { ReactNode } from 'react';
2
+ interface Props {
3
+ visible?: boolean;
4
+ enterTime?: number;
5
+ leaveTime?: number;
6
+ clearTime?: number;
7
+ className?: string;
8
+ name?: string;
9
+ children: ReactNode;
10
+ }
11
+ export type CssTransitionProps = Props;
12
+ declare const CssTransition: React.FC<CssTransitionProps>;
13
+ export default CssTransition;
@@ -0,0 +1,65 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
+ var _excluded = ["children", "className", "visible", "enterTime", "leaveTime", "clearTime", "name"];
5
+ /* "use client" */
6
+
7
+ import React, { useEffect, useState } from 'react';
8
+ var CssTransition = function CssTransition(_ref) {
9
+ var children = _ref.children,
10
+ _ref$className = _ref.className,
11
+ className = _ref$className === void 0 ? '' : _ref$className,
12
+ _ref$visible = _ref.visible,
13
+ visible = _ref$visible === void 0 ? false : _ref$visible,
14
+ _ref$enterTime = _ref.enterTime,
15
+ enterTime = _ref$enterTime === void 0 ? 60 : _ref$enterTime,
16
+ _ref$leaveTime = _ref.leaveTime,
17
+ leaveTime = _ref$leaveTime === void 0 ? 60 : _ref$leaveTime,
18
+ _ref$clearTime = _ref.clearTime,
19
+ clearTime = _ref$clearTime === void 0 ? 60 : _ref$clearTime,
20
+ _ref$name = _ref.name,
21
+ name = _ref$name === void 0 ? 'transition' : _ref$name,
22
+ props = _objectWithoutProperties(_ref, _excluded);
23
+ var _useState = useState(''),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ classes = _useState2[0],
26
+ setClasses = _useState2[1];
27
+ var _useState3 = useState(visible),
28
+ _useState4 = _slicedToArray(_useState3, 2),
29
+ renderable = _useState4[0],
30
+ setRenderable = _useState4[1];
31
+ useEffect(function () {
32
+ var statusClassName = visible ? 'enter' : 'leave';
33
+ var time = visible ? enterTime : leaveTime;
34
+ if (visible && !renderable) {
35
+ setRenderable(true);
36
+ }
37
+ setClasses("".concat(name, "-").concat(statusClassName));
38
+
39
+ // set class to active
40
+ var timer = setTimeout(function () {
41
+ setClasses("".concat(name, "-").concat(statusClassName, " ").concat(name, "-").concat(statusClassName, "-active"));
42
+ clearTimeout(timer);
43
+ }, time);
44
+
45
+ // remove classess when animation over
46
+ var clearClassesTimer = setTimeout(function () {
47
+ if (!visible) {
48
+ setClasses('');
49
+ setRenderable(false);
50
+ }
51
+ clearTimeout(clearClassesTimer);
52
+ }, time + clearTime);
53
+ return function () {
54
+ clearTimeout(timer);
55
+ clearTimeout(clearClassesTimer);
56
+ };
57
+ }, [visible, renderable]);
58
+ if (! /*#__PURE__*/React.isValidElement(children) || !renderable) return null;
59
+ var propsTransition = _extends({}, props, {
60
+ className: "".concat(children.props.className, " ").concat(className, " ").concat(classes)
61
+ });
62
+ return /*#__PURE__*/React.cloneElement(children, propsTransition);
63
+ };
64
+ CssTransition.displayName = 'CssTransition';
65
+ export default CssTransition;
@@ -0,0 +1,99 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _JSXStyle from "../styled-jsx.es.js";
3
+ /* "use client" */
4
+
5
+ import React, { useEffect, useState } from 'react';
6
+ import { createPortal } from 'react-dom';
7
+ import usePortal from '../utils/use-portal';
8
+ import useResize from '../utils/use-resize';
9
+ import CssTransition from './css-transition';
10
+ import useClickAnyWhere from '../utils/use-click-anywhere';
11
+ import useDOMObserver from '../utils/use-dom-observer';
12
+ import useWarning from '../utils/use-warning';
13
+ import { getRefRect } from '../utils/layouts';
14
+ import useClasses from '../use-classes';
15
+ var defaultRect = {
16
+ top: -1000,
17
+ left: -1000,
18
+ right: -1000,
19
+ width: 0
20
+ };
21
+ var Dropdown = /*#__PURE__*/React.memo(function (_ref) {
22
+ var children = _ref.children,
23
+ parent = _ref.parent,
24
+ visible = _ref.visible,
25
+ disableMatchWidth = _ref.disableMatchWidth,
26
+ getPopupContainer = _ref.getPopupContainer;
27
+ var el = usePortal('dropdown', getPopupContainer);
28
+ var _useState = useState(defaultRect),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ rect = _useState2[0],
31
+ setRect = _useState2[1];
32
+ var classes = useClasses('dropdown', disableMatchWidth ? 'disable-match' : 'width-match');
33
+ if (!parent) return null;
34
+
35
+ /* istanbul ignore next */
36
+ if (process.env.NODE_ENV !== 'production') {
37
+ if (getPopupContainer && getPopupContainer()) {
38
+ var _el = getPopupContainer();
39
+ var style = window.getComputedStyle(_el);
40
+ if (style.position === 'static') {
41
+ useWarning('The element specified by "getPopupContainer" must have "position" set.');
42
+ }
43
+ }
44
+ }
45
+ var updateRect = function updateRect() {
46
+ var _getRefRect = getRefRect(parent, getPopupContainer),
47
+ top = _getRefRect.top,
48
+ left = _getRefRect.left,
49
+ right = _getRefRect.right,
50
+ nativeWidth = _getRefRect.width;
51
+ setRect({
52
+ top: top,
53
+ left: left,
54
+ right: right,
55
+ width: nativeWidth
56
+ });
57
+ };
58
+ useResize(updateRect);
59
+ useClickAnyWhere(function () {
60
+ var _getRefRect2 = getRefRect(parent, getPopupContainer),
61
+ top = _getRefRect2.top,
62
+ left = _getRefRect2.left;
63
+ var shouldUpdatePosition = top !== rect.top || left !== rect.left;
64
+ if (!shouldUpdatePosition) return;
65
+ updateRect();
66
+ });
67
+ useDOMObserver(parent, function () {
68
+ updateRect();
69
+ });
70
+ useEffect(function () {
71
+ if (!parent || !parent.current) return;
72
+ parent.current.addEventListener('mouseenter', updateRect);
73
+ /* istanbul ignore next */
74
+ return function () {
75
+ if (!parent || !parent.current) return;
76
+ parent.current.removeEventListener('mouseenter', updateRect);
77
+ };
78
+ }, [parent]);
79
+ var clickHandler = function clickHandler(event) {
80
+ event.stopPropagation();
81
+ event.nativeEvent.stopImmediatePropagation();
82
+ event.preventDefault();
83
+ };
84
+ var mouseDownHandler = function mouseDownHandler(event) {
85
+ event.preventDefault();
86
+ };
87
+ if (!el) return null;
88
+ return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(CssTransition, {
89
+ visible: visible
90
+ }, /*#__PURE__*/React.createElement("div", {
91
+ onClick: clickHandler,
92
+ onMouseDown: mouseDownHandler,
93
+ className: _JSXStyle.dynamic([["1644673105", [rect.top + 2, rect.left, rect.width, rect.width]]]) + " " + (classes || "")
94
+ }, children, /*#__PURE__*/React.createElement(_JSXStyle, {
95
+ id: "1644673105",
96
+ dynamic: [rect.top + 2, rect.left, rect.width, rect.width]
97
+ }, ".dropdown.__jsx-style-dynamic-selector{position:absolute;top:".concat(rect.top + 2, "px;left:").concat(rect.left, "px;z-index:1100;}.width-match.__jsx-style-dynamic-selector{width:").concat(rect.width, "px;}.disable-match.__jsx-style-dynamic-selector{min-width:").concat(rect.width, "px;}")))), el);
98
+ });
99
+ export default Dropdown;
@@ -0,0 +1,13 @@
1
+ import _JSXStyle from "../styled-jsx.es.js";
2
+ import React from 'react';
3
+ var Ellipsis = function Ellipsis(_ref) {
4
+ var children = _ref.children,
5
+ height = _ref.height;
6
+ return /*#__PURE__*/React.createElement("span", {
7
+ className: _JSXStyle.dynamic([["822089635", [height]]])
8
+ }, children, /*#__PURE__*/React.createElement(_JSXStyle, {
9
+ id: "822089635",
10
+ dynamic: [height]
11
+ }, "span.__jsx-style-dynamic-selector{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:".concat(height, ";min-width:0;}")));
12
+ };
13
+ export default /*#__PURE__*/React.memo(Ellipsis);
@@ -0,0 +1,86 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _JSXStyle from "../styled-jsx.es.js";
3
+ /* "use client" */
4
+
5
+ import React, { useEffect, useRef, useState } from 'react';
6
+ import useRealShape from '../utils/use-real-shape';
7
+ import useClasses from '../use-classes';
8
+ var Expand = function Expand(_ref) {
9
+ var _ref$isExpanded = _ref.isExpanded,
10
+ isExpanded = _ref$isExpanded === void 0 ? false : _ref$isExpanded,
11
+ _ref$delay = _ref.delay,
12
+ delay = _ref$delay === void 0 ? 200 : _ref$delay,
13
+ children = _ref.children;
14
+ var _useState = useState(isExpanded ? 'auto' : '0'),
15
+ _useState2 = _slicedToArray(_useState, 2),
16
+ height = _useState2[0],
17
+ setHeight = _useState2[1];
18
+ var _useState3 = useState(isExpanded),
19
+ _useState4 = _slicedToArray(_useState3, 2),
20
+ selfExpanded = _useState4[0],
21
+ setSelfExpanded = _useState4[1];
22
+ var _useState5 = useState(isExpanded),
23
+ _useState6 = _slicedToArray(_useState5, 2),
24
+ visible = _useState6[0],
25
+ setVisible = _useState6[1];
26
+ var contentRef = useRef(null);
27
+ var entryTimer = useRef();
28
+ var leaveTimer = useRef();
29
+ var resetTimer = useRef();
30
+ var _useRealShape = useRealShape(contentRef),
31
+ _useRealShape2 = _slicedToArray(_useRealShape, 2),
32
+ state = _useRealShape2[0],
33
+ updateShape = _useRealShape2[1];
34
+ var classes = useClasses('container', {
35
+ expanded: selfExpanded
36
+ });
37
+ useEffect(function () {
38
+ return setHeight("".concat(state.height, "px"));
39
+ }, [state.height]);
40
+ useEffect(function () {
41
+ // show element or reset height.
42
+ // force an update once manually, even if the element does not change.
43
+ // (the height of the element might be "auto")
44
+ if (isExpanded) {
45
+ setVisible(isExpanded);
46
+ } else {
47
+ updateShape();
48
+ setHeight("".concat(state.height, "px"));
49
+ }
50
+
51
+ // show expand animation
52
+ entryTimer.current = window.setTimeout(function () {
53
+ setSelfExpanded(isExpanded);
54
+ clearTimeout(entryTimer.current);
55
+ }, 30);
56
+
57
+ // Reset height after animation
58
+ if (isExpanded) {
59
+ resetTimer.current = window.setTimeout(function () {
60
+ setHeight('auto');
61
+ clearTimeout(resetTimer.current);
62
+ }, delay);
63
+ } else {
64
+ leaveTimer.current = window.setTimeout(function () {
65
+ setVisible(isExpanded);
66
+ clearTimeout(leaveTimer.current);
67
+ }, delay / 2);
68
+ }
69
+ return function () {
70
+ clearTimeout(entryTimer.current);
71
+ clearTimeout(leaveTimer.current);
72
+ clearTimeout(resetTimer.current);
73
+ };
74
+ }, [isExpanded]);
75
+ return /*#__PURE__*/React.createElement("div", {
76
+ className: _JSXStyle.dynamic([["1918690829", [visible ? 'visible' : 'hidden', delay, height]]]) + " " + (classes || "")
77
+ }, /*#__PURE__*/React.createElement("div", {
78
+ ref: contentRef,
79
+ className: _JSXStyle.dynamic([["1918690829", [visible ? 'visible' : 'hidden', delay, height]]]) + " " + "content"
80
+ }, children), /*#__PURE__*/React.createElement(_JSXStyle, {
81
+ id: "1918690829",
82
+ dynamic: [visible ? 'visible' : 'hidden', delay, height]
83
+ }, ".container.__jsx-style-dynamic-selector{padding:0;margin:0;height:0;overflow:hidden;visibility:".concat(visible ? 'visible' : 'hidden', ";-webkit-transition:height ").concat(delay, "ms ease;transition:height ").concat(delay, "ms ease;}.expanded.__jsx-style-dynamic-selector{height:").concat(height, ";visibility:visible;}")));
84
+ };
85
+ Expand.displayName = 'Expand';
86
+ export default Expand;
@@ -0,0 +1,46 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["rect", "visible", "hoverHeightRatio", "hoverWidthRatio", "activeOpacity", "className"];
4
+ import _JSXStyle from "../styled-jsx.es.js";
5
+ /* "use client" */
6
+
7
+ import React, { useMemo, useRef } from 'react';
8
+ import { isUnplacedRect } from '../utils/layouts';
9
+ import usePrevious from '../utils/use-previous';
10
+ import useTheme from '../use-theme';
11
+ import useClasses from '../use-classes';
12
+ var Highlight = function Highlight(_ref) {
13
+ var rect = _ref.rect,
14
+ visible = _ref.visible,
15
+ _ref$hoverHeightRatio = _ref.hoverHeightRatio,
16
+ hoverHeightRatio = _ref$hoverHeightRatio === void 0 ? 1 : _ref$hoverHeightRatio,
17
+ _ref$hoverWidthRatio = _ref.hoverWidthRatio,
18
+ hoverWidthRatio = _ref$hoverWidthRatio === void 0 ? 1 : _ref$hoverWidthRatio,
19
+ _ref$activeOpacity = _ref.activeOpacity,
20
+ activeOpacity = _ref$activeOpacity === void 0 ? 0.8 : _ref$activeOpacity,
21
+ className = _ref.className,
22
+ props = _objectWithoutProperties(_ref, _excluded);
23
+ var theme = useTheme();
24
+ var ref = useRef(null);
25
+ var isFirstVisible = usePrevious(isUnplacedRect(rect));
26
+ var position = useMemo(function () {
27
+ var width = rect.width * hoverWidthRatio;
28
+ var height = rect.height * hoverHeightRatio;
29
+ return {
30
+ width: "".concat(width, "px"),
31
+ left: "".concat(rect.left + (rect.width - width) / 2, "px"),
32
+ height: "".concat(height, "px"),
33
+ top: "".concat(rect.elementTop + (rect.height - height) / 2, "px"),
34
+ transition: isFirstVisible ? 'opacity' : 'opacity, width, left, top'
35
+ };
36
+ }, [rect, hoverWidthRatio, hoverHeightRatio]);
37
+ return /*#__PURE__*/React.createElement("div", _extends({
38
+ ref: ref
39
+ }, props, {
40
+ className: _JSXStyle.dynamic([["603024321", [theme.palette.accents_2, position.width, position.left, position.height, position.top, visible ? activeOpacity : 0, position.transition]]]) + " " + (props && props.className != null && props.className || useClasses('highlight', className) || "")
41
+ }), /*#__PURE__*/React.createElement(_JSXStyle, {
42
+ id: "603024321",
43
+ dynamic: [theme.palette.accents_2, position.width, position.left, position.height, position.top, visible ? activeOpacity : 0, position.transition]
44
+ }, ".highlight.__jsx-style-dynamic-selector{background:".concat(theme.palette.accents_2, ";position:absolute;border-radius:5px;width:").concat(position.width, ";left:").concat(position.left, ";height:").concat(position.height, ";top:").concat(position.top, ";opacity:").concat(visible ? activeOpacity : 0, ";-webkit-transition:0.15s ease;transition:0.15s ease;-webkit-transition-property:").concat(position.transition, ";transition-property:").concat(position.transition, ";}")));
45
+ };
46
+ export default Highlight;
@@ -0,0 +1,5 @@
1
+ import { server } from './styled-jsx.es'
2
+ const { flushToHTML } = server
3
+
4
+ export { server, flushToHTML }
5
+ export default server