@opengovsg/oui 0.0.0-snapshot-20251002073151 → 0.0.0-snapshot-20251201075851

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 (141) hide show
  1. package/dist/cjs/badge/badge.cjs +4 -4
  2. package/dist/cjs/badge/use-badge.cjs +6 -6
  3. package/dist/cjs/banner/banner.cjs +10 -5
  4. package/dist/cjs/button/button.cjs +3 -3
  5. package/dist/cjs/calendar/calendar-bottom-content.cjs +3 -3
  6. package/dist/cjs/calendar/calendar-header.cjs +2 -2
  7. package/dist/cjs/calendar/calendar-month-day-selector.cjs +4 -3
  8. package/dist/cjs/calendar/calendar.cjs +4 -4
  9. package/dist/cjs/calendar/hooks/use-calendar-selectors.cjs +4 -4
  10. package/dist/cjs/calendar/utils.cjs +3 -3
  11. package/dist/cjs/combo-box/combo-box-fuzzy.cjs +6 -6
  12. package/dist/cjs/combo-box/combo-box-item.cjs +2 -2
  13. package/dist/cjs/combo-box/combo-box.cjs +3 -3
  14. package/dist/cjs/date-field/date-field.cjs +15 -6
  15. package/dist/cjs/date-picker/date-picker.cjs +36 -11
  16. package/dist/cjs/date-range-picker/date-range-picker.cjs +3 -3
  17. package/dist/cjs/field/field.cjs +20 -6
  18. package/dist/cjs/field/index.cjs +1 -0
  19. package/dist/cjs/file-dropzone/contexts.cjs +18 -0
  20. package/dist/cjs/file-dropzone/file-dropzone.cjs +311 -0
  21. package/dist/cjs/file-dropzone/file-info.cjs +146 -0
  22. package/dist/cjs/file-dropzone/index.cjs +13 -0
  23. package/dist/cjs/file-dropzone/types.cjs +3 -0
  24. package/dist/cjs/file-dropzone/utils.cjs +31 -0
  25. package/dist/cjs/govt-banner/govt-banner.cjs +3 -3
  26. package/dist/cjs/hooks/use-callback-ref.cjs +4 -4
  27. package/dist/cjs/hooks/use-controllable-state.cjs +2 -2
  28. package/dist/cjs/index.cjs +10 -0
  29. package/dist/cjs/input/input.cjs +2 -2
  30. package/dist/cjs/menu/menu.cjs +6 -6
  31. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/Icon.cjs +4 -4
  32. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +3 -3
  33. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/plus.cjs +22 -0
  34. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/trash-2.cjs +25 -0
  35. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/upload.cjs +23 -0
  36. package/dist/cjs/number-field/index.cjs +8 -0
  37. package/dist/cjs/number-field/number-field.cjs +136 -0
  38. package/dist/cjs/pagination/hooks/use-pagination.cjs +7 -7
  39. package/dist/cjs/pagination/pagination.cjs +6 -6
  40. package/dist/cjs/pagination/use-pagination-item.cjs +7 -8
  41. package/dist/cjs/pagination/use-pagination.cjs +8 -8
  42. package/dist/cjs/range-calendar/range-calendar.cjs +6 -6
  43. package/dist/cjs/ripple/use-ripple.cjs +4 -4
  44. package/dist/cjs/select/select.cjs +2 -2
  45. package/dist/cjs/spinner/use-spinner.cjs +3 -3
  46. package/dist/cjs/system/react-utils/context.cjs +3 -3
  47. package/dist/cjs/system/react-utils/refs.cjs +3 -3
  48. package/dist/cjs/system/utils.cjs +3 -3
  49. package/dist/cjs/tabs/tabs.cjs +2 -2
  50. package/dist/cjs/tag-field/tag-field-item.cjs +2 -2
  51. package/dist/cjs/tag-field/tag-field-list.cjs +4 -4
  52. package/dist/cjs/tag-field/tag-field-root.cjs +14 -14
  53. package/dist/cjs/tag-field/tag-field-state-context.cjs +2 -2
  54. package/dist/cjs/tag-field/tag-field-tag-list.cjs +3 -3
  55. package/dist/cjs/tag-field/tag-field-trigger.cjs +2 -2
  56. package/dist/cjs/tag-field/tag-field.cjs +2 -2
  57. package/dist/cjs/tag-field/use-tag-field-state.cjs +6 -6
  58. package/dist/cjs/tag-field/use-tag-field.cjs +4 -4
  59. package/dist/cjs/text-area/text-area.cjs +2 -2
  60. package/dist/cjs/toggle/toggle.cjs +3 -3
  61. package/dist/esm/banner/banner.js +7 -2
  62. package/dist/esm/calendar/calendar-month-day-selector.js +2 -1
  63. package/dist/esm/date-field/date-field.js +12 -3
  64. package/dist/esm/date-picker/date-picker.js +34 -9
  65. package/dist/esm/field/field.js +20 -7
  66. package/dist/esm/field/index.js +1 -1
  67. package/dist/esm/file-dropzone/contexts.js +13 -0
  68. package/dist/esm/file-dropzone/file-dropzone.js +309 -0
  69. package/dist/esm/file-dropzone/file-info.js +144 -0
  70. package/dist/esm/file-dropzone/index.js +4 -0
  71. package/dist/esm/file-dropzone/types.js +1 -0
  72. package/dist/esm/file-dropzone/utils.js +28 -0
  73. package/dist/esm/index.js +5 -1
  74. package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/plus.js +17 -0
  75. package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/trash-2.js +20 -0
  76. package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/upload.js +18 -0
  77. package/dist/esm/number-field/index.js +2 -0
  78. package/dist/esm/number-field/number-field.js +134 -0
  79. package/dist/esm/pagination/use-pagination-item.js +5 -6
  80. package/dist/types/banner/banner.d.ts +1 -1
  81. package/dist/types/banner/banner.d.ts.map +1 -1
  82. package/dist/types/calendar/calendar-month-day-selector.d.ts.map +1 -1
  83. package/dist/types/date-field/date-field.d.ts +1 -0
  84. package/dist/types/date-field/date-field.d.ts.map +1 -1
  85. package/dist/types/date-picker/date-picker.d.ts +5 -2
  86. package/dist/types/date-picker/date-picker.d.ts.map +1 -1
  87. package/dist/types/field/field.d.ts +4 -1
  88. package/dist/types/field/field.d.ts.map +1 -1
  89. package/dist/types/file-dropzone/contexts.d.ts +4 -0
  90. package/dist/types/file-dropzone/contexts.d.ts.map +1 -0
  91. package/dist/types/file-dropzone/file-dropzone.d.ts +82 -0
  92. package/dist/types/file-dropzone/file-dropzone.d.ts.map +1 -0
  93. package/dist/types/file-dropzone/file-info.d.ts +9 -0
  94. package/dist/types/file-dropzone/file-info.d.ts.map +1 -0
  95. package/dist/types/file-dropzone/index.d.ts +7 -0
  96. package/dist/types/file-dropzone/index.d.ts.map +1 -0
  97. package/dist/types/file-dropzone/types.d.ts +24 -0
  98. package/dist/types/file-dropzone/types.d.ts.map +1 -0
  99. package/dist/types/file-dropzone/utils.d.ts +8 -0
  100. package/dist/types/file-dropzone/utils.d.ts.map +1 -0
  101. package/dist/types/index.d.mts +2 -0
  102. package/dist/types/index.d.ts +2 -0
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/menu/menu.d.ts.map +1 -1
  105. package/dist/types/number-field/index.d.ts +3 -0
  106. package/dist/types/number-field/index.d.ts.map +1 -0
  107. package/dist/types/number-field/number-field.d.ts +24 -0
  108. package/dist/types/number-field/number-field.d.ts.map +1 -0
  109. package/package.json +12 -8
  110. package/dist/cjs/node_modules/.pnpm/@react-aria_focus@3.20.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/focus/dist/useFocusRing.cjs +0 -45
  111. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/context.cjs +0 -21
  112. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/textSelection.cjs +0 -72
  113. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocus.cjs +0 -60
  114. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs +0 -210
  115. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusWithin.cjs +0 -100
  116. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useHover.cjs +0 -152
  117. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/usePress.cjs +0 -676
  118. package/dist/cjs/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/utils.cjs +0 -160
  119. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_check_private_redeclaration.cjs +0 -9
  120. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.cjs +0 -9
  121. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.cjs +0 -16
  122. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.cjs +0 -9
  123. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_get.cjs +0 -11
  124. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_init.cjs +0 -10
  125. package/dist/cjs/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_set.cjs +0 -12
  126. package/dist/esm/node_modules/.pnpm/@react-aria_focus@3.20.5_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/focus/dist/useFocusRing.js +0 -43
  127. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/context.js +0 -19
  128. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/textSelection.js +0 -69
  129. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocus.js +0 -58
  130. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusVisible.js +0 -205
  131. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useFocusWithin.js +0 -98
  132. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/useHover.js +0 -150
  133. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/usePress.js +0 -674
  134. package/dist/esm/node_modules/.pnpm/@react-aria_interactions@3.25.3_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@react-aria/interactions/dist/utils.js +0 -155
  135. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +0 -7
  136. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js +0 -7
  137. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js +0 -14
  138. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js +0 -7
  139. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_get.js +0 -9
  140. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_init.js +0 -8
  141. package/dist/esm/node_modules/.pnpm/@swc_helpers@0.5.17/node_modules/@swc/helpers/esm/_class_private_field_set.js +0 -10
@@ -3,11 +3,11 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var useBadge = require('./use-badge.cjs');
8
8
  var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/x.cjs');
9
9
 
10
- const Badge = $670gB$react.forwardRef((props, ref) => {
10
+ const Badge = react.forwardRef((props, ref) => {
11
11
  const {
12
12
  Component,
13
13
  children,
@@ -19,13 +19,13 @@ const Badge = $670gB$react.forwardRef((props, ref) => {
19
19
  endContent,
20
20
  isCloseable
21
21
  } = useBadge.useBadge({ ...props, ref });
22
- const start = $670gB$react.useMemo(() => {
22
+ const start = react.useMemo(() => {
23
23
  if (props.variant === "dot" && !startContent) {
24
24
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: slots.dot({ className: classNames?.dot }) });
25
25
  }
26
26
  return startContent;
27
27
  }, [props.variant, startContent, slots, classNames?.dot]);
28
- const end = $670gB$react.useMemo(() => {
28
+ const end = react.useMemo(() => {
29
29
  if (isCloseable) {
30
30
  return /* @__PURE__ */ jsxRuntime.jsx("span", { ...getCloseButtonProps(), children: endContent ?? /* @__PURE__ */ jsxRuntime.jsx(x.default, { className: "size-full" }) });
31
31
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  'use strict';
3
3
 
4
- var $670gB$react = require('react');
4
+ var react = require('react');
5
5
  var utils$1 = require('@react-aria/utils');
6
6
  var reactAria = require('react-aria');
7
7
  var useDeepCompare = require('use-deep-compare');
@@ -40,7 +40,7 @@ function useBadge(originalProps) {
40
40
  ...props
41
41
  } = _props;
42
42
  const domRef = refs.useDomRef(ref);
43
- const Component = $670gB$react.useMemo(() => as || "div", [as]);
43
+ const Component = react.useMemo(() => as || "div", [as]);
44
44
  const baseClassName = ouiTheme.cn(classNames?.base, className);
45
45
  const formatMessage = reactAria.useMessageFormatter(i18nStrings);
46
46
  const isCloseable = variantProps.isCloseable || !!onClose;
@@ -59,14 +59,14 @@ function useBadge(originalProps) {
59
59
  isDisabled: !!variantProps?.isDisabled,
60
60
  onPress: onClose
61
61
  });
62
- const getContentClone = $670gB$react.useCallback(
63
- (content) => $670gB$react.isValidElement(content) ? $670gB$react.cloneElement(content, {
62
+ const getContentClone = react.useCallback(
63
+ (content) => react.isValidElement(content) ? react.cloneElement(content, {
64
64
  // @ts-expect-error types are not full
65
65
  className: content.props?.className
66
66
  }) : null,
67
67
  []
68
68
  );
69
- const getChipProps = $670gB$react.useCallback(() => {
69
+ const getChipProps = react.useCallback(() => {
70
70
  return {
71
71
  ref: domRef,
72
72
  className: slots.base({ className: baseClassName }),
@@ -74,7 +74,7 @@ function useBadge(originalProps) {
74
74
  ...props
75
75
  };
76
76
  }, [baseClassName, domRef, props, slots, variantProps?.isDisabled]);
77
- const getCloseButtonProps = $670gB$react.useCallback(() => {
77
+ const getCloseButtonProps = react.useCallback(() => {
78
78
  return {
79
79
  role: "button",
80
80
  tabIndex: 0,
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var reactAria = require('react-aria');
8
8
  var reactStately = require('react-stately');
9
9
  var ouiTheme = require('@opengovsg/oui-theme');
@@ -39,10 +39,13 @@ const Banner = ({
39
39
  }) => {
40
40
  const formatMessage = reactAria.useMessageFormatter(i18nStrings);
41
41
  const styles = ouiTheme.bannerStyles({ variant, size });
42
- const startContent = $670gB$react.useMemo(() => {
42
+ const startContent = react.useMemo(() => {
43
43
  if (startContentProp) {
44
44
  return startContentProp;
45
45
  }
46
+ if (startContentProp === null) {
47
+ return null;
48
+ }
46
49
  switch (variant) {
47
50
  case "info":
48
51
  return /* @__PURE__ */ jsxRuntime.jsx(info.default, { className: styles.icon({ className: classNames?.icon }) });
@@ -56,9 +59,11 @@ const Banner = ({
56
59
  );
57
60
  }
58
61
  }, [classNames?.icon, startContentProp, styles, variant]);
59
- const bannerRef = $670gB$react.useRef(null);
62
+ const bannerRef = react.useRef(null);
60
63
  const state = reactStately.useDisclosureState({
61
- defaultExpanded
64
+ defaultExpanded,
65
+ isExpanded: disclosureProps.isExpanded,
66
+ onExpandedChange: disclosureProps.onExpandedChange
62
67
  });
63
68
  const { buttonProps, panelProps: bannerProps } = reactAria.useDisclosure(
64
69
  disclosureProps,
@@ -76,7 +81,7 @@ const Banner = ({
76
81
  ...isDismissable ? bannerProps : {},
77
82
  children: [
78
83
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.content({ className: classNames?.content }), children: [
79
- /* @__PURE__ */ jsxRuntime.jsx(
84
+ startContent && /* @__PURE__ */ jsxRuntime.jsx(
80
85
  "div",
81
86
  {
82
87
  className: styles.startContentWrapper({
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var utils = require('@react-aria/utils');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var ouiTheme = require('@opengovsg/oui-theme');
@@ -11,7 +11,7 @@ var useRipple = require('../ripple/use-ripple.cjs');
11
11
  var spinner = require('../spinner/spinner.cjs');
12
12
  var ripple = require('../ripple/ripple.cjs');
13
13
 
14
- const Button = $670gB$react.forwardRef(
14
+ const Button = react.forwardRef(
15
15
  ({
16
16
  startContent,
17
17
  endContent,
@@ -37,7 +37,7 @@ const Button = $670gB$react.forwardRef(
37
37
  onClear: onClearRipple,
38
38
  ripples
39
39
  } = useRipple.useRipple();
40
- const spinner$1 = $670gB$react.useMemo(() => {
40
+ const spinner$1 = react.useMemo(() => {
41
41
  if (spinnerProp) {
42
42
  return spinnerProp;
43
43
  }
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var date = require('@internationalized/date');
8
8
  var button = require('../button/button.cjs');
9
9
  var agnosticCalendarStateContext = require('./agnostic-calendar-state-context.cjs');
@@ -15,10 +15,10 @@ const CalendarBottomContent = ({
15
15
  showTodayButton,
16
16
  shouldSetDateOnTodayButtonClick
17
17
  }) => {
18
- const state = $670gB$react.useContext(agnosticCalendarStateContext.AgnosticCalendarStateContext);
18
+ const state = react.useContext(agnosticCalendarStateContext.AgnosticCalendarStateContext);
19
19
  const { slots, classNames, size } = calendarStyleContext.useCalendarStyleContext();
20
20
  const formatMessage = useCalendarI18n.useCalendarI18n();
21
- const handleTodayClick = $670gB$react.useCallback(() => {
21
+ const handleTodayClick = react.useCallback(() => {
22
22
  const todayDate = date.today(date.getLocalTimeZone());
23
23
  state.setFocusedDate(todayDate);
24
24
  if (shouldSetDateOnTodayButtonClick) {
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var button = require('../button/button.cjs');
9
9
  var agnosticCalendarStateContext = require('./agnostic-calendar-state-context.cjs');
@@ -16,7 +16,7 @@ var chevronLeft = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0
16
16
  function CalendarHeader({ offsetMonths = 0 }) {
17
17
  const { direction } = reactAriaComponents.useLocale();
18
18
  const { slots, classNames, size } = calendarStyleContext.useCalendarStyleContext();
19
- const state = $670gB$react.useContext(agnosticCalendarStateContext.AgnosticCalendarStateContext);
19
+ const state = react.useContext(agnosticCalendarStateContext.AgnosticCalendarStateContext);
20
20
  const monthYearTitle = utils.useLocalizedMonthYear(
21
21
  state.visibleRange.start.add({ months: offsetMonths }),
22
22
  state.timeZone
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var date = require('@internationalized/date');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var agnosticCalendarStateContext = require('./agnostic-calendar-state-context.cjs');
@@ -15,7 +15,7 @@ var useCalendarI18n = require('./hooks/use-calendar-i18n.cjs');
15
15
 
16
16
  const CalendarMonthDaySelector = () => {
17
17
  const { slots, size, classNames } = calendarStyleContext.useCalendarStyleContext();
18
- const state = $670gB$react.useContext(agnosticCalendarStateContext.AgnosticCalendarStateContext);
18
+ const state = react.useContext(agnosticCalendarStateContext.AgnosticCalendarStateContext);
19
19
  const { months, years, datePartOrder } = useCalendarSelectors.useCalendarSelectors(state);
20
20
  const formatMessage = useCalendarI18n.useCalendarI18n();
21
21
  return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Group, { className: slots.selectors({ className: classNames?.selectors }), children: datePartOrder.map((part) => {
@@ -63,7 +63,8 @@ const CalendarMonthDaySelector = () => {
63
63
  list: slots.yearList({ className: classNames?.yearList }),
64
64
  selectedText: slots.selectorText({
65
65
  className: classNames?.selectorText
66
- })
66
+ }),
67
+ popover: "min-w-[8ch]"
67
68
  },
68
69
  selectedKey: state.visibleRange.start.year,
69
70
  "aria-label": formatMessage("selectYear"),
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var date = require('@internationalized/date');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var useDeepCompare = require('use-deep-compare');
@@ -36,7 +36,7 @@ const Calendar = utils.forwardRefGeneric(function Calendar2(originalProps, ref)
36
36
  () => ouiTheme.calendarStyles(variantProps),
37
37
  [variantProps]
38
38
  );
39
- const context = $670gB$react.useMemo(
39
+ const context = react.useMemo(
40
40
  () => ({
41
41
  slots,
42
42
  classNames,
@@ -46,7 +46,7 @@ const Calendar = utils.forwardRefGeneric(function Calendar2(originalProps, ref)
46
46
  [className, classNames, slots, variantProps.size]
47
47
  );
48
48
  const numberOfVisibleMonths = props.visibleDuration?.months ?? 1;
49
- const dateToHighlight = $670gB$react.useMemo(() => {
49
+ const dateToHighlight = react.useMemo(() => {
50
50
  if (props.defaultFocusedValue !== void 0) {
51
51
  return props.defaultFocusedValue;
52
52
  }
@@ -149,7 +149,7 @@ const Calendar = utils.forwardRefGeneric(function Calendar2(originalProps, ref)
149
149
  const CalendarStateWrapper = ({
150
150
  children
151
151
  }) => {
152
- const state = $670gB$react.useContext(reactAriaComponents.CalendarStateContext);
152
+ const state = react.useContext(reactAriaComponents.CalendarStateContext);
153
153
  return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Provider, { values: [[agnosticCalendarStateContext.AgnosticCalendarStateContext, state]], children });
154
154
  };
155
155
 
@@ -2,18 +2,18 @@
2
2
  "use client";
3
3
  'use strict';
4
4
 
5
- var $670gB$react = require('react');
5
+ var react = require('react');
6
6
  var reactAria = require('react-aria');
7
7
  var utils = require('../utils.cjs');
8
8
 
9
9
  const useCalendarSelectors = (state) => {
10
- const yearRange = $670gB$react.useMemo(() => {
10
+ const yearRange = react.useMemo(() => {
11
11
  const start = state.minValue.year ?? 1900;
12
12
  const end = state.maxValue.year ?? 2100;
13
13
  return { start, end };
14
14
  }, [state.maxValue, state.minValue]);
15
15
  const dateFormatter = reactAria.useDateFormatter(state);
16
- const datePartOrder = $670gB$react.useMemo(() => {
16
+ const datePartOrder = react.useMemo(() => {
17
17
  const parts = dateFormatter.formatToParts(
18
18
  state.visibleRange.start.toDate(state.timeZone)
19
19
  );
@@ -29,7 +29,7 @@ const useCalendarSelectors = (state) => {
29
29
  yearRange.end,
30
30
  state.timeZone
31
31
  );
32
- return $670gB$react.useMemo(() => {
32
+ return react.useMemo(() => {
33
33
  return {
34
34
  months,
35
35
  years,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  'use strict';
3
3
 
4
- var $670gB$react = require('react');
4
+ var react = require('react');
5
5
  var date = require('@internationalized/date');
6
6
  var i18n = require('@react-aria/i18n');
7
7
 
@@ -25,7 +25,7 @@ function useGenerateLocalizedMonths(timeZone, formatterOptions) {
25
25
  timeZone,
26
26
  ...formatterOptions
27
27
  });
28
- return $670gB$react.useMemo(() => {
28
+ return react.useMemo(() => {
29
29
  return Array.from({ length: 12 }, (_, i) => {
30
30
  const id = i + 1;
31
31
  return {
@@ -43,7 +43,7 @@ function useGenerateLocalizedYears(yearStart, yearEnd, timeZone, formatterOption
43
43
  timeZone,
44
44
  ...formatterOptions
45
45
  });
46
- return $670gB$react.useMemo(() => {
46
+ return react.useMemo(() => {
47
47
  return Array.from({ length: yearEnd - yearStart + 1 }, (_, i) => {
48
48
  const year = yearStart + i;
49
49
  return {
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var fuzzysort = require('fuzzysort');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var ouiTheme = require('@opengovsg/oui-theme');
@@ -45,22 +45,22 @@ function ComboBoxFuzzy(originalProps) {
45
45
  inputValue,
46
46
  ...props
47
47
  } = _props;
48
- const deferredInputValue = $670gB$react.useDeferredValue(inputValue);
49
- const preparedItems = $670gB$react.useMemo(() => {
48
+ const deferredInputValue = react.useDeferredValue(inputValue);
49
+ const preparedItems = react.useMemo(() => {
50
50
  return items?.map((item) => ({
51
51
  ...item,
52
52
  prepared: fuzzysort.prepare(item.textValue)
53
53
  })) ?? [];
54
54
  }, [items]);
55
- const [filteredResults, setFilteredResults] = $670gB$react.useState({ items, result: {} });
56
- const onSelectionChange = $670gB$react.useCallback(
55
+ const [filteredResults, setFilteredResults] = react.useState({ items, result: {} });
56
+ const onSelectionChange = react.useCallback(
57
57
  (key) => {
58
58
  onSelectionChangeProp(key);
59
59
  setFilteredResults({ items: preparedItems, result: {} });
60
60
  },
61
61
  [onSelectionChangeProp, preparedItems]
62
62
  );
63
- const onInputChange = $670gB$react.useCallback(
63
+ const onInputChange = react.useCallback(
64
64
  (value) => {
65
65
  onInputChangeProp(value);
66
66
  if (!value) {
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var ouiTheme = require('@opengovsg/oui-theme');
9
9
  var utils = require('../system/utils.cjs');
@@ -20,7 +20,7 @@ const ComboBoxItem = utils.forwardRef(function ComboBoxItem2(originalProps, ref)
20
20
  variantProps
21
21
  ] = utils.mapPropsVariants(originalProps, ouiTheme.listBoxItemStyles.variantKeys);
22
22
  const styles = ouiTheme.listBoxItemStyles(variantProps);
23
- const defaultTextValue = $670gB$react.useMemo(() => {
23
+ const defaultTextValue = react.useMemo(() => {
24
24
  if (props.textValue) {
25
25
  return props.textValue;
26
26
  }
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var reactAria = require('react-aria');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var ouiTheme = require('@opengovsg/oui-theme');
@@ -79,7 +79,7 @@ function ComboBox(originalProps) {
79
79
  ...props
80
80
  } = _props;
81
81
  const styles = ouiTheme.comboBoxStyles(variantProps);
82
- const layout = $670gB$react.useMemo(() => {
82
+ const layout = react.useMemo(() => {
83
83
  return new reactAriaComponents.ListLayout({
84
84
  estimatedRowHeight: calculateEstimatedRowHeight(
85
85
  variantProps.size ?? "md"
@@ -87,7 +87,7 @@ function ComboBox(originalProps) {
87
87
  ...listLayoutOptions
88
88
  });
89
89
  }, [listLayoutOptions, variantProps.size]);
90
- const renderEmptyState = $670gB$react.useCallback(
90
+ const renderEmptyState = react.useCallback(
91
91
  (props2) => {
92
92
  if (renderEmptyStateProp) {
93
93
  return renderEmptyStateProp(props2);
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var ouiTheme = require('@opengovsg/oui-theme');
9
9
  var utils = require('../system/utils.cjs');
@@ -11,9 +11,17 @@ var field = require('../field/field.cjs');
11
11
 
12
12
  function DateField(originalProps) {
13
13
  const [
14
- { label, description, errorMessage, className, classNames, ...props },
14
+ {
15
+ inputProps,
16
+ label,
17
+ description,
18
+ errorMessage,
19
+ className,
20
+ classNames,
21
+ ...props
22
+ },
15
23
  variantProps
16
- ] = $670gB$react.useMemo(
24
+ ] = react.useMemo(
17
25
  () => utils.mapPropsVariants(originalProps, ouiTheme.dateFieldStyles.variantKeys),
18
26
  [originalProps]
19
27
  );
@@ -28,11 +36,11 @@ function DateField(originalProps) {
28
36
  isDisabled: variantProps.isDisabled,
29
37
  className: ouiTheme.composeTailwindRenderProps(
30
38
  className ?? classNames?.base,
31
- "flex flex-col gap-2"
39
+ "flex w-full flex-col gap-2"
32
40
  ),
33
41
  children: [
34
42
  label && /* @__PURE__ */ jsxRuntime.jsx(field.Label, { size: variantProps.size, className: classNames?.label, children: label }),
35
- /* @__PURE__ */ jsxRuntime.jsx(DateInput, { size: variantProps.size, className: styles }),
43
+ /* @__PURE__ */ jsxRuntime.jsx(DateInput, { size: variantProps.size, className: styles, ...inputProps }),
36
44
  description && /* @__PURE__ */ jsxRuntime.jsx(
37
45
  field.Description,
38
46
  {
@@ -47,7 +55,7 @@ function DateField(originalProps) {
47
55
  );
48
56
  }
49
57
  function DateInput(originalProps) {
50
- const [{ className, classNames, ...props }, variantProps] = $670gB$react.useMemo(
58
+ const [{ className, classNames, ...props }, variantProps] = react.useMemo(
51
59
  () => utils.mapPropsVariants(originalProps, ouiTheme.dateInputStyles.variantKeys),
52
60
  [originalProps]
53
61
  );
@@ -67,6 +75,7 @@ function DateInput(originalProps) {
67
75
  className: ouiTheme.composeRenderProps(
68
76
  classNames?.segment,
69
77
  (className2, renderProps) => styles.segment({
78
+ isEditable: segment.isEditable,
70
79
  ...renderProps,
71
80
  className: className2
72
81
  })
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var ouiTheme = require('@opengovsg/oui-theme');
9
9
  var utils = require('../system/utils.cjs');
@@ -25,10 +25,11 @@ function DatePicker(originalProps) {
25
25
  calendarProps,
26
26
  popoverProps,
27
27
  calendarButtonProps,
28
+ selectorIcon,
28
29
  ...props
29
30
  },
30
31
  variantProps
31
- ] = $670gB$react.useMemo(
32
+ ] = react.useMemo(
32
33
  () => utils.mapPropsVariants(originalProps, ouiTheme.datePickerStyles.variantKeys),
33
34
  [originalProps]
34
35
  );
@@ -63,20 +64,44 @@ function DatePicker(originalProps) {
63
64
  className: classNames?.calendarButton
64
65
  }),
65
66
  ...calendarButtonProps,
66
- children: /* @__PURE__ */ jsxRuntime.jsx(calendar.default, { "aria-hidden": true })
67
+ children: selectorIcon ?? /* @__PURE__ */ jsxRuntime.jsx(
68
+ calendar.default,
69
+ {
70
+ className: styles.selectorIcon({
71
+ className: classNames?.selectorIcon
72
+ }),
73
+ "aria-hidden": true
74
+ }
75
+ )
67
76
  }
68
77
  )
69
78
  ] }),
70
- /* @__PURE__ */ jsxRuntime.jsx(popover.Popover, { placement: "bottom end", ...popoverProps, children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Dialog, { className: styles.dialog({ className: classNames?.dialog }), children: /* @__PURE__ */ jsxRuntime.jsx(
71
- calendar$1.Calendar,
79
+ /* @__PURE__ */ jsxRuntime.jsx(
80
+ popover.Popover,
72
81
  {
73
- size: variantProps.size === "xs" ? "sm" : variantProps.size,
74
- classNames: classNames?.calendar,
75
- ...calendarProps
82
+ placement: "bottom end",
83
+ classNames: classNames?.popover,
84
+ ...popoverProps,
85
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Dialog, { className: styles.dialog({ className: classNames?.dialog }), children: /* @__PURE__ */ jsxRuntime.jsx(
86
+ calendar$1.Calendar,
87
+ {
88
+ size: variantProps.size === "xs" ? "sm" : variantProps.size,
89
+ classNames: classNames?.calendar,
90
+ pageBehavior: props.pageBehavior,
91
+ ...calendarProps
92
+ }
93
+ ) })
76
94
  }
77
- ) }) }),
78
- description && /* @__PURE__ */ jsxRuntime.jsx(field.Description, { size: variantProps.size, children: description }),
79
- /* @__PURE__ */ jsxRuntime.jsx(field.FieldError, { size: variantProps.size, children: errorMessage })
95
+ ),
96
+ description && /* @__PURE__ */ jsxRuntime.jsx(
97
+ field.Description,
98
+ {
99
+ className: classNames?.description,
100
+ size: variantProps.size,
101
+ children: description
102
+ }
103
+ ),
104
+ /* @__PURE__ */ jsxRuntime.jsx(field.FieldError, { classNames: classNames?.error, size: variantProps.size, children: errorMessage })
80
105
  ]
81
106
  }
82
107
  );
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var $670gB$react = require('react');
6
+ var react = require('react');
7
7
  var date = require('@internationalized/date');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var ouiTheme = require('@opengovsg/oui-theme');
@@ -31,12 +31,12 @@ function DateRangePicker(originalProps) {
31
31
  ...props
32
32
  },
33
33
  variantProps
34
- ] = $670gB$react.useMemo(
34
+ ] = react.useMemo(
35
35
  () => utils.mapPropsVariants(originalProps, ouiTheme.dateRangePickerStyles.variantKeys),
36
36
  [originalProps]
37
37
  );
38
38
  const styles = ouiTheme.dateRangePickerStyles(variantProps);
39
- const { minValue, maxValue } = $670gB$react.useMemo(() => {
39
+ const { minValue, maxValue } = react.useMemo(() => {
40
40
  return {
41
41
  minValue: minValueProp ?? new date.CalendarDate(1900, 0, 1),
42
42
  // Default to 1 Jan 1900
@@ -3,6 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
6
7
  var reactAriaComponents = require('react-aria-components');
7
8
  var ouiTheme = require('@opengovsg/oui-theme');
8
9
  var circleAlert = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs');
@@ -14,12 +15,19 @@ function Description({ size, className, ...props }) {
14
15
  return /* @__PURE__ */ jsxRuntime.jsx(
15
16
  reactAriaComponents.Text,
16
17
  {
17
- ...props,
18
18
  slot: "description",
19
+ ...props,
19
20
  className: ouiTheme.descriptionStyles({ className, size })
20
21
  }
21
22
  );
22
23
  }
24
+ function FieldErrorIcon({
25
+ size,
26
+ className
27
+ }) {
28
+ const styles = ouiTheme.fieldErrorStyles({ size });
29
+ return /* @__PURE__ */ jsxRuntime.jsx(circleAlert.default, { className: styles.icon({ className }) });
30
+ }
23
31
  function FieldError({
24
32
  children,
25
33
  className,
@@ -28,7 +36,15 @@ function FieldError({
28
36
  ...props
29
37
  }) {
30
38
  const styles = ouiTheme.fieldErrorStyles({ size });
31
- if (!children) return null;
39
+ const childrenFromProps = react.useMemo(() => {
40
+ if (typeof children === "string") {
41
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
42
+ /* @__PURE__ */ jsxRuntime.jsx(FieldErrorIcon, { className: classNames?.icon, size }),
43
+ children
44
+ ] });
45
+ }
46
+ return children;
47
+ }, [children, classNames?.icon, size]);
32
48
  return /* @__PURE__ */ jsxRuntime.jsx(
33
49
  reactAriaComponents.FieldError,
34
50
  {
@@ -37,10 +53,7 @@ function FieldError({
37
53
  className ?? classNames?.text,
38
54
  (className2, renderProps) => styles.text({ ...renderProps, className: className2 })
39
55
  ),
40
- children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
41
- /* @__PURE__ */ jsxRuntime.jsx(circleAlert.default, { className: styles.icon({ className: classNames?.icon }) }),
42
- children
43
- ] })
56
+ children: childrenFromProps
44
57
  }
45
58
  );
46
59
  }
@@ -59,5 +72,6 @@ function FieldGroup(props) {
59
72
 
60
73
  exports.Description = Description;
61
74
  exports.FieldError = FieldError;
75
+ exports.FieldErrorIcon = FieldErrorIcon;
62
76
  exports.FieldGroup = FieldGroup;
63
77
  exports.Label = Label;
@@ -7,5 +7,6 @@ var field = require('./field.cjs');
7
7
 
8
8
  exports.Description = field.Description;
9
9
  exports.FieldError = field.FieldError;
10
+ exports.FieldErrorIcon = field.FieldErrorIcon;
10
11
  exports.FieldGroup = field.FieldGroup;
11
12
  exports.Label = field.Label;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ var context = require('../system/react-utils/context.cjs');
5
+
6
+ const [FileDropzoneStateContext, useFileDropzoneStateContext] = context.createContext({
7
+ strict: true,
8
+ name: "FileDropzoneStateContext"
9
+ });
10
+ const [FileDropzoneStyleContext, useFileDropzoneStyleContext] = context.createContext({
11
+ strict: true,
12
+ name: "FileDropzoneStyleContext"
13
+ });
14
+
15
+ exports.FileDropzoneStateContext = FileDropzoneStateContext;
16
+ exports.FileDropzoneStyleContext = FileDropzoneStyleContext;
17
+ exports.useFileDropzoneStateContext = useFileDropzoneStateContext;
18
+ exports.useFileDropzoneStyleContext = useFileDropzoneStyleContext;