@opengovsg/oui 0.0.45 → 0.0.46

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.
Files changed (84) hide show
  1. package/dist/cjs/banner/banner.cjs +1 -1
  2. package/dist/cjs/checkbox/checkbox.cjs +1 -1
  3. package/dist/cjs/combo-box/combo-box.cjs +1 -1
  4. package/dist/cjs/date-field/date-field.cjs +1 -1
  5. package/dist/cjs/date-picker/date-picker.cjs +5 -4
  6. package/dist/cjs/date-range-picker/date-range-picker.cjs +3 -3
  7. package/dist/cjs/field/field.cjs +15 -12
  8. package/dist/cjs/file-dropzone/file-dropzone.cjs +2 -2
  9. package/dist/cjs/file-dropzone/file-info.cjs +1 -1
  10. package/dist/cjs/index.cjs +98 -72
  11. package/dist/cjs/modal/modal-content.cjs +1 -1
  12. package/dist/cjs/number-field/number-field.cjs +2 -2
  13. package/dist/cjs/phone-number-field/constants.cjs +500 -0
  14. package/dist/cjs/phone-number-field/context.cjs +11 -0
  15. package/dist/cjs/phone-number-field/i18n.cjs +1043 -0
  16. package/dist/cjs/phone-number-field/index.cjs +32 -0
  17. package/dist/cjs/phone-number-field/phone-number-field.cjs +299 -0
  18. package/dist/cjs/phone-number-field/types.cjs +3 -0
  19. package/dist/cjs/range-calendar/range-calendar.cjs +1 -1
  20. package/dist/cjs/search-field/search-field.cjs +2 -2
  21. package/dist/cjs/select/i18n.cjs +23 -0
  22. package/dist/cjs/select/select.cjs +47 -47
  23. package/dist/cjs/sidebar/sidebar-list.cjs +1 -1
  24. package/dist/cjs/system/l10n.cjs +18 -0
  25. package/dist/cjs/system/react-utils/sizing.cjs +21 -0
  26. package/dist/cjs/tag-field/tag-field.cjs +1 -1
  27. package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
  28. package/dist/cjs/text-field/text-field.cjs +1 -1
  29. package/dist/cjs/time-field/time-field.cjs +2 -2
  30. package/dist/esm/banner/banner.js +1 -1
  31. package/dist/esm/checkbox/checkbox.js +1 -1
  32. package/dist/esm/combo-box/combo-box.js +1 -1
  33. package/dist/esm/date-field/date-field.js +1 -1
  34. package/dist/esm/date-picker/date-picker.js +5 -4
  35. package/dist/esm/date-range-picker/date-range-picker.js +3 -3
  36. package/dist/esm/field/field.js +18 -15
  37. package/dist/esm/file-dropzone/file-dropzone.js +2 -2
  38. package/dist/esm/file-dropzone/file-info.js +1 -1
  39. package/dist/esm/index.js +27 -25
  40. package/dist/esm/modal/modal-content.js +1 -1
  41. package/dist/esm/number-field/number-field.js +2 -2
  42. package/dist/esm/phone-number-field/constants.js +497 -0
  43. package/dist/esm/phone-number-field/context.js +8 -0
  44. package/dist/esm/phone-number-field/i18n.js +1041 -0
  45. package/dist/esm/phone-number-field/index.js +3 -0
  46. package/dist/esm/phone-number-field/phone-number-field.js +294 -0
  47. package/dist/esm/phone-number-field/types.js +1 -0
  48. package/dist/esm/range-calendar/range-calendar.js +1 -1
  49. package/dist/esm/search-field/search-field.js +2 -2
  50. package/dist/esm/select/i18n.js +21 -0
  51. package/dist/esm/select/select.js +47 -47
  52. package/dist/esm/sidebar/sidebar-list.js +1 -1
  53. package/dist/esm/system/l10n.js +16 -0
  54. package/dist/esm/system/react-utils/sizing.js +19 -0
  55. package/dist/esm/tag-field/tag-field.js +1 -1
  56. package/dist/esm/text-area-field/text-area-field.js +1 -1
  57. package/dist/esm/text-field/text-field.js +1 -1
  58. package/dist/esm/time-field/time-field.js +2 -2
  59. package/dist/types/field/field.d.ts +1 -1
  60. package/dist/types/field/field.d.ts.map +1 -1
  61. package/dist/types/index.d.mts +1 -0
  62. package/dist/types/index.d.ts +1 -0
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/types/phone-number-field/constants.d.ts +495 -0
  65. package/dist/types/phone-number-field/constants.d.ts.map +1 -0
  66. package/dist/types/phone-number-field/context.d.ts +15 -0
  67. package/dist/types/phone-number-field/context.d.ts.map +1 -0
  68. package/dist/types/phone-number-field/i18n.d.ts +1039 -0
  69. package/dist/types/phone-number-field/i18n.d.ts.map +1 -0
  70. package/dist/types/phone-number-field/index.d.ts +9 -0
  71. package/dist/types/phone-number-field/index.d.ts.map +1 -0
  72. package/dist/types/phone-number-field/phone-number-field.d.ts +42 -0
  73. package/dist/types/phone-number-field/phone-number-field.d.ts.map +1 -0
  74. package/dist/types/phone-number-field/types.d.ts +21 -0
  75. package/dist/types/phone-number-field/types.d.ts.map +1 -0
  76. package/dist/types/select/i18n.d.ts +19 -0
  77. package/dist/types/select/i18n.d.ts.map +1 -0
  78. package/dist/types/select/select.d.ts +11 -1
  79. package/dist/types/select/select.d.ts.map +1 -1
  80. package/dist/types/system/l10n.d.ts +10 -0
  81. package/dist/types/system/l10n.d.ts.map +1 -0
  82. package/dist/types/system/react-utils/sizing.d.ts +8 -0
  83. package/dist/types/system/react-utils/sizing.d.ts.map +1 -0
  84. package/package.json +6 -4
@@ -5,11 +5,11 @@ 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
7
  import { listBoxItemStyles, cn, comboBoxStyles, composeTailwindRenderProps, composeRenderProps, comboBoxClearButtonStyles } from '@opengovsg/oui-theme';
8
+ import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
8
9
  import { Popover } from '../popover/popover.js';
9
10
  import { mapPropsVariants } from '../system/utils.js';
10
11
  import { ComboBoxVariantContext } from './combo-box-variant-context.js';
11
12
  import { i18nStrings } from './i18n.js';
12
- import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
13
13
  import ChevronUp from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-up.js';
14
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
15
  import X from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js';
@@ -4,8 +4,8 @@ import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import { useMemo } from 'react';
5
5
  import { DateField as DateField$1, DateInput as DateInput$1, DateSegment } from 'react-aria-components';
6
6
  import { dateInputStyles, composeTailwindRenderProps, composeRenderProps, dateSegmentStyles } from '@opengovsg/oui-theme';
7
- import { mapPropsVariants } from '../system/utils.js';
8
7
  import { Label, Description, FieldError } from '../field/field.js';
8
+ import { mapPropsVariants } from '../system/utils.js';
9
9
 
10
10
  function DateField(originalProps) {
11
11
  const [
@@ -4,13 +4,14 @@ 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
+ import { DateInput } from '../date-field/date-field.js';
11
+ import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
7
12
  import { Popover } from '../popover/popover.js';
8
13
  import { mapPropsVariants } from '../system/utils.js';
9
- import { DateInput } from '../date-field/date-field.js';
10
14
  import Calendar from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.js';
11
- import { Calendar as Calendar$1 } from '../calendar/calendar.js';
12
- import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
13
- import { Button } from '../button/button.js';
14
15
 
15
16
  function DatePicker(originalProps) {
16
17
  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
+ import { DateInput } from '../date-field/date-field.js';
10
+ import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
8
11
  import { Popover } from '../popover/popover.js';
9
12
  import { RangeCalendar } from '../range-calendar/range-calendar.js';
10
13
  import { mapPropsVariants } from '../system/utils.js';
11
14
  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 { Label, FieldGroup, Description, FieldError } from '../field/field.js';
13
- import { DateInput } from '../date-field/date-field.js';
14
- import { Button } from '../button/button.js';
15
15
 
16
16
  function DateRangePicker(originalProps) {
17
17
  const [
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  "use client";
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
- import { useMemo } from 'react';
5
- import { Label as Label$1, Text, FieldError as FieldError$1, Group } from 'react-aria-components';
6
- import { labelStyles, descriptionStyles, fieldErrorStyles, composeRenderProps, fieldGroupStyles } from '@opengovsg/oui-theme';
4
+ import { forwardRef, useMemo } from 'react';
5
+ import { Group, Label as Label$1, Text, FieldError as FieldError$1 } from 'react-aria-components';
6
+ import { composeRenderProps, fieldGroupStyles, labelStyles, descriptionStyles, fieldErrorStyles } from '@opengovsg/oui-theme';
7
7
  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';
8
8
 
9
9
  function Label({ size, className, ...props }) {
@@ -55,17 +55,20 @@ function FieldError({
55
55
  }
56
56
  );
57
57
  }
58
- function FieldGroup(props) {
59
- return /* @__PURE__ */ jsx(
60
- Group,
61
- {
62
- ...props,
63
- className: composeRenderProps(
64
- props.className,
65
- (className, renderProps) => fieldGroupStyles({ ...renderProps, className })
66
- )
67
- }
68
- );
69
- }
58
+ const FieldGroup = forwardRef(
59
+ (props, ref) => {
60
+ return /* @__PURE__ */ jsx(
61
+ Group,
62
+ {
63
+ ...props,
64
+ ref,
65
+ className: composeRenderProps(
66
+ props.className,
67
+ (className, renderProps) => fieldGroupStyles({ ...renderProps, className })
68
+ )
69
+ }
70
+ );
71
+ }
72
+ );
70
73
 
71
74
  export { Description, FieldError, FieldErrorIcon, FieldGroup, Label };
@@ -7,13 +7,13 @@ import { useField, useId } from 'react-aria';
7
7
  import { Provider, LabelContext, GroupContext, TextContext, FieldErrorContext, Group } from 'react-aria-components';
8
8
  import { useDropzone } from 'react-dropzone';
9
9
  import { fileDropzoneStyles, dataAttr } from '@opengovsg/oui-theme';
10
+ import { Label, Description, FieldError } from '../field/field.js';
11
+ import { useControllableState } from '../hooks/use-controllable-state.js';
10
12
  import { mapPropsVariants } from '../system/utils.js';
11
13
  import { FileDropzoneStyleContext, FileDropzoneStateContext, useFileDropzoneStateContext, useFileDropzoneStyleContext } from './contexts.js';
12
14
  import { FileInfo } from './file-info.js';
13
15
  import { formatErrorMessage, formatBytes } from './utils.js';
14
- import { useControllableState } from '../hooks/use-controllable-state.js';
15
16
  import Upload from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/upload.js';
16
- import { Label, Description, FieldError } from '../field/field.js';
17
17
 
18
18
  const FileDropzone = (originalProps) => {
19
19
  const [props, variantProps] = mapPropsVariants(
@@ -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';
6
7
  import { useFileDropzoneStateContext, useFileDropzoneStyleContext } from './contexts.js';
7
8
  import { formatBytes } from './utils.js';
8
9
  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,4 +1,8 @@
1
1
  "use strict";
2
+ export { useControllableState } from './hooks/use-controllable-state.js';
3
+ export { useDraggable } from './hooks/use-draggable.js';
4
+ export { Button } from './button/button.js';
5
+ export { GovtBanner } from './govt-banner/govt-banner.js';
2
6
  export { Ripple } from './ripple/ripple.js';
3
7
  export { useRipple } from './ripple/use-ripple.js';
4
8
  export { Spinner } from './spinner/spinner.js';
@@ -7,22 +11,41 @@ export { Toggle } from './toggle/toggle.js';
7
11
  export { SkipNavLink } from './skip-nav-link/skip-nav-link.js';
8
12
  export { Input } from './input/input.js';
9
13
  export { TextField } from './text-field/text-field.js';
14
+ export { Description, FieldError, FieldErrorIcon, FieldGroup, Label } from './field/field.js';
10
15
  export { TextArea } from './text-area/text-area.js';
11
16
  export { TextAreaField } from './text-area-field/text-area-field.js';
17
+ export { ComboBox, ComboBoxEmptyState } from './combo-box/combo-box.js';
18
+ export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
19
+ export { ComboBoxItem } from './combo-box/combo-box-item.js';
20
+ export { ComboBoxVariantContext, useComboBoxVariantContext } from './combo-box/combo-box-variant-context.js';
21
+ export { Banner } from './banner/banner.js';
12
22
  export { TagField } from './tag-field/tag-field.js';
13
23
  export { TagFieldItem } from './tag-field/tag-field-item.js';
14
24
  export { Select } from './select/select.js';
15
25
  export { SelectItem } from './select/select-item.js';
16
26
  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';
17
32
  export { RangeCalendar, RangeCalendarCell, RangeCalendarStateWrapper } from './range-calendar/range-calendar.js';
18
33
  export { Menu, MenuItem, MenuSection, MenuSeparator, MenuTrigger, MenuVariantContext, SubmenuTrigger, useMenuVariantContext } from './menu/menu.js';
19
34
  export { Popover } from './popover/popover.js';
20
35
  export { Tab, TabList, TabPanel, Tabs, TabsVariantContext, useTabsVariantContext } from './tabs/tabs.js';
36
+ export { DateField, DateInput } from './date-field/date-field.js';
37
+ export { DatePicker } from './date-picker/date-picker.js';
38
+ 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';
21
41
  export { Pagination } from './pagination/pagination.js';
22
42
  export { PaginationCursor } from './pagination/pagination-cursor.js';
23
43
  export { PaginationItem } from './pagination/pagination-item.js';
24
44
  export { PaginationItemType } from './pagination/hooks/use-pagination.js';
25
45
  export { CURSOR_TRANSITION_TIMEOUT, usePagination } from './pagination/use-pagination.js';
46
+ export { FileDropzone } from './file-dropzone/file-dropzone.js';
47
+ export { FileInfo } from './file-dropzone/file-info.js';
48
+ export { formatBytes, formatErrorMessage } from './file-dropzone/utils.js';
26
49
  export { NumberField } from './number-field/number-field.js';
27
50
  export { Modal } from './modal/modal.js';
28
51
  export { ModalContent } from './modal/modal-content.js';
@@ -41,42 +64,21 @@ export { NavbarItem } from './navbar/navbar-item.js';
41
64
  export { useNavbar } from './navbar/use-navbar.js';
42
65
  export { NavbarProvider, useNavbarContext } from './navbar/navbar-context.js';
43
66
  export { Avatar } from './avatar/index.js';
67
+ export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionStyleContext, useAccordionStyleContext } from './accordion/accordion.js';
44
68
  export { TimeField } from './time-field/time-field.js';
45
69
  export { SearchField } from './search-field/search-field.js';
46
70
  export { Link } from './link/link.js';
71
+ export { Breadcrumb, Breadcrumbs } from './breadcrumbs/breadcrumbs.js';
47
72
  export { Sidebar, generateSidebarItems } from './sidebar/sidebar.js';
48
73
  export { SidebarRoot } from './sidebar/sidebar-root.js';
49
74
  export { SidebarItem } from './sidebar/sidebar-item.js';
50
75
  export { SidebarList } from './sidebar/sidebar-list.js';
51
76
  export { SidebarHeader } from './sidebar/sidebar-header.js';
52
77
  export { Tooltip, TooltipTrigger } from './tooltip/tooltip.js';
53
- export { useControllableState } from './hooks/use-controllable-state.js';
54
- export { useDraggable } from './hooks/use-draggable.js';
55
- export { Button } from './button/button.js';
56
- export { GovtBanner } from './govt-banner/govt-banner.js';
57
- export { Description, FieldError, FieldErrorIcon, FieldGroup, Label } from './field/field.js';
58
- export { ComboBox, ComboBoxEmptyState } from './combo-box/combo-box.js';
59
- export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
60
- export { ComboBoxItem } from './combo-box/combo-box-item.js';
61
- export { ComboBoxVariantContext, useComboBoxVariantContext } from './combo-box/combo-box-variant-context.js';
62
- export { Banner } from './banner/banner.js';
63
- export { Badge } from './badge/badge.js';
64
- export { CalendarDate } from '@internationalized/date';
65
- export { Calendar, CalendarStateWrapper } from './calendar/calendar.js';
66
- export { CalendarStyleContext, useCalendarStyleContext } from './calendar/calendar-style-context.js';
67
- export { getEraFormat, useGenerateLocalizedMonths, useGenerateLocalizedYears, useLocalizedMonthYear } from './calendar/utils.js';
68
- export { DateField, DateInput } from './date-field/date-field.js';
69
- export { DatePicker } from './date-picker/date-picker.js';
70
- export { DateRangePicker } from './date-range-picker/date-range-picker.js';
71
- export { Checkbox, CheckboxGroup } from './checkbox/checkbox.js';
72
- export { CheckboxGroupStyleContext, useCheckboxGroupStyleContext } from './checkbox/checkbox-group-style-context.js';
73
- export { FileDropzone } from './file-dropzone/file-dropzone.js';
74
- export { FileInfo } from './file-dropzone/file-info.js';
75
- export { formatBytes, formatErrorMessage } from './file-dropzone/utils.js';
78
+ export { CountrySelect, FlagComponent, PhoneInput, PhoneNumberField } from './phone-number-field/phone-number-field.js';
79
+ export { formatPhoneNumber, formatPhoneNumberIntl, isPossiblePhoneNumber, isValidPhoneNumber, parsePhoneNumber } from 'react-phone-number-input';
76
80
  export { toast } from 'sonner';
77
81
  export { AvatarContext, useAvatarContext } from './avatar/avatar-context.js';
78
82
  export { AvatarGroup } from './avatar/avatar-group.js';
79
83
  export { AvatarGroupProvider, useAvatarGroup } from './avatar/avatar-group-context.js';
80
84
  export { AvatarFallback, AvatarImage, AvatarRoot } from './avatar/avatar.js';
81
- export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionStyleContext, useAccordionStyleContext } from './accordion/accordion.js';
82
- export { Breadcrumb, Breadcrumbs } from './breadcrumbs/breadcrumbs.js';
@@ -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';
8
9
  import { i18nStrings } from './i18n.js';
9
10
  import { ModalVariantContext } from './modal-variant-context.js';
10
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';
11
- import { Button } from '../button/button.js';
12
12
 
13
13
  function ModalContent({
14
14
  closeButtonContent: closeButtonContentProp,
@@ -3,12 +3,12 @@
3
3
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
4
  import { NumberField as NumberField$1 } from 'react-aria-components';
5
5
  import { numberFieldStyles, composeTailwindRenderProps, dataAttr, fieldBorderStyles, cn } from '@opengovsg/oui-theme';
6
+ import { Button } from '../button/button.js';
7
+ import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
6
8
  import { Input } from '../input/input.js';
7
9
  import { mapPropsVariants } from '../system/utils.js';
8
10
  import Minus from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/minus.js';
9
11
  import Plus from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/plus.js';
10
- import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
11
- import { Button } from '../button/button.js';
12
12
 
13
13
  function NumberField(originalProps) {
14
14
  const [