@pingux/astro 2.33.0-alpha.5 → 2.33.0-alpha.7

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.
@@ -1,5 +1,5 @@
1
- /// <reference types="react" />
2
- /// <reference types="react" />
1
+ import { Key } from 'react';
2
+ import { AriaLabelingProps, CollectionChildren, DOMProps } from '@react-types/shared';
3
3
  import { LabelProps as ThemeUILabelProps } from 'theme-ui';
4
4
  import { BoxProps } from '../../types';
5
5
  /**
@@ -22,7 +22,29 @@ interface LabelProps extends ThemeUILabelProps {
22
22
  [className: string]: boolean;
23
23
  };
24
24
  }
25
- interface ControlProps<T> extends React.HTMLAttributes<T> {
25
+ export interface FieldControlInputProps extends AriaLabelingProps, DOMProps {
26
+ autoComplete?: string;
27
+ autoCorrect?: string;
28
+ autoFocus?: boolean;
29
+ className?: string;
30
+ defaultSelected?: boolean;
31
+ defaultValue?: string | number;
32
+ disabled?: boolean;
33
+ id?: string;
34
+ isFocused?: boolean;
35
+ isIndeterminate?: boolean;
36
+ maxLength?: number;
37
+ name?: string;
38
+ onChange: (event: CustomChangeEventType | React.ChangeEvent) => void | undefined;
39
+ placeholder?: string;
40
+ readOnly?: boolean;
41
+ required?: boolean;
42
+ role?: string;
43
+ spellCheck?: boolean;
44
+ type?: string;
45
+ value?: string | number;
46
+ }
47
+ export interface ControlProps extends React.HTMLAttributes<Element> {
26
48
  statusClasses?: {
27
49
  [className: string]: boolean;
28
50
  };
@@ -31,14 +53,14 @@ export interface UseFieldProps<T> {
31
53
  autocomplete?: string;
32
54
  autoComplete?: string;
33
55
  autoCorrect?: string;
34
- children?: React.ReactNode;
56
+ children?: React.ReactNode | CollectionChildren<T>;
35
57
  className?: string;
36
58
  containerProps?: ContainerProps;
37
- controlProps?: ControlProps<T>;
59
+ controlProps?: ControlProps;
38
60
  defaultText?: string;
39
61
  defaultValue?: string | number;
40
62
  direction?: string;
41
- disabledKeys?: string[];
63
+ disabledKeys?: string[] | Iterable<Key>;
42
64
  hasAutoFocus?: boolean;
43
65
  hasNoStatusIndicator?: boolean;
44
66
  helperText?: string;
@@ -62,7 +84,7 @@ export interface UseFieldProps<T> {
62
84
  onFocus?: (e: React.FocusEvent) => void;
63
85
  onFocusChange?: (isFocused: boolean) => void;
64
86
  onLoadMore?: () => void;
65
- onOpenChange?: () => void;
87
+ onOpenChange?: (isOpen: boolean) => unknown;
66
88
  onSelectionChange?: (key: string) => void;
67
89
  placeholder?: string | number;
68
90
  role?: string;
@@ -84,32 +106,7 @@ type CustomChangeEventType = {
84
106
  };
85
107
  declare const useField: <T>(props: UseFieldProps<T>) => {
86
108
  fieldContainerProps: any;
87
- fieldControlInputProps: {
88
- 'aria-label'?: string | undefined;
89
- 'aria-labelledby'?: string | undefined;
90
- 'aria-describedby'?: string | undefined;
91
- 'aria-details'?: string | undefined;
92
- id: string | undefined;
93
- autoComplete: string | undefined;
94
- autoCorrect: string | undefined;
95
- autoFocus: boolean | undefined;
96
- className: string;
97
- defaultSelected: boolean | undefined;
98
- defaultValue: string | number | undefined;
99
- disabled: boolean | undefined;
100
- isFocused: boolean;
101
- isIndeterminate: boolean | undefined;
102
- maxLength: number | undefined;
103
- name: string | undefined;
104
- onChange: (e: CustomChangeEventType) => any;
105
- placeholder: string | number | undefined;
106
- readOnly: boolean | undefined;
107
- required: boolean | undefined;
108
- role: string | undefined;
109
- spellCheck: string | undefined;
110
- type: string | undefined;
111
- value: string | number | undefined;
112
- };
109
+ fieldControlInputProps: FieldControlInputProps;
113
110
  fieldControlWrapperProps: {
114
111
  id?: string | undefined;
115
112
  statusClasses?: {
@@ -120,6 +117,7 @@ declare const useField: <T>(props: UseFieldProps<T>) => {
120
117
  isDisabled?: boolean | undefined;
121
118
  variant?: string | undefined;
122
119
  as?: string | number | boolean | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | import("react").ReactPortal | import("react").ComponentClass<any, any> | import("react").FunctionComponent<any> | null | undefined;
120
+ style?: string | import("react").CSSProperties | undefined;
123
121
  grid?: import("theme-ui").StylePropertyValue<import("csstype").Property.Grid | undefined>;
124
122
  accentColor?: import("theme-ui").StylePropertyValue<import("csstype").Property.AccentColor | undefined>;
125
123
  alignContent?: import("theme-ui").StylePropertyValue<import("csstype").Property.AlignContent | undefined>;
@@ -1118,7 +1116,7 @@ declare const useField: <T>(props: UseFieldProps<T>) => {
1118
1116
  color?: string | undefined;
1119
1117
  content?: string | undefined;
1120
1118
  translate?: "yes" | "no" | undefined;
1121
- key?: import("react").Key | null | undefined;
1119
+ key?: Key | null | undefined;
1122
1120
  defaultChecked?: boolean | undefined;
1123
1121
  defaultValue?: string | number | readonly string[] | undefined;
1124
1122
  suppressContentEditableWarning?: boolean | undefined;
@@ -1433,7 +1431,7 @@ declare const useField: <T>(props: UseFieldProps<T>) => {
1433
1431
  color?: string | undefined;
1434
1432
  content?: string | undefined;
1435
1433
  translate?: "yes" | "no" | undefined;
1436
- key?: import("react").Key | null | undefined;
1434
+ key?: Key | null | undefined;
1437
1435
  defaultChecked?: boolean | undefined;
1438
1436
  defaultValue?: string | number | readonly string[] | undefined;
1439
1437
  suppressContentEditableWarning?: boolean | undefined;
@@ -25,7 +25,7 @@ var _constants = require("../../components/Label/constants");
25
25
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
26
26
  var _ariaAttributes = require("../../utils/docUtils/ariaAttributes");
27
27
  var _ = require("..");
28
- var _excluded = ["autocomplete", "autoComplete", "autoCorrect", "className", "containerProps", "controlProps", "defaultValue", "hasAutoFocus", "hasNoStatusIndicator", "hintText", "id", "isDefaultSelected", "isDisabled", "isIndeterminate", "isReadOnly", "isRequired", "isRestrictiveMultivalues", "label", "labelMode", "labelProps", "maxLength", "name", "onBlur", "onChange", "onFocus", "placeholder", "role", "spellCheck", "status", "statusClasses", "type", "value", "wrapperProps"];
28
+ var _excluded = ["autocomplete", "autoComplete", "autoCorrect", "className", "containerProps", "controlProps", "defaultValue", "hasAutoFocus", "hasNoStatusIndicator", "hintText", "id", "isDefaultSelected", "isDisabled", "isIndeterminate", "isReadOnly", "isRequired", "isRestrictiveMultivalues", "label", "labelMode", "labelProps", "maxLength", "name", "onBlur", "onChange", "onFocus", "placeholder", "role", "spellCheck", "status", "statusClasses", "type", "value", "wrapperProps"]; // eslint-disable-next-line import/no-unresolved
29
29
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
31
31
  /**
@@ -0,0 +1 @@
1
+ export { default } from './usePropWarning';
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ interface UsePropWarning {
3
+ /**
4
+ * Provides a development-only console warning for props that we don't want consumers to use
5
+ * @param {Object} props - The whole props object
6
+ * @param {String} propToWarn - Specify prop to warn not to use
7
+ * @param {String} propToUse - Specify prop that should be used instead
8
+ * @param {Boolean} [allowDuplicates] - If allow duplicate warning messages
9
+ */
10
+ (props: React.ComponentProps<React.ComponentType>, propToWarn: string, propToUse: string, allowDuplicates?: boolean): void;
11
+ }
12
+ declare const usePropWarning: UsePropWarning;
13
+ export default usePropWarning;
@@ -10,14 +10,6 @@ var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
10
10
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
11
11
  var _react = require("react");
12
12
  var alreadyShown = new _set["default"]();
13
-
14
- /**
15
- * Provides a development-only console warning for props that we don't want consumers to use
16
- * @param {Object} props - The whole props object
17
- * @param {String} propToWarn - Specify prop to warn not to use
18
- * @param {String} propToUse - Specify prop that should be used instead
19
- * @param {Boolean} [allowDuplicates] - If allow duplicate warning messages
20
- */
21
13
  var usePropWarning = function usePropWarning(props, propToWarn, propToUse, allowDuplicates) {
22
14
  (0, _react.useEffect)(function () {
23
15
  if (!allowDuplicates && alreadyShown.has(propToWarn)) {
@@ -7,7 +7,7 @@ describe('usePropWarning', function () {
7
7
  beforeEach(function () {
8
8
  process.env.NODE_ENV = 'development';
9
9
  global.console.warn = function () {
10
- return jest.mock();
10
+ return jest.fn();
11
11
  }; // eslint-disable-line no-console
12
12
  });
13
13
 
@@ -16,8 +16,9 @@ describe('usePropWarning', function () {
16
16
  jest.clearAllMocks();
17
17
  });
18
18
  test('default', function () {
19
- var props = {};
20
- props.disabled = true;
19
+ var props = {
20
+ disabled: true
21
+ };
21
22
  var spy = jest.spyOn(console, 'warn');
22
23
  expect(spy).not.toHaveBeenCalled();
23
24
  (0, _reactHooks.renderHook)(function () {
@@ -26,8 +27,9 @@ describe('usePropWarning', function () {
26
27
  expect(spy).toHaveBeenCalledTimes(1);
27
28
  });
28
29
  test('does not warn if prop does not exist', function () {
29
- var props = {};
30
- props.isDisabled = true;
30
+ var props = {
31
+ isDisabled: true
32
+ };
31
33
  var spy = jest.spyOn(console, 'warn');
32
34
  expect(spy).not.toHaveBeenCalled();
33
35
  (0, _reactHooks.renderHook)(function () {
@@ -36,8 +38,9 @@ describe('usePropWarning', function () {
36
38
  expect(spy).not.toHaveBeenCalled();
37
39
  });
38
40
  test('showns duplicated messages if explicitly allowed', function () {
39
- var props = {};
40
- props.disabled = true;
41
+ var props = {
42
+ disabled: true
43
+ };
41
44
  var spy = jest.spyOn(console, 'warn');
42
45
  (0, _reactHooks.renderHook)(function () {
43
46
  return (0, _usePropWarning["default"])(props, 'disabled', 'isDisabled', true);
@@ -49,8 +52,9 @@ describe('usePropWarning', function () {
49
52
  });
50
53
  test('does not warn if it is in production environment', function () {
51
54
  process.env.NODE_ENV = 'production';
52
- var props = {};
53
- props.disabled = true;
55
+ var props = {
56
+ disabled: true
57
+ };
54
58
  var spy = jest.spyOn(console, 'warn');
55
59
  expect(spy).not.toHaveBeenCalled();
56
60
  (0, _reactHooks.renderHook)(function () {
@@ -0,0 +1 @@
1
+ export { default } from './useSelectField';
@@ -0,0 +1,55 @@
1
+ import React, { DOMAttributes, Key } from 'react';
2
+ import { AriaButtonProps } from 'react-aria';
3
+ import { SelectState } from 'react-stately';
4
+ import { CollectionChildren } from '@react-types/shared';
5
+ import { LabelProps as ThemeUILabelProps } from 'theme-ui';
6
+ import { Axis, BoxProps, FocusableElement, PlacementAxis, ReactRef, StyleProps } from '../../types';
7
+ import { FieldControlInputProps } from '../useField/useField';
8
+ interface UseSelectFieldProps<T> {
9
+ children: CollectionChildren<T>;
10
+ align?: PlacementAxis;
11
+ defaultSelectedKey?: string;
12
+ defaultText?: string;
13
+ direction?: Axis;
14
+ disabledKeys?: Iterable<Key>;
15
+ hasNoEmptySelection?: boolean;
16
+ isDefaultOpen?: boolean;
17
+ isDisabled?: boolean;
18
+ isLoading?: boolean;
19
+ isNotFlippable?: boolean;
20
+ isOpen?: boolean;
21
+ isReadOnly?: boolean;
22
+ isRequired?: boolean;
23
+ items?: Iterable<T>;
24
+ label?: string;
25
+ listboxStyle?: React.CSSProperties;
26
+ name?: string;
27
+ placeholder?: string;
28
+ selectedKey?: string;
29
+ onLoadMore?: () => unknown;
30
+ onOpenChange?: (isOpen: boolean) => unknown;
31
+ onSelectionChange?: (key: Key) => unknown;
32
+ controlProps?: React.HTMLAttributes<Element>;
33
+ scrollBoxProps?: BoxProps;
34
+ listBoxProps?: BoxProps;
35
+ labelProps?: ThemeUILabelProps;
36
+ containerProps?: BoxProps;
37
+ labelMode: 'default' | 'float' | 'left';
38
+ }
39
+ interface UseSelectFieldReturnProps {
40
+ columnStyleProps: StyleProps;
41
+ fieldContainerProps: BoxProps;
42
+ fieldControlInputProps: FieldControlInputProps;
43
+ fieldControlWrapperProps: BoxProps;
44
+ fieldLabelProps: ThemeUILabelProps;
45
+ isLoadingInitial?: boolean;
46
+ listBoxRef: ReactRef;
47
+ overlay: React.ReactNode;
48
+ popoverRef: ReactRef;
49
+ state: SelectState<object>;
50
+ triggerProps: AriaButtonProps<'button'>;
51
+ triggerRef: ReactRef;
52
+ valueProps: DOMAttributes<FocusableElement>;
53
+ }
54
+ declare const useSelectField: <T extends object>(props: UseSelectFieldProps<T>, ref: ReactRef) => UseSelectFieldReturnProps;
55
+ export default useSelectField;
@@ -24,7 +24,7 @@ var _reactAria = require("react-aria");
24
24
  var _reactStately = require("react-stately");
25
25
  var _utils = require("@react-aria/utils");
26
26
  var _constants = require("../../components/Label/constants");
27
- var _ListBox = _interopRequireDefault(require("../../components/ListBox"));
27
+ var _ListBox = _interopRequireDefault(require("../../components/ListBox/ListBox"));
28
28
  var _PopoverContainer = _interopRequireDefault(require("../../components/PopoverContainer"));
29
29
  var _ScrollBox = _interopRequireDefault(require("../../components/ScrollBox"));
30
30
  var _ = require("..");
@@ -32,7 +32,7 @@ var _react2 = require("@emotion/react");
32
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
33
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
34
34
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; } // eslint-disable-next-line import/no-unresolved
36
36
  var useSelectField = function useSelectField(props, ref) {
37
37
  var _context;
38
38
  var align = props.align,
@@ -64,8 +64,7 @@ var useSelectField = function useSelectField(props, ref) {
64
64
  // We use falsy booleans as defaults, but React Aria has this as true by default so we need to
65
65
  // negate this.
66
66
  var shouldFlip = !isNotFlippable;
67
- var selectProps = _objectSpread({
68
- children: children,
67
+ var selectProps = _objectSpread(_objectSpread({
69
68
  defaultSelectedKey: defaultSelectedKey,
70
69
  defaultText: defaultText,
71
70
  disabledKeys: disabledKeys,
@@ -87,13 +86,14 @@ var useSelectField = function useSelectField(props, ref) {
87
86
  disallowEmptySelection: disallowEmptySelection,
88
87
  // must match React Aria API
89
88
  shouldFlip: shouldFlip
90
- }, controlProps);
89
+ }, controlProps), {}, {
90
+ children: children
91
+ });
91
92
  // Create state based on the incoming props
92
93
  var state = (0, _reactStately.useSelectState)(selectProps);
93
94
  var popoverRef = (0, _react.useRef)();
94
- var triggerRef = (0, _react.useRef)();
95
95
  var listBoxRef = (0, _react.useRef)();
96
-
96
+ var triggerRef = (0, _react.useRef)();
97
97
  /* istanbul ignore next */
98
98
  (0, _react.useImperativeHandle)(ref, function () {
99
99
  return triggerRef.current;
@@ -120,7 +120,7 @@ var useSelectField = function useSelectField(props, ref) {
120
120
  placeholder: props.labelMode === _constants.modes.FLOAT ? '' : placeholder,
121
121
  labelProps: _objectSpread(_objectSpread({}, props.labelProps), labelProps),
122
122
  containerProps: _objectSpread({
123
- isFloatLabelActive: state.selectedItem
123
+ isFloatLabelActive: !!state.selectedItem
124
124
  }, props.containerProps)
125
125
  })),
126
126
  fieldContainerProps = _useField.fieldContainerProps,
@@ -152,7 +152,7 @@ var useSelectField = function useSelectField(props, ref) {
152
152
  }, [state.isOpen, updatePosition]);
153
153
 
154
154
  // Measure the width of the input to inform the width of the listbox (below).
155
- var _useState = (0, _react.useState)(null),
155
+ var _useState = (0, _react.useState)(0),
156
156
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
157
157
  buttonWidth = _useState2[0],
158
158
  setButtonWidth = _useState2[1];
@@ -161,7 +161,7 @@ var useSelectField = function useSelectField(props, ref) {
161
161
  if (triggerRef.current) {
162
162
  setButtonWidth(triggerRef.current.offsetWidth);
163
163
  }
164
- }, [triggerRef, setButtonWidth, state.isOpen]);
164
+ }, [triggerRef, setButtonWidth]);
165
165
  (0, _utils.useResizeObserver)({
166
166
  ref: triggerRef,
167
167
  onResize: onResize
@@ -1,17 +1,14 @@
1
- import { CSSProperties, ElementType } from 'react';
1
+ import { ElementType } from 'react';
2
2
  import type { ItemProps } from '@react-types/shared';
3
3
  import { DOMAttributes, StyleProps } from './shared';
4
- export interface StylingProps extends DOMAttributes, StyleProps {
5
- style?: CSSProperties | string;
6
- }
7
4
  declare module '@react-types/shared' {
8
5
  interface ItemProps<T> extends StyleProps, DOMAttributes {
9
6
  /** The rendered label for the item. */
10
7
  label?: string;
11
8
  /** Props for the accordion item content element. */
12
- regionProps?: StylingProps;
9
+ regionProps?: StyleProps;
13
10
  /** Props for the accordion item content element. */
14
- containerProps?: StylingProps;
11
+ containerProps?: StyleProps;
15
12
  /** Whether the item has a separator */
16
13
  isSeparator?: boolean;
17
14
  /** Whether the item is pressed */
@@ -23,7 +20,7 @@ declare module '@react-types/shared' {
23
20
  /** A URL to link to if elementType="a". */
24
21
  href?: string;
25
22
  /** Inline styling prop for item */
26
- sx?: StylingProps;
23
+ sx?: StyleProps;
27
24
  }
28
25
  }
29
26
  export default ItemProps;
@@ -16,6 +16,7 @@ export interface PopoverContainerProps extends StylePropsExtended, DOMAttributes
16
16
  isKeyboardDismissDisabled?: boolean;
17
17
  isNonModal?: boolean;
18
18
  isDismissable?: boolean;
19
+ isOpen?: boolean;
19
20
  }
20
21
  export interface PopoverWrapperProps extends PopoverContainerProps {
21
22
  isOpen?: boolean;
@@ -8,4 +8,10 @@ export interface StyleProps extends ThemeUICSSProperties, SxProp {
8
8
  variant?: string;
9
9
  /** The base HTML tag name or React component type to render */
10
10
  as?: string | React.ReactNode | React.ElementType;
11
+ /** Inline style object that allows you to directly apply CSS styles to the element. */
12
+ style?: React.CSSProperties | string;
11
13
  }
14
+ export type Placement = 'bottom' | 'bottom left' | 'bottom right' | 'bottom start' | 'bottom end' | 'top' | 'top left' | 'top right' | 'top start' | 'top end' | 'left' | 'left top' | 'left bottom' | 'start' | 'start top' | 'start bottom' | 'right' | 'right top' | 'right bottom' | 'end' | 'end top' | 'end bottom';
15
+ export type Axis = 'top' | 'bottom' | 'left' | 'right';
16
+ export type SizeAxis = 'width' | 'height';
17
+ export type PlacementAxis = Axis | 'center';
@@ -15,6 +15,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
15
15
  import { useEffect, useState } from 'react';
16
16
  import { mergeProps, useFocusRing, useLabel } from 'react-aria';
17
17
  import { useFocusWithin } from '@react-aria/interactions';
18
+ // eslint-disable-next-line import/no-unresolved
19
+
18
20
  import noop from 'lodash/noop';
19
21
  import omit from 'lodash/omit';
20
22
  import { modes as labelModes } from '../../components/Label/constants';
@@ -2,14 +2,6 @@ import _Set from "@babel/runtime-corejs3/core-js-stable/set";
2
2
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
3
3
  import { useEffect } from 'react';
4
4
  var alreadyShown = new _Set();
5
-
6
- /**
7
- * Provides a development-only console warning for props that we don't want consumers to use
8
- * @param {Object} props - The whole props object
9
- * @param {String} propToWarn - Specify prop to warn not to use
10
- * @param {String} propToUse - Specify prop that should be used instead
11
- * @param {Boolean} [allowDuplicates] - If allow duplicate warning messages
12
- */
13
5
  var usePropWarning = function usePropWarning(props, propToWarn, propToUse, allowDuplicates) {
14
6
  useEffect(function () {
15
7
  if (!allowDuplicates && alreadyShown.has(propToWarn)) {
@@ -4,7 +4,7 @@ describe('usePropWarning', function () {
4
4
  beforeEach(function () {
5
5
  process.env.NODE_ENV = 'development';
6
6
  global.console.warn = function () {
7
- return jest.mock();
7
+ return jest.fn();
8
8
  }; // eslint-disable-line no-console
9
9
  });
10
10
 
@@ -13,8 +13,9 @@ describe('usePropWarning', function () {
13
13
  jest.clearAllMocks();
14
14
  });
15
15
  test('default', function () {
16
- var props = {};
17
- props.disabled = true;
16
+ var props = {
17
+ disabled: true
18
+ };
18
19
  var spy = jest.spyOn(console, 'warn');
19
20
  expect(spy).not.toHaveBeenCalled();
20
21
  renderHook(function () {
@@ -23,8 +24,9 @@ describe('usePropWarning', function () {
23
24
  expect(spy).toHaveBeenCalledTimes(1);
24
25
  });
25
26
  test('does not warn if prop does not exist', function () {
26
- var props = {};
27
- props.isDisabled = true;
27
+ var props = {
28
+ isDisabled: true
29
+ };
28
30
  var spy = jest.spyOn(console, 'warn');
29
31
  expect(spy).not.toHaveBeenCalled();
30
32
  renderHook(function () {
@@ -33,8 +35,9 @@ describe('usePropWarning', function () {
33
35
  expect(spy).not.toHaveBeenCalled();
34
36
  });
35
37
  test('showns duplicated messages if explicitly allowed', function () {
36
- var props = {};
37
- props.disabled = true;
38
+ var props = {
39
+ disabled: true
40
+ };
38
41
  var spy = jest.spyOn(console, 'warn');
39
42
  renderHook(function () {
40
43
  return usePropWarning(props, 'disabled', 'isDisabled', true);
@@ -46,8 +49,9 @@ describe('usePropWarning', function () {
46
49
  });
47
50
  test('does not warn if it is in production environment', function () {
48
51
  process.env.NODE_ENV = 'production';
49
- var props = {};
50
- props.disabled = true;
52
+ var props = {
53
+ disabled: true
54
+ };
51
55
  var spy = jest.spyOn(console, 'warn');
52
56
  expect(spy).not.toHaveBeenCalled();
53
57
  renderHook(function () {
@@ -16,8 +16,10 @@ import React, { useCallback, useImperativeHandle, useLayoutEffect, useRef, useSt
16
16
  import { DismissButton, FocusScope, useOverlayPosition, useSelect } from 'react-aria';
17
17
  import { useSelectState } from 'react-stately';
18
18
  import { useResizeObserver } from '@react-aria/utils';
19
+ // eslint-disable-next-line import/no-unresolved
20
+
19
21
  import { modes } from '../../components/Label/constants';
20
- import ListBox from '../../components/ListBox';
22
+ import ListBox from '../../components/ListBox/ListBox';
21
23
  import PopoverContainer from '../../components/PopoverContainer';
22
24
  import ScrollBox from '../../components/ScrollBox';
23
25
  import { useColumnStyles, useDeprecationWarning, useField } from '..';
@@ -53,8 +55,7 @@ var useSelectField = function useSelectField(props, ref) {
53
55
  // We use falsy booleans as defaults, but React Aria has this as true by default so we need to
54
56
  // negate this.
55
57
  var shouldFlip = !isNotFlippable;
56
- var selectProps = _objectSpread({
57
- children: children,
58
+ var selectProps = _objectSpread(_objectSpread({
58
59
  defaultSelectedKey: defaultSelectedKey,
59
60
  defaultText: defaultText,
60
61
  disabledKeys: disabledKeys,
@@ -76,13 +77,14 @@ var useSelectField = function useSelectField(props, ref) {
76
77
  disallowEmptySelection: disallowEmptySelection,
77
78
  // must match React Aria API
78
79
  shouldFlip: shouldFlip
79
- }, controlProps);
80
+ }, controlProps), {}, {
81
+ children: children
82
+ });
80
83
  // Create state based on the incoming props
81
84
  var state = useSelectState(selectProps);
82
85
  var popoverRef = useRef();
83
- var triggerRef = useRef();
84
86
  var listBoxRef = useRef();
85
-
87
+ var triggerRef = useRef();
86
88
  /* istanbul ignore next */
87
89
  useImperativeHandle(ref, function () {
88
90
  return triggerRef.current;
@@ -109,7 +111,7 @@ var useSelectField = function useSelectField(props, ref) {
109
111
  placeholder: props.labelMode === modes.FLOAT ? '' : placeholder,
110
112
  labelProps: _objectSpread(_objectSpread({}, props.labelProps), labelProps),
111
113
  containerProps: _objectSpread({
112
- isFloatLabelActive: state.selectedItem
114
+ isFloatLabelActive: !!state.selectedItem
113
115
  }, props.containerProps)
114
116
  })),
115
117
  fieldContainerProps = _useField.fieldContainerProps,
@@ -141,7 +143,7 @@ var useSelectField = function useSelectField(props, ref) {
141
143
  }, [state.isOpen, updatePosition]);
142
144
 
143
145
  // Measure the width of the input to inform the width of the listbox (below).
144
- var _useState = useState(null),
146
+ var _useState = useState(0),
145
147
  _useState2 = _slicedToArray(_useState, 2),
146
148
  buttonWidth = _useState2[0],
147
149
  setButtonWidth = _useState2[1];
@@ -150,7 +152,7 @@ var useSelectField = function useSelectField(props, ref) {
150
152
  if (triggerRef.current) {
151
153
  setButtonWidth(triggerRef.current.offsetWidth);
152
154
  }
153
- }, [triggerRef, setButtonWidth, state.isOpen]);
155
+ }, [triggerRef, setButtonWidth]);
154
156
  useResizeObserver({
155
157
  ref: triggerRef,
156
158
  onResize: onResize
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.33.0-alpha.5",
3
+ "version": "2.33.0-alpha.7",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",