@opengovsg/oui 0.0.29 → 0.0.30
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/banner/banner.cjs +1 -1
- package/dist/cjs/checkbox/checkbox.cjs +1 -1
- package/dist/cjs/combo-box/combo-box.cjs +1 -1
- package/dist/cjs/date-field/date-field.cjs +1 -1
- package/dist/cjs/date-picker/date-picker.cjs +5 -4
- package/dist/cjs/date-range-picker/date-range-picker.cjs +3 -3
- package/dist/cjs/file-dropzone/file-dropzone.cjs +12 -8
- package/dist/cjs/file-dropzone/file-info.cjs +3 -2
- package/dist/cjs/file-dropzone/utils.cjs +4 -4
- package/dist/cjs/hooks/use-scroll-position.cjs +53 -0
- package/dist/cjs/index.cjs +51 -51
- package/dist/cjs/modal/modal-content.cjs +1 -1
- package/dist/cjs/navbar/navbar-menu/menu.cjs +2 -2
- package/dist/cjs/navbar/navbar-menu/toggle.cjs +3 -2
- package/dist/cjs/navbar/navbar.cjs +25 -1
- package/dist/cjs/navbar/use-navbar.cjs +42 -32
- package/dist/cjs/number-field/number-field.cjs +2 -2
- package/dist/cjs/range-calendar/range-calendar.cjs +1 -1
- package/dist/cjs/select/select.cjs +2 -2
- package/dist/cjs/tag-field/tag-field.cjs +1 -1
- package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
- package/dist/cjs/text-field/text-field.cjs +1 -1
- package/dist/esm/banner/banner.js +1 -1
- package/dist/esm/checkbox/checkbox.js +1 -1
- package/dist/esm/combo-box/combo-box.js +1 -1
- 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 +3 -3
- package/dist/esm/file-dropzone/file-dropzone.js +12 -8
- package/dist/esm/file-dropzone/file-info.js +3 -2
- package/dist/esm/file-dropzone/utils.js +4 -4
- package/dist/esm/hooks/use-scroll-position.js +51 -0
- package/dist/esm/index.js +17 -17
- package/dist/esm/modal/modal-content.js +1 -1
- package/dist/esm/navbar/navbar-menu/menu.js +2 -2
- package/dist/esm/navbar/navbar-menu/toggle.js +3 -2
- package/dist/esm/navbar/navbar.js +26 -2
- package/dist/esm/navbar/use-navbar.js +43 -33
- package/dist/esm/number-field/number-field.js +2 -2
- 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 +1 -1
- 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/calendar/calendar.d.ts.map +1 -1
- package/dist/types/date-field/date-field.d.ts.map +1 -1
- package/dist/types/file-dropzone/file-dropzone.d.ts +8 -2
- package/dist/types/file-dropzone/file-dropzone.d.ts.map +1 -1
- package/dist/types/file-dropzone/file-info.d.ts.map +1 -1
- package/dist/types/file-dropzone/types.d.ts +1 -0
- package/dist/types/file-dropzone/types.d.ts.map +1 -1
- package/dist/types/file-dropzone/utils.d.ts +2 -1
- package/dist/types/file-dropzone/utils.d.ts.map +1 -1
- package/dist/types/hooks/use-scroll-position.d.ts +29 -0
- package/dist/types/hooks/use-scroll-position.d.ts.map +1 -0
- package/dist/types/menu/menu.d.ts.map +1 -1
- package/dist/types/navbar/navbar-context.d.ts +10 -2
- package/dist/types/navbar/navbar-context.d.ts.map +1 -1
- package/dist/types/navbar/navbar-menu/menu.d.ts.map +1 -1
- package/dist/types/navbar/navbar-menu/toggle.d.ts.map +1 -1
- package/dist/types/navbar/navbar.d.ts.map +1 -1
- package/dist/types/navbar/use-navbar.d.ts +33 -1
- package/dist/types/navbar/use-navbar.d.ts.map +1 -1
- package/dist/types/range-calendar/range-calendar.d.ts.map +1 -1
- package/dist/types/system/utils.d.ts.map +1 -1
- package/dist/types/tabs/tabs.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-item.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-list.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -7,9 +7,9 @@ var $670gB$react = require('react');
|
|
|
7
7
|
var reactAria = require('react-aria');
|
|
8
8
|
var reactStately = require('react-stately');
|
|
9
9
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var button = require('../button/button.cjs');
|
|
10
11
|
var circleAlert = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs');
|
|
11
12
|
var info = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/info.cjs');
|
|
12
|
-
var button = require('../button/button.cjs');
|
|
13
13
|
var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
|
|
14
14
|
|
|
15
15
|
const i18nStrings = {
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
7
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
+
var field = require('../field/field.cjs');
|
|
8
9
|
var utils = require('../system/utils.cjs');
|
|
9
10
|
var checkboxGroupStyleContext = require('./checkbox-group-style-context.cjs');
|
|
10
11
|
var minus = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/minus.cjs');
|
|
11
12
|
var check = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/check.cjs');
|
|
12
|
-
var field = require('../field/field.cjs');
|
|
13
13
|
|
|
14
14
|
const Checkbox = ({
|
|
15
15
|
classNames,
|
|
@@ -7,10 +7,10 @@ var $670gB$react = require('react');
|
|
|
7
7
|
var reactAria = require('react-aria');
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
9
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var field = require('../field/field.cjs');
|
|
10
11
|
var popover = require('../popover/popover.cjs');
|
|
11
12
|
var utils = require('../system/utils.cjs');
|
|
12
13
|
var comboBoxVariantContext = require('./combo-box-variant-context.cjs');
|
|
13
|
-
var field = require('../field/field.cjs');
|
|
14
14
|
var chevronUp = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-up.cjs');
|
|
15
15
|
var chevronDown = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs');
|
|
16
16
|
var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
|
|
@@ -6,8 +6,8 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var $670gB$react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
-
var utils = require('../system/utils.cjs');
|
|
10
9
|
var field = require('../field/field.cjs');
|
|
10
|
+
var utils = require('../system/utils.cjs');
|
|
11
11
|
|
|
12
12
|
function DateField(originalProps) {
|
|
13
13
|
const [
|
|
@@ -6,13 +6,14 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var $670gB$react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var button = require('../button/button.cjs');
|
|
10
|
+
var calendar$1 = require('../calendar/calendar.cjs');
|
|
11
|
+
require('@internationalized/date');
|
|
12
|
+
var dateField = require('../date-field/date-field.cjs');
|
|
13
|
+
var field = require('../field/field.cjs');
|
|
9
14
|
var popover = require('../popover/popover.cjs');
|
|
10
15
|
var utils = require('../system/utils.cjs');
|
|
11
|
-
var dateField = require('../date-field/date-field.cjs');
|
|
12
16
|
var calendar = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.cjs');
|
|
13
|
-
var calendar$1 = require('../calendar/calendar.cjs');
|
|
14
|
-
var field = require('../field/field.cjs');
|
|
15
|
-
var button = require('../button/button.cjs');
|
|
16
17
|
|
|
17
18
|
function DatePicker(originalProps) {
|
|
18
19
|
const [
|
|
@@ -7,13 +7,13 @@ var $670gB$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 button = require('../button/button.cjs');
|
|
11
|
+
var dateField = require('../date-field/date-field.cjs');
|
|
12
|
+
var field = require('../field/field.cjs');
|
|
10
13
|
var popover = require('../popover/popover.cjs');
|
|
11
14
|
var rangeCalendar = require('../range-calendar/range-calendar.cjs');
|
|
12
15
|
var utils = require('../system/utils.cjs');
|
|
13
16
|
var calendar = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.cjs');
|
|
14
|
-
var field = require('../field/field.cjs');
|
|
15
|
-
var dateField = require('../date-field/date-field.cjs');
|
|
16
|
-
var button = require('../button/button.cjs');
|
|
17
17
|
|
|
18
18
|
function DateRangePicker(originalProps) {
|
|
19
19
|
const [
|
|
@@ -9,13 +9,13 @@ var reactAria = require('react-aria');
|
|
|
9
9
|
var reactAriaComponents = require('react-aria-components');
|
|
10
10
|
var reactDropzone = require('react-dropzone');
|
|
11
11
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
12
|
+
var field = require('../field/field.cjs');
|
|
12
13
|
var useControllableState = require('../hooks/use-controllable-state.cjs');
|
|
13
14
|
var utils = require('../system/utils.cjs');
|
|
14
15
|
var contexts = require('./contexts.cjs');
|
|
15
16
|
var fileInfo = require('./file-info.cjs');
|
|
16
17
|
var utils$1 = require('./utils.cjs');
|
|
17
18
|
var upload = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/upload.cjs');
|
|
18
|
-
var field = require('../field/field.cjs');
|
|
19
19
|
|
|
20
20
|
const FileDropzone = (originalProps) => {
|
|
21
21
|
const [props, variantProps] = utils.mapPropsVariants(
|
|
@@ -25,6 +25,7 @@ const FileDropzone = (originalProps) => {
|
|
|
25
25
|
const {
|
|
26
26
|
name,
|
|
27
27
|
allowedMimeTypes = [],
|
|
28
|
+
fileSizeBase = "binary",
|
|
28
29
|
maxFileSize = Number.POSITIVE_INFINITY,
|
|
29
30
|
minFileSize = 0,
|
|
30
31
|
showFileSizeText = true,
|
|
@@ -69,9 +70,10 @@ const FileDropzone = (originalProps) => {
|
|
|
69
70
|
(error) => utils$1.formatErrorMessage(error, {
|
|
70
71
|
maxFileSize,
|
|
71
72
|
minFileSize,
|
|
72
|
-
maxFiles
|
|
73
|
+
maxFiles,
|
|
74
|
+
fileSizeBase
|
|
73
75
|
}),
|
|
74
|
-
[maxFileSize, maxFiles, minFileSize]
|
|
76
|
+
[fileSizeBase, maxFileSize, maxFiles, minFileSize]
|
|
75
77
|
);
|
|
76
78
|
const onDrop = $670gB$react.useCallback(
|
|
77
79
|
(acceptedFiles, fileRejections) => {
|
|
@@ -129,19 +131,20 @@ const FileDropzone = (originalProps) => {
|
|
|
129
131
|
const shouldShow = showFileSizeText && (notDefaultMaxFileSize || notDefaultMinFileSize);
|
|
130
132
|
if (!shouldShow) return null;
|
|
131
133
|
if (notDefaultMaxFileSize && notDefaultMinFileSize) {
|
|
132
|
-
return `File size must be between ${utils$1.formatBytes(minFileSize, 2)} and ${utils$1.formatBytes(
|
|
134
|
+
return `File size must be between ${utils$1.formatBytes(minFileSize, 2, fileSizeBase)} and ${utils$1.formatBytes(
|
|
133
135
|
maxFileSize,
|
|
134
|
-
2
|
|
136
|
+
2,
|
|
137
|
+
fileSizeBase
|
|
135
138
|
)}`;
|
|
136
139
|
}
|
|
137
140
|
if (notDefaultMaxFileSize) {
|
|
138
|
-
return `Maximum file size: ${utils$1.formatBytes(maxFileSize, 2)}`;
|
|
141
|
+
return `Maximum file size: ${utils$1.formatBytes(maxFileSize, 2, fileSizeBase)}`;
|
|
139
142
|
}
|
|
140
143
|
if (notDefaultMinFileSize) {
|
|
141
|
-
return `Minimum file size: ${utils$1.formatBytes(minFileSize, 2)}`;
|
|
144
|
+
return `Minimum file size: ${utils$1.formatBytes(minFileSize, 2, fileSizeBase)}`;
|
|
142
145
|
}
|
|
143
146
|
return null;
|
|
144
|
-
}, [maxFileSize, minFileSize, showFileSizeText]);
|
|
147
|
+
}, [maxFileSize, minFileSize, showFileSizeText, fileSizeBase]);
|
|
145
148
|
const triggerFileSelector = $670gB$react.useCallback(() => {
|
|
146
149
|
if (isDisabled || isReadOnly) return;
|
|
147
150
|
dropzoneState.inputRef.current?.click();
|
|
@@ -187,6 +190,7 @@ const FileDropzone = (originalProps) => {
|
|
|
187
190
|
{
|
|
188
191
|
isDisabled,
|
|
189
192
|
isReadOnly,
|
|
193
|
+
fileSizeBase,
|
|
190
194
|
maxFiles,
|
|
191
195
|
maxFileSize,
|
|
192
196
|
showDropzone,
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var $670gB$react = require('react');
|
|
7
7
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
+
var button = require('../button/button.cjs');
|
|
8
9
|
var contexts = require('./contexts.cjs');
|
|
9
10
|
var utils = require('./utils.cjs');
|
|
10
11
|
var trash2 = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/trash-2.cjs');
|
|
11
|
-
var button = require('../button/button.cjs');
|
|
12
12
|
|
|
13
13
|
const FileInfo = ({ file, imagePreview, classNames }) => {
|
|
14
14
|
const {
|
|
@@ -19,7 +19,8 @@ const FileInfo = ({ file, imagePreview, classNames }) => {
|
|
|
19
19
|
isReadOnly
|
|
20
20
|
} = contexts.useFileDropzoneStateContext();
|
|
21
21
|
const { size, variant, itemClassNames } = contexts.useFileDropzoneStyleContext();
|
|
22
|
-
const
|
|
22
|
+
const { fileSizeBase } = contexts.useFileDropzoneStateContext();
|
|
23
|
+
const readableFileSize = utils.formatBytes(file.size, 2, fileSizeBase);
|
|
23
24
|
const styles = ouiTheme.fileInfoDropzoneStyles({
|
|
24
25
|
size,
|
|
25
26
|
variant,
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
var reactDropzone = require('react-dropzone');
|
|
5
5
|
|
|
6
|
-
const formatBytes = (bytes, decimals = 2, size) => {
|
|
7
|
-
const k = 1e3;
|
|
6
|
+
const formatBytes = (bytes, decimals = 2, base = "binary", size) => {
|
|
7
|
+
const k = base === "binary" ? 1024 : 1e3;
|
|
8
8
|
const dm = decimals < 0 ? 0 : decimals;
|
|
9
9
|
const sizes = ["bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
10
10
|
if (bytes === 0 || bytes === void 0)
|
|
@@ -16,9 +16,9 @@ const formatErrorMessage = (error, config) => {
|
|
|
16
16
|
const { maxFileSize, minFileSize, maxFiles } = config;
|
|
17
17
|
switch (error.code) {
|
|
18
18
|
case reactDropzone.ErrorCode.FileTooLarge:
|
|
19
|
-
return `You have exceeded the size limit, please upload a file below ${formatBytes(maxFileSize, 2)}`;
|
|
19
|
+
return `You have exceeded the size limit, please upload a file below ${formatBytes(maxFileSize, 2, config.fileSizeBase)}`;
|
|
20
20
|
case reactDropzone.ErrorCode.FileTooSmall:
|
|
21
|
-
return `Please upload a file above ${formatBytes(minFileSize, 2)}`;
|
|
21
|
+
return `Please upload a file above ${formatBytes(minFileSize, 2, config.fileSizeBase)}`;
|
|
22
22
|
case reactDropzone.ErrorCode.TooManyFiles:
|
|
23
23
|
return `Maximum number of files allowed is ${maxFiles}.`;
|
|
24
24
|
default: {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var $670gB$react = require('react');
|
|
5
|
+
|
|
6
|
+
const isBrowser = typeof window !== "undefined";
|
|
7
|
+
function getScrollPosition(element) {
|
|
8
|
+
if (!isBrowser) return { x: 0, y: 0 };
|
|
9
|
+
if (!element) {
|
|
10
|
+
return { x: window.scrollX, y: window.scrollY };
|
|
11
|
+
}
|
|
12
|
+
return { x: element.scrollLeft, y: element.scrollTop };
|
|
13
|
+
}
|
|
14
|
+
const useScrollPosition = (props) => {
|
|
15
|
+
const { elementRef, delay = 30, callback, isEnabled } = props;
|
|
16
|
+
const position = $670gB$react.useRef(
|
|
17
|
+
isEnabled ? getScrollPosition(elementRef?.current) : { x: 0, y: 0 }
|
|
18
|
+
);
|
|
19
|
+
const throttleTimeout = $670gB$react.useRef(null);
|
|
20
|
+
const handler = $670gB$react.useCallback(() => {
|
|
21
|
+
const currPos = getScrollPosition(elementRef?.current);
|
|
22
|
+
if (typeof callback === "function") {
|
|
23
|
+
callback({ prevPos: position.current, currPos });
|
|
24
|
+
}
|
|
25
|
+
position.current = currPos;
|
|
26
|
+
throttleTimeout.current = null;
|
|
27
|
+
}, [callback, elementRef]);
|
|
28
|
+
$670gB$react.useEffect(() => {
|
|
29
|
+
if (!isEnabled) return;
|
|
30
|
+
const handleScroll = () => {
|
|
31
|
+
if (delay) {
|
|
32
|
+
if (throttleTimeout.current) {
|
|
33
|
+
clearTimeout(throttleTimeout.current);
|
|
34
|
+
}
|
|
35
|
+
throttleTimeout.current = setTimeout(handler, delay);
|
|
36
|
+
} else {
|
|
37
|
+
handler();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const target = elementRef?.current || window;
|
|
41
|
+
target.addEventListener("scroll", handleScroll);
|
|
42
|
+
return () => {
|
|
43
|
+
target.removeEventListener("scroll", handleScroll);
|
|
44
|
+
if (throttleTimeout.current) {
|
|
45
|
+
clearTimeout(throttleTimeout.current);
|
|
46
|
+
throttleTimeout.current = null;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}, [elementRef?.current, delay, handler, isEnabled]);
|
|
50
|
+
return position.current;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
exports.useScrollPosition = useScrollPosition;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
5
5
|
var useDraggable = require('./hooks/use-draggable.cjs');
|
|
6
|
+
var button = require('./button/button.cjs');
|
|
6
7
|
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
7
8
|
var ripple = require('./ripple/ripple.cjs');
|
|
8
9
|
var useRipple = require('./ripple/use-ripple.cjs');
|
|
@@ -12,17 +13,33 @@ var toggle = require('./toggle/toggle.cjs');
|
|
|
12
13
|
var skipNavLink = require('./skip-nav-link/skip-nav-link.cjs');
|
|
13
14
|
var input = require('./input/input.cjs');
|
|
14
15
|
var textField = require('./text-field/text-field.cjs');
|
|
16
|
+
var field = require('./field/field.cjs');
|
|
15
17
|
var textArea = require('./text-area/text-area.cjs');
|
|
16
18
|
var textAreaField = require('./text-area-field/text-area-field.cjs');
|
|
19
|
+
var comboBox = require('./combo-box/combo-box.cjs');
|
|
20
|
+
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
21
|
+
var comboBoxItem = require('./combo-box/combo-box-item.cjs');
|
|
22
|
+
var comboBoxVariantContext = require('./combo-box/combo-box-variant-context.cjs');
|
|
23
|
+
var banner = require('./banner/banner.cjs');
|
|
17
24
|
var tagField = require('./tag-field/tag-field.cjs');
|
|
18
25
|
var tagFieldItem = require('./tag-field/tag-field-item.cjs');
|
|
19
26
|
var select = require('./select/select.cjs');
|
|
20
27
|
var selectItem = require('./select/select-item.cjs');
|
|
21
28
|
var selectVariantContext = require('./select/select-variant-context.cjs');
|
|
29
|
+
var badge = require('./badge/badge.cjs');
|
|
30
|
+
var calendar = require('./calendar/calendar.cjs');
|
|
31
|
+
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
32
|
+
var utils = require('./calendar/utils.cjs');
|
|
33
|
+
var date = require('@internationalized/date');
|
|
22
34
|
var rangeCalendar = require('./range-calendar/range-calendar.cjs');
|
|
23
35
|
var menu = require('./menu/menu.cjs');
|
|
24
36
|
var popover = require('./popover/popover.cjs');
|
|
25
37
|
var tabs = require('./tabs/tabs.cjs');
|
|
38
|
+
var dateField = require('./date-field/date-field.cjs');
|
|
39
|
+
var datePicker = require('./date-picker/date-picker.cjs');
|
|
40
|
+
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
41
|
+
var checkbox = require('./checkbox/checkbox.cjs');
|
|
42
|
+
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
26
43
|
var pagination = require('./pagination/pagination.cjs');
|
|
27
44
|
var paginationCursor = require('./pagination/pagination-cursor.cjs');
|
|
28
45
|
var paginationItem = require('./pagination/pagination-item.cjs');
|
|
@@ -48,29 +65,13 @@ var toggle$1 = require('./navbar/navbar-menu/toggle.cjs');
|
|
|
48
65
|
var navbarItem = require('./navbar/navbar-item.cjs');
|
|
49
66
|
var useNavbar = require('./navbar/use-navbar.cjs');
|
|
50
67
|
var navbarContext = require('./navbar/navbar-context.cjs');
|
|
51
|
-
var button = require('./button/button.cjs');
|
|
52
|
-
var field = require('./field/field.cjs');
|
|
53
|
-
var comboBox = require('./combo-box/combo-box.cjs');
|
|
54
|
-
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
55
|
-
var comboBoxItem = require('./combo-box/combo-box-item.cjs');
|
|
56
|
-
var comboBoxVariantContext = require('./combo-box/combo-box-variant-context.cjs');
|
|
57
|
-
var banner = require('./banner/banner.cjs');
|
|
58
|
-
var badge = require('./badge/badge.cjs');
|
|
59
|
-
var date = require('@internationalized/date');
|
|
60
|
-
var calendar = require('./calendar/calendar.cjs');
|
|
61
|
-
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
62
|
-
var utils = require('./calendar/utils.cjs');
|
|
63
|
-
var dateField = require('./date-field/date-field.cjs');
|
|
64
|
-
var datePicker = require('./date-picker/date-picker.cjs');
|
|
65
|
-
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
66
|
-
var checkbox = require('./checkbox/checkbox.cjs');
|
|
67
|
-
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
68
68
|
var sonner = require('sonner');
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
exports.useControllableState = useControllableState.useControllableState;
|
|
73
73
|
exports.useDraggable = useDraggable.useDraggable;
|
|
74
|
+
exports.Button = button.Button;
|
|
74
75
|
exports.GovtBanner = govtBanner.GovtBanner;
|
|
75
76
|
exports.Ripple = ripple.Ripple;
|
|
76
77
|
exports.useRipple = useRipple.useRipple;
|
|
@@ -80,14 +81,39 @@ exports.Toggle = toggle.Toggle;
|
|
|
80
81
|
exports.SkipNavLink = skipNavLink.SkipNavLink;
|
|
81
82
|
exports.Input = input.Input;
|
|
82
83
|
exports.TextField = textField.TextField;
|
|
84
|
+
exports.Description = field.Description;
|
|
85
|
+
exports.FieldError = field.FieldError;
|
|
86
|
+
exports.FieldErrorIcon = field.FieldErrorIcon;
|
|
87
|
+
exports.FieldGroup = field.FieldGroup;
|
|
88
|
+
exports.Label = field.Label;
|
|
83
89
|
exports.TextArea = textArea.TextArea;
|
|
84
90
|
exports.TextAreaField = textAreaField.TextAreaField;
|
|
91
|
+
exports.ComboBox = comboBox.ComboBox;
|
|
92
|
+
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
93
|
+
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
94
|
+
exports.ComboBoxItem = comboBoxItem.ComboBoxItem;
|
|
95
|
+
exports.ComboBoxVariantContext = comboBoxVariantContext.ComboBoxVariantContext;
|
|
96
|
+
exports.useComboBoxVariantContext = comboBoxVariantContext.useComboBoxVariantContext;
|
|
97
|
+
exports.Banner = banner.Banner;
|
|
85
98
|
exports.TagField = tagField.TagField;
|
|
86
99
|
exports.TagFieldItem = tagFieldItem.TagFieldItem;
|
|
87
100
|
exports.Select = select.Select;
|
|
88
101
|
exports.SelectItem = selectItem.SelectItem;
|
|
89
102
|
exports.SelectVariantContext = selectVariantContext.SelectVariantContext;
|
|
90
103
|
exports.useSelectVariantContext = selectVariantContext.useSelectVariantContext;
|
|
104
|
+
exports.Badge = badge.Badge;
|
|
105
|
+
exports.Calendar = calendar.Calendar;
|
|
106
|
+
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
107
|
+
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
108
|
+
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
109
|
+
exports.getEraFormat = utils.getEraFormat;
|
|
110
|
+
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
111
|
+
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
112
|
+
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
113
|
+
Object.defineProperty(exports, "CalendarDate", {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
get: function () { return date.CalendarDate; }
|
|
116
|
+
});
|
|
91
117
|
exports.RangeCalendar = rangeCalendar.RangeCalendar;
|
|
92
118
|
exports.RangeCalendarCell = rangeCalendar.RangeCalendarCell;
|
|
93
119
|
exports.RangeCalendarStateWrapper = rangeCalendar.RangeCalendarStateWrapper;
|
|
@@ -106,6 +132,14 @@ exports.TabPanel = tabs.TabPanel;
|
|
|
106
132
|
exports.Tabs = tabs.Tabs;
|
|
107
133
|
exports.TabsVariantContext = tabs.TabsVariantContext;
|
|
108
134
|
exports.useTabsVariantContext = tabs.useTabsVariantContext;
|
|
135
|
+
exports.DateField = dateField.DateField;
|
|
136
|
+
exports.DateInput = dateField.DateInput;
|
|
137
|
+
exports.DatePicker = datePicker.DatePicker;
|
|
138
|
+
exports.DateRangePicker = dateRangePicker.DateRangePicker;
|
|
139
|
+
exports.Checkbox = checkbox.Checkbox;
|
|
140
|
+
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
141
|
+
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
142
|
+
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
109
143
|
exports.Pagination = pagination.Pagination;
|
|
110
144
|
exports.PaginationCursor = paginationCursor.PaginationCursor;
|
|
111
145
|
exports.PaginationItem = paginationItem.PaginationItem;
|
|
@@ -135,40 +169,6 @@ exports.NavbarItem = navbarItem.NavbarItem;
|
|
|
135
169
|
exports.useNavbar = useNavbar.useNavbar;
|
|
136
170
|
exports.NavbarProvider = navbarContext.NavbarProvider;
|
|
137
171
|
exports.useNavbarContext = navbarContext.useNavbarContext;
|
|
138
|
-
exports.Button = button.Button;
|
|
139
|
-
exports.Description = field.Description;
|
|
140
|
-
exports.FieldError = field.FieldError;
|
|
141
|
-
exports.FieldErrorIcon = field.FieldErrorIcon;
|
|
142
|
-
exports.FieldGroup = field.FieldGroup;
|
|
143
|
-
exports.Label = field.Label;
|
|
144
|
-
exports.ComboBox = comboBox.ComboBox;
|
|
145
|
-
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
146
|
-
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
147
|
-
exports.ComboBoxItem = comboBoxItem.ComboBoxItem;
|
|
148
|
-
exports.ComboBoxVariantContext = comboBoxVariantContext.ComboBoxVariantContext;
|
|
149
|
-
exports.useComboBoxVariantContext = comboBoxVariantContext.useComboBoxVariantContext;
|
|
150
|
-
exports.Banner = banner.Banner;
|
|
151
|
-
exports.Badge = badge.Badge;
|
|
152
|
-
Object.defineProperty(exports, "CalendarDate", {
|
|
153
|
-
enumerable: true,
|
|
154
|
-
get: function () { return date.CalendarDate; }
|
|
155
|
-
});
|
|
156
|
-
exports.Calendar = calendar.Calendar;
|
|
157
|
-
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
158
|
-
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
159
|
-
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
160
|
-
exports.getEraFormat = utils.getEraFormat;
|
|
161
|
-
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
162
|
-
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
163
|
-
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
164
|
-
exports.DateField = dateField.DateField;
|
|
165
|
-
exports.DateInput = dateField.DateInput;
|
|
166
|
-
exports.DatePicker = datePicker.DatePicker;
|
|
167
|
-
exports.DateRangePicker = dateRangePicker.DateRangePicker;
|
|
168
|
-
exports.Checkbox = checkbox.Checkbox;
|
|
169
|
-
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
170
|
-
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
171
|
-
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
172
172
|
Object.defineProperty(exports, "toast", {
|
|
173
173
|
enumerable: true,
|
|
174
174
|
get: function () { return sonner.toast; }
|
|
@@ -7,10 +7,10 @@ var $670gB$react = require('react');
|
|
|
7
7
|
var reactAria = require('react-aria');
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
9
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var button = require('../button/button.cjs');
|
|
10
11
|
var i18n = require('./i18n.cjs');
|
|
11
12
|
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
12
13
|
var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
|
|
13
|
-
var button = require('../button/button.cjs');
|
|
14
14
|
|
|
15
15
|
function ModalContent({
|
|
16
16
|
closeButtonContent: closeButtonContentProp,
|
|
@@ -16,7 +16,7 @@ const NavbarMenu = utils.forwardRef(
|
|
|
16
16
|
const {
|
|
17
17
|
slots,
|
|
18
18
|
isMenuOpen,
|
|
19
|
-
|
|
19
|
+
menuTopOffsetPx,
|
|
20
20
|
classNames,
|
|
21
21
|
setIsMenuOpen,
|
|
22
22
|
domRef: parentRef,
|
|
@@ -46,7 +46,7 @@ const NavbarMenu = utils.forwardRef(
|
|
|
46
46
|
style: {
|
|
47
47
|
...style,
|
|
48
48
|
// @ts-expect-error due to not having any type declaration for CSS variables in React style prop
|
|
49
|
-
"--
|
|
49
|
+
"--menu-offset": menuTopOffsetPx
|
|
50
50
|
},
|
|
51
51
|
onKeyDown: reactAria.chain(handleKeyDown, onKeyDown),
|
|
52
52
|
...props,
|
|
@@ -26,13 +26,14 @@ const NavbarMenuToggle = ({
|
|
|
26
26
|
isMenuOpen,
|
|
27
27
|
setIsMenuOpen,
|
|
28
28
|
menuRef,
|
|
29
|
-
position
|
|
29
|
+
position,
|
|
30
|
+
menuTopOffset
|
|
30
31
|
} = navbarContext.useNavbarContext();
|
|
31
32
|
const shouldScrollToTop = (isMenuOpen2) => {
|
|
32
33
|
if (!isMenuOpen2 || position === "sticky" || typeof window === "undefined") {
|
|
33
34
|
return;
|
|
34
35
|
}
|
|
35
|
-
window.scrollTo({ top:
|
|
36
|
+
window.scrollTo({ top: menuTopOffset, behavior: "instant" });
|
|
36
37
|
};
|
|
37
38
|
const formatMessage = reactAria.useMessageFormatter(i18n.i18nStrings);
|
|
38
39
|
const toggleStyles = $670gB$react.useMemo(() => {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('motion/react');
|
|
6
7
|
var reactAria = require('react-aria');
|
|
7
8
|
var children = require('../system/react-utils/children.cjs');
|
|
8
9
|
var utils = require('../system/utils.cjs');
|
|
@@ -10,6 +11,20 @@ var navbarContext = require('./navbar-context.cjs');
|
|
|
10
11
|
var menu = require('./navbar-menu/menu.cjs');
|
|
11
12
|
var useNavbar = require('./use-navbar.cjs');
|
|
12
13
|
|
|
14
|
+
const showOnScrollUpVariants = {
|
|
15
|
+
visible: {
|
|
16
|
+
y: 0,
|
|
17
|
+
transition: {
|
|
18
|
+
ease: [0, 0, 0.2, 1]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
hidden: {
|
|
22
|
+
y: "-100%",
|
|
23
|
+
transition: {
|
|
24
|
+
ease: [0, 0, 0.2, 1]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
13
28
|
const Navbar = utils.forwardRef((props, ref) => {
|
|
14
29
|
const { children: children$1, ...otherProps } = props;
|
|
15
30
|
const context = useNavbar.useNavbar({ ...otherProps, ref });
|
|
@@ -19,7 +34,16 @@ const Navbar = utils.forwardRef((props, ref) => {
|
|
|
19
34
|
/* @__PURE__ */ jsxRuntime.jsx("header", { ...context.getWrapperProps(), children: childrenWithoutMenu }),
|
|
20
35
|
menu$1
|
|
21
36
|
] });
|
|
22
|
-
return /* @__PURE__ */ jsxRuntime.jsx(navbarContext.NavbarProvider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx(reactAria.FocusScope, { contain: context.isMenuOpen, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
return /* @__PURE__ */ jsxRuntime.jsx(navbarContext.NavbarProvider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx(reactAria.FocusScope, { contain: context.isMenuOpen, children: context.shouldShowOnScrollUp ? /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
react.m.nav,
|
|
39
|
+
{
|
|
40
|
+
animate: context.isNavbarHidden ? "hidden" : "visible",
|
|
41
|
+
initial: "visible",
|
|
42
|
+
variants: showOnScrollUpVariants,
|
|
43
|
+
...reactAria.mergeProps(context.getBaseProps(), context.motionProps),
|
|
44
|
+
children: content
|
|
45
|
+
}
|
|
46
|
+
) }) : /* @__PURE__ */ jsxRuntime.jsx(Component, { ...context.getBaseProps(), children: content }) }) });
|
|
23
47
|
});
|
|
24
48
|
Navbar.displayName = "Navbar";
|
|
25
49
|
|