@opengovsg/oui 0.0.24 → 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/date-picker/date-picker.cjs +3 -2
- package/dist/cjs/date-range-picker/date-range-picker.cjs +1 -1
- package/dist/cjs/hooks/index.cjs +2 -0
- package/dist/cjs/hooks/use-draggable.cjs +88 -0
- package/dist/cjs/index.cjs +54 -39
- 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/range-calendar/range-calendar.cjs +1 -1
- package/dist/esm/date-picker/date-picker.js +3 -2
- package/dist/esm/date-range-picker/date-range-picker.js +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/use-draggable.js +86 -0
- package/dist/esm/index.js +20 -13
- 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/range-calendar/range-calendar.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/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 +5 -5
|
@@ -6,12 +6,13 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var calendar$1 = require('../calendar/calendar.cjs');
|
|
10
|
+
require('@internationalized/date');
|
|
11
|
+
var dateField = require('../date-field/date-field.cjs');
|
|
9
12
|
var field = require('../field/field.cjs');
|
|
10
13
|
var popover = require('../popover/popover.cjs');
|
|
11
14
|
var utils = require('../system/utils.cjs');
|
|
12
|
-
var dateField = require('../date-field/date-field.cjs');
|
|
13
15
|
var calendar = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/calendar.cjs');
|
|
14
|
-
var calendar$1 = require('../calendar/calendar.cjs');
|
|
15
16
|
var button = require('../button/button.cjs');
|
|
16
17
|
|
|
17
18
|
function DatePicker(originalProps) {
|
|
@@ -7,12 +7,12 @@ var react = require('react');
|
|
|
7
7
|
var date = require('@internationalized/date');
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
9
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var dateField = require('../date-field/date-field.cjs');
|
|
10
11
|
var field = require('../field/field.cjs');
|
|
11
12
|
var popover = require('../popover/popover.cjs');
|
|
12
13
|
var rangeCalendar = require('../range-calendar/range-calendar.cjs');
|
|
13
14
|
var utils = require('../system/utils.cjs');
|
|
14
15
|
var calendar = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/calendar.cjs');
|
|
15
|
-
var dateField = require('../date-field/date-field.cjs');
|
|
16
16
|
var button = require('../button/button.cjs');
|
|
17
17
|
|
|
18
18
|
function DateRangePicker(originalProps) {
|
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;
|
|
@@ -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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
5
|
+
var useDraggable = require('./hooks/use-draggable.cjs');
|
|
5
6
|
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
6
7
|
var ripple = require('./ripple/ripple.cjs');
|
|
7
8
|
var useRipple = require('./ripple/use-ripple.cjs');
|
|
@@ -14,15 +15,28 @@ var textField = require('./text-field/text-field.cjs');
|
|
|
14
15
|
var field = require('./field/field.cjs');
|
|
15
16
|
var textArea = require('./text-area/text-area.cjs');
|
|
16
17
|
var textAreaField = require('./text-area-field/text-area-field.cjs');
|
|
18
|
+
var comboBox = require('./combo-box/combo-box.cjs');
|
|
19
|
+
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
20
|
+
var comboBoxItem = require('./combo-box/combo-box-item.cjs');
|
|
21
|
+
var comboBoxVariantContext = require('./combo-box/combo-box-variant-context.cjs');
|
|
17
22
|
var tagField = require('./tag-field/tag-field.cjs');
|
|
18
23
|
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');
|
|
27
|
+
var calendar = require('./calendar/calendar.cjs');
|
|
28
|
+
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
29
|
+
var utils = require('./calendar/utils.cjs');
|
|
30
|
+
var date = require('@internationalized/date');
|
|
22
31
|
var rangeCalendar = require('./range-calendar/range-calendar.cjs');
|
|
23
32
|
var menu = require('./menu/menu.cjs');
|
|
24
33
|
var popover = require('./popover/popover.cjs');
|
|
25
34
|
var tabs = require('./tabs/tabs.cjs');
|
|
35
|
+
var dateField = require('./date-field/date-field.cjs');
|
|
36
|
+
var datePicker = require('./date-picker/date-picker.cjs');
|
|
37
|
+
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
38
|
+
var checkbox = require('./checkbox/checkbox.cjs');
|
|
39
|
+
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
26
40
|
var pagination = require('./pagination/pagination.cjs');
|
|
27
41
|
var paginationCursor = require('./pagination/pagination-cursor.cjs');
|
|
28
42
|
var paginationItem = require('./pagination/pagination-item.cjs');
|
|
@@ -32,26 +46,20 @@ var fileDropzone = require('./file-dropzone/file-dropzone.cjs');
|
|
|
32
46
|
var fileInfo = require('./file-dropzone/file-info.cjs');
|
|
33
47
|
var utils$1 = require('./file-dropzone/utils.cjs');
|
|
34
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');
|
|
35
55
|
var button = require('./button/button.cjs');
|
|
36
|
-
var comboBox = require('./combo-box/combo-box.cjs');
|
|
37
|
-
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
38
|
-
var comboBoxItem = require('./combo-box/combo-box-item.cjs');
|
|
39
|
-
var comboBoxVariantContext = require('./combo-box/combo-box-variant-context.cjs');
|
|
40
56
|
var banner = require('./banner/banner.cjs');
|
|
41
57
|
var badge = require('./badge/badge.cjs');
|
|
42
|
-
var date = require('@internationalized/date');
|
|
43
|
-
var calendar = require('./calendar/calendar.cjs');
|
|
44
|
-
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
45
|
-
var utils = require('./calendar/utils.cjs');
|
|
46
|
-
var dateField = require('./date-field/date-field.cjs');
|
|
47
|
-
var datePicker = require('./date-picker/date-picker.cjs');
|
|
48
|
-
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
49
|
-
var checkbox = require('./checkbox/checkbox.cjs');
|
|
50
|
-
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
51
58
|
|
|
52
59
|
|
|
53
60
|
|
|
54
61
|
exports.useControllableState = useControllableState.useControllableState;
|
|
62
|
+
exports.useDraggable = useDraggable.useDraggable;
|
|
55
63
|
exports.GovtBanner = govtBanner.GovtBanner;
|
|
56
64
|
exports.Ripple = ripple.Ripple;
|
|
57
65
|
exports.useRipple = useRipple.useRipple;
|
|
@@ -68,12 +76,30 @@ exports.FieldGroup = field.FieldGroup;
|
|
|
68
76
|
exports.Label = field.Label;
|
|
69
77
|
exports.TextArea = textArea.TextArea;
|
|
70
78
|
exports.TextAreaField = textAreaField.TextAreaField;
|
|
79
|
+
exports.ComboBox = comboBox.ComboBox;
|
|
80
|
+
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
81
|
+
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
82
|
+
exports.ComboBoxItem = comboBoxItem.ComboBoxItem;
|
|
83
|
+
exports.ComboBoxVariantContext = comboBoxVariantContext.ComboBoxVariantContext;
|
|
84
|
+
exports.useComboBoxVariantContext = comboBoxVariantContext.useComboBoxVariantContext;
|
|
71
85
|
exports.TagField = tagField.TagField;
|
|
72
86
|
exports.TagFieldItem = tagFieldItem.TagFieldItem;
|
|
73
87
|
exports.Select = select.Select;
|
|
74
88
|
exports.SelectItem = selectItem.SelectItem;
|
|
75
89
|
exports.SelectVariantContext = selectVariantContext.SelectVariantContext;
|
|
76
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
|
+
});
|
|
77
103
|
exports.RangeCalendar = rangeCalendar.RangeCalendar;
|
|
78
104
|
exports.RangeCalendarCell = rangeCalendar.RangeCalendarCell;
|
|
79
105
|
exports.RangeCalendarStateWrapper = rangeCalendar.RangeCalendarStateWrapper;
|
|
@@ -92,6 +118,14 @@ exports.TabPanel = tabs.TabPanel;
|
|
|
92
118
|
exports.Tabs = tabs.Tabs;
|
|
93
119
|
exports.TabsVariantContext = tabs.TabsVariantContext;
|
|
94
120
|
exports.useTabsVariantContext = tabs.useTabsVariantContext;
|
|
121
|
+
exports.DateField = dateField.DateField;
|
|
122
|
+
exports.DateInput = dateField.DateInput;
|
|
123
|
+
exports.DatePicker = datePicker.DatePicker;
|
|
124
|
+
exports.DateRangePicker = dateRangePicker.DateRangePicker;
|
|
125
|
+
exports.Checkbox = checkbox.Checkbox;
|
|
126
|
+
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
127
|
+
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
128
|
+
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
95
129
|
exports.Pagination = pagination.Pagination;
|
|
96
130
|
exports.PaginationCursor = paginationCursor.PaginationCursor;
|
|
97
131
|
exports.PaginationItem = paginationItem.PaginationItem;
|
|
@@ -103,32 +137,13 @@ exports.FileInfo = fileInfo.FileInfo;
|
|
|
103
137
|
exports.formatBytes = utils$1.formatBytes;
|
|
104
138
|
exports.formatErrorMessage = utils$1.formatErrorMessage;
|
|
105
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;
|
|
106
147
|
exports.Button = button.Button;
|
|
107
|
-
exports.ComboBox = comboBox.ComboBox;
|
|
108
|
-
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
109
|
-
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
110
|
-
exports.ComboBoxItem = comboBoxItem.ComboBoxItem;
|
|
111
|
-
exports.ComboBoxVariantContext = comboBoxVariantContext.ComboBoxVariantContext;
|
|
112
|
-
exports.useComboBoxVariantContext = comboBoxVariantContext.useComboBoxVariantContext;
|
|
113
148
|
exports.Banner = banner.Banner;
|
|
114
149
|
exports.Badge = badge.Badge;
|
|
115
|
-
Object.defineProperty(exports, "CalendarDate", {
|
|
116
|
-
enumerable: true,
|
|
117
|
-
get: function () { return date.CalendarDate; }
|
|
118
|
-
});
|
|
119
|
-
exports.Calendar = calendar.Calendar;
|
|
120
|
-
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
121
|
-
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
122
|
-
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
123
|
-
exports.getEraFormat = utils.getEraFormat;
|
|
124
|
-
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
125
|
-
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
126
|
-
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
127
|
-
exports.DateField = dateField.DateField;
|
|
128
|
-
exports.DateInput = dateField.DateInput;
|
|
129
|
-
exports.DatePicker = datePicker.DatePicker;
|
|
130
|
-
exports.DateRangePicker = dateRangePicker.DateRangePicker;
|
|
131
|
-
exports.Checkbox = checkbox.Checkbox;
|
|
132
|
-
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
133
|
-
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
134
|
-
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
@@ -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;
|
|
@@ -8,12 +8,12 @@ var date = require('@internationalized/date');
|
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
9
|
var useDeepCompare = require('use-deep-compare');
|
|
10
10
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
11
|
+
var calendarStyleContext = require('../calendar/calendar-style-context.cjs');
|
|
11
12
|
var agnosticCalendarStateContext = require('../calendar/agnostic-calendar-state-context.cjs');
|
|
12
13
|
var calendarBottomContent = require('../calendar/calendar-bottom-content.cjs');
|
|
13
14
|
var calendarGridHeader = require('../calendar/calendar-grid-header.cjs');
|
|
14
15
|
var calendarHeader = require('../calendar/calendar-header.cjs');
|
|
15
16
|
var utils = require('../system/utils.cjs');
|
|
16
|
-
var calendarStyleContext = require('../calendar/calendar-style-context.cjs');
|
|
17
17
|
|
|
18
18
|
const RangeCalendar = utils.forwardRefGeneric(function RangeCalendar2(originalProps, ref) {
|
|
19
19
|
const [props, variantProps] = utils.mapPropsVariants(
|
|
@@ -4,12 +4,13 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import { DatePicker as DatePicker$1, Dialog } from 'react-aria-components';
|
|
6
6
|
import { datePickerStyles, composeTailwindRenderProps } from '@opengovsg/oui-theme';
|
|
7
|
+
import { Calendar as Calendar$1 } from '../calendar/calendar.js';
|
|
8
|
+
import '@internationalized/date';
|
|
9
|
+
import { DateInput } from '../date-field/date-field.js';
|
|
7
10
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
8
11
|
import { Popover } from '../popover/popover.js';
|
|
9
12
|
import { mapPropsVariants } from '../system/utils.js';
|
|
10
|
-
import { DateInput } from '../date-field/date-field.js';
|
|
11
13
|
import Calendar from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/calendar.js';
|
|
12
|
-
import { Calendar as Calendar$1 } from '../calendar/calendar.js';
|
|
13
14
|
import { Button } from '../button/button.js';
|
|
14
15
|
|
|
15
16
|
function DatePicker(originalProps) {
|
|
@@ -5,12 +5,12 @@ import { useMemo } from 'react';
|
|
|
5
5
|
import { CalendarDate } from '@internationalized/date';
|
|
6
6
|
import { DateRangePicker as DateRangePicker$1, Dialog } from 'react-aria-components';
|
|
7
7
|
import { dateRangePickerStyles, composeTailwindRenderProps } from '@opengovsg/oui-theme';
|
|
8
|
+
import { DateInput } from '../date-field/date-field.js';
|
|
8
9
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
9
10
|
import { Popover } from '../popover/popover.js';
|
|
10
11
|
import { RangeCalendar } from '../range-calendar/range-calendar.js';
|
|
11
12
|
import { mapPropsVariants } from '../system/utils.js';
|
|
12
13
|
import Calendar from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/calendar.js';
|
|
13
|
-
import { DateInput } from '../date-field/date-field.js';
|
|
14
14
|
import { Button } from '../button/button.js';
|
|
15
15
|
|
|
16
16
|
function DateRangePicker(originalProps) {
|
package/dist/esm/hooks/index.js
CHANGED