@react-spectrum/dialog 3.9.6 → 3.10.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 (228) hide show
  1. package/dist/import.mjs +5 -7
  2. package/dist/main.js +9 -11
  3. package/dist/main.js.map +1 -1
  4. package/dist/module.js +5 -7
  5. package/dist/module.js.map +1 -1
  6. package/dist/types/src/index.d.ts +8 -0
  7. package/package.json +12 -43
  8. package/src/index.ts +8 -7
  9. package/dist/AlertDialog.main.js +0 -97
  10. package/dist/AlertDialog.main.js.map +0 -1
  11. package/dist/AlertDialog.mjs +0 -92
  12. package/dist/AlertDialog.module.js +0 -92
  13. package/dist/AlertDialog.module.js.map +0 -1
  14. package/dist/Dialog.main.js +0 -131
  15. package/dist/Dialog.main.js.map +0 -1
  16. package/dist/Dialog.mjs +0 -126
  17. package/dist/Dialog.module.js +0 -126
  18. package/dist/Dialog.module.js.map +0 -1
  19. package/dist/DialogContainer.main.js +0 -63
  20. package/dist/DialogContainer.main.js.map +0 -1
  21. package/dist/DialogContainer.mjs +0 -54
  22. package/dist/DialogContainer.module.js +0 -54
  23. package/dist/DialogContainer.module.js.map +0 -1
  24. package/dist/DialogTrigger.main.js +0 -161
  25. package/dist/DialogTrigger.main.js.map +0 -1
  26. package/dist/DialogTrigger.mjs +0 -152
  27. package/dist/DialogTrigger.module.js +0 -152
  28. package/dist/DialogTrigger.module.js.map +0 -1
  29. package/dist/ar-AE.main.js +0 -7
  30. package/dist/ar-AE.main.js.map +0 -1
  31. package/dist/ar-AE.mjs +0 -9
  32. package/dist/ar-AE.module.js +0 -9
  33. package/dist/ar-AE.module.js.map +0 -1
  34. package/dist/bg-BG.main.js +0 -7
  35. package/dist/bg-BG.main.js.map +0 -1
  36. package/dist/bg-BG.mjs +0 -9
  37. package/dist/bg-BG.module.js +0 -9
  38. package/dist/bg-BG.module.js.map +0 -1
  39. package/dist/context.main.js +0 -27
  40. package/dist/context.main.js.map +0 -1
  41. package/dist/context.mjs +0 -18
  42. package/dist/context.module.js +0 -18
  43. package/dist/context.module.js.map +0 -1
  44. package/dist/cs-CZ.main.js +0 -7
  45. package/dist/cs-CZ.main.js.map +0 -1
  46. package/dist/cs-CZ.mjs +0 -9
  47. package/dist/cs-CZ.module.js +0 -9
  48. package/dist/cs-CZ.module.js.map +0 -1
  49. package/dist/da-DK.main.js +0 -7
  50. package/dist/da-DK.main.js.map +0 -1
  51. package/dist/da-DK.mjs +0 -9
  52. package/dist/da-DK.module.js +0 -9
  53. package/dist/da-DK.module.js.map +0 -1
  54. package/dist/de-DE.main.js +0 -7
  55. package/dist/de-DE.main.js.map +0 -1
  56. package/dist/de-DE.mjs +0 -9
  57. package/dist/de-DE.module.js +0 -9
  58. package/dist/de-DE.module.js.map +0 -1
  59. package/dist/dialog.1f91a33b.css +0 -519
  60. package/dist/dialog.1f91a33b.css.map +0 -1
  61. package/dist/dialog_vars_css.main.js +0 -161
  62. package/dist/dialog_vars_css.main.js.map +0 -1
  63. package/dist/dialog_vars_css.mjs +0 -163
  64. package/dist/dialog_vars_css.module.js +0 -163
  65. package/dist/dialog_vars_css.module.js.map +0 -1
  66. package/dist/el-GR.main.js +0 -7
  67. package/dist/el-GR.main.js.map +0 -1
  68. package/dist/el-GR.mjs +0 -9
  69. package/dist/el-GR.module.js +0 -9
  70. package/dist/el-GR.module.js.map +0 -1
  71. package/dist/en-US.main.js +0 -7
  72. package/dist/en-US.main.js.map +0 -1
  73. package/dist/en-US.mjs +0 -9
  74. package/dist/en-US.module.js +0 -9
  75. package/dist/en-US.module.js.map +0 -1
  76. package/dist/es-ES.main.js +0 -7
  77. package/dist/es-ES.main.js.map +0 -1
  78. package/dist/es-ES.mjs +0 -9
  79. package/dist/es-ES.module.js +0 -9
  80. package/dist/es-ES.module.js.map +0 -1
  81. package/dist/et-EE.main.js +0 -7
  82. package/dist/et-EE.main.js.map +0 -1
  83. package/dist/et-EE.mjs +0 -9
  84. package/dist/et-EE.module.js +0 -9
  85. package/dist/et-EE.module.js.map +0 -1
  86. package/dist/fi-FI.main.js +0 -7
  87. package/dist/fi-FI.main.js.map +0 -1
  88. package/dist/fi-FI.mjs +0 -9
  89. package/dist/fi-FI.module.js +0 -9
  90. package/dist/fi-FI.module.js.map +0 -1
  91. package/dist/fr-FR.main.js +0 -7
  92. package/dist/fr-FR.main.js.map +0 -1
  93. package/dist/fr-FR.mjs +0 -9
  94. package/dist/fr-FR.module.js +0 -9
  95. package/dist/fr-FR.module.js.map +0 -1
  96. package/dist/he-IL.main.js +0 -7
  97. package/dist/he-IL.main.js.map +0 -1
  98. package/dist/he-IL.mjs +0 -9
  99. package/dist/he-IL.module.js +0 -9
  100. package/dist/he-IL.module.js.map +0 -1
  101. package/dist/hr-HR.main.js +0 -7
  102. package/dist/hr-HR.main.js.map +0 -1
  103. package/dist/hr-HR.mjs +0 -9
  104. package/dist/hr-HR.module.js +0 -9
  105. package/dist/hr-HR.module.js.map +0 -1
  106. package/dist/hu-HU.main.js +0 -7
  107. package/dist/hu-HU.main.js.map +0 -1
  108. package/dist/hu-HU.mjs +0 -9
  109. package/dist/hu-HU.module.js +0 -9
  110. package/dist/hu-HU.module.js.map +0 -1
  111. package/dist/intlStrings.main.js +0 -108
  112. package/dist/intlStrings.main.js.map +0 -1
  113. package/dist/intlStrings.mjs +0 -110
  114. package/dist/intlStrings.module.js +0 -110
  115. package/dist/intlStrings.module.js.map +0 -1
  116. package/dist/it-IT.main.js +0 -7
  117. package/dist/it-IT.main.js.map +0 -1
  118. package/dist/it-IT.mjs +0 -9
  119. package/dist/it-IT.module.js +0 -9
  120. package/dist/it-IT.module.js.map +0 -1
  121. package/dist/ja-JP.main.js +0 -7
  122. package/dist/ja-JP.main.js.map +0 -1
  123. package/dist/ja-JP.mjs +0 -9
  124. package/dist/ja-JP.module.js +0 -9
  125. package/dist/ja-JP.module.js.map +0 -1
  126. package/dist/ko-KR.main.js +0 -7
  127. package/dist/ko-KR.main.js.map +0 -1
  128. package/dist/ko-KR.mjs +0 -9
  129. package/dist/ko-KR.module.js +0 -9
  130. package/dist/ko-KR.module.js.map +0 -1
  131. package/dist/lt-LT.main.js +0 -7
  132. package/dist/lt-LT.main.js.map +0 -1
  133. package/dist/lt-LT.mjs +0 -9
  134. package/dist/lt-LT.module.js +0 -9
  135. package/dist/lt-LT.module.js.map +0 -1
  136. package/dist/lv-LV.main.js +0 -7
  137. package/dist/lv-LV.main.js.map +0 -1
  138. package/dist/lv-LV.mjs +0 -9
  139. package/dist/lv-LV.module.js +0 -9
  140. package/dist/lv-LV.module.js.map +0 -1
  141. package/dist/nb-NO.main.js +0 -7
  142. package/dist/nb-NO.main.js.map +0 -1
  143. package/dist/nb-NO.mjs +0 -9
  144. package/dist/nb-NO.module.js +0 -9
  145. package/dist/nb-NO.module.js.map +0 -1
  146. package/dist/nl-NL.main.js +0 -7
  147. package/dist/nl-NL.main.js.map +0 -1
  148. package/dist/nl-NL.mjs +0 -9
  149. package/dist/nl-NL.module.js +0 -9
  150. package/dist/nl-NL.module.js.map +0 -1
  151. package/dist/pl-PL.main.js +0 -7
  152. package/dist/pl-PL.main.js.map +0 -1
  153. package/dist/pl-PL.mjs +0 -9
  154. package/dist/pl-PL.module.js +0 -9
  155. package/dist/pl-PL.module.js.map +0 -1
  156. package/dist/pt-BR.main.js +0 -7
  157. package/dist/pt-BR.main.js.map +0 -1
  158. package/dist/pt-BR.mjs +0 -9
  159. package/dist/pt-BR.module.js +0 -9
  160. package/dist/pt-BR.module.js.map +0 -1
  161. package/dist/pt-PT.main.js +0 -7
  162. package/dist/pt-PT.main.js.map +0 -1
  163. package/dist/pt-PT.mjs +0 -9
  164. package/dist/pt-PT.module.js +0 -9
  165. package/dist/pt-PT.module.js.map +0 -1
  166. package/dist/ro-RO.main.js +0 -7
  167. package/dist/ro-RO.main.js.map +0 -1
  168. package/dist/ro-RO.mjs +0 -9
  169. package/dist/ro-RO.module.js +0 -9
  170. package/dist/ro-RO.module.js.map +0 -1
  171. package/dist/ru-RU.main.js +0 -7
  172. package/dist/ru-RU.main.js.map +0 -1
  173. package/dist/ru-RU.mjs +0 -9
  174. package/dist/ru-RU.module.js +0 -9
  175. package/dist/ru-RU.module.js.map +0 -1
  176. package/dist/sk-SK.main.js +0 -7
  177. package/dist/sk-SK.main.js.map +0 -1
  178. package/dist/sk-SK.mjs +0 -9
  179. package/dist/sk-SK.module.js +0 -9
  180. package/dist/sk-SK.module.js.map +0 -1
  181. package/dist/sl-SI.main.js +0 -7
  182. package/dist/sl-SI.main.js.map +0 -1
  183. package/dist/sl-SI.mjs +0 -9
  184. package/dist/sl-SI.module.js +0 -9
  185. package/dist/sl-SI.module.js.map +0 -1
  186. package/dist/sr-SP.main.js +0 -7
  187. package/dist/sr-SP.main.js.map +0 -1
  188. package/dist/sr-SP.mjs +0 -9
  189. package/dist/sr-SP.module.js +0 -9
  190. package/dist/sr-SP.module.js.map +0 -1
  191. package/dist/sv-SE.main.js +0 -7
  192. package/dist/sv-SE.main.js.map +0 -1
  193. package/dist/sv-SE.mjs +0 -9
  194. package/dist/sv-SE.module.js +0 -9
  195. package/dist/sv-SE.module.js.map +0 -1
  196. package/dist/tr-TR.main.js +0 -7
  197. package/dist/tr-TR.main.js.map +0 -1
  198. package/dist/tr-TR.mjs +0 -9
  199. package/dist/tr-TR.module.js +0 -9
  200. package/dist/tr-TR.module.js.map +0 -1
  201. package/dist/types.d.ts +0 -32
  202. package/dist/types.d.ts.map +0 -1
  203. package/dist/uk-UA.main.js +0 -7
  204. package/dist/uk-UA.main.js.map +0 -1
  205. package/dist/uk-UA.mjs +0 -9
  206. package/dist/uk-UA.module.js +0 -9
  207. package/dist/uk-UA.module.js.map +0 -1
  208. package/dist/useDialogContainer.main.js +0 -34
  209. package/dist/useDialogContainer.main.js.map +0 -1
  210. package/dist/useDialogContainer.mjs +0 -29
  211. package/dist/useDialogContainer.module.js +0 -29
  212. package/dist/useDialogContainer.module.js.map +0 -1
  213. package/dist/zh-CN.main.js +0 -7
  214. package/dist/zh-CN.main.js.map +0 -1
  215. package/dist/zh-CN.mjs +0 -9
  216. package/dist/zh-CN.module.js +0 -9
  217. package/dist/zh-CN.module.js.map +0 -1
  218. package/dist/zh-TW.main.js +0 -7
  219. package/dist/zh-TW.main.js.map +0 -1
  220. package/dist/zh-TW.mjs +0 -9
  221. package/dist/zh-TW.module.js +0 -9
  222. package/dist/zh-TW.module.js.map +0 -1
  223. package/src/AlertDialog.tsx +0 -115
  224. package/src/Dialog.tsx +0 -118
  225. package/src/DialogContainer.tsx +0 -79
  226. package/src/DialogTrigger.tsx +0 -207
  227. package/src/context.ts +0 -21
  228. package/src/useDialogContainer.ts +0 -33
@@ -1,207 +0,0 @@
1
- /*
2
- * Copyright 2020 Adobe. All rights reserved.
3
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License. You may obtain a copy
5
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- *
7
- * Unless required by applicable law or agreed to in writing, software distributed under
8
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- * OF ANY KIND, either express or implied. See the License for the specific language
10
- * governing permissions and limitations under the License.
11
- */
12
-
13
- import {DialogContext} from './context';
14
- import {Modal, Popover, Tray} from '@react-spectrum/overlays';
15
- import {OverlayTriggerState, useOverlayTriggerState} from '@react-stately/overlays';
16
- import {PressResponder} from '@react-aria/interactions';
17
- import React, {Fragment, JSX, ReactElement, useEffect, useRef} from 'react';
18
- import {SpectrumDialogClose, SpectrumDialogProps, SpectrumDialogTriggerProps} from '@react-types/dialog';
19
- import {useIsMobileDevice} from '@react-spectrum/utils';
20
- import {useOverlayTrigger} from '@react-aria/overlays';
21
-
22
- function DialogTrigger(props: SpectrumDialogTriggerProps) {
23
- let {
24
- children,
25
- type = 'modal',
26
- mobileType = type === 'popover' ? 'modal' : type,
27
- hideArrow,
28
- targetRef,
29
- isDismissable,
30
- isKeyboardDismissDisabled,
31
- ...positionProps
32
- } = props;
33
- if (!Array.isArray(children) || children.length > 2) {
34
- throw new Error('DialogTrigger must have exactly 2 children');
35
- }
36
- // if a function is passed as the second child, it won't appear in toArray
37
- let [trigger, content] = children as [ReactElement, SpectrumDialogClose];
38
-
39
- // On small devices, show a modal or tray instead of a popover.
40
- let isMobile = useIsMobileDevice();
41
- if (isMobile) {
42
- // handle cases where desktop popovers need a close button for the mobile modal view
43
- if (type !== 'modal' && mobileType === 'modal') {
44
- isDismissable = true;
45
- }
46
-
47
- type = mobileType;
48
- }
49
-
50
- let state = useOverlayTriggerState(props);
51
- let wasOpen = useRef(false);
52
- useEffect(() => {
53
- wasOpen.current = state.isOpen;
54
- }, [state.isOpen]);
55
-
56
- let isExiting = useRef(false);
57
- let onExiting = () => isExiting.current = true;
58
- let onExited = () => isExiting.current = false;
59
-
60
-
61
- useEffect(() => {
62
- return () => {
63
- if ((wasOpen.current || isExiting.current) && type !== 'popover' && type !== 'tray' && process.env.NODE_ENV !== 'production') {
64
- console.warn('A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.');
65
- }
66
- };
67
- // eslint-disable-next-line react-hooks/exhaustive-deps
68
- }, []);
69
-
70
- if (type === 'popover') {
71
- return (
72
- <PopoverTrigger
73
- {...positionProps}
74
- state={state}
75
- targetRef={targetRef}
76
- trigger={trigger}
77
- content={content}
78
- isKeyboardDismissDisabled={isKeyboardDismissDisabled}
79
- hideArrow={hideArrow} />
80
- );
81
- }
82
-
83
- let renderOverlay = () => {
84
- switch (type) {
85
- case 'fullscreen':
86
- case 'fullscreenTakeover':
87
- case 'modal':
88
- return (
89
- <Modal
90
- state={state}
91
- isDismissable={type === 'modal' ? isDismissable : false}
92
- type={type}
93
- isKeyboardDismissDisabled={isKeyboardDismissDisabled}
94
- onExiting={onExiting}
95
- onExited={onExited}>
96
- {typeof content === 'function' ? content(state.close) : content}
97
- </Modal>
98
- );
99
- case 'tray':
100
- return (
101
- <Tray
102
- state={state}
103
- isKeyboardDismissDisabled={isKeyboardDismissDisabled}>
104
- {typeof content === 'function' ? content(state.close) : content}
105
- </Tray>
106
- );
107
- }
108
- };
109
-
110
- return (
111
- <DialogTriggerBase
112
- type={type}
113
- state={state}
114
- isDismissable={isDismissable}
115
- trigger={trigger}
116
- overlay={renderOverlay()} />
117
- );
118
- }
119
-
120
- // Support DialogTrigger inside components using CollectionBuilder.
121
- DialogTrigger.getCollectionNode = function* (props: SpectrumDialogTriggerProps) {
122
- // @ts-ignore - seems like types are wrong. Function children work fine.
123
- let [trigger] = React.Children.toArray(props.children);
124
- let [, content] = props.children as [ReactElement, SpectrumDialogClose];
125
- yield {
126
- element: trigger,
127
- wrapper: (element) => (
128
- <DialogTrigger key={element.key} {...props}>
129
- {element}
130
- {content}
131
- </DialogTrigger>
132
- )
133
- };
134
- };
135
-
136
- /**
137
- * DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's
138
- * open state with the trigger's press state. Additionally, it allows you to customize the type and
139
- * positioning of the Dialog.
140
- */
141
-
142
- // We don't want getCollectionNode to show up in the type definition
143
- let _DialogTrigger = DialogTrigger as (props: SpectrumDialogTriggerProps) => JSX.Element;
144
- export {_DialogTrigger as DialogTrigger};
145
-
146
- function PopoverTrigger({state, targetRef, trigger, content, hideArrow, ...props}) {
147
- let triggerRef = useRef<HTMLElement>(null);
148
- let {triggerProps, overlayProps} = useOverlayTrigger({type: 'dialog'}, state, triggerRef);
149
-
150
- let triggerPropsWithRef = {
151
- ...triggerProps,
152
- ref: targetRef ? undefined : triggerRef
153
- };
154
-
155
- let overlay = (
156
- <Popover
157
- {...props}
158
- hideArrow={hideArrow}
159
- triggerRef={targetRef || triggerRef}
160
- state={state}>
161
- {typeof content === 'function' ? content(state.close) : content}
162
- </Popover>
163
- );
164
-
165
- return (
166
- <DialogTriggerBase
167
- type="popover"
168
- state={state}
169
- triggerProps={triggerPropsWithRef}
170
- dialogProps={overlayProps}
171
- trigger={trigger}
172
- overlay={overlay} />
173
- );
174
- }
175
-
176
- interface SpectrumDialogTriggerBase {
177
- type: 'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover',
178
- state: OverlayTriggerState,
179
- isDismissable?: boolean,
180
- dialogProps?: SpectrumDialogProps | {},
181
- triggerProps?: any,
182
- overlay?: ReactElement,
183
- trigger: ReactElement
184
- }
185
-
186
- function DialogTriggerBase({type, state, isDismissable, dialogProps = {}, triggerProps = {}, overlay, trigger}: SpectrumDialogTriggerBase) {
187
- let context = {
188
- type,
189
- onClose: state.close,
190
- isDismissable,
191
- ...dialogProps
192
- };
193
-
194
- return (
195
- <Fragment>
196
- <PressResponder
197
- {...triggerProps}
198
- onPress={state.toggle}
199
- isPressed={state.isOpen && type !== 'modal' && type !== 'fullscreen' && type !== 'fullscreenTakeover'}>
200
- {trigger}
201
- </PressResponder>
202
- <DialogContext.Provider value={context}>
203
- {overlay}
204
- </DialogContext.Provider>
205
- </Fragment>
206
- );
207
- }
package/src/context.ts DELETED
@@ -1,21 +0,0 @@
1
- /*
2
- * Copyright 2020 Adobe. All rights reserved.
3
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License. You may obtain a copy
5
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- *
7
- * Unless required by applicable law or agreed to in writing, software distributed under
8
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- * OF ANY KIND, either express or implied. See the License for the specific language
10
- * governing permissions and limitations under the License.
11
- */
12
-
13
- import React, {HTMLAttributes} from 'react';
14
-
15
- export interface DialogContextValue extends HTMLAttributes<HTMLElement> {
16
- type: 'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover',
17
- isDismissable?: boolean,
18
- onClose: () => void
19
- }
20
-
21
- export const DialogContext = React.createContext<DialogContextValue | null>(null);
@@ -1,33 +0,0 @@
1
- /*
2
- * Copyright 2020 Adobe. All rights reserved.
3
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License. You may obtain a copy
5
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- *
7
- * Unless required by applicable law or agreed to in writing, software distributed under
8
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
- * OF ANY KIND, either express or implied. See the License for the specific language
10
- * governing permissions and limitations under the License.
11
- */
12
-
13
- import {DialogContext} from './context';
14
- import {useContext} from 'react';
15
-
16
- export interface DialogContainerValue {
17
- type: 'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover',
18
- dismiss(): void
19
- }
20
-
21
- export function useDialogContainer(): DialogContainerValue {
22
- let context = useContext(DialogContext);
23
- if (!context) {
24
- throw new Error('Cannot call useDialogContext outside a <DialogTrigger> or <DialogContainer>.');
25
- }
26
-
27
- return {
28
- type: context.type,
29
- dismiss() {
30
- context?.onClose();
31
- }
32
- };
33
- }