@opengovsg/oui 0.0.48 → 0.0.50
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/index.cjs +31 -26
- package/dist/cjs/infobox/index.cjs +8 -0
- package/dist/cjs/infobox/infobox.cjs +39 -0
- package/dist/cjs/infobox/use-infobox.cjs +32 -0
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-check.cjs +22 -0
- package/dist/cjs/pagination/index.cjs +5 -5
- package/dist/cjs/radio-group/index.cjs +9 -0
- package/dist/cjs/radio-group/radio-group-variant-context.cjs +15 -0
- package/dist/cjs/radio-group/radio.cjs +99 -0
- package/dist/cjs/search-field/search-field.cjs +6 -3
- package/dist/esm/accordion/accordion.js +1 -1
- package/dist/esm/badge/use-badge.js +1 -1
- package/dist/esm/breadcrumbs/breadcrumbs.js +2 -2
- package/dist/esm/calendar/calendar.js +1 -1
- package/dist/esm/combo-box/combo-box-item.js +1 -1
- package/dist/esm/combo-box/combo-box.js +1 -1
- package/dist/esm/index.js +4 -2
- package/dist/esm/infobox/index.js +2 -0
- package/dist/esm/infobox/infobox.js +37 -0
- package/dist/esm/infobox/use-infobox.js +30 -0
- package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-check.js +17 -0
- package/dist/esm/number-field/number-field.js +1 -1
- package/dist/esm/pagination/use-pagination-item.js +1 -1
- package/dist/esm/phone-number-field/phone-number-field.js +4 -4
- package/dist/esm/popover/popover.js +1 -1
- package/dist/esm/radio-group/index.js +2 -0
- package/dist/esm/radio-group/radio-group-variant-context.js +12 -0
- package/dist/esm/radio-group/radio.js +96 -0
- package/dist/esm/search-field/search-field.js +6 -3
- package/dist/esm/tabs/tabs.js +2 -2
- package/dist/types/index.d.mts +2 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/infobox/index.d.ts +2 -0
- package/dist/types/infobox/index.d.ts.map +1 -0
- package/dist/types/infobox/infobox.d.ts +5 -0
- package/dist/types/infobox/infobox.d.ts.map +1 -0
- package/dist/types/infobox/use-infobox.d.ts +54 -0
- package/dist/types/infobox/use-infobox.d.ts.map +1 -0
- package/dist/types/radio-group/index.d.ts +3 -0
- package/dist/types/radio-group/index.d.ts.map +1 -0
- package/dist/types/radio-group/radio-group-variant-context.d.ts +6 -0
- package/dist/types/radio-group/radio-group-variant-context.d.ts.map +1 -0
- package/dist/types/radio-group/radio.d.ts +39 -0
- package/dist/types/radio-group/radio.d.ts.map +1 -0
- package/dist/types/search-field/search-field.d.ts +5 -0
- package/dist/types/search-field/search-field.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/cjs/index.cjs
CHANGED
|
@@ -9,7 +9,7 @@ var ripple = require('./ripple/ripple.cjs');
|
|
|
9
9
|
var useRipple = require('./ripple/use-ripple.cjs');
|
|
10
10
|
var spinner = require('./spinner/spinner.cjs');
|
|
11
11
|
var useSpinner = require('./spinner/use-spinner.cjs');
|
|
12
|
-
var toggle = require('./toggle/toggle.cjs');
|
|
12
|
+
var toggle$1 = require('./toggle/toggle.cjs');
|
|
13
13
|
var skipNavLink = require('./skip-nav-link/skip-nav-link.cjs');
|
|
14
14
|
var input = require('./input/input.cjs');
|
|
15
15
|
var textField = require('./text-field/text-field.cjs');
|
|
@@ -29,7 +29,7 @@ var selectVariantContext = require('./select/select-variant-context.cjs');
|
|
|
29
29
|
var badge = require('./badge/badge.cjs');
|
|
30
30
|
var calendar = require('./calendar/calendar.cjs');
|
|
31
31
|
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
32
|
-
var utils = require('./calendar/utils.cjs');
|
|
32
|
+
var utils$1 = require('./calendar/utils.cjs');
|
|
33
33
|
var date = require('@internationalized/date');
|
|
34
34
|
var rangeCalendar = require('./range-calendar/range-calendar.cjs');
|
|
35
35
|
var menu = require('./menu/menu.cjs');
|
|
@@ -43,11 +43,11 @@ var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context
|
|
|
43
43
|
var pagination = require('./pagination/pagination.cjs');
|
|
44
44
|
var paginationCursor = require('./pagination/pagination-cursor.cjs');
|
|
45
45
|
var paginationItem = require('./pagination/pagination-item.cjs');
|
|
46
|
-
var usePagination = require('./pagination/hooks/use-pagination.cjs');
|
|
47
|
-
var usePagination
|
|
46
|
+
var usePagination$1 = require('./pagination/hooks/use-pagination.cjs');
|
|
47
|
+
var usePagination = require('./pagination/use-pagination.cjs');
|
|
48
48
|
var fileDropzone = require('./file-dropzone/file-dropzone.cjs');
|
|
49
49
|
var fileInfo = require('./file-dropzone/file-info.cjs');
|
|
50
|
-
var utils
|
|
50
|
+
var utils = require('./file-dropzone/utils.cjs');
|
|
51
51
|
var numberField = require('./number-field/number-field.cjs');
|
|
52
52
|
var modal = require('./modal/modal.cjs');
|
|
53
53
|
var modalContent = require('./modal/modal-content.cjs');
|
|
@@ -61,7 +61,7 @@ var navbarBrand = require('./navbar/navbar-brand.cjs');
|
|
|
61
61
|
var navbarContent = require('./navbar/navbar-content.cjs');
|
|
62
62
|
var menu$1 = require('./navbar/navbar-menu/menu.cjs');
|
|
63
63
|
var item = require('./navbar/navbar-menu/item.cjs');
|
|
64
|
-
var toggle
|
|
64
|
+
var toggle = require('./navbar/navbar-menu/toggle.cjs');
|
|
65
65
|
var navbarItem = require('./navbar/navbar-item.cjs');
|
|
66
66
|
var useNavbar = require('./navbar/use-navbar.cjs');
|
|
67
67
|
var navbarContext = require('./navbar/navbar-context.cjs');
|
|
@@ -79,11 +79,13 @@ var sidebarHeader = require('./sidebar/sidebar-header.cjs');
|
|
|
79
79
|
var tooltip = require('./tooltip/tooltip.cjs');
|
|
80
80
|
var phoneNumberField = require('./phone-number-field/phone-number-field.cjs');
|
|
81
81
|
var BasePhoneInput = require('react-phone-number-input');
|
|
82
|
-
var
|
|
82
|
+
var infobox = require('./infobox/infobox.cjs');
|
|
83
|
+
var radio = require('./radio-group/radio.cjs');
|
|
83
84
|
var avatarContext = require('./avatar/avatar-context.cjs');
|
|
85
|
+
var avatar = require('./avatar/avatar.cjs');
|
|
84
86
|
var avatarGroup = require('./avatar/avatar-group.cjs');
|
|
85
87
|
var avatarGroupContext = require('./avatar/avatar-group-context.cjs');
|
|
86
|
-
var
|
|
88
|
+
var sonner = require('sonner');
|
|
87
89
|
|
|
88
90
|
|
|
89
91
|
|
|
@@ -95,7 +97,7 @@ exports.Ripple = ripple.Ripple;
|
|
|
95
97
|
exports.useRipple = useRipple.useRipple;
|
|
96
98
|
exports.Spinner = spinner.Spinner;
|
|
97
99
|
exports.useSpinner = useSpinner.useSpinner;
|
|
98
|
-
exports.Toggle = toggle.Toggle;
|
|
100
|
+
exports.Toggle = toggle$1.Toggle;
|
|
99
101
|
exports.SkipNavLink = skipNavLink.SkipNavLink;
|
|
100
102
|
exports.Input = input.Input;
|
|
101
103
|
exports.TextField = textField.TextField;
|
|
@@ -124,10 +126,10 @@ exports.Calendar = calendar.Calendar;
|
|
|
124
126
|
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
125
127
|
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
126
128
|
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
127
|
-
exports.getEraFormat = utils.getEraFormat;
|
|
128
|
-
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
129
|
-
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
130
|
-
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
129
|
+
exports.getEraFormat = utils$1.getEraFormat;
|
|
130
|
+
exports.useGenerateLocalizedMonths = utils$1.useGenerateLocalizedMonths;
|
|
131
|
+
exports.useGenerateLocalizedYears = utils$1.useGenerateLocalizedYears;
|
|
132
|
+
exports.useLocalizedMonthYear = utils$1.useLocalizedMonthYear;
|
|
131
133
|
Object.defineProperty(exports, "CalendarDate", {
|
|
132
134
|
enumerable: true,
|
|
133
135
|
get: function () { return date.CalendarDate; }
|
|
@@ -162,13 +164,13 @@ exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGrou
|
|
|
162
164
|
exports.Pagination = pagination.Pagination;
|
|
163
165
|
exports.PaginationCursor = paginationCursor.PaginationCursor;
|
|
164
166
|
exports.PaginationItem = paginationItem.PaginationItem;
|
|
165
|
-
exports.PaginationItemType = usePagination.PaginationItemType;
|
|
166
|
-
exports.CURSOR_TRANSITION_TIMEOUT = usePagination
|
|
167
|
-
exports.usePagination = usePagination
|
|
167
|
+
exports.PaginationItemType = usePagination$1.PaginationItemType;
|
|
168
|
+
exports.CURSOR_TRANSITION_TIMEOUT = usePagination.CURSOR_TRANSITION_TIMEOUT;
|
|
169
|
+
exports.usePagination = usePagination.usePagination;
|
|
168
170
|
exports.FileDropzone = fileDropzone.FileDropzone;
|
|
169
171
|
exports.FileInfo = fileInfo.FileInfo;
|
|
170
|
-
exports.formatBytes = utils
|
|
171
|
-
exports.formatErrorMessage = utils
|
|
172
|
+
exports.formatBytes = utils.formatBytes;
|
|
173
|
+
exports.formatErrorMessage = utils.formatErrorMessage;
|
|
172
174
|
exports.NumberField = numberField.NumberField;
|
|
173
175
|
exports.Modal = modal.Modal;
|
|
174
176
|
exports.ModalContent = modalContent.ModalContent;
|
|
@@ -183,7 +185,7 @@ exports.NavbarBrand = navbarBrand.NavbarBrand;
|
|
|
183
185
|
exports.NavbarContent = navbarContent.NavbarContent;
|
|
184
186
|
exports.NavbarMenu = menu$1.NavbarMenu;
|
|
185
187
|
exports.NavbarMenuItem = item.NavbarMenuItem;
|
|
186
|
-
exports.NavbarMenuToggle = toggle
|
|
188
|
+
exports.NavbarMenuToggle = toggle.NavbarMenuToggle;
|
|
187
189
|
exports.NavbarItem = navbarItem.NavbarItem;
|
|
188
190
|
exports.useNavbar = useNavbar.useNavbar;
|
|
189
191
|
exports.NavbarProvider = navbarContext.NavbarProvider;
|
|
@@ -232,15 +234,18 @@ Object.defineProperty(exports, "parsePhoneNumber", {
|
|
|
232
234
|
enumerable: true,
|
|
233
235
|
get: function () { return BasePhoneInput.parsePhoneNumber; }
|
|
234
236
|
});
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
});
|
|
237
|
+
exports.Infobox = infobox.Infobox;
|
|
238
|
+
exports.Radio = radio.Radio;
|
|
239
|
+
exports.RadioGroup = radio.RadioGroup;
|
|
239
240
|
exports.AvatarContext = avatarContext.AvatarContext;
|
|
240
241
|
exports.useAvatarContext = avatarContext.useAvatarContext;
|
|
241
|
-
exports.AvatarGroup = avatarGroup.AvatarGroup;
|
|
242
|
-
exports.AvatarGroupProvider = avatarGroupContext.AvatarGroupProvider;
|
|
243
|
-
exports.useAvatarGroup = avatarGroupContext.useAvatarGroup;
|
|
244
242
|
exports.AvatarFallback = avatar.AvatarFallback;
|
|
245
243
|
exports.AvatarImage = avatar.AvatarImage;
|
|
246
244
|
exports.AvatarRoot = avatar.AvatarRoot;
|
|
245
|
+
exports.AvatarGroup = avatarGroup.AvatarGroup;
|
|
246
|
+
exports.AvatarGroupProvider = avatarGroupContext.AvatarGroupProvider;
|
|
247
|
+
exports.useAvatarGroup = avatarGroupContext.useAvatarGroup;
|
|
248
|
+
Object.defineProperty(exports, "toast", {
|
|
249
|
+
enumerable: true,
|
|
250
|
+
get: function () { return sonner.toast; }
|
|
251
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
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 useInfobox = require('./use-infobox.cjs');
|
|
8
|
+
var info = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/info.cjs');
|
|
9
|
+
var circleCheck = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-check.cjs');
|
|
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');
|
|
11
|
+
|
|
12
|
+
const Infobox = (props) => {
|
|
13
|
+
const { Component, children, slots, classNames, icon, variant } = useInfobox.useInfobox(props);
|
|
14
|
+
const displayedIcon = $670gB$react.useMemo(() => {
|
|
15
|
+
if (icon) {
|
|
16
|
+
return icon;
|
|
17
|
+
}
|
|
18
|
+
if (icon === null) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const iconClassName = slots.icon({ className: classNames?.icon });
|
|
22
|
+
switch (variant) {
|
|
23
|
+
case "error":
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(circleAlert.default, { className: iconClassName });
|
|
25
|
+
case "success":
|
|
26
|
+
return /* @__PURE__ */ jsxRuntime.jsx(circleCheck.default, { className: iconClassName });
|
|
27
|
+
case "warning":
|
|
28
|
+
case "info":
|
|
29
|
+
default:
|
|
30
|
+
return /* @__PURE__ */ jsxRuntime.jsx(info.default, { className: iconClassName });
|
|
31
|
+
}
|
|
32
|
+
}, [icon, variant, slots, classNames?.icon]);
|
|
33
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Component, { className: slots.base({ className: classNames?.base }), children: [
|
|
34
|
+
displayedIcon,
|
|
35
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: slots.wrapper({ className: classNames?.wrapper }), children })
|
|
36
|
+
] });
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports.Infobox = Infobox;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var $670gB$react = require('react');
|
|
5
|
+
var useDeepCompare = require('use-deep-compare');
|
|
6
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
7
|
+
var utils = require('../system/utils.cjs');
|
|
8
|
+
|
|
9
|
+
function useInfobox(originalProps) {
|
|
10
|
+
const [_props, variantProps] = utils.mapPropsVariants(
|
|
11
|
+
originalProps,
|
|
12
|
+
ouiTheme.infoboxStyles.variantKeys
|
|
13
|
+
);
|
|
14
|
+
const { children, as, classNames, icon } = _props;
|
|
15
|
+
const Component = $670gB$react.useMemo(() => as || "div", [as]);
|
|
16
|
+
const slots = useDeepCompare.useDeepCompareMemo(
|
|
17
|
+
() => ({
|
|
18
|
+
...ouiTheme.infoboxStyles({ ...variantProps })
|
|
19
|
+
}),
|
|
20
|
+
[variantProps, ouiTheme.infoboxStyles]
|
|
21
|
+
);
|
|
22
|
+
return {
|
|
23
|
+
Component,
|
|
24
|
+
children,
|
|
25
|
+
slots,
|
|
26
|
+
classNames,
|
|
27
|
+
icon,
|
|
28
|
+
variant: variantProps.variant
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.useInfobox = useInfobox;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var createLucideIcon = require('../createLucideIcon.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @license lucide-react v0.475.0 - ISC
|
|
9
|
+
*
|
|
10
|
+
* This source code is licensed under the ISC license.
|
|
11
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
const __iconNode = [
|
|
16
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
17
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
18
|
+
];
|
|
19
|
+
const CircleCheck = createLucideIcon.default("CircleCheck", __iconNode);
|
|
20
|
+
|
|
21
|
+
exports.__iconNode = __iconNode;
|
|
22
|
+
exports.default = CircleCheck;
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
var pagination = require('./pagination.cjs');
|
|
5
5
|
var paginationCursor = require('./pagination-cursor.cjs');
|
|
6
6
|
var paginationItem = require('./pagination-item.cjs');
|
|
7
|
-
var usePagination = require('./hooks/use-pagination.cjs');
|
|
8
|
-
var usePagination
|
|
7
|
+
var usePagination$1 = require('./hooks/use-pagination.cjs');
|
|
8
|
+
var usePagination = require('./use-pagination.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
exports.Pagination = pagination.Pagination;
|
|
13
13
|
exports.PaginationCursor = paginationCursor.PaginationCursor;
|
|
14
14
|
exports.PaginationItem = paginationItem.PaginationItem;
|
|
15
|
-
exports.PaginationItemType = usePagination.PaginationItemType;
|
|
16
|
-
exports.CURSOR_TRANSITION_TIMEOUT = usePagination
|
|
17
|
-
exports.usePagination = usePagination
|
|
15
|
+
exports.PaginationItemType = usePagination$1.PaginationItemType;
|
|
16
|
+
exports.CURSOR_TRANSITION_TIMEOUT = usePagination.CURSOR_TRANSITION_TIMEOUT;
|
|
17
|
+
exports.usePagination = usePagination.usePagination;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var context = require('../system/react-utils/context.cjs');
|
|
5
|
+
|
|
6
|
+
const [RadioGroupVariantContext, useRadioGroupVariantContext] = context.createContext({
|
|
7
|
+
name: "RadioGroupVariantContext",
|
|
8
|
+
strict: false,
|
|
9
|
+
defaultValue: {
|
|
10
|
+
size: "md"
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
exports.RadioGroupVariantContext = RadioGroupVariantContext;
|
|
15
|
+
exports.useRadioGroupVariantContext = useRadioGroupVariantContext;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var reactAriaComponents = require('react-aria-components');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
+
var field = require('../field/field.cjs');
|
|
9
|
+
var children = require('../system/react-utils/children.cjs');
|
|
10
|
+
var utils = require('../system/utils.cjs');
|
|
11
|
+
var radioGroupVariantContext = require('./radio-group-variant-context.cjs');
|
|
12
|
+
|
|
13
|
+
const Radio = ({
|
|
14
|
+
classNames,
|
|
15
|
+
className,
|
|
16
|
+
children: children$1,
|
|
17
|
+
description,
|
|
18
|
+
...originalProps
|
|
19
|
+
}) => {
|
|
20
|
+
const [props, variants] = utils.mapPropsVariants(
|
|
21
|
+
originalProps,
|
|
22
|
+
ouiTheme.radioStyles.variantKeys
|
|
23
|
+
);
|
|
24
|
+
const groupContext = radioGroupVariantContext.useRadioGroupVariantContext();
|
|
25
|
+
const styles = ouiTheme.radioStyles({ size: groupContext?.size, ...variants });
|
|
26
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27
|
+
reactAriaComponents.Radio,
|
|
28
|
+
{
|
|
29
|
+
...props,
|
|
30
|
+
isDisabled: variants.isDisabled,
|
|
31
|
+
className: reactAriaComponents.composeRenderProps(
|
|
32
|
+
className ?? classNames?.base,
|
|
33
|
+
(className2, renderProps) => styles.base({ ...renderProps, className: className2 })
|
|
34
|
+
),
|
|
35
|
+
children: (renderProps) => {
|
|
36
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
37
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
"span",
|
|
39
|
+
{
|
|
40
|
+
className: styles.circle({
|
|
41
|
+
...renderProps,
|
|
42
|
+
className: classNames?.circle
|
|
43
|
+
}),
|
|
44
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
45
|
+
"span",
|
|
46
|
+
{
|
|
47
|
+
className: styles.icon({
|
|
48
|
+
...renderProps,
|
|
49
|
+
className: classNames?.icon
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.label({ className: classNames?.label }), children: children.renderChildren(renderProps, children$1) }),
|
|
56
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
57
|
+
field.Description,
|
|
58
|
+
{
|
|
59
|
+
size: groupContext?.size,
|
|
60
|
+
className: styles.description({
|
|
61
|
+
className: classNames?.description
|
|
62
|
+
}),
|
|
63
|
+
children: description
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
] });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
};
|
|
71
|
+
const RadioGroup = ({
|
|
72
|
+
label,
|
|
73
|
+
description,
|
|
74
|
+
errorMessage,
|
|
75
|
+
classNames,
|
|
76
|
+
size,
|
|
77
|
+
...props
|
|
78
|
+
}) => {
|
|
79
|
+
const context = { size };
|
|
80
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Provider, { values: [[radioGroupVariantContext.RadioGroupVariantContext, context]], children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
81
|
+
reactAriaComponents.RadioGroup,
|
|
82
|
+
{
|
|
83
|
+
...props,
|
|
84
|
+
className: reactAriaComponents.composeRenderProps(
|
|
85
|
+
props.className ?? classNames?.base,
|
|
86
|
+
(className, renderProps) => ouiTheme.radioGroupStyles({ ...renderProps, size, className })
|
|
87
|
+
),
|
|
88
|
+
children: [
|
|
89
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(field.Label, { size, className: classNames?.label, children: label }),
|
|
90
|
+
props.children,
|
|
91
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(field.Description, { size, className: classNames?.description, children: description }),
|
|
92
|
+
/* @__PURE__ */ jsxRuntime.jsx(field.FieldError, { size, classNames: classNames?.error, children: errorMessage })
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
) });
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.Radio = Radio;
|
|
99
|
+
exports.RadioGroup = RadioGroup;
|
|
@@ -22,6 +22,7 @@ function SearchField(originalProps) {
|
|
|
22
22
|
searchIcon,
|
|
23
23
|
inputProps,
|
|
24
24
|
classNames,
|
|
25
|
+
clearIcon,
|
|
25
26
|
...props
|
|
26
27
|
},
|
|
27
28
|
variantProps
|
|
@@ -68,7 +69,7 @@ function SearchField(originalProps) {
|
|
|
68
69
|
...inputProps
|
|
69
70
|
}
|
|
70
71
|
),
|
|
71
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
72
|
+
clearIcon !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
72
73
|
button.Button,
|
|
73
74
|
{
|
|
74
75
|
isIconOnly: true,
|
|
@@ -76,8 +77,10 @@ function SearchField(originalProps) {
|
|
|
76
77
|
variant: "clear",
|
|
77
78
|
color: "sub",
|
|
78
79
|
size: variantProps.size,
|
|
79
|
-
className: styles.clearButton({
|
|
80
|
-
|
|
80
|
+
className: styles.clearButton({
|
|
81
|
+
className: classNames?.clearButton
|
|
82
|
+
}),
|
|
83
|
+
children: clearIcon ?? /* @__PURE__ */ jsxRuntime.jsx(x.default, { "aria-hidden": true })
|
|
81
84
|
}
|
|
82
85
|
)
|
|
83
86
|
] }),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useContext } from 'react';
|
|
5
|
-
import { Disclosure, composeRenderProps, DisclosureGroup, DisclosureStateContext, Heading, Button
|
|
5
|
+
import { Disclosure, composeRenderProps, DisclosureGroup, DisclosurePanel, DisclosureStateContext, Heading, Button } from 'react-aria-components';
|
|
6
6
|
import { cn, accordionStyles, composeTailwindRenderProps } from '@opengovsg/oui-theme';
|
|
7
7
|
import { renderChildren } from '../system/react-utils/children.js';
|
|
8
8
|
import { forwardRef, mapPropsVariants } from '../system/utils.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
import { useMemo, useCallback,
|
|
2
|
+
import { useMemo, useCallback, isValidElement, cloneElement } from 'react';
|
|
3
3
|
import { mergeProps } from '@react-aria/utils';
|
|
4
4
|
import { useLocalizedStringFormatter, useFocusRing, usePress } from 'react-aria';
|
|
5
5
|
import { useDeepCompareMemo } from 'use-deep-compare';
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import { useLocalizedStringFormatter } from 'react-aria';
|
|
6
|
-
import {
|
|
6
|
+
import { Breadcrumb as Breadcrumb$1, Provider, Breadcrumbs as Breadcrumbs$1, MenuTrigger } from 'react-aria-components';
|
|
7
7
|
import { breadcrumbsStyles, composeRenderProps } from '@opengovsg/oui-theme';
|
|
8
8
|
import { Link } from '../link/link.js';
|
|
9
9
|
import { Menu, MenuItem } from '../menu/menu.js';
|
|
10
10
|
import { getValidChildren } from '../system/react-utils/children.js';
|
|
11
|
-
import {
|
|
11
|
+
import { useBreadcrumbsStyleContext, BreadcrumbsStyleContext } from './context.js';
|
|
12
12
|
import { i18nStrings } from './i18n.js';
|
|
13
13
|
import ChevronRight from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-right.js';
|
|
14
14
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { useMemo, useContext } from 'react';
|
|
5
5
|
import { CalendarDate, today, getLocalTimeZone } from '@internationalized/date';
|
|
6
|
-
import { Calendar as Calendar$1,
|
|
6
|
+
import { Calendar as Calendar$1, Provider, CalendarGrid, CalendarGridBody, CalendarCell, composeRenderProps, Text, CalendarStateContext } from 'react-aria-components';
|
|
7
7
|
import { useDeepCompareMemo } from 'use-deep-compare';
|
|
8
8
|
import { calendarStyles, dataAttr, cn } from '@opengovsg/oui-theme';
|
|
9
9
|
import { forwardRefGeneric, mapPropsVariants } from '../system/utils.js';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
-
import { useContextProps, ListBoxItem,
|
|
5
|
+
import { useContextProps, ListBoxItem, Text, composeRenderProps } from 'react-aria-components';
|
|
6
6
|
import { listBoxItemStyles } from '@opengovsg/oui-theme';
|
|
7
7
|
import { forwardRef, mapPropsVariants } from '../system/utils.js';
|
|
8
8
|
import { ComboBoxVariantContext } from './combo-box-variant-context.js';
|
|
@@ -4,7 +4,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
4
4
|
import { useMemo, useCallback } from 'react';
|
|
5
5
|
import { useLocalizedStringFormatter } from 'react-aria';
|
|
6
6
|
import { ListLayout, Provider, ComboBox as ComboBox$1, Input, Button, Virtualizer, ListBox } from 'react-aria-components';
|
|
7
|
-
import {
|
|
7
|
+
import { comboBoxStyles, composeRenderProps, comboBoxClearButtonStyles, composeTailwindRenderProps, listBoxItemStyles, cn } from '@opengovsg/oui-theme';
|
|
8
8
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
9
9
|
import { Popover } from '../popover/popover.js';
|
|
10
10
|
import { mapPropsVariants } from '../system/utils.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -77,8 +77,10 @@ export { SidebarHeader } from './sidebar/sidebar-header.js';
|
|
|
77
77
|
export { Tooltip, TooltipTrigger } from './tooltip/tooltip.js';
|
|
78
78
|
export { CountrySelect, FlagComponent, PhoneInput, PhoneNumberField } from './phone-number-field/phone-number-field.js';
|
|
79
79
|
export { formatPhoneNumber, formatPhoneNumberIntl, isPossiblePhoneNumber, isValidPhoneNumber, parsePhoneNumber } from 'react-phone-number-input';
|
|
80
|
-
export {
|
|
80
|
+
export { Infobox } from './infobox/infobox.js';
|
|
81
|
+
export { Radio, RadioGroup } from './radio-group/radio.js';
|
|
81
82
|
export { AvatarContext, useAvatarContext } from './avatar/avatar-context.js';
|
|
83
|
+
export { AvatarFallback, AvatarImage, AvatarRoot } from './avatar/avatar.js';
|
|
82
84
|
export { AvatarGroup } from './avatar/avatar-group.js';
|
|
83
85
|
export { AvatarGroupProvider, useAvatarGroup } from './avatar/avatar-group-context.js';
|
|
84
|
-
export {
|
|
86
|
+
export { toast } from 'sonner';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import { useInfobox } from './use-infobox.js';
|
|
6
|
+
import Info from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/info.js';
|
|
7
|
+
import CircleCheck from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-check.js';
|
|
8
|
+
import CircleAlert from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-alert.js';
|
|
9
|
+
|
|
10
|
+
const Infobox = (props) => {
|
|
11
|
+
const { Component, children, slots, classNames, icon, variant } = useInfobox(props);
|
|
12
|
+
const displayedIcon = useMemo(() => {
|
|
13
|
+
if (icon) {
|
|
14
|
+
return icon;
|
|
15
|
+
}
|
|
16
|
+
if (icon === null) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const iconClassName = slots.icon({ className: classNames?.icon });
|
|
20
|
+
switch (variant) {
|
|
21
|
+
case "error":
|
|
22
|
+
return /* @__PURE__ */ jsx(CircleAlert, { className: iconClassName });
|
|
23
|
+
case "success":
|
|
24
|
+
return /* @__PURE__ */ jsx(CircleCheck, { className: iconClassName });
|
|
25
|
+
case "warning":
|
|
26
|
+
case "info":
|
|
27
|
+
default:
|
|
28
|
+
return /* @__PURE__ */ jsx(Info, { className: iconClassName });
|
|
29
|
+
}
|
|
30
|
+
}, [icon, variant, slots, classNames?.icon]);
|
|
31
|
+
return /* @__PURE__ */ jsxs(Component, { className: slots.base({ className: classNames?.base }), children: [
|
|
32
|
+
displayedIcon,
|
|
33
|
+
/* @__PURE__ */ jsx("div", { className: slots.wrapper({ className: classNames?.wrapper }), children })
|
|
34
|
+
] });
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { Infobox };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { useDeepCompareMemo } from 'use-deep-compare';
|
|
4
|
+
import { infoboxStyles } from '@opengovsg/oui-theme';
|
|
5
|
+
import { mapPropsVariants } from '../system/utils.js';
|
|
6
|
+
|
|
7
|
+
function useInfobox(originalProps) {
|
|
8
|
+
const [_props, variantProps] = mapPropsVariants(
|
|
9
|
+
originalProps,
|
|
10
|
+
infoboxStyles.variantKeys
|
|
11
|
+
);
|
|
12
|
+
const { children, as, classNames, icon } = _props;
|
|
13
|
+
const Component = useMemo(() => as || "div", [as]);
|
|
14
|
+
const slots = useDeepCompareMemo(
|
|
15
|
+
() => ({
|
|
16
|
+
...infoboxStyles({ ...variantProps })
|
|
17
|
+
}),
|
|
18
|
+
[variantProps, infoboxStyles]
|
|
19
|
+
);
|
|
20
|
+
return {
|
|
21
|
+
Component,
|
|
22
|
+
children,
|
|
23
|
+
slots,
|
|
24
|
+
classNames,
|
|
25
|
+
icon,
|
|
26
|
+
variant: variantProps.variant
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { useInfobox };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import createLucideIcon from '../createLucideIcon.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @license lucide-react v0.475.0 - ISC
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the ISC license.
|
|
7
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const __iconNode = [
|
|
12
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
13
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
14
|
+
];
|
|
15
|
+
const CircleCheck = createLucideIcon("CircleCheck", __iconNode);
|
|
16
|
+
|
|
17
|
+
export { __iconNode, CircleCheck as default };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { NumberField as NumberField$1 } from 'react-aria-components';
|
|
5
|
-
import { numberFieldStyles,
|
|
5
|
+
import { numberFieldStyles, fieldBorderStyles, cn, composeTailwindRenderProps, dataAttr } from '@opengovsg/oui-theme';
|
|
6
6
|
import { Button } from '../button/button.js';
|
|
7
7
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
8
8
|
import { Input } from '../input/input.js';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { useFocusRing } from '@react-aria/focus';
|
|
5
5
|
import { usePress, useHover } from '@react-aria/interactions';
|
|
6
|
-
import { useRouter,
|
|
6
|
+
import { useRouter, chain, shouldClientNavigate, mergeProps } from '@react-aria/utils';
|
|
7
7
|
import { cn, dataAttr } from '@opengovsg/oui-theme';
|
|
8
8
|
import { useDomRef } from '../system/react-utils/refs.js';
|
|
9
9
|
import { filterDOMProps } from '../system/react-utils/filter-dom-props.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
import {
|
|
4
|
-
import { useMemo, useState, useRef
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { useMemo, useCallback, useState, useRef } from 'react';
|
|
5
5
|
import { TextField, Provider } from 'react-aria-components';
|
|
6
6
|
import BasePhoneInput, { getCountryCallingCode } from 'react-phone-number-input';
|
|
7
7
|
import flags from 'react-phone-number-input/flags';
|
|
8
8
|
import NonInternationalBasePhoneInput from 'react-phone-number-input/input';
|
|
9
|
-
import {
|
|
9
|
+
import { cn, phoneNumberFieldStyles } from '@opengovsg/oui-theme';
|
|
10
10
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
11
11
|
import { useControllableState } from '../hooks/use-controllable-state.js';
|
|
12
12
|
import { Input } from '../input/input.js';
|
|
@@ -15,7 +15,7 @@ import { SelectItem } from '../select/select-item.js';
|
|
|
15
15
|
import { useLocalizedStringFormatter } from '../system/l10n.js';
|
|
16
16
|
import { mapPropsVariants } from '../system/utils.js';
|
|
17
17
|
import { MOBILE_EXAMPLES } from './constants.js';
|
|
18
|
-
import {
|
|
18
|
+
import { usePhoneInputContext, PhoneInputContext } from './context.js';
|
|
19
19
|
import { i18nStrings } from './i18n.js';
|
|
20
20
|
|
|
21
21
|
const PhoneInput = ({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
-
import { useSlottedContext, PopoverContext, Popover as Popover$1,
|
|
4
|
+
import { useSlottedContext, PopoverContext, Popover as Popover$1, OverlayArrow, composeRenderProps } from 'react-aria-components';
|
|
5
5
|
import { popoverArrowStyles, popoverStyles } from '@opengovsg/oui-theme';
|
|
6
6
|
|
|
7
7
|
const Popover = ({
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { createContext } from '../system/react-utils/context.js';
|
|
3
|
+
|
|
4
|
+
const [RadioGroupVariantContext, useRadioGroupVariantContext] = createContext({
|
|
5
|
+
name: "RadioGroupVariantContext",
|
|
6
|
+
strict: false,
|
|
7
|
+
defaultValue: {
|
|
8
|
+
size: "md"
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export { RadioGroupVariantContext, useRadioGroupVariantContext };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import { Radio as Radio$1, composeRenderProps, Provider, RadioGroup as RadioGroup$1 } from 'react-aria-components';
|
|
5
|
+
import { radioStyles, radioGroupStyles } from '@opengovsg/oui-theme';
|
|
6
|
+
import { Description, Label, FieldError } from '../field/field.js';
|
|
7
|
+
import { renderChildren } from '../system/react-utils/children.js';
|
|
8
|
+
import { mapPropsVariants } from '../system/utils.js';
|
|
9
|
+
import { useRadioGroupVariantContext, RadioGroupVariantContext } from './radio-group-variant-context.js';
|
|
10
|
+
|
|
11
|
+
const Radio = ({
|
|
12
|
+
classNames,
|
|
13
|
+
className,
|
|
14
|
+
children,
|
|
15
|
+
description,
|
|
16
|
+
...originalProps
|
|
17
|
+
}) => {
|
|
18
|
+
const [props, variants] = mapPropsVariants(
|
|
19
|
+
originalProps,
|
|
20
|
+
radioStyles.variantKeys
|
|
21
|
+
);
|
|
22
|
+
const groupContext = useRadioGroupVariantContext();
|
|
23
|
+
const styles = radioStyles({ size: groupContext?.size, ...variants });
|
|
24
|
+
return /* @__PURE__ */ jsx(
|
|
25
|
+
Radio$1,
|
|
26
|
+
{
|
|
27
|
+
...props,
|
|
28
|
+
isDisabled: variants.isDisabled,
|
|
29
|
+
className: composeRenderProps(
|
|
30
|
+
className ?? classNames?.base,
|
|
31
|
+
(className2, renderProps) => styles.base({ ...renderProps, className: className2 })
|
|
32
|
+
),
|
|
33
|
+
children: (renderProps) => {
|
|
34
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
35
|
+
/* @__PURE__ */ jsx(
|
|
36
|
+
"span",
|
|
37
|
+
{
|
|
38
|
+
className: styles.circle({
|
|
39
|
+
...renderProps,
|
|
40
|
+
className: classNames?.circle
|
|
41
|
+
}),
|
|
42
|
+
children: /* @__PURE__ */ jsx(
|
|
43
|
+
"span",
|
|
44
|
+
{
|
|
45
|
+
className: styles.icon({
|
|
46
|
+
...renderProps,
|
|
47
|
+
className: classNames?.icon
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
),
|
|
53
|
+
/* @__PURE__ */ jsx("span", { className: styles.label({ className: classNames?.label }), children: renderChildren(renderProps, children) }),
|
|
54
|
+
description && /* @__PURE__ */ jsx(
|
|
55
|
+
Description,
|
|
56
|
+
{
|
|
57
|
+
size: groupContext?.size,
|
|
58
|
+
className: styles.description({
|
|
59
|
+
className: classNames?.description
|
|
60
|
+
}),
|
|
61
|
+
children: description
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
] });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
const RadioGroup = ({
|
|
70
|
+
label,
|
|
71
|
+
description,
|
|
72
|
+
errorMessage,
|
|
73
|
+
classNames,
|
|
74
|
+
size,
|
|
75
|
+
...props
|
|
76
|
+
}) => {
|
|
77
|
+
const context = { size };
|
|
78
|
+
return /* @__PURE__ */ jsx(Provider, { values: [[RadioGroupVariantContext, context]], children: /* @__PURE__ */ jsxs(
|
|
79
|
+
RadioGroup$1,
|
|
80
|
+
{
|
|
81
|
+
...props,
|
|
82
|
+
className: composeRenderProps(
|
|
83
|
+
props.className ?? classNames?.base,
|
|
84
|
+
(className, renderProps) => radioGroupStyles({ ...renderProps, size, className })
|
|
85
|
+
),
|
|
86
|
+
children: [
|
|
87
|
+
label && /* @__PURE__ */ jsx(Label, { size, className: classNames?.label, children: label }),
|
|
88
|
+
props.children,
|
|
89
|
+
description && /* @__PURE__ */ jsx(Description, { size, className: classNames?.description, children: description }),
|
|
90
|
+
/* @__PURE__ */ jsx(FieldError, { size, classNames: classNames?.error, children: errorMessage })
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
) });
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export { Radio, RadioGroup };
|
|
@@ -20,6 +20,7 @@ function SearchField(originalProps) {
|
|
|
20
20
|
searchIcon,
|
|
21
21
|
inputProps,
|
|
22
22
|
classNames,
|
|
23
|
+
clearIcon,
|
|
23
24
|
...props
|
|
24
25
|
},
|
|
25
26
|
variantProps
|
|
@@ -66,7 +67,7 @@ function SearchField(originalProps) {
|
|
|
66
67
|
...inputProps
|
|
67
68
|
}
|
|
68
69
|
),
|
|
69
|
-
/* @__PURE__ */ jsx(
|
|
70
|
+
clearIcon !== null && /* @__PURE__ */ jsx(
|
|
70
71
|
Button,
|
|
71
72
|
{
|
|
72
73
|
isIconOnly: true,
|
|
@@ -74,8 +75,10 @@ function SearchField(originalProps) {
|
|
|
74
75
|
variant: "clear",
|
|
75
76
|
color: "sub",
|
|
76
77
|
size: variantProps.size,
|
|
77
|
-
className: styles.clearButton({
|
|
78
|
-
|
|
78
|
+
className: styles.clearButton({
|
|
79
|
+
className: classNames?.clearButton
|
|
80
|
+
}),
|
|
81
|
+
children: clearIcon ?? /* @__PURE__ */ jsx(X, { "aria-hidden": true })
|
|
79
82
|
}
|
|
80
83
|
)
|
|
81
84
|
] }),
|
package/dist/esm/tabs/tabs.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { useContextProps, TabList as TabList$1, composeRenderProps, Tab as Tab$1, TabPanels as TabPanels$1,
|
|
6
|
-
import { tabListStyles, tabStyles,
|
|
5
|
+
import { useContextProps, TabList as TabList$1, composeRenderProps, Tab as Tab$1, TabPanels as TabPanels$1, TabPanel as TabPanel$1, Provider, Tabs as Tabs$1 } from 'react-aria-components';
|
|
6
|
+
import { tabListStyles, tabStyles, tabPanelStyles, tabsStyles } from '@opengovsg/oui-theme';
|
|
7
7
|
import { forwardRefGeneric, mapPropsVariants } from '../system/utils.js';
|
|
8
8
|
import { createContext } from '../system/react-utils/context.js';
|
|
9
9
|
|
package/dist/types/index.d.mts
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infobox/index.tsx"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infobox.d.ts","sourceRoot":"","sources":["../../../src/infobox/infobox.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAIpD,MAAM,WAAW,YAAa,SAAQ,eAAe;CAAG;AAExD,eAAO,MAAM,OAAO,UAAW,YAAY,4CAsC1C,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { InfoboxSlots, InfoboxVariantProps, SlotsToClasses } from "@opengovsg/oui-theme";
|
|
2
|
+
import type { HtmlUiProps } from "../system/types";
|
|
3
|
+
export interface UseInfoboxProps extends HtmlUiProps, InfoboxVariantProps {
|
|
4
|
+
/**
|
|
5
|
+
* Icon to show on the left of the infobox.
|
|
6
|
+
* If not specified, a default icon will be used according to the infobox variant.
|
|
7
|
+
* Pass `null` to explicitly hide the icon.
|
|
8
|
+
*/
|
|
9
|
+
icon?: React.ReactNode | null;
|
|
10
|
+
/**
|
|
11
|
+
* Classname or List of classes to change the classNames of the element.
|
|
12
|
+
* if `className` is passed, it will be added to the base slot.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* <Infobox classNames={{
|
|
17
|
+
* base: "base-classes",
|
|
18
|
+
* icon: "icon-classes",
|
|
19
|
+
* }} />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
classNames?: SlotsToClasses<InfoboxSlots>;
|
|
23
|
+
}
|
|
24
|
+
export declare function useInfobox(originalProps: UseInfoboxProps): {
|
|
25
|
+
Component: import("../system/types").As<any>;
|
|
26
|
+
children: import("react").ReactNode;
|
|
27
|
+
slots: {
|
|
28
|
+
base: ((slotProps?: ({
|
|
29
|
+
size?: "md" | "sm" | undefined;
|
|
30
|
+
variant?: "error" | "warning" | "success" | "info" | undefined;
|
|
31
|
+
} & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string) & ((slotProps?: ({
|
|
32
|
+
size?: "md" | "sm" | undefined;
|
|
33
|
+
variant?: "error" | "warning" | "success" | "info" | undefined;
|
|
34
|
+
} & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string);
|
|
35
|
+
icon: ((slotProps?: ({
|
|
36
|
+
size?: "md" | "sm" | undefined;
|
|
37
|
+
variant?: "error" | "warning" | "success" | "info" | undefined;
|
|
38
|
+
} & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string) & ((slotProps?: ({
|
|
39
|
+
size?: "md" | "sm" | undefined;
|
|
40
|
+
variant?: "error" | "warning" | "success" | "info" | undefined;
|
|
41
|
+
} & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string);
|
|
42
|
+
wrapper: ((slotProps?: ({
|
|
43
|
+
size?: "md" | "sm" | undefined;
|
|
44
|
+
variant?: "error" | "warning" | "success" | "info" | undefined;
|
|
45
|
+
} & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string) & ((slotProps?: ({
|
|
46
|
+
size?: "md" | "sm" | undefined;
|
|
47
|
+
variant?: "error" | "warning" | "success" | "info" | undefined;
|
|
48
|
+
} & import("tailwind-variants").ClassProp<import("tailwind-merge").ClassNameValue>) | undefined) => string);
|
|
49
|
+
};
|
|
50
|
+
classNames: SlotsToClasses<"base" | "wrapper" | "icon"> | undefined;
|
|
51
|
+
icon: import("react").ReactNode;
|
|
52
|
+
variant: "error" | "warning" | "success" | "info" | undefined;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=use-infobox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-infobox.d.ts","sourceRoot":"","sources":["../../../src/infobox/use-infobox.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,MAAM,WAAW,eAAgB,SAAQ,WAAW,EAAE,mBAAmB;IACvE;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAC7B;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;CAC1C;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/radio-group/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE3C,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RadioGroupVariantProps } from "@opengovsg/oui-theme";
|
|
2
|
+
export interface RadioGroupVariantContextValue extends RadioGroupVariantProps {
|
|
3
|
+
size: RadioGroupVariantProps["size"];
|
|
4
|
+
}
|
|
5
|
+
export declare const RadioGroupVariantContext: import("react").Context<RadioGroupVariantContextValue | undefined>, useRadioGroupVariantContext: () => RadioGroupVariantContextValue | undefined;
|
|
6
|
+
//# sourceMappingURL=radio-group-variant-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group-variant-context.d.ts","sourceRoot":"","sources":["../../../src/radio-group/radio-group-variant-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAIlE,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC3E,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;CACrC;AAED,eAAO,MAAO,wBAAwB,sEAAE,2BAA2B,iDAO/D,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { RadioGroupProps as AriaRadioGroupProps, RadioProps as AriaRadioProps, ValidationResult } from "react-aria-components";
|
|
2
|
+
import type { FieldErrorSlots, RadioGroupVariantProps, RadioSlots, SlotsToClasses, VariantProps } from "@opengovsg/oui-theme";
|
|
3
|
+
import { radioStyles } from "@opengovsg/oui-theme";
|
|
4
|
+
export interface RadioProps extends AriaRadioProps, VariantProps<typeof radioStyles> {
|
|
5
|
+
classNames?: SlotsToClasses<RadioSlots>;
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const Radio: ({ classNames, className, children, description, ...originalProps }: RadioProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export interface RadioGroupProps extends Omit<AriaRadioGroupProps, "children">, RadioGroupVariantProps {
|
|
10
|
+
/**
|
|
11
|
+
* Label for the radio group
|
|
12
|
+
*/
|
|
13
|
+
label?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Radio components
|
|
16
|
+
*/
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Description text for the radio group
|
|
20
|
+
*/
|
|
21
|
+
description?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Error message - can be string or function for validation
|
|
24
|
+
*/
|
|
25
|
+
errorMessage?: string | ((validation: ValidationResult) => string);
|
|
26
|
+
/**
|
|
27
|
+
* Optional classNames for different parts of the group
|
|
28
|
+
*/
|
|
29
|
+
classNames?: SlotsToClasses<"label" | "base" | "description"> & {
|
|
30
|
+
error?: SlotsToClasses<FieldErrorSlots>;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Size of all Radio children
|
|
34
|
+
* Will be propagated via context
|
|
35
|
+
*/
|
|
36
|
+
size?: RadioProps["size"];
|
|
37
|
+
}
|
|
38
|
+
export declare const RadioGroup: ({ label, description, errorMessage, classNames, size, ...props }: RadioGroupProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=radio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../../src/radio-group/radio.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,IAAI,mBAAmB,EACtC,UAAU,IAAI,cAAc,EAC5B,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAoB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAUpE,MAAM,WAAW,UACf,SAAQ,cAAc,EACpB,YAAY,CAAC,OAAO,WAAW,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,KAAK,uEAMf,UAAU,4CAqDZ,CAAA;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAC3C,sBAAsB;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,gBAAgB,KAAK,MAAM,CAAC,CAAA;IAElE;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC,GAAG;QAC9D,KAAK,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAA;KACxC,CAAA;IAED;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,eAAO,MAAM,UAAU,qEAOpB,eAAe,4CA+BjB,CAAA"}
|
|
@@ -10,6 +10,11 @@ export interface SearchFieldProps extends AriaSearchFieldProps, SearchFieldVaria
|
|
|
10
10
|
searchIcon?: React.ReactNode | null;
|
|
11
11
|
inputProps?: Partial<InputProps>;
|
|
12
12
|
classNames?: SlotsToClasses<SearchFieldSlots>;
|
|
13
|
+
/**
|
|
14
|
+
* The icon to show in the clear button. Defaults to an `XIcon`. Set to `null` to hide the clear button.
|
|
15
|
+
* @example Can also be used to provide a spinner icon while the search is loading.
|
|
16
|
+
*/
|
|
17
|
+
clearIcon?: React.ReactNode;
|
|
13
18
|
}
|
|
14
19
|
export declare function SearchField(originalProps: SearchFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
15
20
|
//# sourceMappingURL=search-field.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-field.d.ts","sourceRoot":"","sources":["../../../src/search-field/search-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,oBAAoB,EACxC,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAK9B,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAO1C,MAAM,WAAW,gBACf,SAAQ,oBAAoB,EAC1B,uBAAuB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EACT,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,UAAU,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD;yCACqC;IACrC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"search-field.d.ts","sourceRoot":"","sources":["../../../src/search-field/search-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,oBAAoB,EACxC,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAK9B,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAO1C,MAAM,WAAW,gBACf,SAAQ,oBAAoB,EAC1B,uBAAuB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EACT,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,UAAU,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD;yCACqC;IACrC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;IAE7C;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,gBAAgB,2CA6E1D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengovsg/oui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.50",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"type": "module",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"storybook": "10.1.10",
|
|
51
51
|
"tsx": "^4.21.0",
|
|
52
52
|
"typescript": "5.7.3",
|
|
53
|
-
"@oui
|
|
54
|
-
"@opengovsg/oui-theme": "0.0.48",
|
|
53
|
+
"@opengovsg/oui-theme": "0.0.50",
|
|
55
54
|
"@oui/eslint-config": "0.0.0",
|
|
55
|
+
"@oui/chromatic": "0.0.0",
|
|
56
56
|
"@oui/prettier-config": "0.0.0",
|
|
57
57
|
"@oui/typescript-config": "0.0.0"
|
|
58
58
|
},
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"motion": ">=11.12.0 || >=12.0.0-alpha.1",
|
|
91
91
|
"react": ">= 18",
|
|
92
92
|
"react-aria-components": "^1.14.0",
|
|
93
|
-
"@opengovsg/oui-theme": "0.0.
|
|
93
|
+
"@opengovsg/oui-theme": "0.0.50"
|
|
94
94
|
},
|
|
95
95
|
"scripts": {
|
|
96
96
|
"build": "tsx ../../tooling/build-scripts/main.ts --dts --clean",
|