@opengovsg/oui 0.0.30 → 0.0.32
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/avatar/avatar-context.cjs +12 -0
- package/dist/cjs/avatar/avatar-group-context.cjs +88 -0
- package/dist/cjs/avatar/avatar-group.cjs +60 -0
- package/dist/cjs/avatar/avatar.cjs +132 -0
- package/dist/cjs/avatar/hooks/use-img-loading-status.cjs +68 -0
- package/dist/cjs/avatar/index.cjs +23 -0
- package/dist/cjs/avatar/utils.cjs +9 -0
- package/dist/cjs/banner/banner.cjs +1 -1
- package/dist/cjs/button/button.cjs +1 -1
- package/dist/cjs/calendar/calendar-month-day-selector.cjs +2 -2
- package/dist/cjs/checkbox/checkbox.cjs +3 -3
- package/dist/cjs/combo-box/combo-box.cjs +2 -2
- package/dist/cjs/date-field/date-field.cjs +1 -1
- package/dist/cjs/date-picker/date-picker.cjs +4 -5
- package/dist/cjs/date-range-picker/date-range-picker.cjs +5 -5
- package/dist/cjs/file-dropzone/file-dropzone.cjs +2 -2
- package/dist/cjs/file-dropzone/file-info.cjs +1 -1
- package/dist/cjs/index.cjs +26 -12
- package/dist/cjs/menu/menu.cjs +1 -1
- package/dist/cjs/modal/modal-content.cjs +1 -1
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.cjs +22 -0
- package/dist/cjs/number-field/number-field.cjs +3 -3
- package/dist/cjs/range-calendar/range-calendar.cjs +1 -1
- package/dist/cjs/select/select.cjs +89 -17
- package/dist/cjs/tag-field/tag-field.cjs +3 -3
- 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/toast/toast.cjs +1 -1
- package/dist/esm/avatar/avatar-context.js +9 -0
- package/dist/esm/avatar/avatar-group-context.js +84 -0
- package/dist/esm/avatar/avatar-group.js +58 -0
- package/dist/esm/avatar/avatar.js +128 -0
- package/dist/esm/avatar/hooks/use-img-loading-status.js +66 -0
- package/dist/esm/avatar/index.js +13 -0
- package/dist/esm/avatar/utils.js +7 -0
- package/dist/esm/banner/banner.js +1 -1
- package/dist/esm/button/button.js +1 -1
- package/dist/esm/calendar/calendar-month-day-selector.js +2 -2
- package/dist/esm/checkbox/checkbox.js +3 -3
- 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 +4 -5
- package/dist/esm/date-range-picker/date-range-picker.js +5 -5
- package/dist/esm/file-dropzone/file-dropzone.js +2 -2
- package/dist/esm/file-dropzone/file-info.js +1 -1
- package/dist/esm/index.js +8 -3
- package/dist/esm/menu/menu.js +1 -1
- package/dist/esm/modal/modal-content.js +1 -1
- package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.js +17 -0
- package/dist/esm/number-field/number-field.js +3 -3
- package/dist/esm/range-calendar/range-calendar.js +1 -1
- package/dist/esm/select/select.js +92 -20
- 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/esm/toast/toast.js +1 -1
- package/dist/types/avatar/avatar-context.d.ts +12 -0
- package/dist/types/avatar/avatar-context.d.ts.map +1 -0
- package/dist/types/avatar/avatar-group-context.d.ts +70 -0
- package/dist/types/avatar/avatar-group-context.d.ts.map +1 -0
- package/dist/types/avatar/avatar-group.d.ts +5 -0
- package/dist/types/avatar/avatar-group.d.ts.map +1 -0
- package/dist/types/avatar/avatar.d.ts +18 -0
- package/dist/types/avatar/avatar.d.ts.map +1 -0
- package/dist/types/avatar/hooks/use-img-loading-status.d.ts +4 -0
- package/dist/types/avatar/hooks/use-img-loading-status.d.ts.map +1 -0
- package/dist/types/avatar/index.d.ts +15 -0
- package/dist/types/avatar/index.d.ts.map +1 -0
- package/dist/types/avatar/utils.d.ts +2 -0
- package/dist/types/avatar/utils.d.ts.map +1 -0
- package/dist/types/checkbox/checkbox-group-style-context.d.ts +1 -1
- package/dist/types/checkbox/checkbox-group-style-context.d.ts.map +1 -1
- 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/select/select.d.ts +14 -0
- package/dist/types/select/select.d.ts.map +1 -1
- package/dist/types/system/react-utils/context.d.ts +4 -4
- package/dist/types/system/react-utils/context.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var context = require('../system/react-utils/context.cjs');
|
|
5
|
+
|
|
6
|
+
const [AvatarContext, useAvatarContext] = context.createContext({
|
|
7
|
+
name: "AvatarContext",
|
|
8
|
+
strict: true
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
exports.AvatarContext = AvatarContext;
|
|
12
|
+
exports.useAvatarContext = useAvatarContext;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var $670gB$react = require('react');
|
|
5
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
6
|
+
var children = require('../system/react-utils/children.cjs');
|
|
7
|
+
var context = require('../system/react-utils/context.cjs');
|
|
8
|
+
var refs = require('../system/react-utils/refs.cjs');
|
|
9
|
+
|
|
10
|
+
const [AvatarGroupProvider, useAvatarGroupContext] = context.createContext({
|
|
11
|
+
name: "AvatarGroupContext",
|
|
12
|
+
strict: false
|
|
13
|
+
});
|
|
14
|
+
function useAvatarGroup(props = {}) {
|
|
15
|
+
const {
|
|
16
|
+
as,
|
|
17
|
+
ref,
|
|
18
|
+
max = 5,
|
|
19
|
+
total,
|
|
20
|
+
size,
|
|
21
|
+
color,
|
|
22
|
+
prominence,
|
|
23
|
+
radius,
|
|
24
|
+
children: children$1,
|
|
25
|
+
renderCount,
|
|
26
|
+
className,
|
|
27
|
+
classNames,
|
|
28
|
+
countProps,
|
|
29
|
+
...otherProps
|
|
30
|
+
} = props;
|
|
31
|
+
const domRef = refs.useDomRef(ref);
|
|
32
|
+
const Component = as || "div";
|
|
33
|
+
const context = $670gB$react.useMemo(
|
|
34
|
+
() => ({
|
|
35
|
+
size,
|
|
36
|
+
color,
|
|
37
|
+
radius,
|
|
38
|
+
prominence
|
|
39
|
+
}),
|
|
40
|
+
[size, color, radius, prominence]
|
|
41
|
+
);
|
|
42
|
+
const slots = $670gB$react.useMemo(
|
|
43
|
+
() => ouiTheme.avatarGroupStyles({ className: className ?? classNames?.base }),
|
|
44
|
+
[className, classNames?.base]
|
|
45
|
+
);
|
|
46
|
+
const validChildren = children.getValidChildren(children$1);
|
|
47
|
+
const childrenWithinMax = max ? validChildren.slice(0, max) : validChildren;
|
|
48
|
+
const remainingCount = total ? total : max != null ? validChildren.length - max : -1;
|
|
49
|
+
const clones = childrenWithinMax.map((child, index) => {
|
|
50
|
+
return $670gB$react.cloneElement(child, {
|
|
51
|
+
// @ts-expect-error: CSS variable is not recognized as a valid style property
|
|
52
|
+
style: {
|
|
53
|
+
"--avatar-zindex": childrenWithinMax.length - index
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
const getAvatarGroupProps = () => {
|
|
58
|
+
return {
|
|
59
|
+
ref: domRef,
|
|
60
|
+
className: slots.base({
|
|
61
|
+
class: ouiTheme.cn(classNames?.base, className)
|
|
62
|
+
}),
|
|
63
|
+
role: "group",
|
|
64
|
+
...otherProps
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
const getAvatarGroupCountProps = () => {
|
|
68
|
+
return {
|
|
69
|
+
className: slots.counter({
|
|
70
|
+
class: classNames?.counter
|
|
71
|
+
}),
|
|
72
|
+
...countProps
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
Component,
|
|
77
|
+
context,
|
|
78
|
+
remainingCount,
|
|
79
|
+
clones,
|
|
80
|
+
renderCount,
|
|
81
|
+
getAvatarGroupProps,
|
|
82
|
+
getAvatarGroupCountProps
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
exports.AvatarGroupProvider = AvatarGroupProvider;
|
|
87
|
+
exports.useAvatarGroup = useAvatarGroup;
|
|
88
|
+
exports.useAvatarGroupContext = useAvatarGroupContext;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var $670gB$react = require('react');
|
|
6
|
+
var utils = require('../system/utils.cjs');
|
|
7
|
+
var avatar = require('./avatar.cjs');
|
|
8
|
+
var avatarGroupContext = require('./avatar-group-context.cjs');
|
|
9
|
+
|
|
10
|
+
const AvatarGroup = utils.forwardRef((props, ref) => {
|
|
11
|
+
const {
|
|
12
|
+
Component,
|
|
13
|
+
clones,
|
|
14
|
+
context,
|
|
15
|
+
remainingCount,
|
|
16
|
+
getAvatarGroupCountProps,
|
|
17
|
+
getAvatarGroupProps,
|
|
18
|
+
renderCount
|
|
19
|
+
} = avatarGroupContext.useAvatarGroup({
|
|
20
|
+
...props,
|
|
21
|
+
ref
|
|
22
|
+
});
|
|
23
|
+
const renderedCount = $670gB$react.useMemo(() => {
|
|
24
|
+
if (remainingCount <= 0) return null;
|
|
25
|
+
if (renderCount) {
|
|
26
|
+
return renderCount(remainingCount);
|
|
27
|
+
}
|
|
28
|
+
const countAvatarVariantProps = {
|
|
29
|
+
prominence: "subtle",
|
|
30
|
+
color: "primary"
|
|
31
|
+
};
|
|
32
|
+
if (context.prominence === "subtle") {
|
|
33
|
+
countAvatarVariantProps.color = "white";
|
|
34
|
+
}
|
|
35
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36
|
+
avatar.AvatarRoot,
|
|
37
|
+
{
|
|
38
|
+
...countAvatarVariantProps,
|
|
39
|
+
...getAvatarGroupCountProps(),
|
|
40
|
+
name: `+${remainingCount}`,
|
|
41
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(avatar.AvatarFallback, { children: [
|
|
42
|
+
"+",
|
|
43
|
+
remainingCount
|
|
44
|
+
] })
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}, [
|
|
48
|
+
context.prominence,
|
|
49
|
+
getAvatarGroupCountProps,
|
|
50
|
+
remainingCount,
|
|
51
|
+
renderCount
|
|
52
|
+
]);
|
|
53
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ...getAvatarGroupProps(), children: /* @__PURE__ */ jsxRuntime.jsxs(avatarGroupContext.AvatarGroupProvider, { value: context, children: [
|
|
54
|
+
clones,
|
|
55
|
+
renderedCount
|
|
56
|
+
] }) });
|
|
57
|
+
});
|
|
58
|
+
AvatarGroup.displayName = "AvatarGroup";
|
|
59
|
+
|
|
60
|
+
exports.AvatarGroup = AvatarGroup;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var $670gB$react = require('react');
|
|
7
|
+
var utils$2 = require('@react-aria/utils');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var utils = require('../system/utils.cjs');
|
|
10
|
+
var avatarContext = require('./avatar-context.cjs');
|
|
11
|
+
var avatarGroupContext = require('./avatar-group-context.cjs');
|
|
12
|
+
var useImgLoadingStatus = require('./hooks/use-img-loading-status.cjs');
|
|
13
|
+
var utils$1 = require('./utils.cjs');
|
|
14
|
+
var refs = require('../system/react-utils/refs.cjs');
|
|
15
|
+
var user = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.cjs');
|
|
16
|
+
|
|
17
|
+
const AvatarRoot = utils.forwardRef(
|
|
18
|
+
(originalProps, ref) => {
|
|
19
|
+
const groupContext = avatarGroupContext.useAvatarGroupContext();
|
|
20
|
+
const [
|
|
21
|
+
{
|
|
22
|
+
name,
|
|
23
|
+
getInitials = utils$1.getInitialsFromText,
|
|
24
|
+
classNames,
|
|
25
|
+
className,
|
|
26
|
+
children,
|
|
27
|
+
as,
|
|
28
|
+
...props
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
color = groupContext?.color,
|
|
32
|
+
prominence = groupContext?.prominence,
|
|
33
|
+
size = groupContext?.size,
|
|
34
|
+
radius = groupContext?.radius,
|
|
35
|
+
...variantProps
|
|
36
|
+
}
|
|
37
|
+
] = utils.mapPropsVariants(originalProps, ouiTheme.avatarStyles.variantKeys);
|
|
38
|
+
const isInGroup = !!groupContext;
|
|
39
|
+
const domRef = refs.useDomRef(ref);
|
|
40
|
+
const slots = ouiTheme.avatarStyles({
|
|
41
|
+
color,
|
|
42
|
+
prominence,
|
|
43
|
+
size,
|
|
44
|
+
radius,
|
|
45
|
+
isInGroup,
|
|
46
|
+
...variantProps
|
|
47
|
+
});
|
|
48
|
+
const [imageLoadingStatus, setImageLoadingStatus] = $670gB$react.useState("idle");
|
|
49
|
+
const Component = as || "span";
|
|
50
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
51
|
+
avatarContext.AvatarContext,
|
|
52
|
+
{
|
|
53
|
+
value: {
|
|
54
|
+
imageLoadingStatus,
|
|
55
|
+
setImageLoadingStatus,
|
|
56
|
+
slots,
|
|
57
|
+
classNames,
|
|
58
|
+
getInitials,
|
|
59
|
+
name
|
|
60
|
+
},
|
|
61
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
Component,
|
|
63
|
+
{
|
|
64
|
+
ref: domRef,
|
|
65
|
+
...props,
|
|
66
|
+
className: slots.base({ className: className ?? classNames?.base }),
|
|
67
|
+
children
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
const AvatarImage = utils.forwardRef(
|
|
75
|
+
({ src, as, ...props }, ref) => {
|
|
76
|
+
const domRef = refs.useDomRef(ref);
|
|
77
|
+
const {
|
|
78
|
+
setImageLoadingStatus,
|
|
79
|
+
imageLoadingStatus,
|
|
80
|
+
slots,
|
|
81
|
+
name,
|
|
82
|
+
classNames
|
|
83
|
+
} = avatarContext.useAvatarContext();
|
|
84
|
+
const currentImageStatus = useImgLoadingStatus.useImageLoadingStatus(src, props);
|
|
85
|
+
const Component = as || "img";
|
|
86
|
+
utils$2.useLayoutEffect(() => {
|
|
87
|
+
setImageLoadingStatus(currentImageStatus);
|
|
88
|
+
}, [currentImageStatus, setImageLoadingStatus]);
|
|
89
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
90
|
+
Component,
|
|
91
|
+
{
|
|
92
|
+
ref: domRef,
|
|
93
|
+
alt: name,
|
|
94
|
+
"data-loaded": ouiTheme.dataAttr(imageLoadingStatus === "loaded"),
|
|
95
|
+
...props,
|
|
96
|
+
src,
|
|
97
|
+
className: slots.image({ className: classNames?.image })
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
const AvatarFallback = utils.forwardRef(
|
|
103
|
+
({ children, as, ...props }, ref) => {
|
|
104
|
+
const domRef = refs.useDomRef(ref);
|
|
105
|
+
const { slots, classNames, imageLoadingStatus, name, getInitials } = avatarContext.useAvatarContext();
|
|
106
|
+
const childrenToRender = $670gB$react.useMemo(() => {
|
|
107
|
+
if (children) return children;
|
|
108
|
+
if (name) {
|
|
109
|
+
return getInitials(name);
|
|
110
|
+
}
|
|
111
|
+
return /* @__PURE__ */ jsxRuntime.jsx(user.default, { className: slots.icon({ className: classNames?.icon }) });
|
|
112
|
+
}, [children, classNames?.icon, getInitials, name, slots]);
|
|
113
|
+
const Component = as || "div";
|
|
114
|
+
if (imageLoadingStatus === "loaded") {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
+
Component,
|
|
119
|
+
{
|
|
120
|
+
title: name,
|
|
121
|
+
className: slots.fallback({ className: classNames?.fallback }),
|
|
122
|
+
ref: domRef,
|
|
123
|
+
...props,
|
|
124
|
+
children: childrenToRender
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
exports.AvatarFallback = AvatarFallback;
|
|
131
|
+
exports.AvatarImage = AvatarImage;
|
|
132
|
+
exports.AvatarRoot = AvatarRoot;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var $670gB$react = require('react');
|
|
5
|
+
|
|
6
|
+
function useIsHydrated() {
|
|
7
|
+
return $670gB$react.useSyncExternalStore(
|
|
8
|
+
subscribe,
|
|
9
|
+
() => true,
|
|
10
|
+
() => false
|
|
11
|
+
);
|
|
12
|
+
}
|
|
13
|
+
function subscribe() {
|
|
14
|
+
return () => {
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function resolveLoadingStatus(image, src) {
|
|
18
|
+
if (!image) {
|
|
19
|
+
return "idle";
|
|
20
|
+
}
|
|
21
|
+
if (!src) {
|
|
22
|
+
return "error";
|
|
23
|
+
}
|
|
24
|
+
if (image.src !== src) {
|
|
25
|
+
image.src = src;
|
|
26
|
+
}
|
|
27
|
+
return image.complete && image.naturalWidth > 0 ? "loaded" : "loading";
|
|
28
|
+
}
|
|
29
|
+
function useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {
|
|
30
|
+
const isHydrated = useIsHydrated();
|
|
31
|
+
const imageRef = $670gB$react.useRef(null);
|
|
32
|
+
const image = (() => {
|
|
33
|
+
if (!isHydrated) return null;
|
|
34
|
+
if (!imageRef.current) {
|
|
35
|
+
imageRef.current = new window.Image();
|
|
36
|
+
}
|
|
37
|
+
return imageRef.current;
|
|
38
|
+
})();
|
|
39
|
+
const [loadingStatus, setLoadingStatus] = $670gB$react.useState(
|
|
40
|
+
() => resolveLoadingStatus(image, src)
|
|
41
|
+
);
|
|
42
|
+
$670gB$react.useLayoutEffect(() => {
|
|
43
|
+
setLoadingStatus(resolveLoadingStatus(image, src));
|
|
44
|
+
}, [image, src]);
|
|
45
|
+
$670gB$react.useLayoutEffect(() => {
|
|
46
|
+
const updateStatus = (status) => () => {
|
|
47
|
+
setLoadingStatus(status);
|
|
48
|
+
};
|
|
49
|
+
if (!image) return;
|
|
50
|
+
const handleLoad = updateStatus("loaded");
|
|
51
|
+
const handleError = updateStatus("error");
|
|
52
|
+
image.addEventListener("load", handleLoad);
|
|
53
|
+
image.addEventListener("error", handleError);
|
|
54
|
+
if (referrerPolicy) {
|
|
55
|
+
image.referrerPolicy = referrerPolicy;
|
|
56
|
+
}
|
|
57
|
+
if (typeof crossOrigin === "string") {
|
|
58
|
+
image.crossOrigin = crossOrigin;
|
|
59
|
+
}
|
|
60
|
+
return () => {
|
|
61
|
+
image.removeEventListener("load", handleLoad);
|
|
62
|
+
image.removeEventListener("error", handleError);
|
|
63
|
+
};
|
|
64
|
+
}, [image, crossOrigin, referrerPolicy]);
|
|
65
|
+
return loadingStatus;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
exports.useImageLoadingStatus = useImageLoadingStatus;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var avatar = require('./avatar.cjs');
|
|
5
|
+
var avatarContext = require('./avatar-context.cjs');
|
|
6
|
+
var avatarGroup = require('./avatar-group.cjs');
|
|
7
|
+
var avatarGroupContext = require('./avatar-group-context.cjs');
|
|
8
|
+
|
|
9
|
+
const Avatar = Object.assign(avatar.AvatarRoot, {
|
|
10
|
+
Root: avatar.AvatarRoot,
|
|
11
|
+
Image: avatar.AvatarImage,
|
|
12
|
+
Fallback: avatar.AvatarFallback
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
exports.AvatarFallback = avatar.AvatarFallback;
|
|
16
|
+
exports.AvatarImage = avatar.AvatarImage;
|
|
17
|
+
exports.AvatarRoot = avatar.AvatarRoot;
|
|
18
|
+
exports.AvatarContext = avatarContext.AvatarContext;
|
|
19
|
+
exports.useAvatarContext = avatarContext.useAvatarContext;
|
|
20
|
+
exports.AvatarGroup = avatarGroup.AvatarGroup;
|
|
21
|
+
exports.AvatarGroupProvider = avatarGroupContext.AvatarGroupProvider;
|
|
22
|
+
exports.useAvatarGroup = avatarGroupContext.useAvatarGroup;
|
|
23
|
+
exports.Avatar = Avatar;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const getInitialsFromText = (text, limit = 2) => {
|
|
5
|
+
const initials = text?.trim().split(/[\s\-_.]+/).filter(Boolean).map((word) => word.charAt(0).toUpperCase()).join("") || "";
|
|
6
|
+
return initials.slice(0, limit);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
exports.getInitialsFromText = getInitialsFromText;
|
|
@@ -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');
|
|
11
10
|
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');
|
|
12
11
|
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 = {
|
|
@@ -7,9 +7,9 @@ var $670gB$react = require('react');
|
|
|
7
7
|
var utils = require('@react-aria/utils');
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
9
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
-
var ripple = require('../ripple/ripple.cjs');
|
|
11
10
|
var useRipple = require('../ripple/use-ripple.cjs');
|
|
12
11
|
var spinner = require('../spinner/spinner.cjs');
|
|
12
|
+
var ripple = require('../ripple/ripple.cjs');
|
|
13
13
|
|
|
14
14
|
const Button = $670gB$react.forwardRef(
|
|
15
15
|
({
|
|
@@ -6,11 +6,11 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var $670gB$react = require('react');
|
|
7
7
|
var date = require('@internationalized/date');
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
|
-
var select = require('../select/select.cjs');
|
|
10
|
-
var selectItem = require('../select/select-item.cjs');
|
|
11
9
|
var agnosticCalendarStateContext = require('./agnostic-calendar-state-context.cjs');
|
|
12
10
|
var calendarStyleContext = require('./calendar-style-context.cjs');
|
|
13
11
|
var useCalendarSelectors = require('./hooks/use-calendar-selectors.cjs');
|
|
12
|
+
var select = require('../select/select.cjs');
|
|
13
|
+
var selectItem = require('../select/select-item.cjs');
|
|
14
14
|
var useCalendarI18n = require('./hooks/use-calendar-i18n.cjs');
|
|
15
15
|
|
|
16
16
|
const CalendarMonthDaySelector = () => {
|
|
@@ -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');
|
|
9
8
|
var utils = require('../system/utils.cjs');
|
|
10
9
|
var checkboxGroupStyleContext = require('./checkbox-group-style-context.cjs');
|
|
11
10
|
var minus = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/minus.cjs');
|
|
12
11
|
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,
|
|
@@ -20,8 +20,8 @@ const Checkbox = ({
|
|
|
20
20
|
originalProps,
|
|
21
21
|
ouiTheme.checkboxStyles.variantKeys
|
|
22
22
|
);
|
|
23
|
-
const
|
|
24
|
-
const styles = ouiTheme.checkboxStyles({ size, ...variants });
|
|
23
|
+
const context = checkboxGroupStyleContext.useCheckboxGroupStyleContext();
|
|
24
|
+
const styles = ouiTheme.checkboxStyles({ size: context?.size, ...variants });
|
|
25
25
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26
26
|
reactAriaComponents.Checkbox,
|
|
27
27
|
{
|
|
@@ -7,13 +7,13 @@ 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');
|
|
11
|
-
var popover = require('../popover/popover.cjs');
|
|
12
10
|
var utils = require('../system/utils.cjs');
|
|
13
11
|
var comboBoxVariantContext = require('./combo-box-variant-context.cjs');
|
|
12
|
+
var field = require('../field/field.cjs');
|
|
14
13
|
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
14
|
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
15
|
var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
|
|
16
|
+
var popover = require('../popover/popover.cjs');
|
|
17
17
|
|
|
18
18
|
const calculateEstimatedRowHeight = (size) => {
|
|
19
19
|
switch (size) {
|
|
@@ -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 field = require('../field/field.cjs');
|
|
10
9
|
var utils = require('../system/utils.cjs');
|
|
10
|
+
var field = require('../field/field.cjs');
|
|
11
11
|
|
|
12
12
|
function DateField(originalProps) {
|
|
13
13
|
const [
|
|
@@ -6,14 +6,13 @@ 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
|
|
10
|
-
var calendar$1 = require('../calendar/calendar.cjs');
|
|
11
|
-
require('@internationalized/date');
|
|
9
|
+
var utils = require('../system/utils.cjs');
|
|
12
10
|
var dateField = require('../date-field/date-field.cjs');
|
|
11
|
+
var calendar = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.cjs');
|
|
12
|
+
var calendar$1 = require('../calendar/calendar.cjs');
|
|
13
13
|
var field = require('../field/field.cjs');
|
|
14
|
+
var button = require('../button/button.cjs');
|
|
14
15
|
var popover = require('../popover/popover.cjs');
|
|
15
|
-
var utils = require('../system/utils.cjs');
|
|
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');
|
|
17
16
|
|
|
18
17
|
function DatePicker(originalProps) {
|
|
19
18
|
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');
|
|
13
|
-
var popover = require('../popover/popover.cjs');
|
|
14
|
-
var rangeCalendar = require('../range-calendar/range-calendar.cjs');
|
|
15
10
|
var utils = require('../system/utils.cjs');
|
|
16
11
|
var calendar = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.cjs');
|
|
12
|
+
var rangeCalendar = require('../range-calendar/range-calendar.cjs');
|
|
13
|
+
var field = require('../field/field.cjs');
|
|
14
|
+
var dateField = require('../date-field/date-field.cjs');
|
|
15
|
+
var button = require('../button/button.cjs');
|
|
16
|
+
var popover = require('../popover/popover.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');
|
|
13
|
-
var useControllableState = require('../hooks/use-controllable-state.cjs');
|
|
14
12
|
var utils = require('../system/utils.cjs');
|
|
15
13
|
var contexts = require('./contexts.cjs');
|
|
16
14
|
var fileInfo = require('./file-info.cjs');
|
|
17
15
|
var utils$1 = require('./utils.cjs');
|
|
16
|
+
var useControllableState = require('../hooks/use-controllable-state.cjs');
|
|
18
17
|
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(
|
|
@@ -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');
|
|
9
8
|
var contexts = require('./contexts.cjs');
|
|
10
9
|
var utils = require('./utils.cjs');
|
|
11
10
|
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 {
|