@nextui-org/react 1.0.1-alpha.48 → 1.0.1-alpha.51

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 (114) hide show
  1. package/cjs/backdrop/index.d.ts +23 -0
  2. package/cjs/backdrop/index.js +102 -0
  3. package/cjs/css-baseline/css-baseline.js +3 -3
  4. package/cjs/index.d.ts +4 -0
  5. package/cjs/index.js +22 -2
  6. package/cjs/input/input-icon-clear.d.ts +1 -0
  7. package/cjs/input/input-icon-clear.js +7 -5
  8. package/cjs/input/input-password.d.ts +4 -1
  9. package/cjs/input/input-props.d.ts +2 -0
  10. package/cjs/input/input-props.js +1 -0
  11. package/cjs/input/input.js +10 -3
  12. package/cjs/modal/index.d.ts +2 -0
  13. package/cjs/modal/index.js +21 -0
  14. package/cjs/modal/modal-body.d.ts +19 -0
  15. package/cjs/modal/modal-body.js +65 -0
  16. package/cjs/modal/modal-close-button.d.ts +7 -0
  17. package/cjs/modal/modal-close-button.js +52 -0
  18. package/cjs/modal/modal-context.d.ts +8 -0
  19. package/cjs/modal/modal-context.js +18 -0
  20. package/cjs/modal/modal-footer.d.ts +20 -0
  21. package/cjs/modal/modal-footer.js +65 -0
  22. package/cjs/modal/modal-header.d.ts +20 -0
  23. package/cjs/modal/modal-header.js +65 -0
  24. package/cjs/modal/modal-wrapper.d.ts +22 -0
  25. package/cjs/modal/modal-wrapper.js +128 -0
  26. package/cjs/modal/modal.d.ts +38 -0
  27. package/cjs/modal/modal.js +152 -0
  28. package/cjs/modal/use-modal.d.ts +11 -0
  29. package/cjs/modal/use-modal.js +25 -0
  30. package/cjs/radio/radio-group.js +6 -4
  31. package/cjs/radio/radio.js +11 -8
  32. package/cjs/{input → shared}/clear-icon.d.ts +3 -1
  33. package/cjs/{input → shared}/clear-icon.js +20 -1
  34. package/cjs/snippet/snippet.d.ts +6 -5
  35. package/cjs/snippet/snippet.js +4 -2
  36. package/cjs/text/child.d.ts +1 -0
  37. package/cjs/text/child.js +10 -4
  38. package/cjs/text/text.d.ts +1 -0
  39. package/cjs/text/text.js +2 -0
  40. package/cjs/theme/dark.js +3 -3
  41. package/cjs/theme/default.js +1 -1
  42. package/cjs/theme/types.d.ts +1 -0
  43. package/cjs/tooltip/tooltip-content.js +5 -5
  44. package/cjs/use-keyboard/codes.d.ts +92 -0
  45. package/cjs/use-keyboard/codes.js +104 -0
  46. package/cjs/use-keyboard/helper.d.ts +3 -0
  47. package/cjs/use-keyboard/helper.js +35 -0
  48. package/cjs/use-keyboard/index.d.ts +5 -0
  49. package/cjs/use-keyboard/index.js +15 -0
  50. package/cjs/use-keyboard/use-keyboard.d.ts +22 -0
  51. package/cjs/use-keyboard/use-keyboard.js +76 -0
  52. package/cjs/utils/collections.d.ts +3 -0
  53. package/cjs/utils/collections.js +30 -2
  54. package/cjs/utils/icons.js +57 -1
  55. package/esm/backdrop/index.d.ts +23 -0
  56. package/esm/backdrop/index.js +79 -0
  57. package/esm/css-baseline/css-baseline.js +3 -3
  58. package/esm/index.d.ts +4 -0
  59. package/esm/index.js +5 -1
  60. package/esm/input/input-icon-clear.d.ts +1 -0
  61. package/esm/input/input-icon-clear.js +7 -5
  62. package/esm/input/input-password.d.ts +4 -1
  63. package/esm/input/input-props.d.ts +2 -0
  64. package/esm/input/input-props.js +1 -0
  65. package/esm/input/input.js +9 -2
  66. package/esm/modal/index.d.ts +2 -0
  67. package/esm/modal/index.js +8 -0
  68. package/esm/modal/modal-body.d.ts +19 -0
  69. package/esm/modal/modal-body.js +45 -0
  70. package/esm/modal/modal-close-button.d.ts +7 -0
  71. package/esm/modal/modal-close-button.js +39 -0
  72. package/esm/modal/modal-context.d.ts +8 -0
  73. package/esm/modal/modal-context.js +4 -0
  74. package/esm/modal/modal-footer.d.ts +20 -0
  75. package/esm/modal/modal-footer.js +44 -0
  76. package/esm/modal/modal-header.d.ts +20 -0
  77. package/esm/modal/modal-header.js +44 -0
  78. package/esm/modal/modal-wrapper.d.ts +22 -0
  79. package/esm/modal/modal-wrapper.js +106 -0
  80. package/esm/modal/modal.d.ts +38 -0
  81. package/esm/modal/modal.js +128 -0
  82. package/esm/modal/use-modal.d.ts +11 -0
  83. package/esm/modal/use-modal.js +16 -0
  84. package/esm/radio/radio-group.js +6 -4
  85. package/esm/radio/radio.js +11 -8
  86. package/esm/{input → shared}/clear-icon.d.ts +3 -1
  87. package/esm/{input → shared}/clear-icon.js +20 -1
  88. package/esm/snippet/snippet.d.ts +6 -5
  89. package/esm/snippet/snippet.js +4 -2
  90. package/esm/text/child.d.ts +1 -0
  91. package/esm/text/child.js +10 -4
  92. package/esm/text/text.d.ts +1 -0
  93. package/esm/text/text.js +2 -0
  94. package/esm/theme/dark.js +3 -3
  95. package/esm/theme/default.js +1 -1
  96. package/esm/theme/types.d.ts +1 -0
  97. package/esm/tooltip/tooltip-content.js +5 -5
  98. package/esm/use-keyboard/codes.d.ts +92 -0
  99. package/esm/use-keyboard/codes.js +97 -0
  100. package/esm/use-keyboard/helper.d.ts +3 -0
  101. package/esm/use-keyboard/helper.js +24 -0
  102. package/esm/use-keyboard/index.d.ts +5 -0
  103. package/esm/use-keyboard/index.js +4 -0
  104. package/esm/use-keyboard/use-keyboard.d.ts +22 -0
  105. package/esm/use-keyboard/use-keyboard.js +67 -0
  106. package/esm/utils/collections.d.ts +3 -0
  107. package/esm/utils/collections.js +19 -0
  108. package/esm/utils/icons.js +50 -0
  109. package/modal/package.json +6 -0
  110. package/package.json +1 -1
  111. package/shared/package.json +6 -0
  112. package/umd/nextui.js +958 -91
  113. package/umd/nextui.min.js +1 -1
  114. package/use-keyboard/package.json +6 -0
@@ -0,0 +1,23 @@
1
+ import React, { MouseEvent } from 'react';
2
+ interface Props {
3
+ onClick?: (event: MouseEvent<HTMLElement>) => void;
4
+ visible?: boolean;
5
+ fullScreenContent?: boolean;
6
+ width?: string;
7
+ blur?: boolean;
8
+ }
9
+ declare const defaultProps: {
10
+ onClick: () => void;
11
+ visible: boolean;
12
+ blur: boolean;
13
+ fullScreenContent: boolean;
14
+ };
15
+ declare type NativeAttrs = Omit<React.HTMLAttributes<unknown>, keyof Props>;
16
+ export declare type BackdropProps = Props & typeof defaultProps & NativeAttrs;
17
+ declare const _default: React.ComponentType<Partial<{
18
+ onClick: () => void;
19
+ visible: boolean;
20
+ blur: boolean;
21
+ fullScreenContent: boolean;
22
+ }> & Omit<React.PropsWithChildren<BackdropProps>, "blur" | "onClick" | "visible" | "fullScreenContent">>;
23
+ export default _default;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _withDefaults = _interopRequireDefault(require("../utils/with-defaults"));
13
+
14
+ var _useTheme = _interopRequireDefault(require("../use-theme"));
15
+
16
+ var _cssTransition = _interopRequireDefault(require("../utils/css-transition"));
17
+
18
+ var _useCurrentState = _interopRequireDefault(require("../use-current-state"));
19
+
20
+ var _clsx = _interopRequireDefault(require("../utils/clsx"));
21
+
22
+ var _assertion = require("../utils/assertion");
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ const defaultProps = {
31
+ onClick: () => {},
32
+ visible: false,
33
+ blur: false,
34
+ fullScreenContent: false
35
+ };
36
+
37
+ const Backdrop = /*#__PURE__*/_react.default.memo(({
38
+ children,
39
+ onClick,
40
+ visible,
41
+ width,
42
+ blur,
43
+ fullScreenContent,
44
+ ...props
45
+ }) => {
46
+ const theme = (0, _useTheme.default)();
47
+ const [, setIsContentMouseDown, IsContentMouseDownRef] = (0, _useCurrentState.default)(false);
48
+
49
+ const clickHandler = event => {
50
+ if (IsContentMouseDownRef.current) return;
51
+ onClick && onClick(event);
52
+ };
53
+
54
+ const childrenClickHandler = (0, _react.useCallback)(event => {
55
+ event.stopPropagation();
56
+ }, []);
57
+
58
+ const mouseUpHandler = () => {
59
+ if (!IsContentMouseDownRef.current) return;
60
+ const timer = setTimeout(() => {
61
+ setIsContentMouseDown(false);
62
+ clearTimeout(timer);
63
+ }, 0);
64
+ };
65
+
66
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_cssTransition.default, {
67
+ name: "backdrop-wrapper",
68
+ visible: visible,
69
+ enterTime: 20,
70
+ leaveTime: 20,
71
+ clearTime: 150,
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
73
+ onClick: clickHandler,
74
+ onMouseUp: mouseUpHandler,
75
+ ...props,
76
+ className: _style.default.dynamic([["903909204", [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.breakpoints.sm.max]]]) + " " + (props && props.className != null && props.className || (0, _clsx.default)('backdrop', {
77
+ fullscreen: fullScreenContent
78
+ }) || ""),
79
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
80
+ className: _style.default.dynamic([["903909204", [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.breakpoints.sm.max]]]) + " " + ((0, _clsx.default)('layer', blur ? 'layer-blur' : 'layer-default') || "")
81
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
82
+ onClick: childrenClickHandler,
83
+ onMouseDown: () => setIsContentMouseDown(true),
84
+ className: _style.default.dynamic([["903909204", [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.breakpoints.sm.max]]]) + " " + "content",
85
+ children: children
86
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_style.default, {
87
+ id: "903909204",
88
+ dynamic: [width, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.expressiveness.portalOpacity, theme.breakpoints.sm.max],
89
+ children: `.backdrop.__jsx-style-dynamic-selector{position:fixed;top:0;left:0;right:0;bottom:0;overflow:auto;z-index:99999;-webkit-overflow-scrolling:touch;box-sizing:border-box;text-align:center;}.content.__jsx-style-dynamic-selector{position:relative;z-index:999999;outline:none;width:100%;max-width:${width};margin:20px auto;vertical-align:middle;display:inline-block;}.fullscreen.__jsx-style-dynamic-selector .content.__jsx-style-dynamic-selector{width:100vw;max-width:100vw;height:100vh;margin:0;}.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%;pointer-events:none;z-index:99999;}.layer-default.__jsx-style-dynamic-selector{background-color:black;opacity:${theme.expressiveness.portalOpacity};-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);}.layer-blur.__jsx-style-dynamic-selector{opacity:1;-webkit-transition:background 0.35s cubic-bezier(0.4,0,0.2,1);transition:background 0.35s cubic-bezier(0.4,0,0.2,1);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,0.1);}.fullscreen.__jsx-style-dynamic-selector .layer.__jsx-style-dynamic-selector{display:none;}.backdrop-wrapper-enter.__jsx-style-dynamic-selector .layer-default.__jsx-style-dynamic-selector{opacity:0;}.backdrop-wrapper-enter-active.__jsx-style-dynamic-selector .layer-default.__jsx-style-dynamic-selector{opacity:${theme.expressiveness.portalOpacity};}.backdrop-wrapper-leave.__jsx-style-dynamic-selector .layer-default.__jsx-style-dynamic-selector{opacity:${theme.expressiveness.portalOpacity};}.backdrop-wrapper-leave-active.__jsx-style-dynamic-selector .layer-default.__jsx-style-dynamic-selector{opacity:0;}.backdrop-wrapper-enter.__jsx-style-dynamic-selector .layer-blur.__jsx-style-dynamic-selector{background-color:rgba(0,0,0,0.1);}.backdrop-wrapper-enter-active.__jsx-style-dynamic-selector .layer-blur.__jsx-style-dynamic-selector{background-color:rgba(0,0,0,0.4);}.backdrop-wrapper-leave.__jsx-style-dynamic-selector .layer-blur.__jsx-style-dynamic-selector{background-color:rgba(0,0,0,0.4);}.backdrop-wrapper-leave-active.__jsx-style-dynamic-selector .layer-blur.__jsx-style-dynamic-selector{background-color:rgba(0,0,0,0.1);}@media only screen and (max-width:${theme.breakpoints.sm.max}){.content.__jsx-style-dynamic-selector{width:90%;}}`
90
+ })]
91
+ })
92
+ });
93
+ });
94
+
95
+ if (_assertion.__DEV__) {
96
+ Backdrop.displayName = 'NextUI - Backdrop';
97
+ }
98
+
99
+ var _default = (0, _withDefaults.default)(Backdrop, defaultProps);
100
+
101
+ exports.default = _default;
102
+ module.exports = exports.default;
@@ -23,9 +23,9 @@ const CssBaseline = ({
23
23
  const theme = (0, _useTheme.default)();
24
24
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
25
25
  children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_style.default, {
26
- id: "748313834",
27
- 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.layout.gapQuarter, theme.layout.gapQuarter, (0, _color.addColorAlpha)(theme.palette.code, 0.2), theme.font.mono, (0, _color.addColorAlpha)(theme.palette.code, 0.3), theme.layout.radius, theme.layout.gap, theme.layout.gap, theme.layout.gap, 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.selection, theme.palette.foreground],
28
- children: `html,body{background-color:${theme.palette.background};color:${theme.palette.foreground};}html{font-size:16px;--nextui-icons-background:${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:${theme.font.sans};}*,*:before,*:after{box-sizing:inherit;text-rendering:geometricPrecision;-webkit-tap-highlight-color:transparent;}p,small{font-weight:400;color:inherit;-webkit-letter-spacing:-0.005625rem;-moz-letter-spacing:-0.005625rem;-ms-letter-spacing:-0.005625rem;letter-spacing:-0.005625rem;font-family:${theme.font.sans};}p{margin:1rem 0;font-size:1em;line-height:1.625em;}small{margin:0;line-height:1.5;font-size:0.875rem;}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:${theme.palette.link};-webkit-text-decoration:${theme.expressiveness.linkStyle};text-decoration:${theme.expressiveness.linkStyle};}a:hover{-webkit-text-decoration:${theme.expressiveness.linkHoverStyle};text-decoration:${theme.expressiveness.linkHoverStyle};}ul,ol{padding:0;list-style-type:none;margin:${theme.layout.gapHalf} ${theme.layout.gapHalf} ${theme.layout.gapHalf} ${theme.layout.gap};color:${theme.palette.foreground};}ol{list-style-type:decimal;}li{margin-bottom:0.625rem;font-size:1em;line-height:1.625em;}h1,h2,h3,h4,h5,h6{color:inherit;margin:0 0 0.625rem 0;}h1{font-size:3rem;-webkit-letter-spacing:-0.066875rem;-moz-letter-spacing:-0.066875rem;-ms-letter-spacing:-0.066875rem;letter-spacing:-0.066875rem;line-height:1.5;font-weight:700;}h2{font-size:2.25rem;-webkit-letter-spacing:-0.020625rem;-moz-letter-spacing:-0.020625rem;-ms-letter-spacing:-0.020625rem;letter-spacing:-0.020625rem;font-weight:600;}h3{font-size:1.5rem;-webkit-letter-spacing:-0.029375rem;-moz-letter-spacing:-0.029375rem;-ms-letter-spacing:-0.029375rem;letter-spacing:-0.029375rem;font-weight:600;}h4{font-size:1.25rem;-webkit-letter-spacing:-0.020625rem;-moz-letter-spacing:-0.020625rem;-ms-letter-spacing:-0.020625rem;letter-spacing:-0.020625rem;font-weight:600;}h5{font-size:1rem;-webkit-letter-spacing:-0.01125rem;-moz-letter-spacing:-0.01125rem;-ms-letter-spacing:-0.01125rem;letter-spacing:-0.01125rem;font-weight:600;}h6{font-size:0.875rem;-webkit-letter-spacing:-0.005625rem;-moz-letter-spacing:-0.005625rem;-ms-letter-spacing:-0.005625rem;letter-spacing:-0.005625rem;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:${theme.palette.code};padding:calc(${theme.layout.gapQuarter} * 0.5) ${theme.layout.gapQuarter};border-radius:0.375rem;background-color:${(0, _color.addColorAlpha)(theme.palette.code, 0.2)};font-family:${theme.font.mono};font-size:0.8rem;white-space:pre-wrap;-webkit-transition:background-color 0.25s ease;transition:background-color 0.25s ease;}code:hover{background-color:${(0, _color.addColorAlpha)(theme.palette.code, 0.3)};}pre{border-radius:${theme.layout.radius};padding:calc(${theme.layout.gap} * 0.75) ${theme.layout.gap};margin:${theme.layout.gap} 0;font-family:${theme.font.mono};white-space:pre;overflow:auto;line-height:1.5;text-align:left;font-size:0.875rem;-webkit-overflow-scrolling:touch;}pre code{color:${theme.palette.foreground};font-size:0.8125rem;line-height:1.25rem;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:${theme.palette.accents_2};}details{background-color:${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::-webkit-details-marker,summary::before{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 * ${theme.layout.gap}) ${theme.layout.gap};color:${theme.palette.accents_5};background-color:${theme.palette.accents_1};border-radius:${theme.layout.radius};margin:1.5rem 0;}blockquote *:first-child{margin-top:0;}blockquote *:last-child{margin-bottom:0;}::selection{background-color:${theme.palette.selection};color:${theme.palette.foreground};}`
26
+ id: "1075366528",
27
+ dynamic: [theme.palette.background, theme.palette.text, 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.layout.gapQuarter, theme.layout.gapQuarter, (0, _color.addColorAlpha)(theme.palette.code, 0.2), theme.font.mono, (0, _color.addColorAlpha)(theme.palette.code, 0.3), theme.layout.radius, theme.layout.gap, theme.layout.gap, theme.layout.gap, 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.selection, theme.palette.foreground],
28
+ children: `html,body{background-color:${theme.palette.background};color:${theme.palette.text};}html{font-size:16px;--nextui-icons-background:${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:${theme.font.sans};}*,*:before,*:after{box-sizing:inherit;text-rendering:geometricPrecision;-webkit-tap-highlight-color:transparent;}p,small{font-weight:400;color:inherit;-webkit-letter-spacing:-0.005625rem;-moz-letter-spacing:-0.005625rem;-ms-letter-spacing:-0.005625rem;letter-spacing:-0.005625rem;font-family:${theme.font.sans};}p{margin:1rem 0;font-size:1em;line-height:1.625em;}small{margin:0;line-height:1.5;font-size:0.875rem;}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:${theme.palette.link};-webkit-text-decoration:${theme.expressiveness.linkStyle};text-decoration:${theme.expressiveness.linkStyle};}a:hover{-webkit-text-decoration:${theme.expressiveness.linkHoverStyle};text-decoration:${theme.expressiveness.linkHoverStyle};}ul,ol{padding:0;list-style-type:none;margin:${theme.layout.gapHalf} ${theme.layout.gapHalf} ${theme.layout.gapHalf} ${theme.layout.gap};color:${theme.palette.foreground};}ol{list-style-type:decimal;}li{margin-bottom:0.625rem;font-size:1em;line-height:1.625em;}h1,h2,h3,h4,h5,h6{color:inherit;margin:0 0 0.625rem 0;}h1{font-size:3rem;-webkit-letter-spacing:-0.066875rem;-moz-letter-spacing:-0.066875rem;-ms-letter-spacing:-0.066875rem;letter-spacing:-0.066875rem;line-height:1.5;font-weight:700;}h2{font-size:2.25rem;-webkit-letter-spacing:-0.020625rem;-moz-letter-spacing:-0.020625rem;-ms-letter-spacing:-0.020625rem;letter-spacing:-0.020625rem;font-weight:600;}h3{font-size:1.5rem;-webkit-letter-spacing:-0.029375rem;-moz-letter-spacing:-0.029375rem;-ms-letter-spacing:-0.029375rem;letter-spacing:-0.029375rem;font-weight:600;}h4{font-size:1.25rem;-webkit-letter-spacing:-0.020625rem;-moz-letter-spacing:-0.020625rem;-ms-letter-spacing:-0.020625rem;letter-spacing:-0.020625rem;font-weight:600;}h5{font-size:1rem;-webkit-letter-spacing:-0.01125rem;-moz-letter-spacing:-0.01125rem;-ms-letter-spacing:-0.01125rem;letter-spacing:-0.01125rem;font-weight:600;}h6{font-size:0.875rem;-webkit-letter-spacing:-0.005625rem;-moz-letter-spacing:-0.005625rem;-ms-letter-spacing:-0.005625rem;letter-spacing:-0.005625rem;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:${theme.palette.code};padding:calc(${theme.layout.gapQuarter} * 0.5) ${theme.layout.gapQuarter};border-radius:0.375rem;background-color:${(0, _color.addColorAlpha)(theme.palette.code, 0.2)};font-family:${theme.font.mono};font-size:0.8rem;white-space:pre-wrap;-webkit-transition:background-color 0.25s ease;transition:background-color 0.25s ease;}code:hover{background-color:${(0, _color.addColorAlpha)(theme.palette.code, 0.3)};}pre{border-radius:${theme.layout.radius};padding:calc(${theme.layout.gap} * 0.75) ${theme.layout.gap};margin:${theme.layout.gap} 0;font-family:${theme.font.mono};white-space:pre;overflow:auto;line-height:1.5;text-align:left;font-size:0.875rem;-webkit-overflow-scrolling:touch;}pre code{color:${theme.palette.foreground};font-size:0.8125rem;line-height:1.25rem;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:${theme.palette.accents_2};}details{background-color:${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::-webkit-details-marker,summary::before{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 * ${theme.layout.gap}) ${theme.layout.gap};color:${theme.palette.accents_5};background-color:${theme.palette.accents_1};border-radius:${theme.layout.radius};margin:1.5rem 0;}blockquote *:first-child{margin-top:0;}blockquote *:last-child{margin-bottom:0;}::selection{background-color:${theme.palette.selection};color:${theme.palette.foreground};}`
29
29
  })]
30
30
  });
31
31
  };
package/cjs/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export { default as useBodyScroll } from './use-body-scroll';
10
10
  export { default as useClickAway } from './use-click-away';
11
11
  export { default as useClickAnywhere } from './use-click-anywhere';
12
12
  export { default as useInput } from './use-input';
13
+ export { default as useKeyboard } from './use-keyboard';
13
14
  export { default as Avatar } from './avatar';
14
15
  export { default as CssBaseline } from './css-baseline';
15
16
  export { default as Checkbox } from './checkbox';
@@ -39,3 +40,6 @@ export { default as Snippet } from './snippet';
39
40
  export { default as Tooltip } from './tooltip';
40
41
  export { default as Input } from './input';
41
42
  export { default as Textarea } from './textarea';
43
+ export { default as Modal } from './modal';
44
+ export { default as useModal } from './modal/use-modal';
45
+ export { default as Backdrop } from './backdrop';
package/cjs/index.js CHANGED
@@ -15,6 +15,7 @@ var _exportNames = {
15
15
  useClickAway: true,
16
16
  useClickAnywhere: true,
17
17
  useInput: true,
18
+ useKeyboard: true,
18
19
  Avatar: true,
19
20
  CssBaseline: true,
20
21
  Checkbox: true,
@@ -37,9 +38,12 @@ var _exportNames = {
37
38
  Snippet: true,
38
39
  Tooltip: true,
39
40
  Input: true,
40
- Textarea: true
41
+ Textarea: true,
42
+ Modal: true,
43
+ useModal: true,
44
+ Backdrop: true
41
45
  };
42
- exports.Textarea = exports.Input = exports.Tooltip = exports.Snippet = exports.Container = exports.Code = exports.Divider = exports.Col = exports.Row = exports.Image = exports.Card = exports.Grid = exports.Button = exports.Loading = exports.Link = exports.User = exports.Spacer = exports.Switch = exports.Radio = exports.Text = exports.Checkbox = exports.CssBaseline = exports.Avatar = exports.useInput = exports.useClickAnywhere = exports.useClickAway = exports.useBodyScroll = exports.useSSR = exports.usePortal = exports.useTheme = exports.useResize = exports.useRealShape = exports.useCurrentState = exports.ThemeProvider = void 0;
46
+ exports.Backdrop = exports.useModal = exports.Modal = exports.Textarea = exports.Input = exports.Tooltip = exports.Snippet = exports.Container = exports.Code = exports.Divider = exports.Col = exports.Row = exports.Image = exports.Card = exports.Grid = exports.Button = exports.Loading = exports.Link = exports.User = exports.Spacer = exports.Switch = exports.Radio = exports.Text = exports.Checkbox = exports.CssBaseline = exports.Avatar = exports.useKeyboard = exports.useInput = exports.useClickAnywhere = exports.useClickAway = exports.useBodyScroll = exports.useSSR = exports.usePortal = exports.useTheme = exports.useResize = exports.useRealShape = exports.useCurrentState = exports.ThemeProvider = void 0;
43
47
 
44
48
  var _types = require("./theme/types");
45
49
 
@@ -94,6 +98,10 @@ var _useInput = _interopRequireDefault(require("./use-input"));
94
98
 
95
99
  exports.useInput = _useInput.default;
96
100
 
101
+ var _useKeyboard = _interopRequireDefault(require("./use-keyboard"));
102
+
103
+ exports.useKeyboard = _useKeyboard.default;
104
+
97
105
  var _avatar = _interopRequireDefault(require("./avatar"));
98
106
 
99
107
  exports.Avatar = _avatar.default;
@@ -222,6 +230,18 @@ var _textarea = _interopRequireDefault(require("./textarea"));
222
230
 
223
231
  exports.Textarea = _textarea.default;
224
232
 
233
+ var _modal = _interopRequireDefault(require("./modal"));
234
+
235
+ exports.Modal = _modal.default;
236
+
237
+ var _useModal = _interopRequireDefault(require("./modal/use-modal"));
238
+
239
+ exports.useModal = _useModal.default;
240
+
241
+ var _backdrop = _interopRequireDefault(require("./backdrop"));
242
+
243
+ exports.Backdrop = _backdrop.default;
244
+
225
245
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
226
246
 
227
247
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -3,6 +3,7 @@ import { SimpleColors } from '../utils/prop-types';
3
3
  interface Props {
4
4
  visible: boolean;
5
5
  hasContentRight?: boolean;
6
+ underlined?: boolean;
6
7
  status?: SimpleColors;
7
8
  onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
8
9
  heightRatio?: string | undefined;
@@ -13,7 +13,7 @@ var _clsx = _interopRequireDefault(require("../utils/clsx"));
13
13
 
14
14
  var _useTheme = _interopRequireDefault(require("../use-theme"));
15
15
 
16
- var _clearIcon = _interopRequireDefault(require("./clear-icon"));
16
+ var _clearIcon = _interopRequireDefault(require("../shared/clear-icon"));
17
17
 
18
18
  var _color = require("../utils/color");
19
19
 
@@ -29,6 +29,7 @@ const InputIconClear = ({
29
29
  status,
30
30
  disabled,
31
31
  visible,
32
+ underlined,
32
33
  hasContentRight,
33
34
  ...props
34
35
  }) => {
@@ -49,17 +50,18 @@ const InputIconClear = ({
49
50
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
50
51
  onClick: clickHandler,
51
52
  ...props,
52
- className: _style.default.dynamic([["2855590982", [theme.layout.gapHalf, disabled ? 'not-allowed' : 'pointer', color, disabled ? theme.palette.accents_3 : theme.palette.foreground, width, width]]]) + " " + (props && props.className != null && props.className || (0, _clsx.default)('clear-icon', {
53
+ className: _style.default.dynamic([["2364806577", [underlined ? '2px' : theme.layout.gapHalf, disabled ? 'not-allowed' : 'pointer', color, disabled ? theme.palette.accents_3 : theme.palette.foreground, width, width]]]) + " " + (props && props.className != null && props.className || (0, _clsx.default)('clear-icon', {
53
54
  visible,
54
55
  'dark-theme': isDark,
56
+ underlined: underlined,
55
57
  'has-content-right': hasContentRight
56
58
  }) || ""),
57
59
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clearIcon.default, {
58
60
  fill: "currentColor"
59
61
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_style.default, {
60
- id: "2855590982",
61
- dynamic: [theme.layout.gapHalf, disabled ? 'not-allowed' : 'pointer', color, disabled ? theme.palette.accents_3 : theme.palette.foreground, width, width],
62
- children: `.clear-icon.__jsx-style-dynamic-selector{position:absolute;right:0;margin:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:auto;padding:0 ${theme.layout.gapHalf};cursor:${disabled ? 'not-allowed' : 'pointer'};box-sizing:border-box;-webkit-transition:color 250ms ease 0s,-webkit-transform 250ms ease 0s;-webkit-transition:color 250ms ease 0s,transform 250ms ease 0s;transition:color 250ms ease 0s,transform 250ms ease 0s;color:${color};visibility:hidden;-webkit-transform:translateX(20%);-ms-transform:translateX(20%);transform:translateX(20%);opacity:0;}.has-content-right.__jsx-style-dynamic-selector{padding:0;position:relative;-webkit-transform:translateX(30%);-ms-transform:translateX(30%);transform:translateX(30%);}.visible.__jsx-style-dynamic-selector{visibility:visible;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:1;}.clear-icon.__jsx-style-dynamic-selector:hover{color:${disabled ? theme.palette.accents_3 : theme.palette.foreground};}.clear-icon.__jsx-style-dynamic-selector svg{color:currentColor;width:${width};height:${width};}`
62
+ id: "2364806577",
63
+ dynamic: [underlined ? '2px' : theme.layout.gapHalf, disabled ? 'not-allowed' : 'pointer', color, disabled ? theme.palette.accents_3 : theme.palette.foreground, width, width],
64
+ children: `.clear-icon.__jsx-style-dynamic-selector{position:absolute;right:0;margin:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:auto;padding:0 ${underlined ? '2px' : theme.layout.gapHalf};cursor:${disabled ? 'not-allowed' : 'pointer'};box-sizing:border-box;-webkit-transition:color 250ms ease 0s,-webkit-transform 250ms ease 0s;-webkit-transition:color 250ms ease 0s,transform 250ms ease 0s;transition:color 250ms ease 0s,transform 250ms ease 0s;color:${color};visibility:hidden;-webkit-transform:translateX(20%);-ms-transform:translateX(20%);transform:translateX(20%);opacity:0;}.has-content-right.__jsx-style-dynamic-selector{padding:0;position:relative;-webkit-transform:translateX(30%);-ms-transform:translateX(30%);transform:translateX(30%);}.visible.__jsx-style-dynamic-selector{visibility:visible;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:1;}.clear-icon.__jsx-style-dynamic-selector:hover{color:${disabled ? theme.palette.accents_3 : theme.palette.foreground};}.clear-icon.__jsx-style-dynamic-selector svg{color:currentColor;width:${width};height:${width};}`
63
65
  })]
64
66
  });
65
67
  };
@@ -17,6 +17,7 @@ declare const passwordDefaultProps: {
17
17
  animated: boolean;
18
18
  underlined: boolean;
19
19
  shadow: boolean;
20
+ fullWidth: boolean;
20
21
  contentClickable: boolean;
21
22
  contentRightStyling: boolean;
22
23
  contentLeftStyling: boolean;
@@ -46,6 +47,7 @@ declare const _default: React.ComponentType<Partial<{
46
47
  animated: boolean;
47
48
  underlined: boolean;
48
49
  shadow: boolean;
50
+ fullWidth: boolean;
49
51
  contentClickable: boolean;
50
52
  contentRightStyling: boolean;
51
53
  contentLeftStyling: boolean;
@@ -72,6 +74,7 @@ declare const _default: React.ComponentType<Partial<{
72
74
  animated: boolean;
73
75
  underlined: boolean;
74
76
  shadow: boolean;
77
+ fullWidth: boolean;
75
78
  contentClickable: boolean;
76
79
  contentRightStyling: boolean;
77
80
  contentLeftStyling: boolean;
@@ -86,5 +89,5 @@ declare const _default: React.ComponentType<Partial<{
86
89
  className: string;
87
90
  placeholder: string;
88
91
  initialValue: string;
89
- } & NativeAttrs & React.RefAttributes<HTMLInputElement>, "clearable" | "rounded" | "contentClickable" | "contentLeftStyling" | "contentRightStyling" | "width" | "className" | "animated" | "placeholder" | "color" | "status" | "bordered" | "size" | "disabled" | "autoComplete" | "readOnly" | "required" | "initialValue" | "shadow" | "borderWeight" | "underlined" | "helperColor" | "hideToggle" | "visibleIcon" | "hiddenIcon">>;
92
+ } & NativeAttrs & React.RefAttributes<HTMLInputElement>, "clearable" | "rounded" | "contentClickable" | "contentLeftStyling" | "contentRightStyling" | "width" | "className" | "animated" | "placeholder" | "color" | "status" | "bordered" | "size" | "disabled" | "autoComplete" | "readOnly" | "required" | "initialValue" | "shadow" | "borderWeight" | "underlined" | "fullWidth" | "helperColor" | "hideToggle" | "visibleIcon" | "hiddenIcon">>;
90
93
  export default _default;
@@ -3,6 +3,7 @@ import { NormalSizes, SimpleColors, ContentPosition, NormalWeights, AsProp } fro
3
3
  export declare type FormElement = HTMLInputElement | HTMLTextAreaElement;
4
4
  export interface Props extends AsProp<'input' | 'textarea'>, React.HTMLAttributes<FormElement> {
5
5
  value?: string;
6
+ fullWidth?: boolean;
6
7
  initialValue?: string;
7
8
  placeholder?: string;
8
9
  size?: NormalSizes;
@@ -47,6 +48,7 @@ export declare const defaultProps: {
47
48
  animated: boolean;
48
49
  underlined: boolean;
49
50
  shadow: boolean;
51
+ fullWidth: boolean;
50
52
  contentClickable: boolean;
51
53
  contentRightStyling: boolean;
52
54
  contentLeftStyling: boolean;
@@ -11,6 +11,7 @@ const defaultProps = {
11
11
  animated: true,
12
12
  underlined: false,
13
13
  shadow: true,
14
+ fullWidth: false,
14
15
  contentClickable: false,
15
16
  contentRightStyling: true,
16
17
  contentLeftStyling: true,
@@ -11,8 +11,6 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _useTheme = _interopRequireDefault(require("../use-theme"));
13
13
 
14
- var _assertion = require("../utils/assertion");
15
-
16
14
  var _inputLabel = _interopRequireDefault(require("./input-label"));
17
15
 
18
16
  var _inputBlockLabel = _interopRequireDefault(require("./input-block-label"));
@@ -31,6 +29,8 @@ var _dimensions = require("../utils/dimensions");
31
29
 
32
30
  var _clsx = _interopRequireDefault(require("../utils/clsx"));
33
31
 
32
+ var _assertion = require("../utils/assertion");
33
+
34
34
  var _useWarning = _interopRequireDefault(require("../use-warning"));
35
35
 
36
36
  var _jsxRuntime = require("react/jsx-runtime");
@@ -72,12 +72,13 @@ const Input = /*#__PURE__*/_react.default.forwardRef(({
72
72
  shadow,
73
73
  animated,
74
74
  required,
75
- width,
75
+ width: widthProp,
76
76
  className,
77
77
  onBlur,
78
78
  onFocus,
79
79
  autoComplete,
80
80
  placeholder,
81
+ fullWidth,
81
82
  borderWeight: borderWeightProp,
82
83
  disabled,
83
84
  bordered,
@@ -98,6 +99,11 @@ const Input = /*#__PURE__*/_react.default.forwardRef(({
98
99
  const inputLabel = (0, _react.useMemo)(() => label || labelPlaceholder, [label, labelPlaceholder]);
99
100
  const ComponentWrapper = (0, _react.useMemo)(() => inputLabel ? 'div' : 'label', [inputLabel]);
100
101
  const inputPlaceholder = (0, _react.useMemo)(() => labelPlaceholder ? '' : placeholder, [placeholder, labelPlaceholder]);
102
+ const width = (0, _react.useMemo)(() => {
103
+ if (fullWidth) return '100%';
104
+ if (widthProp) return widthProp;
105
+ return 'initial';
106
+ }, [fullWidth, widthProp]);
101
107
 
102
108
  if (underlined && _assertion.__DEV__) {
103
109
  bordered && (0, _useWarning.default)('Using underlined and bordered at the same time will have no effect.');
@@ -260,6 +266,7 @@ const Input = /*#__PURE__*/_react.default.forwardRef(({
260
266
  }) || "")
261
267
  }), clearable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_inputIconClear.default, {
262
268
  status: status,
269
+ underlined: underlined,
263
270
  visible: Boolean(selfValue),
264
271
  hasContentRight: !!contentRight,
265
272
  heightRatio: heightRatio,
@@ -0,0 +1,2 @@
1
+ import Modal from './modal';
2
+ export default Modal;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _modal = _interopRequireDefault(require("./modal"));
9
+
10
+ var _modalHeader = _interopRequireDefault(require("./modal-header"));
11
+
12
+ var _modalBody = _interopRequireDefault(require("./modal-body"));
13
+
14
+ var _modalFooter = _interopRequireDefault(require("./modal-footer"));
15
+
16
+ _modal.default.Header = _modalHeader.default;
17
+ _modal.default.Body = _modalBody.default;
18
+ _modal.default.Footer = _modalFooter.default;
19
+ var _default = _modal.default;
20
+ exports.default = _default;
21
+ module.exports = exports.default;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ className?: string;
4
+ autoMargin?: boolean;
5
+ }
6
+ declare const defaultProps: {
7
+ className: string;
8
+ autoMargin: boolean;
9
+ };
10
+ declare type NativeAttrs = Omit<React.HTMLAttributes<HTMLElement>, keyof Props>;
11
+ export declare type ModalContentProps = Props & typeof defaultProps & NativeAttrs;
12
+ declare const _default: React.ComponentType<Partial<{
13
+ className: string;
14
+ autoMargin: boolean;
15
+ }> & Omit<Props & {
16
+ className: string;
17
+ autoMargin: boolean;
18
+ } & NativeAttrs, "className" | "autoMargin">>;
19
+ export default _default;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _withDefaults = _interopRequireDefault(require("../utils/with-defaults"));
13
+
14
+ var _modalContext = require("./modal-context");
15
+
16
+ var _useTheme = _interopRequireDefault(require("../use-theme"));
17
+
18
+ var _clsx = _interopRequireDefault(require("../utils/clsx"));
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ const defaultProps = {
27
+ className: '',
28
+ autoMargin: true
29
+ };
30
+
31
+ const ModalContent = ({
32
+ className,
33
+ children,
34
+ autoMargin: autoMarginProp,
35
+ ...props
36
+ }) => {
37
+ const theme = (0, _useTheme.default)();
38
+ const {
39
+ autoMargin: autoMarginContext,
40
+ noPadding
41
+ } = (0, _react.useContext)(_modalContext.ModalContext);
42
+ const autoMargin = (0, _react.useMemo)(() => {
43
+ return autoMarginContext !== undefined ? autoMarginContext : autoMarginProp;
44
+ }, [autoMarginProp, autoMarginContext]);
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { ...props,
47
+ className: _style.default.dynamic([["1688581216", [theme.layout.gapHalf, theme.layout.gap]]]) + " " + (props && props.className != null && props.className || (0, _clsx.default)('modal-body', {
48
+ 'auto-margin': autoMargin,
49
+ 'no-padding': noPadding
50
+ }, className) || ""),
51
+ children: children
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_style.default, {
53
+ id: "1688581216",
54
+ dynamic: [theme.layout.gapHalf, theme.layout.gap],
55
+ children: `.modal-body.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;padding:${theme.layout.gapHalf} calc(${theme.layout.gap} + 0.25rem);overflow-y:auto;position:relative;text-align:left;}.no-padding.__jsx-style-dynamic-selector{-webkit-flex:1;-ms-flex:1;flex:1;padding:0;}.auto-margin.__jsx-style-dynamic-selector>*:first-child{margin-top:0;}.auto-margin.__jsx-style-dynamic-selector>*{margin-bottom:1rem;}.auto-margin.__jsx-style-dynamic-selector>*:last-child{margin-bottom:0;}`
56
+ })]
57
+ });
58
+ };
59
+
60
+ const MemoModalContent = /*#__PURE__*/_react.default.memo(ModalContent);
61
+
62
+ var _default = (0, _withDefaults.default)(MemoModalContent, defaultProps);
63
+
64
+ exports.default = _default;
65
+ module.exports = exports.default;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
4
+ disabled?: boolean;
5
+ }
6
+ declare const MemoModalCloseButton: React.NamedExoticComponent<Props>;
7
+ export default MemoModalCloseButton;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _style = _interopRequireDefault(require("styled-jsx/style"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _useTheme = _interopRequireDefault(require("../use-theme"));
13
+
14
+ var _clearIcon = _interopRequireDefault(require("../shared/clear-icon"));
15
+
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+
18
+ const ModalCloseButton = ({
19
+ onClick,
20
+ disabled,
21
+ ...props
22
+ }) => {
23
+ const theme = (0, _useTheme.default)();
24
+
25
+ const clickHandler = event => {
26
+ event.preventDefault();
27
+ event.stopPropagation();
28
+ event.nativeEvent.stopImmediatePropagation();
29
+ onClick && onClick(event);
30
+ };
31
+
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
33
+ onClick: clickHandler,
34
+ ...props,
35
+ className: _style.default.dynamic([["1382096932", [theme.layout.gapQuarter, theme.layout.gapQuarter, disabled ? 'not-allowed' : 'pointer', theme.layout.gapQuarter, theme.palette.accents_4]]]) + " " + (props && props.className != null && props.className || "close-icon"),
36
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clearIcon.default, {
37
+ plain: true,
38
+ size: 18,
39
+ fill: "currentColor"
40
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_style.default, {
41
+ id: "1382096932",
42
+ dynamic: [theme.layout.gapQuarter, theme.layout.gapQuarter, disabled ? 'not-allowed' : 'pointer', theme.layout.gapQuarter, theme.palette.accents_4],
43
+ children: `.close-icon.__jsx-style-dynamic-selector{position:absolute;z-index:1;top:${theme.layout.gapQuarter};right:calc(${theme.layout.gapQuarter} * 0.5);margin:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:auto;cursor:${disabled ? 'not-allowed' : 'pointer'};box-sizing:border-box;-webkit-transition:opacity 250ms ease 0s;transition:opacity 250ms ease 0s;padding:${theme.layout.gapQuarter};color:${theme.palette.accents_4};}.close-icon.__jsx-style-dynamic-selector:hover{opacity:0.8;}.close-icon.__jsx-style-dynamic-selector svg{color:currentColor;}`
44
+ })]
45
+ });
46
+ };
47
+
48
+ const MemoModalCloseButton = /*#__PURE__*/_react.default.memo(ModalCloseButton);
49
+
50
+ var _default = MemoModalCloseButton;
51
+ exports.default = _default;
52
+ module.exports = exports.default;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface ModalConfig {
3
+ autoMargin?: boolean;
4
+ noPadding?: boolean;
5
+ close?: () => void;
6
+ }
7
+ export declare const ModalContext: React.Context<ModalConfig>;
8
+ export declare const useModalContext: () => ModalConfig;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.useModalContext = exports.ModalContext = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ const defaultContext = {};
11
+
12
+ const ModalContext = /*#__PURE__*/_react.default.createContext(defaultContext);
13
+
14
+ exports.ModalContext = ModalContext;
15
+
16
+ const useModalContext = () => _react.default.useContext(ModalContext);
17
+
18
+ exports.useModalContext = useModalContext;
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Justify } from '../utils/prop-types';
3
+ interface Props {
4
+ className?: string;
5
+ justify?: Justify;
6
+ autoMargin?: boolean;
7
+ }
8
+ declare const defaultProps: {
9
+ className: string;
10
+ justify: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly";
11
+ autoMargin: boolean;
12
+ };
13
+ declare type NativeAttrs = Omit<React.HTMLAttributes<unknown>, keyof Props>;
14
+ export declare type ModalFooterProps = Props & typeof defaultProps & NativeAttrs;
15
+ declare const _default: React.ComponentType<Partial<{
16
+ className: string;
17
+ justify: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly";
18
+ autoMargin: boolean;
19
+ }> & Omit<ModalFooterProps, "className" | "justify" | "autoMargin">>;
20
+ export default _default;