@opengovsg/oui 0.0.23 → 0.0.25
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.
- package/dist/cjs/badge/badge.cjs +4 -4
- package/dist/cjs/badge/use-badge.cjs +6 -6
- package/dist/cjs/banner/banner.cjs +3 -3
- package/dist/cjs/button/button.cjs +3 -3
- package/dist/cjs/calendar/calendar-bottom-content.cjs +3 -3
- package/dist/cjs/calendar/calendar-header.cjs +2 -2
- package/dist/cjs/calendar/calendar-month-day-selector.cjs +2 -2
- package/dist/cjs/calendar/calendar.cjs +4 -4
- package/dist/cjs/calendar/hooks/use-calendar-selectors.cjs +4 -4
- package/dist/cjs/calendar/utils.cjs +3 -3
- package/dist/cjs/checkbox/checkbox.cjs +1 -1
- package/dist/cjs/combo-box/combo-box-fuzzy.cjs +6 -6
- package/dist/cjs/combo-box/combo-box-item.cjs +2 -2
- package/dist/cjs/combo-box/combo-box.cjs +5 -5
- package/dist/cjs/date-field/date-field.cjs +4 -4
- package/dist/cjs/date-picker/date-picker.cjs +7 -6
- package/dist/cjs/date-range-picker/date-range-picker.cjs +7 -7
- package/dist/cjs/field/field.cjs +2 -2
- package/dist/cjs/file-dropzone/file-dropzone.cjs +12 -12
- package/dist/cjs/file-dropzone/file-info.cjs +3 -3
- package/dist/cjs/govt-banner/govt-banner.cjs +3 -3
- package/dist/cjs/hooks/index.cjs +2 -0
- package/dist/cjs/hooks/use-callback-ref.cjs +4 -4
- package/dist/cjs/hooks/use-controllable-state.cjs +2 -2
- package/dist/cjs/hooks/use-draggable.cjs +88 -0
- package/dist/cjs/index.cjs +54 -39
- package/dist/cjs/input/input.cjs +2 -2
- package/dist/cjs/menu/menu.cjs +7 -7
- package/dist/cjs/modal/i18n.cjs +19 -0
- package/dist/cjs/modal/index.cjs +19 -0
- package/dist/cjs/modal/modal-body.cjs +26 -0
- package/dist/cjs/modal/modal-content.cjs +54 -0
- package/dist/cjs/modal/modal-footer.cjs +27 -0
- package/dist/cjs/modal/modal-header.cjs +25 -0
- package/dist/cjs/modal/modal-variant-context.cjs +13 -0
- package/dist/cjs/modal/modal.cjs +66 -0
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/Icon.cjs +4 -4
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +3 -3
- package/dist/cjs/number-field/number-field.cjs +2 -2
- package/dist/cjs/pagination/hooks/use-pagination.cjs +7 -7
- package/dist/cjs/pagination/pagination.cjs +6 -6
- package/dist/cjs/pagination/use-pagination-item.cjs +7 -8
- package/dist/cjs/pagination/use-pagination.cjs +8 -8
- package/dist/cjs/range-calendar/range-calendar.cjs +7 -7
- package/dist/cjs/ripple/use-ripple.cjs +4 -4
- package/dist/cjs/select/select.cjs +4 -4
- package/dist/cjs/spinner/use-spinner.cjs +3 -3
- package/dist/cjs/system/react-utils/context.cjs +3 -3
- package/dist/cjs/system/react-utils/refs.cjs +3 -3
- package/dist/cjs/system/utils.cjs +3 -3
- package/dist/cjs/tabs/tabs.cjs +2 -2
- package/dist/cjs/tag-field/tag-field-item.cjs +2 -2
- package/dist/cjs/tag-field/tag-field-list.cjs +4 -4
- package/dist/cjs/tag-field/tag-field-root.cjs +14 -14
- package/dist/cjs/tag-field/tag-field-state-context.cjs +2 -2
- package/dist/cjs/tag-field/tag-field-tag-list.cjs +3 -3
- package/dist/cjs/tag-field/tag-field-trigger.cjs +2 -2
- package/dist/cjs/tag-field/tag-field.cjs +5 -5
- package/dist/cjs/tag-field/use-tag-field-state.cjs +6 -6
- package/dist/cjs/tag-field/use-tag-field.cjs +4 -4
- package/dist/cjs/text-area/text-area.cjs +2 -2
- package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
- package/dist/cjs/text-field/text-field.cjs +1 -1
- package/dist/cjs/toggle/toggle.cjs +3 -3
- package/dist/esm/checkbox/checkbox.js +1 -1
- package/dist/esm/combo-box/combo-box.js +2 -2
- package/dist/esm/date-field/date-field.js +1 -1
- package/dist/esm/date-picker/date-picker.js +5 -4
- package/dist/esm/date-range-picker/date-range-picker.js +4 -4
- package/dist/esm/file-dropzone/file-dropzone.js +2 -2
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/use-draggable.js +86 -0
- package/dist/esm/index.js +18 -11
- package/dist/esm/menu/menu.js +1 -1
- package/dist/esm/modal/i18n.js +17 -0
- package/dist/esm/modal/index.js +7 -0
- package/dist/esm/modal/modal-body.js +24 -0
- package/dist/esm/modal/modal-content.js +52 -0
- package/dist/esm/modal/modal-footer.js +25 -0
- package/dist/esm/modal/modal-header.js +23 -0
- package/dist/esm/modal/modal-variant-context.js +10 -0
- package/dist/esm/modal/modal.js +64 -0
- package/dist/esm/number-field/number-field.js +2 -2
- package/dist/esm/pagination/use-pagination-item.js +5 -6
- package/dist/esm/range-calendar/range-calendar.js +1 -1
- package/dist/esm/select/select.js +2 -2
- package/dist/esm/tag-field/tag-field.js +3 -3
- package/dist/esm/text-area-field/text-area-field.js +1 -1
- package/dist/esm/text-field/text-field.js +1 -1
- package/dist/types/badge/use-badge.d.ts +12 -12
- package/dist/types/hooks/index.d.ts +4 -1
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/use-draggable.d.ts +24 -0
- package/dist/types/hooks/use-draggable.d.ts.map +1 -0
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/menu/menu.d.ts.map +1 -1
- package/dist/types/modal/i18n.d.ts +3 -0
- package/dist/types/modal/i18n.d.ts.map +1 -0
- package/dist/types/modal/index.d.ts +12 -0
- package/dist/types/modal/index.d.ts.map +1 -0
- package/dist/types/modal/modal-body.d.ts +5 -0
- package/dist/types/modal/modal-body.d.ts.map +1 -0
- package/dist/types/modal/modal-content.d.ts +10 -0
- package/dist/types/modal/modal-content.d.ts.map +1 -0
- package/dist/types/modal/modal-footer.d.ts +5 -0
- package/dist/types/modal/modal-footer.d.ts.map +1 -0
- package/dist/types/modal/modal-header.d.ts +5 -0
- package/dist/types/modal/modal-header.d.ts.map +1 -0
- package/dist/types/modal/modal-variant-context.d.ts +8 -0
- package/dist/types/modal/modal-variant-context.d.ts.map +1 -0
- package/dist/types/modal/modal.d.ts +8 -0
- package/dist/types/modal/modal.d.ts.map +1 -0
- package/dist/types/pagination/use-pagination.d.ts +36 -36
- package/package.json +13 -10
- package/dist/cjs/node_modules/.pnpm/@react-aria_focus@3.20.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/focus/dist/useFocusRing.cjs +0 -45
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/context.cjs +0 -21
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/textSelection.cjs +0 -72
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocus.cjs +0 -60
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs +0 -210
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs +0 -100
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useHover.cjs +0 -152
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/usePress.cjs +0 -676
- package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/utils.cjs +0 -160
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs +0 -9
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs +0 -9
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs +0 -16
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs +0 -9
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_get.cjs +0 -11
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_init.cjs +0 -10
- package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_set.cjs +0 -12
- package/dist/esm/node_modules/.pnpm/@react-aria_focus@3.20.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/focus/dist/useFocusRing.js +0 -43
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/context.js +0 -19
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/textSelection.js +0 -69
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocus.js +0 -58
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusVisible.js +0 -205
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusWithin.js +0 -98
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useHover.js +0 -150
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/usePress.js +0 -674
- package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/utils.js +0 -155
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +0 -7
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +0 -7
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +0 -14
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +0 -7
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_get.js +0 -9
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_init.js +0 -8
- package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_set.js +0 -10
package/dist/cjs/hooks/index.cjs
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var useControllableState = require('./use-controllable-state.cjs');
|
|
5
|
+
var useDraggable = require('./use-draggable.cjs');
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
exports.useControllableState = useControllableState.useControllableState;
|
|
10
|
+
exports.useDraggable = useDraggable.useDraggable;
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
|
|
7
7
|
function useCallbackRef(callback, deps = []) {
|
|
8
|
-
const callbackRef =
|
|
8
|
+
const callbackRef = react.useRef(() => {
|
|
9
9
|
throw new Error("Cannot call an event handler while rendering.");
|
|
10
10
|
});
|
|
11
|
-
|
|
11
|
+
react.useInsertionEffect(() => {
|
|
12
12
|
callbackRef.current = callback;
|
|
13
13
|
});
|
|
14
|
-
return
|
|
14
|
+
return react.useCallback((...args) => callbackRef.current?.(...args), deps);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
exports.useCallbackRef = useCallbackRef;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
var useCallbackRef = require('./use-callback-ref.cjs');
|
|
7
7
|
|
|
8
8
|
function useControllableState(props) {
|
|
@@ -14,7 +14,7 @@ function useControllableState(props) {
|
|
|
14
14
|
} = props;
|
|
15
15
|
const onChangeProp = useCallbackRef.useCallbackRef(onChange);
|
|
16
16
|
const shouldUpdateProp = useCallbackRef.useCallbackRef(shouldUpdate);
|
|
17
|
-
const [uncontrolledState, setUncontrolledState] =
|
|
17
|
+
const [uncontrolledState, setUncontrolledState] = react.useState(defaultValue);
|
|
18
18
|
const controlled = valueProp !== void 0;
|
|
19
19
|
const value = controlled ? valueProp : uncontrolledState;
|
|
20
20
|
const setValue = useCallbackRef.useCallbackRef(
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var interactions = require('@react-aria/interactions');
|
|
7
|
+
|
|
8
|
+
function useDraggable(props) {
|
|
9
|
+
const { targetRef, isDisabled = false, canOverflow = false } = props;
|
|
10
|
+
const boundary = react.useRef({ minLeft: 0, minTop: 0, maxLeft: 0, maxTop: 0 });
|
|
11
|
+
const isDragging = react.useRef(false);
|
|
12
|
+
let transform = { offsetX: 0, offsetY: 0 };
|
|
13
|
+
const onMoveStart = react.useCallback(() => {
|
|
14
|
+
isDragging.current = true;
|
|
15
|
+
const { offsetX, offsetY } = transform;
|
|
16
|
+
const targetRect = targetRef?.current?.getBoundingClientRect();
|
|
17
|
+
const targetLeft = targetRect?.left ?? 0;
|
|
18
|
+
const targetTop = targetRect?.top ?? 0;
|
|
19
|
+
const targetWidth = targetRect?.width ?? 0;
|
|
20
|
+
const targetHeight = targetRect?.height ?? 0;
|
|
21
|
+
const clientWidth = document.documentElement.clientWidth;
|
|
22
|
+
const clientHeight = document.documentElement.clientHeight;
|
|
23
|
+
const minLeft = -targetLeft + offsetX;
|
|
24
|
+
const minTop = -targetTop + offsetY;
|
|
25
|
+
const maxLeft = clientWidth - targetLeft - targetWidth + offsetX;
|
|
26
|
+
const maxTop = clientHeight - targetTop - targetHeight + offsetY;
|
|
27
|
+
boundary.current = {
|
|
28
|
+
minLeft,
|
|
29
|
+
minTop,
|
|
30
|
+
maxLeft,
|
|
31
|
+
maxTop
|
|
32
|
+
};
|
|
33
|
+
}, [transform, targetRef?.current]);
|
|
34
|
+
const onMove = react.useCallback(
|
|
35
|
+
(e) => {
|
|
36
|
+
if (isDisabled) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const { offsetX, offsetY } = transform;
|
|
40
|
+
const { minLeft, minTop, maxLeft, maxTop } = boundary.current;
|
|
41
|
+
let moveX = offsetX + e.deltaX;
|
|
42
|
+
let moveY = offsetY + e.deltaY;
|
|
43
|
+
if (!canOverflow) {
|
|
44
|
+
moveX = Math.min(Math.max(moveX, minLeft), maxLeft);
|
|
45
|
+
moveY = Math.min(Math.max(moveY, minTop), maxTop);
|
|
46
|
+
}
|
|
47
|
+
transform = {
|
|
48
|
+
offsetX: moveX,
|
|
49
|
+
offsetY: moveY
|
|
50
|
+
};
|
|
51
|
+
if (targetRef?.current) {
|
|
52
|
+
targetRef.current.style.transform = `translate(${moveX}px, ${moveY}px)`;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
[isDisabled, transform, boundary.current, canOverflow, targetRef?.current]
|
|
56
|
+
);
|
|
57
|
+
const onMoveEnd = react.useCallback(() => {
|
|
58
|
+
isDragging.current = false;
|
|
59
|
+
}, []);
|
|
60
|
+
const { moveProps } = interactions.useMove({
|
|
61
|
+
onMoveStart,
|
|
62
|
+
onMove,
|
|
63
|
+
onMoveEnd
|
|
64
|
+
});
|
|
65
|
+
const preventDefault = react.useCallback((e) => {
|
|
66
|
+
if (isDragging.current) {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
}
|
|
69
|
+
}, []);
|
|
70
|
+
react.useEffect(() => {
|
|
71
|
+
if (!isDisabled) {
|
|
72
|
+
document.body.addEventListener("touchmove", preventDefault, {
|
|
73
|
+
passive: false
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return () => {
|
|
77
|
+
document.body.removeEventListener("touchmove", preventDefault);
|
|
78
|
+
};
|
|
79
|
+
}, [isDisabled, preventDefault]);
|
|
80
|
+
return {
|
|
81
|
+
moveProps: {
|
|
82
|
+
...moveProps,
|
|
83
|
+
style: { cursor: !isDisabled ? "move" : void 0 }
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
exports.useDraggable = useDraggable;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
5
|
+
var useDraggable = require('./hooks/use-draggable.cjs');
|
|
6
|
+
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
4
7
|
var ripple = require('./ripple/ripple.cjs');
|
|
5
8
|
var useRipple = require('./ripple/use-ripple.cjs');
|
|
6
9
|
var spinner = require('./spinner/spinner.cjs');
|
|
7
10
|
var useSpinner = require('./spinner/use-spinner.cjs');
|
|
8
11
|
var toggle = require('./toggle/toggle.cjs');
|
|
9
12
|
var skipNavLink = require('./skip-nav-link/skip-nav-link.cjs');
|
|
13
|
+
var input = require('./input/input.cjs');
|
|
10
14
|
var textField = require('./text-field/text-field.cjs');
|
|
15
|
+
var field = require('./field/field.cjs');
|
|
11
16
|
var textArea = require('./text-area/text-area.cjs');
|
|
12
17
|
var textAreaField = require('./text-area-field/text-area-field.cjs');
|
|
13
18
|
var comboBox = require('./combo-box/combo-box.cjs');
|
|
@@ -19,45 +24,56 @@ var tagFieldItem = require('./tag-field/tag-field-item.cjs');
|
|
|
19
24
|
var select = require('./select/select.cjs');
|
|
20
25
|
var selectItem = require('./select/select-item.cjs');
|
|
21
26
|
var selectVariantContext = require('./select/select-variant-context.cjs');
|
|
22
|
-
var menu = require('./menu/menu.cjs');
|
|
23
|
-
var tabs = require('./tabs/tabs.cjs');
|
|
24
|
-
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
25
|
-
var button = require('./button/button.cjs');
|
|
26
|
-
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
27
|
-
var input = require('./input/input.cjs');
|
|
28
|
-
var field = require('./field/field.cjs');
|
|
29
|
-
var banner = require('./banner/banner.cjs');
|
|
30
|
-
var badge = require('./badge/badge.cjs');
|
|
31
|
-
var date = require('@internationalized/date');
|
|
32
27
|
var calendar = require('./calendar/calendar.cjs');
|
|
33
28
|
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
34
29
|
var utils = require('./calendar/utils.cjs');
|
|
30
|
+
var date = require('@internationalized/date');
|
|
35
31
|
var rangeCalendar = require('./range-calendar/range-calendar.cjs');
|
|
32
|
+
var menu = require('./menu/menu.cjs');
|
|
36
33
|
var popover = require('./popover/popover.cjs');
|
|
34
|
+
var tabs = require('./tabs/tabs.cjs');
|
|
37
35
|
var dateField = require('./date-field/date-field.cjs');
|
|
38
36
|
var datePicker = require('./date-picker/date-picker.cjs');
|
|
39
37
|
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
40
38
|
var checkbox = require('./checkbox/checkbox.cjs');
|
|
41
39
|
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
42
|
-
var usePagination = require('./pagination/hooks/use-pagination.cjs');
|
|
43
40
|
var pagination = require('./pagination/pagination.cjs');
|
|
44
41
|
var paginationCursor = require('./pagination/pagination-cursor.cjs');
|
|
45
42
|
var paginationItem = require('./pagination/pagination-item.cjs');
|
|
43
|
+
var usePagination = require('./pagination/hooks/use-pagination.cjs');
|
|
46
44
|
var usePagination$1 = require('./pagination/use-pagination.cjs');
|
|
47
45
|
var fileDropzone = require('./file-dropzone/file-dropzone.cjs');
|
|
48
46
|
var fileInfo = require('./file-dropzone/file-info.cjs');
|
|
49
47
|
var utils$1 = require('./file-dropzone/utils.cjs');
|
|
50
48
|
var numberField = require('./number-field/number-field.cjs');
|
|
49
|
+
var modal = require('./modal/modal.cjs');
|
|
50
|
+
var modalContent = require('./modal/modal-content.cjs');
|
|
51
|
+
var modalFooter = require('./modal/modal-footer.cjs');
|
|
52
|
+
var modalBody = require('./modal/modal-body.cjs');
|
|
53
|
+
var modalHeader = require('./modal/modal-header.cjs');
|
|
54
|
+
var modalVariantContext = require('./modal/modal-variant-context.cjs');
|
|
55
|
+
var button = require('./button/button.cjs');
|
|
56
|
+
var banner = require('./banner/banner.cjs');
|
|
57
|
+
var badge = require('./badge/badge.cjs');
|
|
51
58
|
|
|
52
59
|
|
|
53
60
|
|
|
61
|
+
exports.useControllableState = useControllableState.useControllableState;
|
|
62
|
+
exports.useDraggable = useDraggable.useDraggable;
|
|
63
|
+
exports.GovtBanner = govtBanner.GovtBanner;
|
|
54
64
|
exports.Ripple = ripple.Ripple;
|
|
55
65
|
exports.useRipple = useRipple.useRipple;
|
|
56
66
|
exports.Spinner = spinner.Spinner;
|
|
57
67
|
exports.useSpinner = useSpinner.useSpinner;
|
|
58
68
|
exports.Toggle = toggle.Toggle;
|
|
59
69
|
exports.SkipNavLink = skipNavLink.SkipNavLink;
|
|
70
|
+
exports.Input = input.Input;
|
|
60
71
|
exports.TextField = textField.TextField;
|
|
72
|
+
exports.Description = field.Description;
|
|
73
|
+
exports.FieldError = field.FieldError;
|
|
74
|
+
exports.FieldErrorIcon = field.FieldErrorIcon;
|
|
75
|
+
exports.FieldGroup = field.FieldGroup;
|
|
76
|
+
exports.Label = field.Label;
|
|
61
77
|
exports.TextArea = textArea.TextArea;
|
|
62
78
|
exports.TextAreaField = textAreaField.TextAreaField;
|
|
63
79
|
exports.ComboBox = comboBox.ComboBox;
|
|
@@ -72,6 +88,21 @@ exports.Select = select.Select;
|
|
|
72
88
|
exports.SelectItem = selectItem.SelectItem;
|
|
73
89
|
exports.SelectVariantContext = selectVariantContext.SelectVariantContext;
|
|
74
90
|
exports.useSelectVariantContext = selectVariantContext.useSelectVariantContext;
|
|
91
|
+
exports.Calendar = calendar.Calendar;
|
|
92
|
+
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
93
|
+
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
94
|
+
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
95
|
+
exports.getEraFormat = utils.getEraFormat;
|
|
96
|
+
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
97
|
+
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
98
|
+
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
99
|
+
Object.defineProperty(exports, "CalendarDate", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
get: function () { return date.CalendarDate; }
|
|
102
|
+
});
|
|
103
|
+
exports.RangeCalendar = rangeCalendar.RangeCalendar;
|
|
104
|
+
exports.RangeCalendarCell = rangeCalendar.RangeCalendarCell;
|
|
105
|
+
exports.RangeCalendarStateWrapper = rangeCalendar.RangeCalendarStateWrapper;
|
|
75
106
|
exports.Menu = menu.Menu;
|
|
76
107
|
exports.MenuItem = menu.MenuItem;
|
|
77
108
|
exports.MenuSection = menu.MenuSection;
|
|
@@ -80,39 +111,13 @@ exports.MenuTrigger = menu.MenuTrigger;
|
|
|
80
111
|
exports.MenuVariantContext = menu.MenuVariantContext;
|
|
81
112
|
exports.SubmenuTrigger = menu.SubmenuTrigger;
|
|
82
113
|
exports.useMenuVariantContext = menu.useMenuVariantContext;
|
|
114
|
+
exports.Popover = popover.Popover;
|
|
83
115
|
exports.Tab = tabs.Tab;
|
|
84
116
|
exports.TabList = tabs.TabList;
|
|
85
117
|
exports.TabPanel = tabs.TabPanel;
|
|
86
118
|
exports.Tabs = tabs.Tabs;
|
|
87
119
|
exports.TabsVariantContext = tabs.TabsVariantContext;
|
|
88
120
|
exports.useTabsVariantContext = tabs.useTabsVariantContext;
|
|
89
|
-
exports.useControllableState = useControllableState.useControllableState;
|
|
90
|
-
exports.Button = button.Button;
|
|
91
|
-
exports.GovtBanner = govtBanner.GovtBanner;
|
|
92
|
-
exports.Input = input.Input;
|
|
93
|
-
exports.Description = field.Description;
|
|
94
|
-
exports.FieldError = field.FieldError;
|
|
95
|
-
exports.FieldErrorIcon = field.FieldErrorIcon;
|
|
96
|
-
exports.FieldGroup = field.FieldGroup;
|
|
97
|
-
exports.Label = field.Label;
|
|
98
|
-
exports.Banner = banner.Banner;
|
|
99
|
-
exports.Badge = badge.Badge;
|
|
100
|
-
Object.defineProperty(exports, "CalendarDate", {
|
|
101
|
-
enumerable: true,
|
|
102
|
-
get: function () { return date.CalendarDate; }
|
|
103
|
-
});
|
|
104
|
-
exports.Calendar = calendar.Calendar;
|
|
105
|
-
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
106
|
-
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
107
|
-
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
108
|
-
exports.getEraFormat = utils.getEraFormat;
|
|
109
|
-
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
110
|
-
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
111
|
-
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
112
|
-
exports.RangeCalendar = rangeCalendar.RangeCalendar;
|
|
113
|
-
exports.RangeCalendarCell = rangeCalendar.RangeCalendarCell;
|
|
114
|
-
exports.RangeCalendarStateWrapper = rangeCalendar.RangeCalendarStateWrapper;
|
|
115
|
-
exports.Popover = popover.Popover;
|
|
116
121
|
exports.DateField = dateField.DateField;
|
|
117
122
|
exports.DateInput = dateField.DateInput;
|
|
118
123
|
exports.DatePicker = datePicker.DatePicker;
|
|
@@ -121,10 +126,10 @@ exports.Checkbox = checkbox.Checkbox;
|
|
|
121
126
|
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
122
127
|
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
123
128
|
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
124
|
-
exports.PaginationItemType = usePagination.PaginationItemType;
|
|
125
129
|
exports.Pagination = pagination.Pagination;
|
|
126
130
|
exports.PaginationCursor = paginationCursor.PaginationCursor;
|
|
127
131
|
exports.PaginationItem = paginationItem.PaginationItem;
|
|
132
|
+
exports.PaginationItemType = usePagination.PaginationItemType;
|
|
128
133
|
exports.CURSOR_TRANSITION_TIMEOUT = usePagination$1.CURSOR_TRANSITION_TIMEOUT;
|
|
129
134
|
exports.usePagination = usePagination$1.usePagination;
|
|
130
135
|
exports.FileDropzone = fileDropzone.FileDropzone;
|
|
@@ -132,3 +137,13 @@ exports.FileInfo = fileInfo.FileInfo;
|
|
|
132
137
|
exports.formatBytes = utils$1.formatBytes;
|
|
133
138
|
exports.formatErrorMessage = utils$1.formatErrorMessage;
|
|
134
139
|
exports.NumberField = numberField.NumberField;
|
|
140
|
+
exports.Modal = modal.Modal;
|
|
141
|
+
exports.ModalContent = modalContent.ModalContent;
|
|
142
|
+
exports.ModalFooter = modalFooter.ModalFooter;
|
|
143
|
+
exports.ModalBody = modalBody.ModalBody;
|
|
144
|
+
exports.ModalHeader = modalHeader.ModalHeader;
|
|
145
|
+
exports.ModalVariantContext = modalVariantContext.ModalVariantContext;
|
|
146
|
+
exports.useModalVariantContext = modalVariantContext.useModalVariantContext;
|
|
147
|
+
exports.Button = button.Button;
|
|
148
|
+
exports.Banner = banner.Banner;
|
|
149
|
+
exports.Badge = badge.Badge;
|
package/dist/cjs/input/input.cjs
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
9
|
|
|
10
|
-
const Input =
|
|
10
|
+
const Input = react.forwardRef(
|
|
11
11
|
({ size, variant, isDisabled, ...props }, ref) => {
|
|
12
12
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13
13
|
reactAriaComponents.Input,
|
package/dist/cjs/menu/menu.cjs
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var
|
|
6
|
+
var react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var popover = require('../popover/popover.cjs');
|
|
9
10
|
var utils = require('../system/utils.cjs');
|
|
10
11
|
var check = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/check.cjs');
|
|
11
12
|
var chevronRight = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs');
|
|
12
13
|
var context = require('../system/react-utils/context.cjs');
|
|
13
|
-
var popover = require('../popover/popover.cjs');
|
|
14
14
|
|
|
15
15
|
const [MenuVariantContext, useMenuVariantContext] = context.createContext({
|
|
16
16
|
name: "MenuVariantContext",
|
|
@@ -51,7 +51,7 @@ function MenuInner(originalProps, ref) {
|
|
|
51
51
|
) });
|
|
52
52
|
}
|
|
53
53
|
const Menu = utils.forwardRefGeneric(MenuInner);
|
|
54
|
-
const MenuItem =
|
|
54
|
+
const MenuItem = react.forwardRef(function MenuItem2(originalProps, ref) {
|
|
55
55
|
[originalProps, ref] = reactAriaComponents.useContextProps(
|
|
56
56
|
originalProps,
|
|
57
57
|
ref,
|
|
@@ -70,7 +70,7 @@ const MenuItem = $670gB$react.forwardRef(function MenuItem2(originalProps, ref)
|
|
|
70
70
|
variantProps
|
|
71
71
|
] = utils.mapPropsVariants(originalProps, ouiTheme.listBoxItemStyles.variantKeys);
|
|
72
72
|
const styles = ouiTheme.menuItemStyles(variantProps);
|
|
73
|
-
const multipleSelectionIcon =
|
|
73
|
+
const multipleSelectionIcon = react.useMemo(() => {
|
|
74
74
|
if (multipleSelectionIconProp !== void 0) {
|
|
75
75
|
return multipleSelectionIconProp;
|
|
76
76
|
}
|
|
@@ -82,7 +82,7 @@ const MenuItem = $670gB$react.forwardRef(function MenuItem2(originalProps, ref)
|
|
|
82
82
|
}
|
|
83
83
|
);
|
|
84
84
|
}, [classNames?.icon, multipleSelectionIconProp, styles]);
|
|
85
|
-
const singleSelectionIcon =
|
|
85
|
+
const singleSelectionIcon = react.useMemo(() => {
|
|
86
86
|
if (singleSelectionIconProp !== void 0) {
|
|
87
87
|
return singleSelectionIconProp;
|
|
88
88
|
}
|
|
@@ -94,7 +94,7 @@ const MenuItem = $670gB$react.forwardRef(function MenuItem2(originalProps, ref)
|
|
|
94
94
|
}
|
|
95
95
|
);
|
|
96
96
|
}, [classNames?.icon, singleSelectionIconProp, styles]);
|
|
97
|
-
const showIconContainer =
|
|
97
|
+
const showIconContainer = react.useCallback(
|
|
98
98
|
(selectionMode) => {
|
|
99
99
|
switch (selectionMode) {
|
|
100
100
|
case "none":
|
|
@@ -107,7 +107,7 @@ const MenuItem = $670gB$react.forwardRef(function MenuItem2(originalProps, ref)
|
|
|
107
107
|
},
|
|
108
108
|
[multipleSelectionIcon, singleSelectionIcon]
|
|
109
109
|
);
|
|
110
|
-
const defaultTextValue =
|
|
110
|
+
const defaultTextValue = react.useMemo(() => {
|
|
111
111
|
if (props.textValue) {
|
|
112
112
|
return props.textValue;
|
|
113
113
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const i18nStrings = {
|
|
5
|
+
"en-SG": {
|
|
6
|
+
dismiss: "Dismiss"
|
|
7
|
+
},
|
|
8
|
+
"zh-SG": {
|
|
9
|
+
dismiss: "\u53D6\u6D88"
|
|
10
|
+
},
|
|
11
|
+
"ms-SG": {
|
|
12
|
+
dismiss: "Tutup"
|
|
13
|
+
},
|
|
14
|
+
"ta-SG": {
|
|
15
|
+
dismiss: "\u0BAE\u0BC2\u0B9F\u0BC1"
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.i18nStrings = i18nStrings;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var modal = require('./modal.cjs');
|
|
5
|
+
var modalContent = require('./modal-content.cjs');
|
|
6
|
+
var modalFooter = require('./modal-footer.cjs');
|
|
7
|
+
var modalBody = require('./modal-body.cjs');
|
|
8
|
+
var modalHeader = require('./modal-header.cjs');
|
|
9
|
+
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
exports.Modal = modal.Modal;
|
|
14
|
+
exports.ModalContent = modalContent.ModalContent;
|
|
15
|
+
exports.ModalFooter = modalFooter.ModalFooter;
|
|
16
|
+
exports.ModalBody = modalBody.ModalBody;
|
|
17
|
+
exports.ModalHeader = modalHeader.ModalHeader;
|
|
18
|
+
exports.ModalVariantContext = modalVariantContext.ModalVariantContext;
|
|
19
|
+
exports.useModalVariantContext = modalVariantContext.useModalVariantContext;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
+
var utils = require('../system/utils.cjs');
|
|
9
|
+
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
10
|
+
|
|
11
|
+
const ModalBody = utils.forwardRef(function ModalBody2({ as, ...props }, ref) {
|
|
12
|
+
const { slots, classNames } = react.useContext(modalVariantContext.ModalVariantContext);
|
|
13
|
+
const Component = as || "div";
|
|
14
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15
|
+
Component,
|
|
16
|
+
{
|
|
17
|
+
ref,
|
|
18
|
+
className: slots.body({
|
|
19
|
+
className: ouiTheme.cn(classNames?.body, props.className)
|
|
20
|
+
}),
|
|
21
|
+
...props
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
exports.ModalBody = ModalBody;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var reactAria = require('react-aria');
|
|
8
|
+
var reactAriaComponents = require('react-aria-components');
|
|
9
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var i18n = require('./i18n.cjs');
|
|
11
|
+
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
12
|
+
var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/x.cjs');
|
|
13
|
+
var button = require('../button/button.cjs');
|
|
14
|
+
|
|
15
|
+
function ModalContent({
|
|
16
|
+
closeButtonContent: closeButtonContentProp,
|
|
17
|
+
hideCloseButton,
|
|
18
|
+
closeButtonProps,
|
|
19
|
+
...props
|
|
20
|
+
}) {
|
|
21
|
+
const { slots, classNames, buttonSize } = react.useContext(modalVariantContext.ModalVariantContext);
|
|
22
|
+
const formatMessage = reactAria.useMessageFormatter(i18n.i18nStrings);
|
|
23
|
+
const closeButtonContent = react.isValidElement(closeButtonContentProp) ? closeButtonContentProp : /* @__PURE__ */ jsxRuntime.jsx(x.default, {});
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25
|
+
reactAriaComponents.Dialog,
|
|
26
|
+
{
|
|
27
|
+
...props,
|
|
28
|
+
className: slots.dialog({
|
|
29
|
+
className: props.className ?? classNames?.dialog
|
|
30
|
+
}),
|
|
31
|
+
children: ({ close }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
32
|
+
!hideCloseButton && /* @__PURE__ */ jsxRuntime.jsx(
|
|
33
|
+
button.Button,
|
|
34
|
+
{
|
|
35
|
+
slot: "close",
|
|
36
|
+
isIconOnly: true,
|
|
37
|
+
"aria-label": formatMessage("dismiss"),
|
|
38
|
+
size: buttonSize,
|
|
39
|
+
variant: "clear",
|
|
40
|
+
color: "neutral",
|
|
41
|
+
...closeButtonProps,
|
|
42
|
+
className: slots.closeButton({
|
|
43
|
+
className: ouiTheme.cn(classNames?.closeButton, props.className)
|
|
44
|
+
}),
|
|
45
|
+
children: closeButtonContent
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
typeof props.children === "function" ? props.children(close) : props.children
|
|
49
|
+
] })
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.ModalContent = ModalContent;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
+
var utils = require('../system/utils.cjs');
|
|
9
|
+
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
10
|
+
|
|
11
|
+
const ModalFooter = utils.forwardRef(function ModalFooter2({ as, ...props }, ref) {
|
|
12
|
+
const { slots, classNames } = react.useContext(modalVariantContext.ModalVariantContext);
|
|
13
|
+
const Component = as || "footer";
|
|
14
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15
|
+
Component,
|
|
16
|
+
{
|
|
17
|
+
ref,
|
|
18
|
+
className: slots.footer({
|
|
19
|
+
className: ouiTheme.cn(classNames?.footer, props.className)
|
|
20
|
+
}),
|
|
21
|
+
...props
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
});
|
|
25
|
+
ModalFooter.displayName = "ModalFooter";
|
|
26
|
+
|
|
27
|
+
exports.ModalFooter = ModalFooter;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var reactAriaComponents = require('react-aria-components');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
10
|
+
|
|
11
|
+
function ModalHeader(props) {
|
|
12
|
+
const { slots, classNames } = react.useContext(modalVariantContext.ModalVariantContext);
|
|
13
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14
|
+
reactAriaComponents.Heading,
|
|
15
|
+
{
|
|
16
|
+
slot: "title",
|
|
17
|
+
...props,
|
|
18
|
+
className: slots.header({
|
|
19
|
+
className: ouiTheme.cn(classNames?.header, props.className)
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.ModalHeader = ModalHeader;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var context = require('../system/react-utils/context.cjs');
|
|
6
|
+
|
|
7
|
+
const [ModalVariantContext, useModalVariantContext] = context.createContext({
|
|
8
|
+
name: "ModalVariantContext",
|
|
9
|
+
strict: true
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
exports.ModalVariantContext = ModalVariantContext;
|
|
13
|
+
exports.useModalVariantContext = useModalVariantContext;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var reactAriaComponents = require('react-aria-components');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var utils = require('../system/utils.cjs');
|
|
10
|
+
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
11
|
+
|
|
12
|
+
const Modal = react.forwardRef(function Modal2(originalProps, ref) {
|
|
13
|
+
const [{ classNames, ...props }, variantProps] = utils.mapPropsVariants(
|
|
14
|
+
originalProps,
|
|
15
|
+
ouiTheme.modalStyles.variantKeys
|
|
16
|
+
);
|
|
17
|
+
const { isDismissable = true } = props;
|
|
18
|
+
const slots = ouiTheme.modalStyles(variantProps);
|
|
19
|
+
const buttonSize = react.useMemo(() => {
|
|
20
|
+
switch (variantProps.size) {
|
|
21
|
+
case "mobile":
|
|
22
|
+
return "md";
|
|
23
|
+
default: {
|
|
24
|
+
return "lg";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}, [variantProps.size]);
|
|
28
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29
|
+
reactAriaComponents.Provider,
|
|
30
|
+
{
|
|
31
|
+
values: [
|
|
32
|
+
[
|
|
33
|
+
modalVariantContext.ModalVariantContext,
|
|
34
|
+
{ ...variantProps, classNames, buttonSize, slots }
|
|
35
|
+
]
|
|
36
|
+
],
|
|
37
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
reactAriaComponents.ModalOverlay,
|
|
39
|
+
{
|
|
40
|
+
...props,
|
|
41
|
+
isDismissable,
|
|
42
|
+
className: ouiTheme.composeRenderProps(
|
|
43
|
+
classNames?.overlay,
|
|
44
|
+
(className, renderProps) => slots.overlay({ className, ...renderProps })
|
|
45
|
+
),
|
|
46
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
reactAriaComponents.Modal,
|
|
48
|
+
{
|
|
49
|
+
...props,
|
|
50
|
+
ref,
|
|
51
|
+
isDismissable,
|
|
52
|
+
"data-placement": variantProps.placement,
|
|
53
|
+
className: ouiTheme.composeRenderProps(
|
|
54
|
+
props.className ?? classNames?.base,
|
|
55
|
+
(className, renderProps) => slots.base({ className, ...renderProps })
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
});
|
|
64
|
+
Modal.displayName = "Modal";
|
|
65
|
+
|
|
66
|
+
exports.Modal = Modal;
|