@opengovsg/oui 0.0.48 → 0.0.49
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/date-picker/date-picker.cjs +2 -3
- package/dist/cjs/date-range-picker/date-range-picker.cjs +1 -1
- package/dist/cjs/file-dropzone/file-info.cjs +1 -1
- package/dist/cjs/index.cjs +64 -59
- 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/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/circle-check.cjs +22 -0
- package/dist/cjs/number-field/number-field.cjs +1 -1
- 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/range-calendar/range-calendar.cjs +1 -1
- package/dist/cjs/search-field/search-field.cjs +1 -1
- package/dist/cjs/select/select.cjs +1 -1
- package/dist/cjs/sidebar/sidebar-list.cjs +1 -1
- package/dist/esm/accordion/accordion.js +1 -1
- package/dist/esm/badge/use-badge.js +1 -1
- package/dist/esm/banner/banner.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/date-picker/date-picker.js +2 -3
- package/dist/esm/date-range-picker/date-range-picker.js +1 -1
- package/dist/esm/file-dropzone/file-info.js +1 -1
- package/dist/esm/index.js +15 -13
- 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/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/circle-check.js +17 -0
- package/dist/esm/number-field/number-field.js +2 -2
- 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/range-calendar/range-calendar.js +1 -1
- package/dist/esm/search-field/search-field.js +1 -1
- package/dist/esm/select/select.js +1 -1
- package/dist/esm/sidebar/sidebar-list.js +1 -1
- 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/package.json +4 -4
|
@@ -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';
|
|
@@ -5,10 +5,10 @@ import { useMemo, useRef } from 'react';
|
|
|
5
5
|
import { useLocalizedStringFormatter, useDisclosure } from 'react-aria';
|
|
6
6
|
import { useDisclosureState } from 'react-stately';
|
|
7
7
|
import { bannerStyles } from '@opengovsg/oui-theme';
|
|
8
|
-
import { Button } from '../button/button.js';
|
|
9
8
|
import { i18nStrings } from './i18n.js';
|
|
10
9
|
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';
|
|
11
10
|
import Info from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/info.js';
|
|
11
|
+
import { Button } from '../button/button.js';
|
|
12
12
|
import X from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js';
|
|
13
13
|
|
|
14
14
|
const Banner = ({
|
|
@@ -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';
|
|
@@ -4,14 +4,13 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
5
|
import { DatePicker as DatePicker$1, Dialog } from 'react-aria-components';
|
|
6
6
|
import { datePickerStyles, composeTailwindRenderProps } from '@opengovsg/oui-theme';
|
|
7
|
-
import { Button } from '../button/button.js';
|
|
8
|
-
import { Calendar as Calendar$1 } from '../calendar/calendar.js';
|
|
9
|
-
import '@internationalized/date';
|
|
10
7
|
import { DateInput } from '../date-field/date-field.js';
|
|
11
8
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
12
9
|
import { Popover } from '../popover/popover.js';
|
|
13
10
|
import { mapPropsVariants } from '../system/utils.js';
|
|
14
11
|
import Calendar from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.js';
|
|
12
|
+
import { Calendar as Calendar$1 } from '../calendar/calendar.js';
|
|
13
|
+
import { Button } from '../button/button.js';
|
|
15
14
|
|
|
16
15
|
function DatePicker(originalProps) {
|
|
17
16
|
const [
|
|
@@ -5,13 +5,13 @@ import { useMemo } from 'react';
|
|
|
5
5
|
import { CalendarDate } from '@internationalized/date';
|
|
6
6
|
import { DateRangePicker as DateRangePicker$1, Dialog } from 'react-aria-components';
|
|
7
7
|
import { dateRangePickerStyles, composeTailwindRenderProps } from '@opengovsg/oui-theme';
|
|
8
|
-
import { Button } from '../button/button.js';
|
|
9
8
|
import { DateInput } from '../date-field/date-field.js';
|
|
10
9
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
11
10
|
import { Popover } from '../popover/popover.js';
|
|
12
11
|
import { RangeCalendar } from '../range-calendar/range-calendar.js';
|
|
13
12
|
import { mapPropsVariants } from '../system/utils.js';
|
|
14
13
|
import Calendar from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.js';
|
|
14
|
+
import { Button } from '../button/button.js';
|
|
15
15
|
|
|
16
16
|
function DateRangePicker(originalProps) {
|
|
17
17
|
const [
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { useState, useEffect } from 'react';
|
|
5
5
|
import { fileInfoDropzoneStyles, cn } from '@opengovsg/oui-theme';
|
|
6
|
-
import { Button } from '../button/button.js';
|
|
7
6
|
import { useFileDropzoneStateContext, useFileDropzoneStyleContext } from './contexts.js';
|
|
8
7
|
import { formatBytes } from './utils.js';
|
|
9
8
|
import Trash2 from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/trash-2.js';
|
|
9
|
+
import { Button } from '../button/button.js';
|
|
10
10
|
|
|
11
11
|
const FileInfo = ({ file, imagePreview, classNames }) => {
|
|
12
12
|
const {
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
export { useControllableState } from './hooks/use-controllable-state.js';
|
|
3
3
|
export { useDraggable } from './hooks/use-draggable.js';
|
|
4
|
-
export { Button } from './button/button.js';
|
|
5
4
|
export { GovtBanner } from './govt-banner/govt-banner.js';
|
|
6
5
|
export { Ripple } from './ripple/ripple.js';
|
|
7
6
|
export { useRipple } from './ripple/use-ripple.js';
|
|
@@ -18,17 +17,11 @@ export { ComboBox, ComboBoxEmptyState } from './combo-box/combo-box.js';
|
|
|
18
17
|
export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
|
|
19
18
|
export { ComboBoxItem } from './combo-box/combo-box-item.js';
|
|
20
19
|
export { ComboBoxVariantContext, useComboBoxVariantContext } from './combo-box/combo-box-variant-context.js';
|
|
21
|
-
export { Banner } from './banner/banner.js';
|
|
22
20
|
export { TagField } from './tag-field/tag-field.js';
|
|
23
21
|
export { TagFieldItem } from './tag-field/tag-field-item.js';
|
|
24
22
|
export { Select } from './select/select.js';
|
|
25
23
|
export { SelectItem } from './select/select-item.js';
|
|
26
24
|
export { SelectVariantContext, useSelectVariantContext } from './select/select-variant-context.js';
|
|
27
|
-
export { Badge } from './badge/badge.js';
|
|
28
|
-
export { Calendar, CalendarStateWrapper } from './calendar/calendar.js';
|
|
29
|
-
export { CalendarStyleContext, useCalendarStyleContext } from './calendar/calendar-style-context.js';
|
|
30
|
-
export { getEraFormat, useGenerateLocalizedMonths, useGenerateLocalizedYears, useLocalizedMonthYear } from './calendar/utils.js';
|
|
31
|
-
export { CalendarDate } from '@internationalized/date';
|
|
32
25
|
export { RangeCalendar, RangeCalendarCell, RangeCalendarStateWrapper } from './range-calendar/range-calendar.js';
|
|
33
26
|
export { Menu, MenuItem, MenuSection, MenuSeparator, MenuTrigger, MenuVariantContext, SubmenuTrigger, useMenuVariantContext } from './menu/menu.js';
|
|
34
27
|
export { Popover } from './popover/popover.js';
|
|
@@ -36,8 +29,6 @@ export { Tab, TabList, TabPanel, TabPanels, Tabs, TabsVariantContext, useTabsVar
|
|
|
36
29
|
export { DateField, DateInput } from './date-field/date-field.js';
|
|
37
30
|
export { DatePicker } from './date-picker/date-picker.js';
|
|
38
31
|
export { DateRangePicker } from './date-range-picker/date-range-picker.js';
|
|
39
|
-
export { Checkbox, CheckboxGroup } from './checkbox/checkbox.js';
|
|
40
|
-
export { CheckboxGroupStyleContext, useCheckboxGroupStyleContext } from './checkbox/checkbox-group-style-context.js';
|
|
41
32
|
export { Pagination } from './pagination/pagination.js';
|
|
42
33
|
export { PaginationCursor } from './pagination/pagination-cursor.js';
|
|
43
34
|
export { PaginationItem } from './pagination/pagination-item.js';
|
|
@@ -64,11 +55,9 @@ export { NavbarItem } from './navbar/navbar-item.js';
|
|
|
64
55
|
export { useNavbar } from './navbar/use-navbar.js';
|
|
65
56
|
export { NavbarProvider, useNavbarContext } from './navbar/navbar-context.js';
|
|
66
57
|
export { Avatar } from './avatar/index.js';
|
|
67
|
-
export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionStyleContext, useAccordionStyleContext } from './accordion/accordion.js';
|
|
68
58
|
export { TimeField } from './time-field/time-field.js';
|
|
69
59
|
export { SearchField } from './search-field/search-field.js';
|
|
70
60
|
export { Link } from './link/link.js';
|
|
71
|
-
export { Breadcrumb, Breadcrumbs } from './breadcrumbs/breadcrumbs.js';
|
|
72
61
|
export { Sidebar, generateSidebarItems } from './sidebar/sidebar.js';
|
|
73
62
|
export { SidebarRoot } from './sidebar/sidebar-root.js';
|
|
74
63
|
export { SidebarItem } from './sidebar/sidebar-item.js';
|
|
@@ -77,8 +66,21 @@ export { SidebarHeader } from './sidebar/sidebar-header.js';
|
|
|
77
66
|
export { Tooltip, TooltipTrigger } from './tooltip/tooltip.js';
|
|
78
67
|
export { CountrySelect, FlagComponent, PhoneInput, PhoneNumberField } from './phone-number-field/phone-number-field.js';
|
|
79
68
|
export { formatPhoneNumber, formatPhoneNumberIntl, isPossiblePhoneNumber, isValidPhoneNumber, parsePhoneNumber } from 'react-phone-number-input';
|
|
80
|
-
export {
|
|
69
|
+
export { Infobox } from './infobox/infobox.js';
|
|
70
|
+
export { Radio, RadioGroup } from './radio-group/radio.js';
|
|
71
|
+
export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionStyleContext, useAccordionStyleContext } from './accordion/accordion.js';
|
|
81
72
|
export { AvatarContext, useAvatarContext } from './avatar/avatar-context.js';
|
|
73
|
+
export { AvatarFallback, AvatarImage, AvatarRoot } from './avatar/avatar.js';
|
|
82
74
|
export { AvatarGroup } from './avatar/avatar-group.js';
|
|
83
75
|
export { AvatarGroupProvider, useAvatarGroup } from './avatar/avatar-group-context.js';
|
|
84
|
-
export {
|
|
76
|
+
export { Badge } from './badge/badge.js';
|
|
77
|
+
export { Banner } from './banner/banner.js';
|
|
78
|
+
export { Breadcrumb, Breadcrumbs } from './breadcrumbs/breadcrumbs.js';
|
|
79
|
+
export { Button } from './button/button.js';
|
|
80
|
+
export { Calendar, CalendarStateWrapper } from './calendar/calendar.js';
|
|
81
|
+
export { CalendarDate } from '@internationalized/date';
|
|
82
|
+
export { CalendarStyleContext, useCalendarStyleContext } from './calendar/calendar-style-context.js';
|
|
83
|
+
export { Checkbox, CheckboxGroup } from './checkbox/checkbox.js';
|
|
84
|
+
export { CheckboxGroupStyleContext, useCheckboxGroupStyleContext } from './checkbox/checkbox-group-style-context.js';
|
|
85
|
+
export { getEraFormat, useGenerateLocalizedMonths, useGenerateLocalizedYears, useLocalizedMonthYear } from './calendar/utils.js';
|
|
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 };
|
|
@@ -5,10 +5,10 @@ import { useContext, isValidElement } from 'react';
|
|
|
5
5
|
import { useLocalizedStringFormatter } from 'react-aria';
|
|
6
6
|
import { Dialog } from 'react-aria-components';
|
|
7
7
|
import { cn } from '@opengovsg/oui-theme';
|
|
8
|
-
import { Button } from '../button/button.js';
|
|
9
8
|
import { i18nStrings } from './i18n.js';
|
|
10
9
|
import { ModalVariantContext } from './modal-variant-context.js';
|
|
11
10
|
import X from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js';
|
|
11
|
+
import { Button } from '../button/button.js';
|
|
12
12
|
|
|
13
13
|
function ModalContent({
|
|
14
14
|
closeButtonContent: closeButtonContentProp,
|
|
@@ -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,13 +2,13 @@
|
|
|
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,
|
|
6
|
-
import { Button } from '../button/button.js';
|
|
5
|
+
import { numberFieldStyles, fieldBorderStyles, cn, composeTailwindRenderProps, dataAttr } from '@opengovsg/oui-theme';
|
|
7
6
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
8
7
|
import { Input } from '../input/input.js';
|
|
9
8
|
import { mapPropsVariants } from '../system/utils.js';
|
|
10
9
|
import Minus from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/minus.js';
|
|
11
10
|
import Plus from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/plus.js';
|
|
11
|
+
import { Button } from '../button/button.js';
|
|
12
12
|
|
|
13
13
|
function NumberField(originalProps) {
|
|
14
14
|
const [
|
|
@@ -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 };
|
|
@@ -6,12 +6,12 @@ import { CalendarDate, today, getLocalTimeZone, getDayOfWeek } from '@internatio
|
|
|
6
6
|
import { RangeCalendar as RangeCalendar$1, Provider, CalendarGrid, CalendarGridBody, Text, RangeCalendarStateContext, useLocale, CalendarCell } from 'react-aria-components';
|
|
7
7
|
import { useDeepCompareMemo } from 'use-deep-compare';
|
|
8
8
|
import { calendarStyles, composeRenderProps, cn, dataAttr } from '@opengovsg/oui-theme';
|
|
9
|
-
import { CalendarStyleContext, useCalendarStyleContext } from '../calendar/calendar-style-context.js';
|
|
10
9
|
import { AgnosticCalendarStateContext } from '../calendar/agnostic-calendar-state-context.js';
|
|
11
10
|
import { CalendarBottomContent } from '../calendar/calendar-bottom-content.js';
|
|
12
11
|
import { CalendarGridHeader } from '../calendar/calendar-grid-header.js';
|
|
13
12
|
import { CalendarHeader } from '../calendar/calendar-header.js';
|
|
14
13
|
import { forwardRefGeneric, mapPropsVariants } from '../system/utils.js';
|
|
14
|
+
import { CalendarStyleContext, useCalendarStyleContext } from '../calendar/calendar-style-context.js';
|
|
15
15
|
|
|
16
16
|
const RangeCalendar = forwardRefGeneric(function RangeCalendar2(originalProps, ref) {
|
|
17
17
|
const [props, variantProps] = mapPropsVariants(
|
|
@@ -3,13 +3,13 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { useLocalizedStringFormatter } from 'react-aria';
|
|
4
4
|
import { SearchField as SearchField$1 } from 'react-aria-components';
|
|
5
5
|
import { searchFieldStyles, composeRenderProps } from '@opengovsg/oui-theme';
|
|
6
|
-
import { Button } from '../button/button.js';
|
|
7
6
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
8
7
|
import { Input } from '../input/input.js';
|
|
9
8
|
import { mapPropsVariants } from '../system/utils.js';
|
|
10
9
|
import { i18nStrings } from './i18n.js';
|
|
11
10
|
import Search from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/search.js';
|
|
12
11
|
import X from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js';
|
|
12
|
+
import { Button } from '../button/button.js';
|
|
13
13
|
|
|
14
14
|
function SearchField(originalProps) {
|
|
15
15
|
const [
|
|
@@ -5,7 +5,6 @@ import { useMemo, isValidElement, cloneElement } from 'react';
|
|
|
5
5
|
import { useLocalizedStringFormatter } from 'react-aria';
|
|
6
6
|
import { useFilter, Virtualizer, ListLayout, ListBox, Provider, Select as Select$1, SelectValue, Autocomplete, SearchField, Input } from 'react-aria-components';
|
|
7
7
|
import { selectStyles, cn, composeRenderProps } from '@opengovsg/oui-theme';
|
|
8
|
-
import { Button } from '../button/button.js';
|
|
9
8
|
import { Label, Description, FieldError } from '../field/field.js';
|
|
10
9
|
import { Popover } from '../popover/popover.js';
|
|
11
10
|
import { useElementWidth } from '../system/react-utils/sizing.js';
|
|
@@ -13,6 +12,7 @@ import { mapPropsVariants } from '../system/utils.js';
|
|
|
13
12
|
import { i18nStrings } from './i18n.js';
|
|
14
13
|
import { SelectVariantContext } from './select-variant-context.js';
|
|
15
14
|
import ChevronDown from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-down.js';
|
|
15
|
+
import { Button } from '../button/button.js';
|
|
16
16
|
|
|
17
17
|
const calculateEstimatedRowHeight = (size) => {
|
|
18
18
|
switch (size) {
|
|
@@ -6,11 +6,11 @@ import { useLocalizedStringFormatter } from 'react-aria';
|
|
|
6
6
|
import { Disclosure, DisclosurePanel, Provider, Link, Button as Button$1 } from 'react-aria-components';
|
|
7
7
|
import { useDisclosureState } from 'react-stately';
|
|
8
8
|
import { dataAttr } from '@opengovsg/oui-theme';
|
|
9
|
-
import { Button } from '../button/button.js';
|
|
10
9
|
import { forwardRef } from '../system/utils.js';
|
|
11
10
|
import { useSidebarStyleContext, useSidebarCollapseContext, SidebarNestContext, useSidebarNestContext } from './context.js';
|
|
12
11
|
import { i18nStrings } from './i18n.js';
|
|
13
12
|
import ChevronDown from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-down.js';
|
|
13
|
+
import { Button } from '../button/button.js';
|
|
14
14
|
|
|
15
15
|
const SidebarListSection = ({
|
|
16
16
|
onlyCaretToggle,
|
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"}
|