@box/blueprint-web 17.12.3 → 17.13.1

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 (35) hide show
  1. package/dist/lib-esm/components.css +349 -693
  2. package/dist/lib-esm/date-picker/date-picker.js +23 -5
  3. package/dist/lib-esm/index.css +349 -693
  4. package/dist/lib-esm/navigation-menu/navigation-menu-content.js +0 -1
  5. package/dist/lib-esm/navigation-menu/navigation-menu-link.js +0 -1
  6. package/dist/lib-esm/navigation-menu/navigation-menu.module.js +1 -1
  7. package/dist/lib-esm/primitives/context-menu/context-menu-item.js +1 -2
  8. package/dist/lib-esm/primitives/context-menu/context-menu-menu-content.js +0 -2
  9. package/dist/lib-esm/primitives/context-menu/context-menu-menu-header.js +0 -1
  10. package/dist/lib-esm/primitives/context-menu/context-menu-sub-menu-content.js +0 -2
  11. package/dist/lib-esm/primitives/context-menu/context-menu.module.js +1 -1
  12. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu-checkbox-item.js +5 -9
  13. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu-content.js +0 -2
  14. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu-header.js +2 -6
  15. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu-item.js +2 -2
  16. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu-radio-select-item.js +5 -9
  17. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-content.js +0 -2
  18. package/dist/lib-esm/primitives/dropdown-menu/dropdown-menu.module.js +1 -1
  19. package/dist/lib-esm/primitives/menu-combobox/menu-combobox-content.js +0 -1
  20. package/dist/lib-esm/primitives/menu-combobox/menu-combobox-empty.js +1 -1
  21. package/dist/lib-esm/primitives/menu-combobox/menu-combobox-header.js +1 -3
  22. package/dist/lib-esm/primitives/menu-combobox/menu-combobox-search.js +2 -4
  23. package/dist/lib-esm/primitives/menu-combobox/menu-combobox.module.js +1 -1
  24. package/dist/lib-esm/toolbar/toolbar-button.js +0 -1
  25. package/dist/lib-esm/toolbar/toolbar-dropdown-indicator.js +2 -4
  26. package/dist/lib-esm/toolbar/toolbar-input.js +0 -1
  27. package/dist/lib-esm/toolbar/toolbar-link.js +0 -1
  28. package/dist/lib-esm/toolbar/toolbar-root.js +1 -6
  29. package/dist/lib-esm/toolbar/toolbar-text-toggle-item.js +0 -1
  30. package/dist/lib-esm/toolbar/toolbar-toggle-group.js +0 -1
  31. package/dist/lib-esm/toolbar/toolbar-toggle-item.js +0 -1
  32. package/dist/lib-esm/toolbar/toolbar.module.js +1 -1
  33. package/dist/lib-esm/util-components/menu-item-sections/menu-item-sections.js +0 -2
  34. package/dist/lib-esm/util-components/menu-item-sections/menu-item-sections.module.js +1 -1
  35. package/package.json +3 -3
@@ -70,6 +70,7 @@ const DatePicker = /*#__PURE__*/forwardRef((props, forwardedRef) => {
70
70
  });
71
71
  const dateInputRef = useRef(null);
72
72
  const calendarButtonRef = useRef(null);
73
+ const groupRef = useRef(null);
73
74
  const shouldFocusStayInInput = useRef(autoFocus && isCalendarOpen);
74
75
  const focusFirstDateSegment = useCallback(() => {
75
76
  dateInputRef.current?.querySelector('[role="spinbutton"]')?.focus();
@@ -108,6 +109,23 @@ const DatePicker = /*#__PURE__*/forwardRef((props, forwardedRef) => {
108
109
  setIsCalendarOpen(true);
109
110
  shouldFocusStayInInput.current = true;
110
111
  }, [setIsCalendarOpen]);
112
+ const onDateInputKeyDownCapture = useCallback(event => {
113
+ if (event.key !== 'Enter' || !isCalendarOpen) {
114
+ return;
115
+ }
116
+ const {
117
+ target
118
+ } = event;
119
+ if (!(target instanceof HTMLElement) || target.getAttribute('role') !== 'spinbutton') {
120
+ return;
121
+ }
122
+ event.preventDefault();
123
+ shouldFocusStayInInput.current = true;
124
+ setIsCalendarOpen(false);
125
+ }, [isCalendarOpen, setIsCalendarOpen]);
126
+ const onGroupFocusCapture = useCallback(() => {
127
+ shouldFocusStayInInput.current = true;
128
+ }, []);
111
129
  const hasError = !!error && !isDisabled;
112
130
  const calendarKey = `${internalValue?.day}/${internalValue?.month}/${internalValue?.year}${internalValue?.era}`;
113
131
  const onOpenAutoFocus = useCallback(e => {
@@ -135,11 +153,8 @@ const DatePicker = /*#__PURE__*/forwardRef((props, forwardedRef) => {
135
153
  calendarButtonRef.current?.focus();
136
154
  }
137
155
  }, [focusFirstDateSegment]);
138
- const onFocusOutside = useCallback(e => {
139
- const wasCalendarButtonPressed = calendarButtonRef.current && calendarButtonRef.current.contains(e.target);
140
- if (!wasCalendarButtonPressed) {
141
- e.preventDefault();
142
- }
156
+ const onFocusOutside = useCallback(event => {
157
+ event.preventDefault();
143
158
  }, []);
144
159
  const displayValue = value !== undefined ? value : internalValue;
145
160
  const Label = useLabelable(label, '');
@@ -171,8 +186,10 @@ const DatePicker = /*#__PURE__*/forwardRef((props, forwardedRef) => {
171
186
  }), jsx(RadixPopover.Anchor, {
172
187
  asChild: true,
173
188
  children: jsxs(Group, {
189
+ ref: groupRef,
174
190
  className: clsx(styles.group),
175
191
  "data-target-id": rest.dataTargetId,
192
+ onFocusCapture: onGroupFocusCapture,
176
193
  children: [jsx("div", {
177
194
  ref: dateInputRef,
178
195
  className: clsx(styles.groupContainer, {
@@ -181,6 +198,7 @@ const DatePicker = /*#__PURE__*/forwardRef((props, forwardedRef) => {
181
198
  "data-bp-animated": isAnimationEnabled ? 'true' : 'false',
182
199
  "data-testid": "date-picker-input",
183
200
  onClickCapture: onDateInputClick,
201
+ onKeyDownCapture: onDateInputKeyDownCapture,
184
202
  children: jsx(DateInput, {
185
203
  className: clsx(styles.groupContainerInput),
186
204
  children: segment => jsx(DateSegment, {