@opengovsg/oui 0.0.28 → 0.0.29

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 (131) 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 +3 -3
  4. package/dist/cjs/button/button.cjs +4 -4
  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 -4
  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 +4 -4
  14. package/dist/cjs/date-field/date-field.cjs +3 -3
  15. package/dist/cjs/date-picker/date-picker.cjs +3 -3
  16. package/dist/cjs/date-range-picker/date-range-picker.cjs +5 -5
  17. package/dist/cjs/field/field.cjs +2 -2
  18. package/dist/cjs/file-dropzone/file-dropzone.cjs +11 -11
  19. package/dist/cjs/file-dropzone/file-info.cjs +3 -3
  20. package/dist/cjs/govt-banner/govt-banner.cjs +3 -3
  21. package/dist/cjs/hooks/use-callback-ref.cjs +4 -4
  22. package/dist/cjs/hooks/use-controllable-state.cjs +2 -2
  23. package/dist/cjs/hooks/use-draggable.cjs +8 -8
  24. package/dist/cjs/index.cjs +84 -65
  25. package/dist/cjs/input/input.cjs +2 -2
  26. package/dist/cjs/menu/menu.cjs +8 -8
  27. package/dist/cjs/modal/modal-body.cjs +2 -2
  28. package/dist/cjs/modal/modal-content.cjs +3 -3
  29. package/dist/cjs/modal/modal-footer.cjs +2 -2
  30. package/dist/cjs/modal/modal-header.cjs +2 -2
  31. package/dist/cjs/modal/modal.cjs +3 -3
  32. package/dist/cjs/navbar/index.cjs +25 -0
  33. package/dist/cjs/navbar/navbar-brand.cjs +28 -0
  34. package/dist/cjs/navbar/navbar-content.cjs +33 -0
  35. package/dist/cjs/navbar/navbar-context.cjs +14 -0
  36. package/dist/cjs/navbar/navbar-item.cjs +29 -0
  37. package/dist/cjs/navbar/navbar-menu/i18n.cjs +23 -0
  38. package/dist/cjs/navbar/navbar-menu/item.cjs +44 -0
  39. package/dist/cjs/navbar/navbar-menu/menu.cjs +62 -0
  40. package/dist/cjs/navbar/navbar-menu/toggle.cjs +94 -0
  41. package/dist/cjs/navbar/navbar.cjs +26 -0
  42. package/dist/cjs/navbar/use-navbar.cjs +116 -0
  43. package/dist/cjs/node_modules/.pnpm/@react-aria_overlays@3.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/overlays/dist/Overlay.cjs +55 -0
  44. package/dist/cjs/node_modules/.pnpm/@react-aria_overlays@3.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/overlays/dist/PortalProvider.cjs +23 -0
  45. package/dist/cjs/node_modules/.pnpm/@react-aria_overlays@3.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/overlays/dist/usePreventScroll.cjs +208 -0
  46. package/dist/cjs/node_modules/.pnpm/@react-aria_ssr@3.9.10_react@19.2.3/node_modules/@react-aria/ssr/dist/SSRProvider.cjs +104 -0
  47. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/Icon.cjs +4 -4
  48. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +3 -3
  49. package/dist/cjs/pagination/hooks/use-pagination.cjs +7 -7
  50. package/dist/cjs/pagination/pagination.cjs +6 -6
  51. package/dist/cjs/pagination/use-pagination-item.cjs +3 -3
  52. package/dist/cjs/pagination/use-pagination.cjs +8 -8
  53. package/dist/cjs/range-calendar/range-calendar.cjs +6 -6
  54. package/dist/cjs/ripple/use-ripple.cjs +4 -4
  55. package/dist/cjs/select/select.cjs +3 -3
  56. package/dist/cjs/spinner/use-spinner.cjs +3 -3
  57. package/dist/cjs/system/react-utils/children.cjs +26 -0
  58. package/dist/cjs/system/react-utils/context.cjs +3 -3
  59. package/dist/cjs/system/react-utils/refs.cjs +3 -3
  60. package/dist/cjs/system/utils.cjs +2 -2
  61. package/dist/cjs/tabs/tabs.cjs +2 -2
  62. package/dist/cjs/tag-field/tag-field-item.cjs +2 -2
  63. package/dist/cjs/tag-field/tag-field-list.cjs +4 -4
  64. package/dist/cjs/tag-field/tag-field-root.cjs +14 -14
  65. package/dist/cjs/tag-field/tag-field-state-context.cjs +2 -2
  66. package/dist/cjs/tag-field/tag-field-tag-list.cjs +3 -3
  67. package/dist/cjs/tag-field/tag-field-trigger.cjs +2 -2
  68. package/dist/cjs/tag-field/tag-field.cjs +3 -3
  69. package/dist/cjs/tag-field/use-tag-field-state.cjs +6 -6
  70. package/dist/cjs/tag-field/use-tag-field.cjs +4 -4
  71. package/dist/cjs/text-area/text-area.cjs +2 -2
  72. package/dist/cjs/toast/toast.cjs +1 -1
  73. package/dist/cjs/toggle/toggle.cjs +3 -3
  74. package/dist/esm/button/button.js +1 -1
  75. package/dist/esm/calendar/calendar-month-day-selector.js +2 -2
  76. package/dist/esm/combo-box/combo-box.js +1 -1
  77. package/dist/esm/date-picker/date-picker.js +1 -1
  78. package/dist/esm/date-range-picker/date-range-picker.js +2 -2
  79. package/dist/esm/file-dropzone/file-dropzone.js +1 -1
  80. package/dist/esm/index.js +33 -24
  81. package/dist/esm/menu/menu.js +2 -2
  82. package/dist/esm/navbar/index.js +10 -0
  83. package/dist/esm/navbar/navbar-brand.js +26 -0
  84. package/dist/esm/navbar/navbar-content.js +31 -0
  85. package/dist/esm/navbar/navbar-context.js +11 -0
  86. package/dist/esm/navbar/navbar-item.js +27 -0
  87. package/dist/esm/navbar/navbar-menu/i18n.js +21 -0
  88. package/dist/esm/navbar/navbar-menu/item.js +42 -0
  89. package/dist/esm/navbar/navbar-menu/menu.js +60 -0
  90. package/dist/esm/navbar/navbar-menu/toggle.js +92 -0
  91. package/dist/esm/navbar/navbar.js +24 -0
  92. package/dist/esm/navbar/use-navbar.js +114 -0
  93. package/dist/esm/node_modules/.pnpm/@react-aria_overlays@3.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/overlays/dist/Overlay.js +52 -0
  94. package/dist/esm/node_modules/.pnpm/@react-aria_overlays@3.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/overlays/dist/PortalProvider.js +20 -0
  95. package/dist/esm/node_modules/.pnpm/@react-aria_overlays@3.30.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/overlays/dist/usePreventScroll.js +206 -0
  96. package/dist/esm/node_modules/.pnpm/@react-aria_ssr@3.9.10_react@19.2.3/node_modules/@react-aria/ssr/dist/SSRProvider.js +102 -0
  97. package/dist/esm/pagination/use-pagination-item.js +1 -1
  98. package/dist/esm/select/select.js +1 -1
  99. package/dist/esm/system/react-utils/children.js +23 -0
  100. package/dist/esm/tag-field/tag-field.js +1 -1
  101. package/dist/esm/toast/toast.js +1 -1
  102. package/dist/types/index.d.mts +1 -0
  103. package/dist/types/index.d.ts +1 -0
  104. package/dist/types/index.d.ts.map +1 -1
  105. package/dist/types/navbar/index.d.ts +17 -0
  106. package/dist/types/navbar/index.d.ts.map +1 -0
  107. package/dist/types/navbar/navbar-brand.d.ts +6 -0
  108. package/dist/types/navbar/navbar-brand.d.ts.map +1 -0
  109. package/dist/types/navbar/navbar-content.d.ts +14 -0
  110. package/dist/types/navbar/navbar-content.d.ts.map +1 -0
  111. package/dist/types/navbar/navbar-context.d.ts +174 -0
  112. package/dist/types/navbar/navbar-context.d.ts.map +1 -0
  113. package/dist/types/navbar/navbar-item.d.ts +11 -0
  114. package/dist/types/navbar/navbar-item.d.ts.map +1 -0
  115. package/dist/types/navbar/navbar-menu/i18n.d.ts +3 -0
  116. package/dist/types/navbar/navbar-menu/i18n.d.ts.map +1 -0
  117. package/dist/types/navbar/navbar-menu/item.d.ts +16 -0
  118. package/dist/types/navbar/navbar-menu/item.d.ts.map +1 -0
  119. package/dist/types/navbar/navbar-menu/menu.d.ts +11 -0
  120. package/dist/types/navbar/navbar-menu/menu.d.ts.map +1 -0
  121. package/dist/types/navbar/navbar-menu/toggle.d.ts +12 -0
  122. package/dist/types/navbar/navbar-menu/toggle.d.ts.map +1 -0
  123. package/dist/types/navbar/navbar.d.ts +6 -0
  124. package/dist/types/navbar/navbar.d.ts.map +1 -0
  125. package/dist/types/navbar/use-navbar.d.ts +131 -0
  126. package/dist/types/navbar/use-navbar.d.ts.map +1 -0
  127. package/dist/types/system/react-utils/children.d.ts +10 -0
  128. package/dist/types/system/react-utils/children.d.ts.map +1 -0
  129. package/dist/types/system/react-utils/index.d.ts +5 -3
  130. package/dist/types/system/react-utils/index.d.ts.map +1 -1
  131. package/package.json +4 -4
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var react = require('react');
5
+ var $670gB$react = require('react');
6
6
  var utils$1 = require('@react-aria/utils');
7
7
  var lodashEs = require('lodash-es');
8
8
  var reactAria = require('react-aria');
@@ -30,26 +30,26 @@ function TagFieldRoot({
30
30
  ...props
31
31
  }) {
32
32
  const { itemToKey: defaultItemToKey, itemToText: defaultItemToText } = props;
33
- const virtualRowHeight = react.useMemo(
33
+ const virtualRowHeight = $670gB$react.useMemo(
34
34
  () => _virtualRowHeight ?? calculateEstimatedRowHeight(props.size ?? "md"),
35
35
  [_virtualRowHeight, props.size]
36
36
  );
37
37
  const { contains } = reactAria.useFilter({ sensitivity: "base" });
38
- const itemToText = react.useCallback(
38
+ const itemToText = $670gB$react.useCallback(
39
39
  (item) => {
40
40
  if (defaultItemToText) return defaultItemToText(item);
41
41
  return String(lodashEs.get(item, "textValue") ?? String(item));
42
42
  },
43
43
  [defaultItemToText]
44
44
  );
45
- const itemToKey = react.useCallback(
45
+ const itemToKey = $670gB$react.useCallback(
46
46
  (item) => {
47
47
  if (defaultItemToKey) return defaultItemToKey(item);
48
48
  return String(lodashEs.get(item, "id") ?? String(item));
49
49
  },
50
50
  [defaultItemToKey]
51
51
  );
52
- const onSelectionChange = react.useCallback(
52
+ const onSelectionChange = $670gB$react.useCallback(
53
53
  (nextItems) => {
54
54
  if (props.onSelectionChange) {
55
55
  props.onSelectionChange(new Set(nextItems.map(itemToKey)));
@@ -66,12 +66,12 @@ function TagFieldRoot({
66
66
  });
67
67
  const { validationBehavior: formValidationBehavior } = reactAriaComponents.useSlottedContext(reactAriaComponents.FormContext) || {};
68
68
  props.validationBehavior ?? formValidationBehavior ?? "native";
69
- const fieldRef = react.useRef(null);
70
- const popoverRef = react.useRef(null);
71
- const listBoxRef = react.useRef(null);
72
- const labelRef = react.useRef(null);
73
- const inputRef = react.useRef(null);
74
- const buttonRef = react.useRef(null);
69
+ const fieldRef = $670gB$react.useRef(null);
70
+ const popoverRef = $670gB$react.useRef(null);
71
+ const listBoxRef = $670gB$react.useRef(null);
72
+ const labelRef = $670gB$react.useRef(null);
73
+ const inputRef = $670gB$react.useRef(null);
74
+ const buttonRef = $670gB$react.useRef(null);
75
75
  const {
76
76
  tagFieldProps,
77
77
  buttonProps,
@@ -94,8 +94,8 @@ function TagFieldRoot({
94
94
  buttonRef},
95
95
  state
96
96
  );
97
- const [menuWidth, setMenuWidth] = react.useState(null);
98
- const onResize = react.useCallback(() => {
97
+ const [menuWidth, setMenuWidth] = $670gB$react.useState(null);
98
+ const onResize = $670gB$react.useCallback(() => {
99
99
  if (fieldRef.current) {
100
100
  const fieldRect = fieldRef.current.getBoundingClientRect();
101
101
  setMenuWidth(fieldRect.right - fieldRect.left + "px");
@@ -105,7 +105,7 @@ function TagFieldRoot({
105
105
  ref: fieldRef,
106
106
  onResize
107
107
  });
108
- const renderPropsState = react.useMemo(
108
+ const renderPropsState = $670gB$react.useMemo(
109
109
  () => ({
110
110
  isOpen: tagFieldProps.isOpen,
111
111
  isDisabled: props.isDisabled || false,
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  'use strict';
3
3
 
4
- var react = require('react');
4
+ var $670gB$react = require('react');
5
5
 
6
6
  const TagFieldStateContext = (
7
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- react.createContext(null)
8
+ $670gB$react.createContext(null)
9
9
  );
10
10
 
11
11
  exports.TagFieldStateContext = TagFieldStateContext;
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
- var react = require('react');
5
+ var $670gB$react = require('react');
6
6
  var tagFieldStateContext = require('./tag-field-state-context.cjs');
7
7
  var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
8
8
 
@@ -17,8 +17,8 @@ const TagFieldTagList = ({
17
17
  isDisabled,
18
18
  isReadOnly,
19
19
  itemToText
20
- } = react.useContext(tagFieldStateContext.TagFieldStateContext);
21
- const handleRemoveSelectedItem = react.useCallback(
20
+ } = $670gB$react.useContext(tagFieldStateContext.TagFieldStateContext);
21
+ const handleRemoveSelectedItem = $670gB$react.useCallback(
22
22
  (item) => () => {
23
23
  if (isDisabled || isReadOnly) return;
24
24
  removeSelectedItem(item);
@@ -3,11 +3,11 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var react = require('react');
6
+ var $670gB$react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var utils = require('../system/utils.cjs');
9
9
 
10
- const TagFieldTriggerContext = react.createContext({});
10
+ const TagFieldTriggerContext = $670gB$react.createContext({});
11
11
  const TagFieldTrigger = utils.forwardRef(
12
12
  (props, ref) => {
13
13
  [props, ref] = reactAriaComponents.useContextProps(props, ref, TagFieldTriggerContext);
@@ -3,10 +3,11 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var react = require('react');
6
+ var $670gB$react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var ouiTheme = require('@opengovsg/oui-theme');
9
9
  var input = require('../input/input.cjs');
10
+ var popover = require('../popover/popover.cjs');
10
11
  var tagFieldItem = require('./tag-field-item.cjs');
11
12
  var tagFieldList = require('./tag-field-list.cjs');
12
13
  var tagFieldRoot = require('./tag-field-root.cjs');
@@ -14,7 +15,6 @@ var tagFieldTagList = require('./tag-field-tag-list.cjs');
14
15
  var tagFieldTrigger = require('./tag-field-trigger.cjs');
15
16
  var chevronDown = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs');
16
17
  var field = require('../field/field.cjs');
17
- var popover = require('../popover/popover.cjs');
18
18
 
19
19
  function TagField({
20
20
  classNames,
@@ -99,7 +99,7 @@ function TagField({
99
99
  {
100
100
  className: styles.list({ className: classNames?.list }),
101
101
  itemClassNames: props.itemClassNames,
102
- children: ({ key, itemProps, ...props2 }) => children ? children({ key, itemProps, ...props2 }) : /* @__PURE__ */ react.createElement(tagFieldItem.TagFieldItem, { ...props2, ...itemProps, key })
102
+ children: ({ key, itemProps, ...props2 }) => children ? children({ key, itemProps, ...props2 }) : /* @__PURE__ */ $670gB$react.createElement(tagFieldItem.TagFieldItem, { ...props2, ...itemProps, key })
103
103
  }
104
104
  ) })
105
105
  ] });
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  'use strict';
3
3
 
4
- var react = require('react');
4
+ var $670gB$react = require('react');
5
5
  var form = require('@react-stately/form');
6
6
  var utils = require('@react-stately/utils');
7
7
  var useControllableState = require('../hooks/use-controllable-state.cjs');
8
8
 
9
9
  function useTagFieldState(props) {
10
10
  const { itemToText, itemToKey, defaultFilter } = props;
11
- const itemsByKey = react.useMemo(() => {
11
+ const itemsByKey = $670gB$react.useMemo(() => {
12
12
  const items = props.items ?? props.defaultItems ?? [];
13
13
  return items.reduce(
14
14
  (acc, item) => {
@@ -18,7 +18,7 @@ function useTagFieldState(props) {
18
18
  {}
19
19
  ) ?? {};
20
20
  }, [itemToKey, props.defaultItems, props.items]);
21
- const getSelectedItemsByKey = react.useCallback(
21
+ const getSelectedItemsByKey = $670gB$react.useCallback(
22
22
  (keys) => {
23
23
  if (!keys) return;
24
24
  return [...keys].map((key) => itemsByKey[key]);
@@ -36,13 +36,13 @@ function useTagFieldState(props) {
36
36
  defaultInputValue,
37
37
  props.onInputChange
38
38
  );
39
- const controlledSelectedKeys = react.useMemo(
39
+ const controlledSelectedKeys = $670gB$react.useMemo(
40
40
  () => new Set(selectedItems.map(itemToKey)),
41
41
  [itemToKey, selectedItems]
42
42
  );
43
43
  const validation = form.useFormValidationState({
44
44
  ...props,
45
- value: react.useMemo(
45
+ value: $670gB$react.useMemo(
46
46
  () => ({
47
47
  inputValue,
48
48
  selectedKeys: controlledSelectedKeys
@@ -50,7 +50,7 @@ function useTagFieldState(props) {
50
50
  [controlledSelectedKeys, inputValue]
51
51
  )
52
52
  });
53
- const filteredItems = react.useMemo(
53
+ const filteredItems = $670gB$react.useMemo(
54
54
  () => (
55
55
  // No default filter if items are controlled.
56
56
  !!props.items || !defaultFilter ? props.items ?? [] : filterItems({
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  'use strict';
3
3
 
4
- var react = require('react');
4
+ var $670gB$react = require('react');
5
5
  var utils = require('@react-aria/utils');
6
6
  var reactVirtual = require('@tanstack/react-virtual');
7
7
  var downshift = require('downshift');
@@ -23,7 +23,7 @@ function useTagField(props, state) {
23
23
  label,
24
24
  virtualRowHeight = 40
25
25
  } = props;
26
- const backupBtnRef = react.useRef(null);
26
+ const backupBtnRef = $670gB$react.useRef(null);
27
27
  buttonRef = buttonRef ?? backupBtnRef;
28
28
  const {
29
29
  selectedItems,
@@ -48,14 +48,14 @@ function useTagField(props, state) {
48
48
  }
49
49
  }
50
50
  });
51
- const disabledKeysSet = react.useMemo(() => {
51
+ const disabledKeysSet = $670gB$react.useMemo(() => {
52
52
  return new Set(disabledKeys);
53
53
  }, [disabledKeys]);
54
54
  const rowVirtualizer = reactVirtual.useVirtualizer({
55
55
  count: items.length,
56
56
  getScrollElement: () => listBoxRef.current,
57
57
  estimateSize: () => virtualRowHeight,
58
- getItemKey: react.useCallback(
58
+ getItemKey: $670gB$react.useCallback(
59
59
  (index) => itemToKey(items[index]),
60
60
  [itemToKey, items]
61
61
  ),
@@ -3,11 +3,11 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var react = require('react');
6
+ var $670gB$react = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
8
  var ouiTheme = require('@opengovsg/oui-theme');
9
9
 
10
- const TextArea = react.forwardRef(
10
+ const TextArea = $670gB$react.forwardRef(
11
11
  ({ size, variant, isDisabled, ...props }, ref) => {
12
12
  return /* @__PURE__ */ jsxRuntime.jsx(
13
13
  reactAriaComponents.TextArea,
@@ -5,9 +5,9 @@
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var sonner = require('sonner');
7
7
  var ouiTheme = require('@opengovsg/oui-theme');
8
+ var spinner = require('../spinner/spinner.cjs');
8
9
  var utils = require('../system/utils.cjs');
9
10
  var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
10
- var spinner = require('../spinner/spinner.cjs');
11
11
 
12
12
  function Toaster(originalProps) {
13
13
  const [{ toastOptions, closeButton = true, ...props }, variantProps] = utils.mapPropsVariants(originalProps, ouiTheme.toastStyles.variantKeys);
@@ -3,7 +3,7 @@
3
3
  'use strict';
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var react = require('react');
6
+ var $670gB$react = require('react');
7
7
  var reactAria = require('react-aria');
8
8
  var reactAriaComponents = require('react-aria-components');
9
9
  var ouiTheme = require('@opengovsg/oui-theme');
@@ -21,12 +21,12 @@ const Toggle = ({
21
21
  ouiTheme.toggleStyles.variantKeys
22
22
  );
23
23
  const slots = ouiTheme.toggleStyles(variantProps);
24
- const clonedThumbIcon = react.useCallback(
24
+ const clonedThumbIcon = $670gB$react.useCallback(
25
25
  (renderProps) => {
26
26
  const baseProps = {
27
27
  className: slots.thumbIcon({ className: classNames?.thumbIcon })
28
28
  };
29
- return typeof thumbIcon === "function" ? thumbIcon(reactAria.mergeProps(baseProps, renderProps)) : thumbIcon && react.cloneElement(thumbIcon, baseProps);
29
+ return typeof thumbIcon === "function" ? thumbIcon(reactAria.mergeProps(baseProps, renderProps)) : thumbIcon && $670gB$react.cloneElement(thumbIcon, baseProps);
30
30
  },
31
31
  [classNames?.thumbIcon, slots, thumbIcon]
32
32
  );
@@ -5,9 +5,9 @@ import { forwardRef, useMemo } from 'react';
5
5
  import { chain } from '@react-aria/utils';
6
6
  import { Button as Button$1, composeRenderProps } from 'react-aria-components';
7
7
  import { buttonStyles } from '@opengovsg/oui-theme';
8
+ import { Ripple } from '../ripple/ripple.js';
8
9
  import { useRipple } from '../ripple/use-ripple.js';
9
10
  import { Spinner } from '../spinner/spinner.js';
10
- import { Ripple } from '../ripple/ripple.js';
11
11
 
12
12
  const Button = forwardRef(
13
13
  ({
@@ -4,11 +4,11 @@ import { jsx } from 'react/jsx-runtime';
4
4
  import { useContext } from 'react';
5
5
  import { CalendarDate } from '@internationalized/date';
6
6
  import { Group } from 'react-aria-components';
7
+ import { Select } from '../select/select.js';
8
+ import { SelectItem } from '../select/select-item.js';
7
9
  import { AgnosticCalendarStateContext } from './agnostic-calendar-state-context.js';
8
10
  import { useCalendarStyleContext } from './calendar-style-context.js';
9
11
  import { useCalendarSelectors } from './hooks/use-calendar-selectors.js';
10
- import { Select } from '../select/select.js';
11
- import { SelectItem } from '../select/select-item.js';
12
12
  import { useCalendarI18n } from './hooks/use-calendar-i18n.js';
13
13
 
14
14
  const CalendarMonthDaySelector = () => {
@@ -5,13 +5,13 @@ import { useMemo, useCallback } from 'react';
5
5
  import { useMessageFormatter } 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 { Popover } from '../popover/popover.js';
8
9
  import { mapPropsVariants } from '../system/utils.js';
9
10
  import { ComboBoxVariantContext } from './combo-box-variant-context.js';
10
11
  import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
11
12
  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';
12
13
  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
14
  import X from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js';
14
- import { Popover } from '../popover/popover.js';
15
15
 
16
16
  const calculateEstimatedRowHeight = (size) => {
17
17
  switch (size) {
@@ -4,13 +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 { Popover } from '../popover/popover.js';
7
8
  import { mapPropsVariants } from '../system/utils.js';
8
9
  import { DateInput } from '../date-field/date-field.js';
9
10
  import Calendar from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/calendar.js';
10
11
  import { Calendar as Calendar$1 } from '../calendar/calendar.js';
11
12
  import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
12
13
  import { Button } from '../button/button.js';
13
- import { Popover } from '../popover/popover.js';
14
14
 
15
15
  function DatePicker(originalProps) {
16
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 { Popover } from '../popover/popover.js';
9
+ import { RangeCalendar } from '../range-calendar/range-calendar.js';
8
10
  import { mapPropsVariants } from '../system/utils.js';
9
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';
10
- import { RangeCalendar } from '../range-calendar/range-calendar.js';
11
12
  import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
12
13
  import { DateInput } from '../date-field/date-field.js';
13
14
  import { Button } from '../button/button.js';
14
- import { Popover } from '../popover/popover.js';
15
15
 
16
16
  function DateRangePicker(originalProps) {
17
17
  const [
@@ -7,11 +7,11 @@ 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 { useControllableState } from '../hooks/use-controllable-state.js';
10
11
  import { mapPropsVariants } from '../system/utils.js';
11
12
  import { FileDropzoneStyleContext, FileDropzoneStateContext, useFileDropzoneStateContext, useFileDropzoneStyleContext } from './contexts.js';
12
13
  import { FileInfo } from './file-info.js';
13
14
  import { formatErrorMessage, formatBytes } from './utils.js';
14
- import { useControllableState } from '../hooks/use-controllable-state.js';
15
15
  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
16
  import { Label, Description, FieldError } from '../field/field.js';
17
17
 
package/dist/esm/index.js CHANGED
@@ -1,48 +1,30 @@
1
1
  "use strict";
2
- export { Toggle } from './toggle/toggle.js';
3
- export { Input } from './input/input.js';
4
- export { TextField } from './text-field/text-field.js';
5
- export { TextArea } from './text-area/text-area.js';
6
- export { TextAreaField } from './text-area-field/text-area-field.js';
7
- export { Toaster } from './toast/toast.js';
8
2
  export { useControllableState } from './hooks/use-controllable-state.js';
9
3
  export { useDraggable } from './hooks/use-draggable.js';
10
- export { Button } from './button/button.js';
11
4
  export { GovtBanner } from './govt-banner/govt-banner.js';
12
5
  export { Ripple } from './ripple/ripple.js';
13
6
  export { useRipple } from './ripple/use-ripple.js';
14
7
  export { Spinner } from './spinner/spinner.js';
15
8
  export { useSpinner } from './spinner/use-spinner.js';
9
+ export { Toggle } from './toggle/toggle.js';
16
10
  export { SkipNavLink } from './skip-nav-link/skip-nav-link.js';
17
- export { Description, FieldError, FieldErrorIcon, FieldGroup, Label } from './field/field.js';
18
- export { ComboBox, ComboBoxEmptyState } from './combo-box/combo-box.js';
19
- export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
20
- export { ComboBoxItem } from './combo-box/combo-box-item.js';
21
- export { ComboBoxVariantContext, useComboBoxVariantContext } from './combo-box/combo-box-variant-context.js';
22
- export { Banner } from './banner/banner.js';
11
+ export { Input } from './input/input.js';
12
+ export { TextField } from './text-field/text-field.js';
13
+ export { TextArea } from './text-area/text-area.js';
14
+ export { TextAreaField } from './text-area-field/text-area-field.js';
23
15
  export { TagField } from './tag-field/tag-field.js';
24
16
  export { TagFieldItem } from './tag-field/tag-field-item.js';
25
17
  export { Select } from './select/select.js';
26
18
  export { SelectItem } from './select/select-item.js';
27
19
  export { SelectVariantContext, useSelectVariantContext } from './select/select-variant-context.js';
28
- export { Badge } from './badge/badge.js';
29
- export { CalendarDate } from '@internationalized/date';
30
- export { Calendar, CalendarStateWrapper } from './calendar/calendar.js';
31
- export { CalendarStyleContext, useCalendarStyleContext } from './calendar/calendar-style-context.js';
32
- export { getEraFormat, useGenerateLocalizedMonths, useGenerateLocalizedYears, useLocalizedMonthYear } from './calendar/utils.js';
33
20
  export { RangeCalendar, RangeCalendarCell, RangeCalendarStateWrapper } from './range-calendar/range-calendar.js';
34
21
  export { Menu, MenuItem, MenuSection, MenuSeparator, MenuTrigger, MenuVariantContext, SubmenuTrigger, useMenuVariantContext } from './menu/menu.js';
35
22
  export { Popover } from './popover/popover.js';
36
23
  export { Tab, TabList, TabPanel, Tabs, TabsVariantContext, useTabsVariantContext } from './tabs/tabs.js';
37
- export { DateField, DateInput } from './date-field/date-field.js';
38
- export { DatePicker } from './date-picker/date-picker.js';
39
- export { DateRangePicker } from './date-range-picker/date-range-picker.js';
40
- export { Checkbox, CheckboxGroup } from './checkbox/checkbox.js';
41
- export { CheckboxGroupStyleContext, useCheckboxGroupStyleContext } from './checkbox/checkbox-group-style-context.js';
42
- export { PaginationItemType } from './pagination/hooks/use-pagination.js';
43
24
  export { Pagination } from './pagination/pagination.js';
44
25
  export { PaginationCursor } from './pagination/pagination-cursor.js';
45
26
  export { PaginationItem } from './pagination/pagination-item.js';
27
+ export { PaginationItemType } from './pagination/hooks/use-pagination.js';
46
28
  export { CURSOR_TRANSITION_TIMEOUT, usePagination } from './pagination/use-pagination.js';
47
29
  export { FileDropzone } from './file-dropzone/file-dropzone.js';
48
30
  export { FileInfo } from './file-dropzone/file-info.js';
@@ -54,4 +36,31 @@ export { ModalFooter } from './modal/modal-footer.js';
54
36
  export { ModalBody } from './modal/modal-body.js';
55
37
  export { ModalHeader } from './modal/modal-header.js';
56
38
  export { ModalVariantContext, useModalVariantContext } from './modal/modal-variant-context.js';
39
+ export { Toaster } from './toast/toast.js';
40
+ export { Navbar } from './navbar/navbar.js';
41
+ export { NavbarBrand } from './navbar/navbar-brand.js';
42
+ export { NavbarContent } from './navbar/navbar-content.js';
43
+ export { NavbarMenu } from './navbar/navbar-menu/menu.js';
44
+ export { NavbarMenuItem } from './navbar/navbar-menu/item.js';
45
+ export { NavbarMenuToggle } from './navbar/navbar-menu/toggle.js';
46
+ export { NavbarItem } from './navbar/navbar-item.js';
47
+ export { useNavbar } from './navbar/use-navbar.js';
48
+ export { NavbarProvider, useNavbarContext } from './navbar/navbar-context.js';
49
+ export { Button } from './button/button.js';
50
+ export { Description, FieldError, FieldErrorIcon, FieldGroup, Label } from './field/field.js';
51
+ export { ComboBox, ComboBoxEmptyState } from './combo-box/combo-box.js';
52
+ export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
53
+ export { ComboBoxItem } from './combo-box/combo-box-item.js';
54
+ export { ComboBoxVariantContext, useComboBoxVariantContext } from './combo-box/combo-box-variant-context.js';
55
+ export { Banner } from './banner/banner.js';
56
+ export { Badge } from './badge/badge.js';
57
+ export { CalendarDate } from '@internationalized/date';
58
+ export { Calendar, CalendarStateWrapper } from './calendar/calendar.js';
59
+ export { CalendarStyleContext, useCalendarStyleContext } from './calendar/calendar-style-context.js';
60
+ export { getEraFormat, useGenerateLocalizedMonths, useGenerateLocalizedYears, useLocalizedMonthYear } from './calendar/utils.js';
61
+ export { DateField, DateInput } from './date-field/date-field.js';
62
+ export { DatePicker } from './date-picker/date-picker.js';
63
+ export { DateRangePicker } from './date-range-picker/date-range-picker.js';
64
+ export { Checkbox, CheckboxGroup } from './checkbox/checkbox.js';
65
+ export { CheckboxGroupStyleContext, useCheckboxGroupStyleContext } from './checkbox/checkbox-group-style-context.js';
57
66
  export { toast } from 'sonner';
@@ -4,11 +4,11 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { forwardRef, useMemo, useCallback } from 'react';
5
5
  import { useContextProps, MenuItem as MenuItem$1, composeRenderProps, Provider, Menu as Menu$1, MenuSection as MenuSection$1, Header, Collection, MenuTrigger as MenuTrigger$1, SubmenuTrigger as SubmenuTrigger$1, Separator } from 'react-aria-components';
6
6
  import { listBoxItemStyles, menuItemStyles, menuStyles, menuSectionStyles, menuDividerStyles } from '@opengovsg/oui-theme';
7
+ import { Popover } from '../popover/popover.js';
7
8
  import { forwardRefGeneric, mapPropsVariants } from '../system/utils.js';
9
+ import { createContext } from '../system/react-utils/context.js';
8
10
  import Check from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/check.js';
9
11
  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';
10
- import { createContext } from '../system/react-utils/context.js';
11
- import { Popover } from '../popover/popover.js';
12
12
 
13
13
  const [MenuVariantContext, useMenuVariantContext] = createContext({
14
14
  name: "MenuVariantContext",
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ export { Navbar } from './navbar.js';
3
+ export { NavbarBrand } from './navbar-brand.js';
4
+ export { NavbarContent } from './navbar-content.js';
5
+ export { NavbarMenu } from './navbar-menu/menu.js';
6
+ export { NavbarMenuItem } from './navbar-menu/item.js';
7
+ export { NavbarMenuToggle } from './navbar-menu/toggle.js';
8
+ export { NavbarItem } from './navbar-item.js';
9
+ export { useNavbar } from './use-navbar.js';
10
+ export { NavbarProvider, useNavbarContext } from './navbar-context.js';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ "use client";
3
+ import { jsx } from 'react/jsx-runtime';
4
+ import { cn } from '@opengovsg/oui-theme';
5
+ import { forwardRef } from '../system/utils.js';
6
+ import { useNavbarContext } from './navbar-context.js';
7
+ import { useDomRef } from '../system/react-utils/refs.js';
8
+
9
+ const NavbarBrand = forwardRef((props, ref) => {
10
+ const { as, className, children, ...otherProps } = props;
11
+ const Component = as || "div";
12
+ const domRef = useDomRef(ref);
13
+ const { slots, classNames } = useNavbarContext();
14
+ return /* @__PURE__ */ jsx(
15
+ Component,
16
+ {
17
+ ref: domRef,
18
+ className: slots.brand?.({ className: cn(classNames?.brand, className) }),
19
+ ...otherProps,
20
+ children
21
+ }
22
+ );
23
+ });
24
+ NavbarBrand.displayName = "NavbarBrand";
25
+
26
+ export { NavbarBrand };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ "use client";
3
+ import { jsx } from 'react/jsx-runtime';
4
+ import { cn } from '@opengovsg/oui-theme';
5
+ import { forwardRef } from '../system/utils.js';
6
+ import { useNavbarContext } from './navbar-context.js';
7
+ import { useDomRef } from '../system/react-utils/refs.js';
8
+
9
+ const NavbarContent = forwardRef(
10
+ (props, ref) => {
11
+ const { as, className, children, justify = "start", ...otherProps } = props;
12
+ const Component = as || "div";
13
+ const domRef = useDomRef(ref);
14
+ const { slots, classNames } = useNavbarContext();
15
+ return /* @__PURE__ */ jsx(
16
+ Component,
17
+ {
18
+ ref: domRef,
19
+ className: slots.content?.({
20
+ className: cn(classNames?.content, className)
21
+ }),
22
+ "data-justify": justify,
23
+ ...otherProps,
24
+ children
25
+ }
26
+ );
27
+ }
28
+ );
29
+ NavbarContent.displayName = "NavbarContent";
30
+
31
+ export { NavbarContent };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ "use client";
3
+ import { createContext } from '../system/react-utils/context.js';
4
+
5
+ const [NavbarProvider, useNavbarContext] = createContext({
6
+ name: "NavbarContext",
7
+ strict: true,
8
+ errorMessage: "useNavbarContext: `context` is undefined. Seems you forgot to wrap component within <Navbar />"
9
+ });
10
+
11
+ export { NavbarProvider, useNavbarContext };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ "use client";
3
+ import { jsx } from 'react/jsx-runtime';
4
+ import { dataAttr, cn } from '@opengovsg/oui-theme';
5
+ import { forwardRef } from '../system/utils.js';
6
+ import { useNavbarContext } from './navbar-context.js';
7
+ import { useDomRef } from '../system/react-utils/refs.js';
8
+
9
+ const NavbarItem = forwardRef((props, ref) => {
10
+ const { as, className, children, isActive, ...otherProps } = props;
11
+ const Component = as || "div";
12
+ const domRef = useDomRef(ref);
13
+ const { slots, classNames } = useNavbarContext();
14
+ return /* @__PURE__ */ jsx(
15
+ Component,
16
+ {
17
+ ref: domRef,
18
+ className: slots.item({ className: cn(classNames?.item, className) }),
19
+ "data-active": dataAttr(isActive),
20
+ ...otherProps,
21
+ children
22
+ }
23
+ );
24
+ });
25
+ NavbarItem.displayName = "NavbarItem";
26
+
27
+ export { NavbarItem };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ const i18nStrings = {
3
+ "en-SG": {
4
+ openMenu: "Open navigation menu",
5
+ closeMenu: "Close navigation menu"
6
+ },
7
+ "zh-SG": {
8
+ openMenu: "\u6253\u5F00\u5BFC\u822A\u83DC\u5355",
9
+ closeMenu: "\u5173\u95ED\u5BFC\u822A\u83DC\u5355"
10
+ },
11
+ "ms-SG": {
12
+ openMenu: "Buka menu navigasi",
13
+ closeMenu: "Tutup menu navigasi"
14
+ },
15
+ "ta-SG": {
16
+ openMenu: "\u0BA8\u0BC7\u0BB5\u0BBF\u0B95\u0BC7\u0BB7\u0BA9\u0BCD \u0BAE\u0BC6\u0BA9\u0BC1\u0BB5\u0BC8\u0BA4\u0BCD \u0BA4\u0BBF\u0BB1",
17
+ closeMenu: "\u0BA8\u0BC7\u0BB5\u0BBF\u0B95\u0BC7\u0BB7\u0BA9\u0BCD \u0BAE\u0BC6\u0BA9\u0BC1\u0BB5\u0BC8 \u0BAE\u0BC2\u0B9F\u0BC1"
18
+ }
19
+ };
20
+
21
+ export { i18nStrings };