@opengovsg/oui 0.0.29 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/avatar/avatar-context.cjs +12 -0
- package/dist/cjs/avatar/avatar-group-context.cjs +88 -0
- package/dist/cjs/avatar/avatar-group.cjs +60 -0
- package/dist/cjs/avatar/avatar.cjs +132 -0
- package/dist/cjs/avatar/hooks/use-img-loading-status.cjs +68 -0
- package/dist/cjs/avatar/index.cjs +23 -0
- package/dist/cjs/avatar/utils.cjs +9 -0
- package/dist/cjs/banner/banner.cjs +1 -1
- package/dist/cjs/checkbox/checkbox.cjs +3 -3
- package/dist/cjs/combo-box/combo-box.cjs +1 -1
- package/dist/cjs/date-field/date-field.cjs +1 -1
- package/dist/cjs/date-picker/date-picker.cjs +5 -4
- package/dist/cjs/date-range-picker/date-range-picker.cjs +3 -3
- package/dist/cjs/file-dropzone/file-dropzone.cjs +12 -8
- package/dist/cjs/file-dropzone/file-info.cjs +3 -2
- package/dist/cjs/file-dropzone/utils.cjs +4 -4
- package/dist/cjs/hooks/use-scroll-position.cjs +53 -0
- package/dist/cjs/index.cjs +61 -47
- package/dist/cjs/modal/modal-content.cjs +1 -1
- package/dist/cjs/navbar/navbar-menu/menu.cjs +2 -2
- package/dist/cjs/navbar/navbar-menu/toggle.cjs +3 -2
- package/dist/cjs/navbar/navbar.cjs +25 -1
- package/dist/cjs/navbar/use-navbar.cjs +42 -32
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.cjs +22 -0
- package/dist/cjs/number-field/number-field.cjs +2 -2
- package/dist/cjs/range-calendar/range-calendar.cjs +1 -1
- package/dist/cjs/select/select.cjs +2 -2
- package/dist/cjs/tag-field/tag-field.cjs +1 -1
- package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
- package/dist/cjs/text-field/text-field.cjs +1 -1
- package/dist/esm/avatar/avatar-context.js +9 -0
- package/dist/esm/avatar/avatar-group-context.js +84 -0
- package/dist/esm/avatar/avatar-group.js +58 -0
- package/dist/esm/avatar/avatar.js +128 -0
- package/dist/esm/avatar/hooks/use-img-loading-status.js +66 -0
- package/dist/esm/avatar/index.js +13 -0
- package/dist/esm/avatar/utils.js +7 -0
- package/dist/esm/banner/banner.js +1 -1
- package/dist/esm/checkbox/checkbox.js +3 -3
- package/dist/esm/combo-box/combo-box.js +1 -1
- package/dist/esm/date-field/date-field.js +1 -1
- package/dist/esm/date-picker/date-picker.js +5 -4
- package/dist/esm/date-range-picker/date-range-picker.js +3 -3
- package/dist/esm/file-dropzone/file-dropzone.js +12 -8
- package/dist/esm/file-dropzone/file-info.js +3 -2
- package/dist/esm/file-dropzone/utils.js +4 -4
- package/dist/esm/hooks/use-scroll-position.js +51 -0
- package/dist/esm/index.js +20 -15
- package/dist/esm/modal/modal-content.js +1 -1
- package/dist/esm/navbar/navbar-menu/menu.js +2 -2
- package/dist/esm/navbar/navbar-menu/toggle.js +3 -2
- package/dist/esm/navbar/navbar.js +26 -2
- package/dist/esm/navbar/use-navbar.js +43 -33
- package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.js +17 -0
- package/dist/esm/number-field/number-field.js +2 -2
- package/dist/esm/range-calendar/range-calendar.js +1 -1
- package/dist/esm/select/select.js +2 -2
- package/dist/esm/tag-field/tag-field.js +1 -1
- package/dist/esm/text-area-field/text-area-field.js +1 -1
- package/dist/esm/text-field/text-field.js +1 -1
- package/dist/types/avatar/avatar-context.d.ts +12 -0
- package/dist/types/avatar/avatar-context.d.ts.map +1 -0
- package/dist/types/avatar/avatar-group-context.d.ts +70 -0
- package/dist/types/avatar/avatar-group-context.d.ts.map +1 -0
- package/dist/types/avatar/avatar-group.d.ts +5 -0
- package/dist/types/avatar/avatar-group.d.ts.map +1 -0
- package/dist/types/avatar/avatar.d.ts +18 -0
- package/dist/types/avatar/avatar.d.ts.map +1 -0
- package/dist/types/avatar/hooks/use-img-loading-status.d.ts +4 -0
- package/dist/types/avatar/hooks/use-img-loading-status.d.ts.map +1 -0
- package/dist/types/avatar/index.d.ts +15 -0
- package/dist/types/avatar/index.d.ts.map +1 -0
- package/dist/types/avatar/utils.d.ts +2 -0
- package/dist/types/avatar/utils.d.ts.map +1 -0
- package/dist/types/calendar/calendar.d.ts.map +1 -1
- package/dist/types/checkbox/checkbox-group-style-context.d.ts +1 -1
- package/dist/types/checkbox/checkbox-group-style-context.d.ts.map +1 -1
- package/dist/types/date-field/date-field.d.ts.map +1 -1
- package/dist/types/file-dropzone/file-dropzone.d.ts +8 -2
- package/dist/types/file-dropzone/file-dropzone.d.ts.map +1 -1
- package/dist/types/file-dropzone/file-info.d.ts.map +1 -1
- package/dist/types/file-dropzone/types.d.ts +1 -0
- package/dist/types/file-dropzone/types.d.ts.map +1 -1
- package/dist/types/file-dropzone/utils.d.ts +2 -1
- package/dist/types/file-dropzone/utils.d.ts.map +1 -1
- package/dist/types/hooks/use-scroll-position.d.ts +29 -0
- package/dist/types/hooks/use-scroll-position.d.ts.map +1 -0
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/menu/menu.d.ts.map +1 -1
- package/dist/types/navbar/navbar-context.d.ts +10 -2
- package/dist/types/navbar/navbar-context.d.ts.map +1 -1
- package/dist/types/navbar/navbar-menu/menu.d.ts.map +1 -1
- package/dist/types/navbar/navbar-menu/toggle.d.ts.map +1 -1
- package/dist/types/navbar/navbar.d.ts.map +1 -1
- package/dist/types/navbar/use-navbar.d.ts +33 -1
- package/dist/types/navbar/use-navbar.d.ts.map +1 -1
- package/dist/types/range-calendar/range-calendar.d.ts.map +1 -1
- package/dist/types/system/react-utils/context.d.ts +4 -4
- package/dist/types/system/react-utils/context.d.ts.map +1 -1
- package/dist/types/system/utils.d.ts.map +1 -1
- package/dist/types/tabs/tabs.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-item.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-list.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/cjs/index.cjs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
5
5
|
var useDraggable = require('./hooks/use-draggable.cjs');
|
|
6
|
+
var button = require('./button/button.cjs');
|
|
6
7
|
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
7
8
|
var ripple = require('./ripple/ripple.cjs');
|
|
8
9
|
var useRipple = require('./ripple/use-ripple.cjs');
|
|
@@ -12,17 +13,31 @@ var toggle = require('./toggle/toggle.cjs');
|
|
|
12
13
|
var skipNavLink = require('./skip-nav-link/skip-nav-link.cjs');
|
|
13
14
|
var input = require('./input/input.cjs');
|
|
14
15
|
var textField = require('./text-field/text-field.cjs');
|
|
16
|
+
var field = require('./field/field.cjs');
|
|
15
17
|
var textArea = require('./text-area/text-area.cjs');
|
|
16
18
|
var textAreaField = require('./text-area-field/text-area-field.cjs');
|
|
19
|
+
var comboBox = require('./combo-box/combo-box.cjs');
|
|
20
|
+
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
21
|
+
var comboBoxItem = require('./combo-box/combo-box-item.cjs');
|
|
22
|
+
var comboBoxVariantContext = require('./combo-box/combo-box-variant-context.cjs');
|
|
17
23
|
var tagField = require('./tag-field/tag-field.cjs');
|
|
18
24
|
var tagFieldItem = require('./tag-field/tag-field-item.cjs');
|
|
19
25
|
var select = require('./select/select.cjs');
|
|
20
26
|
var selectItem = require('./select/select-item.cjs');
|
|
21
27
|
var selectVariantContext = require('./select/select-variant-context.cjs');
|
|
28
|
+
var calendar = require('./calendar/calendar.cjs');
|
|
29
|
+
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
30
|
+
var utils = require('./calendar/utils.cjs');
|
|
31
|
+
var date = require('@internationalized/date');
|
|
22
32
|
var rangeCalendar = require('./range-calendar/range-calendar.cjs');
|
|
23
33
|
var menu = require('./menu/menu.cjs');
|
|
24
34
|
var popover = require('./popover/popover.cjs');
|
|
25
35
|
var tabs = require('./tabs/tabs.cjs');
|
|
36
|
+
var dateField = require('./date-field/date-field.cjs');
|
|
37
|
+
var datePicker = require('./date-picker/date-picker.cjs');
|
|
38
|
+
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
39
|
+
var checkbox = require('./checkbox/checkbox.cjs');
|
|
40
|
+
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
26
41
|
var pagination = require('./pagination/pagination.cjs');
|
|
27
42
|
var paginationCursor = require('./pagination/pagination-cursor.cjs');
|
|
28
43
|
var paginationItem = require('./pagination/pagination-item.cjs');
|
|
@@ -48,29 +63,20 @@ var toggle$1 = require('./navbar/navbar-menu/toggle.cjs');
|
|
|
48
63
|
var navbarItem = require('./navbar/navbar-item.cjs');
|
|
49
64
|
var useNavbar = require('./navbar/use-navbar.cjs');
|
|
50
65
|
var navbarContext = require('./navbar/navbar-context.cjs');
|
|
51
|
-
var
|
|
52
|
-
var field = require('./field/field.cjs');
|
|
53
|
-
var comboBox = require('./combo-box/combo-box.cjs');
|
|
54
|
-
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
55
|
-
var comboBoxItem = require('./combo-box/combo-box-item.cjs');
|
|
56
|
-
var comboBoxVariantContext = require('./combo-box/combo-box-variant-context.cjs');
|
|
66
|
+
var index = require('./avatar/index.cjs');
|
|
57
67
|
var banner = require('./banner/banner.cjs');
|
|
58
68
|
var badge = require('./badge/badge.cjs');
|
|
59
|
-
var date = require('@internationalized/date');
|
|
60
|
-
var calendar = require('./calendar/calendar.cjs');
|
|
61
|
-
var calendarStyleContext = require('./calendar/calendar-style-context.cjs');
|
|
62
|
-
var utils = require('./calendar/utils.cjs');
|
|
63
|
-
var dateField = require('./date-field/date-field.cjs');
|
|
64
|
-
var datePicker = require('./date-picker/date-picker.cjs');
|
|
65
|
-
var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
|
|
66
|
-
var checkbox = require('./checkbox/checkbox.cjs');
|
|
67
|
-
var checkboxGroupStyleContext = require('./checkbox/checkbox-group-style-context.cjs');
|
|
68
69
|
var sonner = require('sonner');
|
|
70
|
+
var avatarContext = require('./avatar/avatar-context.cjs');
|
|
71
|
+
var avatarGroup = require('./avatar/avatar-group.cjs');
|
|
72
|
+
var avatarGroupContext = require('./avatar/avatar-group-context.cjs');
|
|
73
|
+
var avatar = require('./avatar/avatar.cjs');
|
|
69
74
|
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
exports.useControllableState = useControllableState.useControllableState;
|
|
73
78
|
exports.useDraggable = useDraggable.useDraggable;
|
|
79
|
+
exports.Button = button.Button;
|
|
74
80
|
exports.GovtBanner = govtBanner.GovtBanner;
|
|
75
81
|
exports.Ripple = ripple.Ripple;
|
|
76
82
|
exports.useRipple = useRipple.useRipple;
|
|
@@ -80,14 +86,37 @@ exports.Toggle = toggle.Toggle;
|
|
|
80
86
|
exports.SkipNavLink = skipNavLink.SkipNavLink;
|
|
81
87
|
exports.Input = input.Input;
|
|
82
88
|
exports.TextField = textField.TextField;
|
|
89
|
+
exports.Description = field.Description;
|
|
90
|
+
exports.FieldError = field.FieldError;
|
|
91
|
+
exports.FieldErrorIcon = field.FieldErrorIcon;
|
|
92
|
+
exports.FieldGroup = field.FieldGroup;
|
|
93
|
+
exports.Label = field.Label;
|
|
83
94
|
exports.TextArea = textArea.TextArea;
|
|
84
95
|
exports.TextAreaField = textAreaField.TextAreaField;
|
|
96
|
+
exports.ComboBox = comboBox.ComboBox;
|
|
97
|
+
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
98
|
+
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
99
|
+
exports.ComboBoxItem = comboBoxItem.ComboBoxItem;
|
|
100
|
+
exports.ComboBoxVariantContext = comboBoxVariantContext.ComboBoxVariantContext;
|
|
101
|
+
exports.useComboBoxVariantContext = comboBoxVariantContext.useComboBoxVariantContext;
|
|
85
102
|
exports.TagField = tagField.TagField;
|
|
86
103
|
exports.TagFieldItem = tagFieldItem.TagFieldItem;
|
|
87
104
|
exports.Select = select.Select;
|
|
88
105
|
exports.SelectItem = selectItem.SelectItem;
|
|
89
106
|
exports.SelectVariantContext = selectVariantContext.SelectVariantContext;
|
|
90
107
|
exports.useSelectVariantContext = selectVariantContext.useSelectVariantContext;
|
|
108
|
+
exports.Calendar = calendar.Calendar;
|
|
109
|
+
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
110
|
+
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
111
|
+
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
112
|
+
exports.getEraFormat = utils.getEraFormat;
|
|
113
|
+
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
114
|
+
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
115
|
+
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
116
|
+
Object.defineProperty(exports, "CalendarDate", {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
get: function () { return date.CalendarDate; }
|
|
119
|
+
});
|
|
91
120
|
exports.RangeCalendar = rangeCalendar.RangeCalendar;
|
|
92
121
|
exports.RangeCalendarCell = rangeCalendar.RangeCalendarCell;
|
|
93
122
|
exports.RangeCalendarStateWrapper = rangeCalendar.RangeCalendarStateWrapper;
|
|
@@ -106,6 +135,14 @@ exports.TabPanel = tabs.TabPanel;
|
|
|
106
135
|
exports.Tabs = tabs.Tabs;
|
|
107
136
|
exports.TabsVariantContext = tabs.TabsVariantContext;
|
|
108
137
|
exports.useTabsVariantContext = tabs.useTabsVariantContext;
|
|
138
|
+
exports.DateField = dateField.DateField;
|
|
139
|
+
exports.DateInput = dateField.DateInput;
|
|
140
|
+
exports.DatePicker = datePicker.DatePicker;
|
|
141
|
+
exports.DateRangePicker = dateRangePicker.DateRangePicker;
|
|
142
|
+
exports.Checkbox = checkbox.Checkbox;
|
|
143
|
+
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
144
|
+
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
145
|
+
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
109
146
|
exports.Pagination = pagination.Pagination;
|
|
110
147
|
exports.PaginationCursor = paginationCursor.PaginationCursor;
|
|
111
148
|
exports.PaginationItem = paginationItem.PaginationItem;
|
|
@@ -135,41 +172,18 @@ exports.NavbarItem = navbarItem.NavbarItem;
|
|
|
135
172
|
exports.useNavbar = useNavbar.useNavbar;
|
|
136
173
|
exports.NavbarProvider = navbarContext.NavbarProvider;
|
|
137
174
|
exports.useNavbarContext = navbarContext.useNavbarContext;
|
|
138
|
-
exports.
|
|
139
|
-
exports.Description = field.Description;
|
|
140
|
-
exports.FieldError = field.FieldError;
|
|
141
|
-
exports.FieldErrorIcon = field.FieldErrorIcon;
|
|
142
|
-
exports.FieldGroup = field.FieldGroup;
|
|
143
|
-
exports.Label = field.Label;
|
|
144
|
-
exports.ComboBox = comboBox.ComboBox;
|
|
145
|
-
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
146
|
-
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
147
|
-
exports.ComboBoxItem = comboBoxItem.ComboBoxItem;
|
|
148
|
-
exports.ComboBoxVariantContext = comboBoxVariantContext.ComboBoxVariantContext;
|
|
149
|
-
exports.useComboBoxVariantContext = comboBoxVariantContext.useComboBoxVariantContext;
|
|
175
|
+
exports.Avatar = index.Avatar;
|
|
150
176
|
exports.Banner = banner.Banner;
|
|
151
177
|
exports.Badge = badge.Badge;
|
|
152
|
-
Object.defineProperty(exports, "CalendarDate", {
|
|
153
|
-
enumerable: true,
|
|
154
|
-
get: function () { return date.CalendarDate; }
|
|
155
|
-
});
|
|
156
|
-
exports.Calendar = calendar.Calendar;
|
|
157
|
-
exports.CalendarStateWrapper = calendar.CalendarStateWrapper;
|
|
158
|
-
exports.CalendarStyleContext = calendarStyleContext.CalendarStyleContext;
|
|
159
|
-
exports.useCalendarStyleContext = calendarStyleContext.useCalendarStyleContext;
|
|
160
|
-
exports.getEraFormat = utils.getEraFormat;
|
|
161
|
-
exports.useGenerateLocalizedMonths = utils.useGenerateLocalizedMonths;
|
|
162
|
-
exports.useGenerateLocalizedYears = utils.useGenerateLocalizedYears;
|
|
163
|
-
exports.useLocalizedMonthYear = utils.useLocalizedMonthYear;
|
|
164
|
-
exports.DateField = dateField.DateField;
|
|
165
|
-
exports.DateInput = dateField.DateInput;
|
|
166
|
-
exports.DatePicker = datePicker.DatePicker;
|
|
167
|
-
exports.DateRangePicker = dateRangePicker.DateRangePicker;
|
|
168
|
-
exports.Checkbox = checkbox.Checkbox;
|
|
169
|
-
exports.CheckboxGroup = checkbox.CheckboxGroup;
|
|
170
|
-
exports.CheckboxGroupStyleContext = checkboxGroupStyleContext.CheckboxGroupStyleContext;
|
|
171
|
-
exports.useCheckboxGroupStyleContext = checkboxGroupStyleContext.useCheckboxGroupStyleContext;
|
|
172
178
|
Object.defineProperty(exports, "toast", {
|
|
173
179
|
enumerable: true,
|
|
174
180
|
get: function () { return sonner.toast; }
|
|
175
181
|
});
|
|
182
|
+
exports.AvatarContext = avatarContext.AvatarContext;
|
|
183
|
+
exports.useAvatarContext = avatarContext.useAvatarContext;
|
|
184
|
+
exports.AvatarGroup = avatarGroup.AvatarGroup;
|
|
185
|
+
exports.AvatarGroupProvider = avatarGroupContext.AvatarGroupProvider;
|
|
186
|
+
exports.useAvatarGroup = avatarGroupContext.useAvatarGroup;
|
|
187
|
+
exports.AvatarFallback = avatar.AvatarFallback;
|
|
188
|
+
exports.AvatarImage = avatar.AvatarImage;
|
|
189
|
+
exports.AvatarRoot = avatar.AvatarRoot;
|
|
@@ -7,10 +7,10 @@ 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');
|
|
10
|
+
var button = require('../button/button.cjs');
|
|
10
11
|
var i18n = require('./i18n.cjs');
|
|
11
12
|
var modalVariantContext = require('./modal-variant-context.cjs');
|
|
12
13
|
var x = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.cjs');
|
|
13
|
-
var button = require('../button/button.cjs');
|
|
14
14
|
|
|
15
15
|
function ModalContent({
|
|
16
16
|
closeButtonContent: closeButtonContentProp,
|
|
@@ -16,7 +16,7 @@ const NavbarMenu = utils.forwardRef(
|
|
|
16
16
|
const {
|
|
17
17
|
slots,
|
|
18
18
|
isMenuOpen,
|
|
19
|
-
|
|
19
|
+
menuTopOffsetPx,
|
|
20
20
|
classNames,
|
|
21
21
|
setIsMenuOpen,
|
|
22
22
|
domRef: parentRef,
|
|
@@ -46,7 +46,7 @@ const NavbarMenu = utils.forwardRef(
|
|
|
46
46
|
style: {
|
|
47
47
|
...style,
|
|
48
48
|
// @ts-expect-error due to not having any type declaration for CSS variables in React style prop
|
|
49
|
-
"--
|
|
49
|
+
"--menu-offset": menuTopOffsetPx
|
|
50
50
|
},
|
|
51
51
|
onKeyDown: reactAria.chain(handleKeyDown, onKeyDown),
|
|
52
52
|
...props,
|
|
@@ -26,13 +26,14 @@ const NavbarMenuToggle = ({
|
|
|
26
26
|
isMenuOpen,
|
|
27
27
|
setIsMenuOpen,
|
|
28
28
|
menuRef,
|
|
29
|
-
position
|
|
29
|
+
position,
|
|
30
|
+
menuTopOffset
|
|
30
31
|
} = navbarContext.useNavbarContext();
|
|
31
32
|
const shouldScrollToTop = (isMenuOpen2) => {
|
|
32
33
|
if (!isMenuOpen2 || position === "sticky" || typeof window === "undefined") {
|
|
33
34
|
return;
|
|
34
35
|
}
|
|
35
|
-
window.scrollTo({ top:
|
|
36
|
+
window.scrollTo({ top: menuTopOffset, behavior: "instant" });
|
|
36
37
|
};
|
|
37
38
|
const formatMessage = reactAria.useMessageFormatter(i18n.i18nStrings);
|
|
38
39
|
const toggleStyles = $670gB$react.useMemo(() => {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react = require('motion/react');
|
|
6
7
|
var reactAria = require('react-aria');
|
|
7
8
|
var children = require('../system/react-utils/children.cjs');
|
|
8
9
|
var utils = require('../system/utils.cjs');
|
|
@@ -10,6 +11,20 @@ var navbarContext = require('./navbar-context.cjs');
|
|
|
10
11
|
var menu = require('./navbar-menu/menu.cjs');
|
|
11
12
|
var useNavbar = require('./use-navbar.cjs');
|
|
12
13
|
|
|
14
|
+
const showOnScrollUpVariants = {
|
|
15
|
+
visible: {
|
|
16
|
+
y: 0,
|
|
17
|
+
transition: {
|
|
18
|
+
ease: [0, 0, 0.2, 1]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
hidden: {
|
|
22
|
+
y: "-100%",
|
|
23
|
+
transition: {
|
|
24
|
+
ease: [0, 0, 0.2, 1]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
13
28
|
const Navbar = utils.forwardRef((props, ref) => {
|
|
14
29
|
const { children: children$1, ...otherProps } = props;
|
|
15
30
|
const context = useNavbar.useNavbar({ ...otherProps, ref });
|
|
@@ -19,7 +34,16 @@ const Navbar = utils.forwardRef((props, ref) => {
|
|
|
19
34
|
/* @__PURE__ */ jsxRuntime.jsx("header", { ...context.getWrapperProps(), children: childrenWithoutMenu }),
|
|
20
35
|
menu$1
|
|
21
36
|
] });
|
|
22
|
-
return /* @__PURE__ */ jsxRuntime.jsx(navbarContext.NavbarProvider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx(reactAria.FocusScope, { contain: context.isMenuOpen, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
return /* @__PURE__ */ jsxRuntime.jsx(navbarContext.NavbarProvider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx(reactAria.FocusScope, { contain: context.isMenuOpen, children: context.shouldShowOnScrollUp ? /* @__PURE__ */ jsxRuntime.jsx(react.LazyMotion, { features: react.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
react.m.nav,
|
|
39
|
+
{
|
|
40
|
+
animate: context.isNavbarHidden ? "hidden" : "visible",
|
|
41
|
+
initial: "visible",
|
|
42
|
+
variants: showOnScrollUpVariants,
|
|
43
|
+
...reactAria.mergeProps(context.getBaseProps(), context.motionProps),
|
|
44
|
+
children: content
|
|
45
|
+
}
|
|
46
|
+
) }) : /* @__PURE__ */ jsxRuntime.jsx(Component, { ...context.getBaseProps(), children: content }) }) });
|
|
23
47
|
});
|
|
24
48
|
Navbar.displayName = "Navbar";
|
|
25
49
|
|
|
@@ -6,24 +6,30 @@ var $670gB$react = require('react');
|
|
|
6
6
|
var usePreventScroll = require('../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');
|
|
7
7
|
var utils$2 = require('@react-aria/utils');
|
|
8
8
|
var utils$1 = require('@react-stately/utils');
|
|
9
|
-
var useDeepCompare = require('use-deep-compare');
|
|
10
9
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var useScrollPosition = require('../hooks/use-scroll-position.cjs');
|
|
11
11
|
var utils = require('../system/utils.cjs');
|
|
12
12
|
var refs = require('../system/react-utils/refs.cjs');
|
|
13
13
|
|
|
14
|
+
const NAVBAR_PRESENCE_BUFFER = 10;
|
|
14
15
|
function useNavbar(originalProps) {
|
|
15
16
|
const [
|
|
16
17
|
{
|
|
17
18
|
ref,
|
|
18
19
|
as,
|
|
20
|
+
parentRef,
|
|
19
21
|
height = "4rem",
|
|
20
22
|
shouldBlockScroll = true,
|
|
23
|
+
shouldShowOnScrollUp = false,
|
|
24
|
+
disableScrollHandler = false,
|
|
25
|
+
onScrollPositionChange,
|
|
21
26
|
isMenuOpen: isMenuOpenProp,
|
|
22
27
|
isMenuDefaultOpen,
|
|
23
28
|
onMenuOpenChange = () => {
|
|
24
29
|
},
|
|
25
30
|
className,
|
|
26
31
|
classNames,
|
|
32
|
+
motionProps,
|
|
27
33
|
...otherProps
|
|
28
34
|
},
|
|
29
35
|
variantProps
|
|
@@ -31,62 +37,62 @@ function useNavbar(originalProps) {
|
|
|
31
37
|
const Component = as || "nav";
|
|
32
38
|
const domRef = refs.useDomRef(ref);
|
|
33
39
|
const menuRef = $670gB$react.useRef(null);
|
|
34
|
-
const prevWidth = $670gB$react.useRef(0);
|
|
35
|
-
const navHeight = $670gB$react.useRef(0);
|
|
36
40
|
const handleMenuOpenChange = $670gB$react.useCallback(
|
|
37
41
|
(isOpen) => {
|
|
38
42
|
onMenuOpenChange(isOpen || false);
|
|
39
43
|
},
|
|
40
44
|
[onMenuOpenChange]
|
|
41
45
|
);
|
|
46
|
+
const [menuTopOffset, setMenuOffset] = $670gB$react.useState(0);
|
|
47
|
+
const [isNavbarHidden, setIsNavbarHidden] = $670gB$react.useState(false);
|
|
42
48
|
const [isMenuOpen, setIsMenuOpen] = utils$1.useControlledState(
|
|
43
49
|
isMenuOpenProp,
|
|
44
50
|
isMenuDefaultOpen ?? false,
|
|
45
51
|
handleMenuOpenChange
|
|
46
52
|
);
|
|
47
|
-
const updateWidth = $670gB$react.useCallback(() => {
|
|
48
|
-
if (domRef.current) {
|
|
49
|
-
const width = domRef.current.offsetWidth;
|
|
50
|
-
if (width !== prevWidth.current) {
|
|
51
|
-
prevWidth.current = width;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}, [domRef]);
|
|
55
53
|
usePreventScroll.usePreventScroll({
|
|
56
54
|
isDisabled: !(shouldBlockScroll && isMenuOpen)
|
|
57
55
|
});
|
|
58
56
|
utils$2.useResizeObserver({
|
|
59
57
|
ref: domRef,
|
|
60
58
|
onResize: () => {
|
|
61
|
-
|
|
62
|
-
const scrollWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
63
|
-
if (currentWidth && currentWidth + scrollWidth == prevWidth.current) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (currentWidth !== prevWidth.current) {
|
|
67
|
-
updateWidth();
|
|
68
|
-
setIsMenuOpen(false);
|
|
69
|
-
}
|
|
59
|
+
setMenuOffset(domRef.current?.getBoundingClientRect().top || 0);
|
|
70
60
|
}
|
|
71
61
|
});
|
|
62
|
+
const truePosition = variantProps.position ?? "sticky";
|
|
63
|
+
const positionVariantProp = shouldShowOnScrollUp ? "sticky" : truePosition;
|
|
64
|
+
const slots = ouiTheme.navbarStyles({
|
|
65
|
+
...variantProps,
|
|
66
|
+
position: positionVariantProp
|
|
67
|
+
});
|
|
68
|
+
const baseStyles = ouiTheme.cn(classNames?.base, className);
|
|
69
|
+
const navHeight = $670gB$react.useRef(0);
|
|
72
70
|
$670gB$react.useEffect(() => {
|
|
73
|
-
updateWidth();
|
|
74
71
|
navHeight.current = domRef.current?.offsetHeight || 0;
|
|
75
|
-
}, [domRef
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
72
|
+
}, [domRef]);
|
|
73
|
+
useScrollPosition.useScrollPosition({
|
|
74
|
+
elementRef: parentRef,
|
|
75
|
+
isEnabled: shouldShowOnScrollUp || !disableScrollHandler,
|
|
76
|
+
callback: ({ prevPos, currPos }) => {
|
|
77
|
+
onScrollPositionChange?.(currPos.y);
|
|
78
|
+
if (shouldShowOnScrollUp) {
|
|
79
|
+
setIsNavbarHidden((prev) => {
|
|
80
|
+
const next = currPos.y > prevPos.y + NAVBAR_PRESENCE_BUFFER && currPos.y > navHeight.current;
|
|
81
|
+
return next !== prev ? next : prev;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const heightPx = typeof height === "number" ? `${height}px` : height;
|
|
87
|
+
const menuTopOffsetPx = `calc(${heightPx} + ${menuTopOffset}px)`;
|
|
83
88
|
const getBaseProps = (props = {}) => ({
|
|
84
89
|
...utils$2.mergeProps(otherProps, props),
|
|
90
|
+
"data-hidden": ouiTheme.dataAttr(isNavbarHidden),
|
|
85
91
|
"data-menu-open": ouiTheme.dataAttr(isMenuOpen),
|
|
86
92
|
ref: domRef,
|
|
87
93
|
className: slots.base({ class: ouiTheme.cn(baseStyles, props?.className) }),
|
|
88
94
|
style: {
|
|
89
|
-
"--navbar-height":
|
|
95
|
+
"--navbar-height": heightPx,
|
|
90
96
|
...otherProps?.style,
|
|
91
97
|
...props?.style
|
|
92
98
|
}
|
|
@@ -102,14 +108,18 @@ function useNavbar(originalProps) {
|
|
|
102
108
|
Component,
|
|
103
109
|
slots,
|
|
104
110
|
domRef,
|
|
105
|
-
|
|
111
|
+
menuTopOffset,
|
|
112
|
+
menuTopOffsetPx,
|
|
113
|
+
isNavbarHidden,
|
|
114
|
+
shouldShowOnScrollUp: shouldShowOnScrollUp && truePosition === "static",
|
|
106
115
|
isMenuOpen,
|
|
107
116
|
classNames,
|
|
108
117
|
setIsMenuOpen,
|
|
109
118
|
menuRef,
|
|
110
119
|
getBaseProps,
|
|
111
120
|
getWrapperProps,
|
|
112
|
-
position:
|
|
121
|
+
position: positionVariantProp,
|
|
122
|
+
motionProps
|
|
113
123
|
};
|
|
114
124
|
}
|
|
115
125
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var createLucideIcon = require('../createLucideIcon.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @license lucide-react v0.475.0 - ISC
|
|
9
|
+
*
|
|
10
|
+
* This source code is licensed under the ISC license.
|
|
11
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
const __iconNode = [
|
|
16
|
+
["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
|
|
17
|
+
["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
|
|
18
|
+
];
|
|
19
|
+
const User = createLucideIcon.default("User", __iconNode);
|
|
20
|
+
|
|
21
|
+
exports.__iconNode = __iconNode;
|
|
22
|
+
exports.default = User;
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
7
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
+
var button = require('../button/button.cjs');
|
|
9
|
+
var field = require('../field/field.cjs');
|
|
8
10
|
var input = require('../input/input.cjs');
|
|
9
11
|
var utils = require('../system/utils.cjs');
|
|
10
12
|
var minus = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/minus.cjs');
|
|
11
13
|
var plus = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/plus.cjs');
|
|
12
|
-
var field = require('../field/field.cjs');
|
|
13
|
-
var button = require('../button/button.cjs');
|
|
14
14
|
|
|
15
15
|
function NumberField(originalProps) {
|
|
16
16
|
const [
|
|
@@ -8,12 +8,12 @@ var date = require('@internationalized/date');
|
|
|
8
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
9
|
var useDeepCompare = require('use-deep-compare');
|
|
10
10
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
11
|
+
var calendarStyleContext = require('../calendar/calendar-style-context.cjs');
|
|
11
12
|
var agnosticCalendarStateContext = require('../calendar/agnostic-calendar-state-context.cjs');
|
|
12
13
|
var calendarBottomContent = require('../calendar/calendar-bottom-content.cjs');
|
|
13
14
|
var calendarGridHeader = require('../calendar/calendar-grid-header.cjs');
|
|
14
15
|
var calendarHeader = require('../calendar/calendar-header.cjs');
|
|
15
16
|
var utils = require('../system/utils.cjs');
|
|
16
|
-
var calendarStyleContext = require('../calendar/calendar-style-context.cjs');
|
|
17
17
|
|
|
18
18
|
const RangeCalendar = utils.forwardRefGeneric(function RangeCalendar2(originalProps, ref) {
|
|
19
19
|
const [props, variantProps] = utils.mapPropsVariants(
|
|
@@ -6,12 +6,12 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var $670gB$react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var button = require('../button/button.cjs');
|
|
10
|
+
var field = require('../field/field.cjs');
|
|
9
11
|
var popover = require('../popover/popover.cjs');
|
|
10
12
|
var utils = require('../system/utils.cjs');
|
|
11
13
|
var selectVariantContext = require('./select-variant-context.cjs');
|
|
12
|
-
var field = require('../field/field.cjs');
|
|
13
14
|
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');
|
|
14
|
-
var button = require('../button/button.cjs');
|
|
15
15
|
|
|
16
16
|
const calculateEstimatedRowHeight = (size) => {
|
|
17
17
|
switch (size) {
|
|
@@ -6,6 +6,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var $670gB$react = require('react');
|
|
7
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
8
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var field = require('../field/field.cjs');
|
|
9
10
|
var input = require('../input/input.cjs');
|
|
10
11
|
var popover = require('../popover/popover.cjs');
|
|
11
12
|
var tagFieldItem = require('./tag-field-item.cjs');
|
|
@@ -14,7 +15,6 @@ var tagFieldRoot = require('./tag-field-root.cjs');
|
|
|
14
15
|
var tagFieldTagList = require('./tag-field-tag-list.cjs');
|
|
15
16
|
var tagFieldTrigger = require('./tag-field-trigger.cjs');
|
|
16
17
|
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');
|
|
17
|
-
var field = require('../field/field.cjs');
|
|
18
18
|
|
|
19
19
|
function TagField({
|
|
20
20
|
classNames,
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
7
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
-
var textArea = require('../text-area/text-area.cjs');
|
|
9
8
|
var field = require('../field/field.cjs');
|
|
9
|
+
var textArea = require('../text-area/text-area.cjs');
|
|
10
10
|
|
|
11
11
|
function TextAreaField({
|
|
12
12
|
label,
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
7
|
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
|
-
var input = require('../input/input.cjs');
|
|
9
8
|
var field = require('../field/field.cjs');
|
|
9
|
+
var input = require('../input/input.cjs');
|
|
10
10
|
|
|
11
11
|
function TextField({
|
|
12
12
|
label,
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { useMemo, cloneElement } from 'react';
|
|
3
|
+
import { avatarGroupStyles, cn } from '@opengovsg/oui-theme';
|
|
4
|
+
import { getValidChildren } from '../system/react-utils/children.js';
|
|
5
|
+
import { createContext } from '../system/react-utils/context.js';
|
|
6
|
+
import { useDomRef } from '../system/react-utils/refs.js';
|
|
7
|
+
|
|
8
|
+
const [AvatarGroupProvider, useAvatarGroupContext] = createContext({
|
|
9
|
+
name: "AvatarGroupContext",
|
|
10
|
+
strict: false
|
|
11
|
+
});
|
|
12
|
+
function useAvatarGroup(props = {}) {
|
|
13
|
+
const {
|
|
14
|
+
as,
|
|
15
|
+
ref,
|
|
16
|
+
max = 5,
|
|
17
|
+
total,
|
|
18
|
+
size,
|
|
19
|
+
color,
|
|
20
|
+
prominence,
|
|
21
|
+
radius,
|
|
22
|
+
children,
|
|
23
|
+
renderCount,
|
|
24
|
+
className,
|
|
25
|
+
classNames,
|
|
26
|
+
countProps,
|
|
27
|
+
...otherProps
|
|
28
|
+
} = props;
|
|
29
|
+
const domRef = useDomRef(ref);
|
|
30
|
+
const Component = as || "div";
|
|
31
|
+
const context = useMemo(
|
|
32
|
+
() => ({
|
|
33
|
+
size,
|
|
34
|
+
color,
|
|
35
|
+
radius,
|
|
36
|
+
prominence
|
|
37
|
+
}),
|
|
38
|
+
[size, color, radius, prominence]
|
|
39
|
+
);
|
|
40
|
+
const slots = useMemo(
|
|
41
|
+
() => avatarGroupStyles({ className: className ?? classNames?.base }),
|
|
42
|
+
[className, classNames?.base]
|
|
43
|
+
);
|
|
44
|
+
const validChildren = getValidChildren(children);
|
|
45
|
+
const childrenWithinMax = max ? validChildren.slice(0, max) : validChildren;
|
|
46
|
+
const remainingCount = total ? total : max != null ? validChildren.length - max : -1;
|
|
47
|
+
const clones = childrenWithinMax.map((child, index) => {
|
|
48
|
+
return cloneElement(child, {
|
|
49
|
+
// @ts-expect-error: CSS variable is not recognized as a valid style property
|
|
50
|
+
style: {
|
|
51
|
+
"--avatar-zindex": childrenWithinMax.length - index
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
const getAvatarGroupProps = () => {
|
|
56
|
+
return {
|
|
57
|
+
ref: domRef,
|
|
58
|
+
className: slots.base({
|
|
59
|
+
class: cn(classNames?.base, className)
|
|
60
|
+
}),
|
|
61
|
+
role: "group",
|
|
62
|
+
...otherProps
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
const getAvatarGroupCountProps = () => {
|
|
66
|
+
return {
|
|
67
|
+
className: slots.counter({
|
|
68
|
+
class: classNames?.counter
|
|
69
|
+
}),
|
|
70
|
+
...countProps
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
return {
|
|
74
|
+
Component,
|
|
75
|
+
context,
|
|
76
|
+
remainingCount,
|
|
77
|
+
clones,
|
|
78
|
+
renderCount,
|
|
79
|
+
getAvatarGroupProps,
|
|
80
|
+
getAvatarGroupCountProps
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { AvatarGroupProvider, useAvatarGroup, useAvatarGroupContext };
|