@preply/ds-web-core 0.48.0 → 0.49.0

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 (48) hide show
  1. package/dist/accessibility/aria/types.d.ts +8 -0
  2. package/dist/accessibility/aria/types.js +2 -0
  3. package/dist/accessibility/aria/utils.d.ts +2 -2
  4. package/dist/accessibility/aria/utils.js +1 -1
  5. package/dist/field/hooks/useTextField.d.ts +8 -4
  6. package/dist/field/hooks/useTextField.js +8 -5
  7. package/dist/field/types.d.ts +31 -11
  8. package/dist/generated/breakpoints.less +1 -1
  9. package/dist/generated/options.less +3 -3
  10. package/dist/generated/tokens.less +16 -3
  11. package/dist/icon/index.d.ts +1 -0
  12. package/dist/icon/index.js +2 -0
  13. package/dist/icon/types.d.ts +10 -0
  14. package/dist/icon/types.js +2 -0
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.js +4 -2
  17. package/dist/input/index.d.ts +2 -1
  18. package/dist/input/index.js +3 -2
  19. package/dist/input/options.d.ts +1 -1
  20. package/dist/input/options.js +1 -1
  21. package/dist/input/private/types.d.ts +103 -0
  22. package/dist/input/private/types.js +2 -0
  23. package/dist/input/private/utils.d.ts +9 -0
  24. package/dist/input/private/utils.js +87 -0
  25. package/dist/input/types.d.ts +38 -100
  26. package/dist/input/utils/getInputProps.d.ts +3 -0
  27. package/dist/input/utils/getInputProps.js +14 -0
  28. package/dist/input/{util.d.ts → utils/useForcedRef.d.ts} +0 -0
  29. package/dist/input/utils/useForcedRef.js +11 -0
  30. package/dist/layout/hooks/useLayoutFlexClassNames.js +11 -3
  31. package/dist/layout/hooks/useLayoutGridClassNames.js +11 -3
  32. package/dist/layout/index.d.ts +1 -0
  33. package/dist/layout/index.js +2 -1
  34. package/dist/layout/module-layout-relative/hooks/useLayoutRelativeClassnames.d.ts +3 -0
  35. package/dist/layout/module-layout-relative/hooks/useLayoutRelativeClassnames.js +14 -0
  36. package/dist/layout/module-layout-relative/index.d.ts +1 -0
  37. package/dist/layout/module-layout-relative/index.js +2 -0
  38. package/dist/layout/module-layout-relative/style/index.module.less +5 -0
  39. package/dist/layout/module-layout-relative/style/index.module.less.js +9 -0
  40. package/dist/layout/module-layout-relative/style/mixins.less +5 -0
  41. package/dist/layout/module-layout-relative/style/mixins.less.js +8 -0
  42. package/dist/svg/index.d.ts +1 -0
  43. package/dist/svg/index.js +2 -0
  44. package/dist/svg/types.d.ts +2 -0
  45. package/dist/svg/types.js +2 -0
  46. package/dist/theme/style/declarations.mixins.less +5 -0
  47. package/package.json +6 -6
  48. package/dist/input/util.js +0 -11
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export declare type ARIAAttributeNames = 'aria-describedby' | 'aria-disabled' | 'aria-invalid' | 'aria-required';
3
+ declare type WithRequired<T, K extends keyof T> = T & {
4
+ [P in K]-?: T[P];
5
+ };
6
+ export declare type ARIAInputPropsMap = WithRequired<ARIAInputProps, ARIAAttributeNames>;
7
+ export declare type ARIAInputProps = Pick<React.HTMLAttributes<HTMLInputElement>, ARIAAttributeNames>;
8
+ export {};
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import type { InputCommonProps } from '../../input';
2
+ import { InputCommonProps } from '../../input/private/types';
3
3
  export declare const makeDescId: (id: string) => string;
4
- export declare const getAriaProps: ({ "aria-describedby": ariaDescribedBy, "aria-disabled": ariaDisabled, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, required, disabled, hasError, }: InputCommonProps) => Pick<import("react").HTMLAttributes<HTMLInputElement>, "aria-describedby" | "aria-disabled" | "aria-invalid" | "aria-required">;
4
+ export declare const getAriaProps: ({ "aria-describedby": ariaDescribedBy, "aria-disabled": ariaDisabled, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, required, disabled, hasError, }: InputCommonProps) => Pick<import("react").HTMLAttributes<HTMLInputElement>, import("./types").ARIAAttributeNames>;
@@ -19,4 +19,4 @@ const getAriaProps = ({ 'aria-describedby': ariaDescribedBy, 'aria-disabled': ar
19
19
  };
20
20
 
21
21
  export { getAriaProps, makeDescId };
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2Nlc3NpYmlsaXR5L2FyaWEvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBUklBSW5wdXRQcm9wcywgQVJJQUlucHV0UHJvcHNNYXAsIElucHV0Q29tbW9uUHJvcHMgfSBmcm9tICcuLi8uLi9pbnB1dCc7XG5cbmNvbnN0IFNVRklYID0gJy1kZXNjJztcblxuY29uc3QgcmVtb3ZlRmFsc3lQcm9wZXJ0aWVzID0gKHByb3BzOiBBUklBSW5wdXRQcm9wc01hcCk6IEFSSUFJbnB1dFByb3BzID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocHJvcHMpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKHByb3BzW2tleV0pIHtcbiAgICAgICAgICAgIGFjY1trZXldID0gcHJvcHNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYWtlRGVzY0lkID0gKGlkOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCR7aWR9JHtTVUZJWH1gO1xuXG5leHBvcnQgY29uc3QgZ2V0QXJpYVByb3BzID0gKHtcbiAgICAnYXJpYS1kZXNjcmliZWRieSc6IGFyaWFEZXNjcmliZWRCeSxcbiAgICAnYXJpYS1kaXNhYmxlZCc6IGFyaWFEaXNhYmxlZCxcbiAgICAnYXJpYS1pbnZhbGlkJzogYXJpYUludmFsaWQsXG4gICAgJ2FyaWEtcmVxdWlyZWQnOiBhcmlhUmVxdWlyZWQsXG4gICAgcmVxdWlyZWQsXG4gICAgZGlzYWJsZWQsXG4gICAgaGFzRXJyb3IsXG59OiBJbnB1dENvbW1vblByb3BzKTogQVJJQUlucHV0UHJvcHMgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGFyaWFEZXNjcmliZWRCeSB8fCAnJyxcbiAgICAgICAgJ2FyaWEtZGlzYWJsZWQnOiAhIWFyaWFEaXNhYmxlZCB8fCAhIWRpc2FibGVkLFxuICAgICAgICAnYXJpYS1pbnZhbGlkJzogISFhcmlhSW52YWxpZCB8fCAhIWhhc0Vycm9yLFxuICAgICAgICAnYXJpYS1yZXF1aXJlZCc6ICEhYXJpYVJlcXVpcmVkIHx8ICEhcmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHJldHVybiByZW1vdmVGYWxzeVByb3BlcnRpZXMocHJvcHMpO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFFdEIsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQXdCO0lBQ25ELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRztRQUN0QyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNaLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLEdBQUcsQ0FBQztLQUNkLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7TUFFVyxVQUFVLEdBQUcsQ0FBQyxFQUFVLEtBQWEsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHO01BRXJELFlBQVksR0FBRyxDQUFDLEVBQ3pCLGtCQUFrQixFQUFFLGVBQWUsRUFDbkMsZUFBZSxFQUFFLFlBQVksRUFDN0IsY0FBYyxFQUFFLFdBQVcsRUFDM0IsZUFBZSxFQUFFLFlBQVksRUFDN0IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEdBQ087SUFDZixNQUFNLEtBQUssR0FBRztRQUNWLGtCQUFrQixFQUFFLGVBQWUsSUFBSSxFQUFFO1FBQ3pDLGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxRQUFRO1FBQzdDLGNBQWMsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxRQUFRO1FBQzNDLGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxRQUFRO0tBQ2hELENBQUM7SUFFRixPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDOzs7OyJ9
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2Nlc3NpYmlsaXR5L2FyaWEvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRDb21tb25Qcm9wcyB9IGZyb20gJy4uLy4uL2lucHV0L3ByaXZhdGUvdHlwZXMnO1xuXG5pbXBvcnQgeyBBUklBSW5wdXRQcm9wcywgQVJJQUlucHV0UHJvcHNNYXAgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgU1VGSVggPSAnLWRlc2MnO1xuXG5jb25zdCByZW1vdmVGYWxzeVByb3BlcnRpZXMgPSAocHJvcHM6IEFSSUFJbnB1dFByb3BzTWFwKTogQVJJQUlucHV0UHJvcHMgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhwcm9wcykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBpZiAocHJvcHNba2V5XSkge1xuICAgICAgICAgICAgYWNjW2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufTtcblxuZXhwb3J0IGNvbnN0IG1ha2VEZXNjSWQgPSAoaWQ6IHN0cmluZyk6IHN0cmluZyA9PiBgJHtpZH0ke1NVRklYfWA7XG5cbmV4cG9ydCBjb25zdCBnZXRBcmlhUHJvcHMgPSAoe1xuICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogYXJpYURlc2NyaWJlZEJ5LFxuICAgICdhcmlhLWRpc2FibGVkJzogYXJpYURpc2FibGVkLFxuICAgICdhcmlhLWludmFsaWQnOiBhcmlhSW52YWxpZCxcbiAgICAnYXJpYS1yZXF1aXJlZCc6IGFyaWFSZXF1aXJlZCxcbiAgICByZXF1aXJlZCxcbiAgICBkaXNhYmxlZCxcbiAgICBoYXNFcnJvcixcbn06IElucHV0Q29tbW9uUHJvcHMpOiBBUklBSW5wdXRQcm9wcyA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogYXJpYURlc2NyaWJlZEJ5IHx8ICcnLFxuICAgICAgICAnYXJpYS1kaXNhYmxlZCc6ICEhYXJpYURpc2FibGVkIHx8ICEhZGlzYWJsZWQsXG4gICAgICAgICdhcmlhLWludmFsaWQnOiAhIWFyaWFJbnZhbGlkIHx8ICEhaGFzRXJyb3IsXG4gICAgICAgICdhcmlhLXJlcXVpcmVkJzogISFhcmlhUmVxdWlyZWQgfHwgISFyZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbW92ZUZhbHN5UHJvcGVydGllcyhwcm9wcyk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUV0QixNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBd0I7SUFDbkQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHO1FBQ3RDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1osR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ2QsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQztNQUVXLFVBQVUsR0FBRyxDQUFDLEVBQVUsS0FBYSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUc7TUFFckQsWUFBWSxHQUFHLENBQUMsRUFDekIsa0JBQWtCLEVBQUUsZUFBZSxFQUNuQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixjQUFjLEVBQUUsV0FBVyxFQUMzQixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsR0FDTztJQUNmLE1BQU0sS0FBSyxHQUFHO1FBQ1Ysa0JBQWtCLEVBQUUsZUFBZSxJQUFJLEVBQUU7UUFDekMsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFFBQVE7UUFDN0MsY0FBYyxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFFBQVE7UUFDM0MsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFFBQVE7S0FDaEQsQ0FBQztJQUVGLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEM7Ozs7In0=
@@ -1,8 +1,12 @@
1
- import { SimpleTextInputTypeProps } from '../../input';
2
- import { FieldLayoutProps, TextFieldProps } from '../types';
1
+ import type { InputTextProps } from '../../input';
2
+ import type { FieldLayoutProps } from '../types';
3
3
  declare type UseTextFieldState = {
4
4
  layoutProps: Omit<FieldLayoutProps, 'input' | 'className' | 'inputHandle'>;
5
- inputProps: SimpleTextInputTypeProps;
5
+ inputProps: InputTextProps;
6
6
  };
7
- export declare const useTextField: (props: TextFieldProps & Pick<SimpleTextInputTypeProps, "required" | "disabled" | "hasError" | "dataset" | "aria-describedby" | "aria-disabled" | "aria-invalid" | "aria-required" | "type" | "autoComplete" | "placeholder" | "maxLength" | "name" | "value" | "defaultValue" | "onChange" | "onFocus" | "onBlur" | "onClick" | "onKeyDown" | "onKeyUp">) => UseTextFieldState;
7
+ export declare const useTextField: (props: import("../types").SingleLineFieldCommonProps & Pick<InputTextProps, "required" | "disabled" | "hasError" | "dataset" | "autoComplete" | "placeholder" | "maxLength" | "name" | "value" | "defaultValue" | "onChange" | "onFocus" | "onBlur" | "onClick" | "onKeyDown" | "onKeyUp" | "onValueChange"> & {
8
+ id?: string | undefined;
9
+ } & {
10
+ type?: "email" | "tel" | "url" | "text" | "search" | undefined;
11
+ } & Pick<InputTextProps, "required" | "disabled" | "hasError" | "dataset" | "type" | "aria-describedby" | "aria-disabled" | "aria-invalid" | "aria-required" | "autoComplete" | "placeholder" | "maxLength" | "name" | "value" | "defaultValue" | "onChange" | "onFocus" | "onBlur" | "onClick" | "onKeyDown" | "onKeyUp" | "onValueChange">) => UseTextFieldState;
8
12
  export {};
@@ -2,9 +2,10 @@ import { makeTinyId } from '@preply/ds-core';
2
2
  import { useState } from 'react';
3
3
  import { makeDescId } from '../../accessibility/aria/utils.js';
4
4
  import { FIELD_TYPE_DEFAULT } from '../constants.js';
5
+ import { AUTO_COMPLETE_TEXT_DEFAULT } from '../../input/constants.js';
5
6
 
6
7
  const useTextField = (props) => {
7
- const { type, id, value, label, hideLabel, additionalText, preserveSpace, required, disabled, hasError, errorMessage, icon, button, onFocus, onBlur, onChange, dataset, ...rest } = props;
8
+ const { type, id, value, label, hideLabel, preserveSpace, required, requiredLabel, additionalText, disabled, hasError, errorMessage, icon, button, onFocus, onBlur, onChange, autoComplete = AUTO_COMPLETE_TEXT_DEFAULT, inputDataset, dataset, ...rest } = props;
8
9
  const actualId = id || makeTinyId();
9
10
  const actualType = type !== null && type !== void 0 ? type : FIELD_TYPE_DEFAULT;
10
11
  const [isFocused, setIsFocused] = useState(false);
@@ -31,15 +32,16 @@ const useTextField = (props) => {
31
32
  id: actualId,
32
33
  label,
33
34
  hideLabel,
34
- additionalText: actualAdditionalText,
35
35
  required,
36
+ requiredLabel,
37
+ additionalText: actualAdditionalText,
38
+ preserveSpace,
36
39
  disabled,
37
40
  isFocused,
38
41
  isTouched,
39
42
  isChanged,
40
43
  hasValue: typeof value !== undefined,
41
44
  hasError: actualHasError,
42
- preserveSpace,
43
45
  icon,
44
46
  button,
45
47
  dataset,
@@ -48,13 +50,14 @@ const useTextField = (props) => {
48
50
  type: actualType,
49
51
  id: actualId,
50
52
  value,
51
- // assitiveText: hideVisualLabel ?? label : undefined,
52
53
  onChange: handleChange,
53
54
  onFocus: handleFocus,
54
55
  onBlur: handleBlur,
55
56
  required,
56
57
  disabled,
57
58
  hasError: actualHasError,
59
+ autoComplete,
60
+ dataset: inputDataset,
58
61
  'aria-describedby': describeId,
59
62
  ...rest,
60
63
  },
@@ -62,4 +65,4 @@ const useTextField = (props) => {
62
65
  };
63
66
 
64
67
  export { useTextField };
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dEZpZWxkLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGQvaG9va3MvdXNlVGV4dEZpZWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VUaW55SWQgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnRIYW5kbGVyLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgbWFrZURlc2NJZCB9IGZyb20gJy4uLy4uL2FjY2Vzc2liaWxpdHkvYXJpYS91dGlscyc7XG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL2V2ZW50cyc7XG5pbXBvcnQgeyBTaW1wbGVUZXh0SW5wdXRUeXBlUHJvcHMgfSBmcm9tICcuLi8uLi9pbnB1dCc7XG5pbXBvcnQgeyBGSUVMRF9UWVBFX0RFRkFVTFQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRmllbGRMYXlvdXRQcm9wcywgVGV4dEZpZWxkUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgVXNlVGV4dEZpZWxkU3RhdGUgPSB7XG4gICAgbGF5b3V0UHJvcHM6IE9taXQ8RmllbGRMYXlvdXRQcm9wcywgJ2lucHV0JyB8ICdjbGFzc05hbWUnIHwgJ2lucHV0SGFuZGxlJz47XG4gICAgaW5wdXRQcm9wczogU2ltcGxlVGV4dElucHV0VHlwZVByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRGaWVsZCA9IChcbiAgICBwcm9wczogVGV4dEZpZWxkUHJvcHMgJiBPbWl0PFNpbXBsZVRleHRJbnB1dFR5cGVQcm9wcywgJ2lkJz4sXG4pOiBVc2VUZXh0RmllbGRTdGF0ZSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICB0eXBlLFxuICAgICAgICBpZCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGxhYmVsLFxuICAgICAgICBoaWRlTGFiZWwsXG4gICAgICAgIGFkZGl0aW9uYWxUZXh0LFxuICAgICAgICBwcmVzZXJ2ZVNwYWNlLFxuICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIGhhc0Vycm9yLFxuICAgICAgICBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGljb24sXG4gICAgICAgIGJ1dHRvbixcbiAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgb25CbHVyLFxuICAgICAgICBvbkNoYW5nZSxcbiAgICAgICAgZGF0YXNldCxcbiAgICAgICAgLi4ucmVzdFxuICAgIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IGFjdHVhbElkID0gaWQgfHwgbWFrZVRpbnlJZCgpO1xuICAgIGNvbnN0IGFjdHVhbFR5cGUgPSB0eXBlID8/IEZJRUxEX1RZUEVfREVGQVVMVDtcblxuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gICAgY29uc3QgW2lzVG91Y2hlZCwgc2V0SXNUb3VjaGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBjb25zdCBbaXNDaGFuZ2VkLCBzZXRJc0NoYW5nZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0ZvY3VzZWQodHJ1ZSk7XG4gICAgICAgIHNldElzVG91Y2hlZCh0cnVlKTtcbiAgICAgICAgb25Gb2N1cz8uKGV2KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXIgPSBldiA9PiB7XG4gICAgICAgIHNldElzRm9jdXNlZChmYWxzZSk7XG4gICAgICAgIG9uQmx1cj8uKGV2KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXIgPSBldiA9PiB7XG4gICAgICAgIHNldElzQ2hhbmdlZChmYWxzZSk7XG4gICAgICAgIG9uQ2hhbmdlPy4oZXYpO1xuICAgIH07XG5cbiAgICBjb25zdCBhY3R1YWxIYXNFcnJvciA9IGhhc0Vycm9yIHx8ICEhZXJyb3JNZXNzYWdlO1xuICAgIGNvbnN0IGFjdHVhbEFkZGl0aW9uYWxUZXh0ID0gZXJyb3JNZXNzYWdlIHx8IGFkZGl0aW9uYWxUZXh0O1xuICAgIGNvbnN0IGRlc2NyaWJlSWQgPSBhY3R1YWxIYXNFcnJvciB8fCAhIWFkZGl0aW9uYWxUZXh0ID8gbWFrZURlc2NJZChhY3R1YWxJZCkgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBsYXlvdXRQcm9wczoge1xuICAgICAgICAgICAgaWQ6IGFjdHVhbElkLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBoaWRlTGFiZWwsXG4gICAgICAgICAgICBhZGRpdGlvbmFsVGV4dDogYWN0dWFsQWRkaXRpb25hbFRleHQsXG4gICAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgaXNGb2N1c2VkLFxuICAgICAgICAgICAgaXNUb3VjaGVkLFxuICAgICAgICAgICAgaXNDaGFuZ2VkLFxuICAgICAgICAgICAgaGFzVmFsdWU6IHR5cGVvZiB2YWx1ZSAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgaGFzRXJyb3I6IGFjdHVhbEhhc0Vycm9yLFxuICAgICAgICAgICAgcHJlc2VydmVTcGFjZSxcbiAgICAgICAgICAgIGljb24sXG4gICAgICAgICAgICBidXR0b24sXG4gICAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICB9LFxuICAgICAgICBpbnB1dFByb3BzOiB7XG4gICAgICAgICAgICB0eXBlOiBhY3R1YWxUeXBlLFxuICAgICAgICAgICAgaWQ6IGFjdHVhbElkLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAvLyBhc3NpdGl2ZVRleHQ6IGhpZGVWaXN1YWxMYWJlbCA/PyBsYWJlbCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyxcbiAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlQmx1cixcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBoYXNFcnJvcjogYWN0dWFsSGFzRXJyb3IsXG4gICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlSWQsXG4gICAgICAgICAgICAuLi5yZXN0LFxuICAgICAgICB9LFxuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O01BY2EsWUFBWSxHQUFHLENBQ3hCLEtBQTREO0lBRTVELE1BQU0sRUFDRixJQUFJLEVBQ0osRUFBRSxFQUNGLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUNULGNBQWMsRUFDZCxhQUFhLEVBQ2IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxFQUNQLEdBQUcsSUFBSSxFQUNWLEdBQUcsS0FBSyxDQUFDO0lBRVYsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLGtCQUFrQixDQUFDO0lBRTlDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTNELE1BQU0sV0FBVyxHQUFzQixFQUFFO1FBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQXNCLEVBQUU7UUFDcEMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUF1QixFQUFFO1FBQ3ZDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUcsRUFBRSxFQUFFO0tBQ2xCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNsRCxNQUFNLG9CQUFvQixHQUFHLFlBQVksSUFBSSxjQUFjLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUV6RixPQUFPO1FBQ0gsV0FBVyxFQUFFO1lBQ1QsRUFBRSxFQUFFLFFBQVE7WUFDWixLQUFLO1lBQ0wsU0FBUztZQUNULGNBQWMsRUFBRSxvQkFBb0I7WUFDcEMsUUFBUTtZQUNSLFFBQVE7WUFDUixTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxRQUFRLEVBQUUsT0FBTyxLQUFLLEtBQUssU0FBUztZQUNwQyxRQUFRLEVBQUUsY0FBYztZQUN4QixhQUFhO1lBQ2IsSUFBSTtZQUNKLE1BQU07WUFDTixPQUFPO1NBQ1Y7UUFDRCxVQUFVLEVBQUU7WUFDUixJQUFJLEVBQUUsVUFBVTtZQUNoQixFQUFFLEVBQUUsUUFBUTtZQUNaLEtBQUs7O1lBRUwsUUFBUSxFQUFFLFlBQVk7WUFDdEIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsUUFBUTtZQUNSLFFBQVE7WUFDUixRQUFRLEVBQUUsY0FBYztZQUN4QixrQkFBa0IsRUFBRSxVQUFVO1lBQzlCLEdBQUcsSUFBSTtTQUNWO0tBQ0osQ0FBQztBQUNOOzs7OyJ9
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dEZpZWxkLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGQvaG9va3MvdXNlVGV4dEZpZWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VUaW55SWQgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnRIYW5kbGVyLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgbWFrZURlc2NJZCB9IGZyb20gJy4uLy4uL2FjY2Vzc2liaWxpdHkvYXJpYS91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEZvY3VzRXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgSW5wdXRUZXh0UHJvcHMgfSBmcm9tICcuLi8uLi9pbnB1dCc7XG5pbXBvcnQgeyBBVVRPX0NPTVBMRVRFX1RFWFRfREVGQVVMVCB9IGZyb20gJy4uLy4uL2lucHV0JztcbmltcG9ydCB7IEZJRUxEX1RZUEVfREVGQVVMVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IEZpZWxkTGF5b3V0UHJvcHMsIFRleHRGaWVsZFByb3BzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIFVzZVRleHRGaWVsZFN0YXRlID0ge1xuICAgIGxheW91dFByb3BzOiBPbWl0PEZpZWxkTGF5b3V0UHJvcHMsICdpbnB1dCcgfCAnY2xhc3NOYW1lJyB8ICdpbnB1dEhhbmRsZSc+O1xuICAgIGlucHV0UHJvcHM6IElucHV0VGV4dFByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRGaWVsZCA9IChcbiAgICBwcm9wczogVGV4dEZpZWxkUHJvcHMgJiBPbWl0PElucHV0VGV4dFByb3BzLCAnaWQnPixcbik6IFVzZVRleHRGaWVsZFN0YXRlID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGlkLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIGhpZGVMYWJlbCxcbiAgICAgICAgcHJlc2VydmVTcGFjZSxcbiAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgIHJlcXVpcmVkTGFiZWwsXG4gICAgICAgIGFkZGl0aW9uYWxUZXh0LFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgaGFzRXJyb3IsXG4gICAgICAgIGVycm9yTWVzc2FnZSxcbiAgICAgICAgaWNvbixcbiAgICAgICAgYnV0dG9uLFxuICAgICAgICBvbkZvY3VzLFxuICAgICAgICBvbkJsdXIsXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICBhdXRvQ29tcGxldGUgPSBBVVRPX0NPTVBMRVRFX1RFWFRfREVGQVVMVCxcbiAgICAgICAgaW5wdXREYXRhc2V0LFxuICAgICAgICBkYXRhc2V0LFxuICAgICAgICAuLi5yZXN0XG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgYWN0dWFsSWQgPSBpZCB8fCBtYWtlVGlueUlkKCk7XG4gICAgY29uc3QgYWN0dWFsVHlwZSA9IHR5cGUgPz8gRklFTERfVFlQRV9ERUZBVUxUO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gICAgY29uc3QgW2lzVG91Y2hlZCwgc2V0SXNUb3VjaGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBjb25zdCBbaXNDaGFuZ2VkLCBzZXRJc0NoYW5nZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0ZvY3VzZWQodHJ1ZSk7XG4gICAgICAgIHNldElzVG91Y2hlZCh0cnVlKTtcbiAgICAgICAgb25Gb2N1cz8uKGV2KTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpO1xuICAgICAgICBvbkJsdXI/Lihldik7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlciA9IGV2ID0+IHtcbiAgICAgICAgc2V0SXNDaGFuZ2VkKGZhbHNlKTtcbiAgICAgICAgb25DaGFuZ2U/Lihldik7XG4gICAgfTtcblxuICAgIGNvbnN0IGFjdHVhbEhhc0Vycm9yID0gaGFzRXJyb3IgfHwgISFlcnJvck1lc3NhZ2U7XG4gICAgY29uc3QgYWN0dWFsQWRkaXRpb25hbFRleHQgPSBlcnJvck1lc3NhZ2UgfHwgYWRkaXRpb25hbFRleHQ7XG4gICAgY29uc3QgZGVzY3JpYmVJZCA9IGFjdHVhbEhhc0Vycm9yIHx8ICEhYWRkaXRpb25hbFRleHQgPyBtYWtlRGVzY0lkKGFjdHVhbElkKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxheW91dFByb3BzOiB7XG4gICAgICAgICAgICBpZDogYWN0dWFsSWQsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGhpZGVMYWJlbCxcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgcmVxdWlyZWRMYWJlbCxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxUZXh0OiBhY3R1YWxBZGRpdGlvbmFsVGV4dCxcbiAgICAgICAgICAgIHByZXNlcnZlU3BhY2UsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGlzRm9jdXNlZCxcbiAgICAgICAgICAgIGlzVG91Y2hlZCxcbiAgICAgICAgICAgIGlzQ2hhbmdlZCxcbiAgICAgICAgICAgIGhhc1ZhbHVlOiB0eXBlb2YgdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGhhc0Vycm9yOiBhY3R1YWxIYXNFcnJvcixcbiAgICAgICAgICAgIGljb24sXG4gICAgICAgICAgICBidXR0b24sXG4gICAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICB9LFxuICAgICAgICBpbnB1dFByb3BzOiB7XG4gICAgICAgICAgICB0eXBlOiBhY3R1YWxUeXBlLFxuICAgICAgICAgICAgaWQ6IGFjdHVhbElkLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLFxuICAgICAgICAgICAgb25Gb2N1czogaGFuZGxlRm9jdXMsXG4gICAgICAgICAgICBvbkJsdXI6IGhhbmRsZUJsdXIsXG4gICAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgaGFzRXJyb3I6IGFjdHVhbEhhc0Vycm9yLFxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlLFxuICAgICAgICAgICAgZGF0YXNldDogaW5wdXREYXRhc2V0LFxuICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZUlkLFxuICAgICAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7TUFlYSxZQUFZLEdBQUcsQ0FDeEIsS0FBa0Q7SUFFbEQsTUFBTSxFQUNGLElBQUksRUFDSixFQUFFLEVBQ0YsS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDUixhQUFhLEVBQ2IsY0FBYyxFQUNkLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEVBQ1IsWUFBWSxHQUFHLDBCQUEwQixFQUN6QyxZQUFZLEVBQ1osT0FBTyxFQUNQLEdBQUcsSUFBSSxFQUNWLEdBQUcsS0FBSyxDQUFDO0lBRVYsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLGtCQUFrQixDQUFDO0lBQzlDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTNELE1BQU0sV0FBVyxHQUFzQixFQUFFO1FBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQXNCLEVBQUU7UUFDcEMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUF1QixFQUFFO1FBQ3ZDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUcsRUFBRSxFQUFFO0tBQ2xCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNsRCxNQUFNLG9CQUFvQixHQUFHLFlBQVksSUFBSSxjQUFjLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUV6RixPQUFPO1FBQ0gsV0FBVyxFQUFFO1lBQ1QsRUFBRSxFQUFFLFFBQVE7WUFDWixLQUFLO1lBQ0wsU0FBUztZQUNULFFBQVE7WUFDUixhQUFhO1lBQ2IsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxhQUFhO1lBQ2IsUUFBUTtZQUNSLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFFBQVEsRUFBRSxPQUFPLEtBQUssS0FBSyxTQUFTO1lBQ3BDLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLElBQUk7WUFDSixNQUFNO1lBQ04sT0FBTztTQUNWO1FBQ0QsVUFBVSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsRUFBRSxFQUFFLFFBQVE7WUFDWixLQUFLO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsUUFBUTtZQUNSLFFBQVE7WUFDUixRQUFRLEVBQUUsY0FBYztZQUN4QixZQUFZO1lBQ1osT0FBTyxFQUFFLFlBQVk7WUFDckIsa0JBQWtCLEVBQUUsVUFBVTtZQUM5QixHQUFHLElBQUk7U0FDVjtLQUNKLENBQUM7QUFDTjs7OzsifQ==
@@ -1,8 +1,20 @@
1
- import { Dataset } from '@preply/ds-core';
2
- import { MouseEventHandler, ReactNode, SVGAttributes } from 'react';
3
- import { InputType, SimpleTextInputType, SingleLineInputType } from '../input';
1
+ import type { Dataset } from '@preply/ds-core';
2
+ import type { MouseEventHandler, ReactNode } from 'react';
3
+ import { IconProps } from '../icon/types';
4
+ import type { CombinableInputProps, InputType, SimpleTextInputType, SingleLineInputType } from '../input/private/types';
5
+ import type { InputTextProps } from '../input/types';
6
+ import { ReactSVGComponentType } from '../svg/types';
4
7
  export declare type FieldValue = string | number | boolean;
5
- declare type ReactSVGComponentType = React.ComponentType<SVGAttributes<SVGElement>>;
8
+ /**
9
+ * <Field*> auxiliary component
10
+ */
11
+ export interface FieldLabelProps {
12
+ id: string;
13
+ label?: string;
14
+ hideLabel?: boolean;
15
+ required?: boolean;
16
+ requiredLabel?: string;
17
+ }
6
18
  export interface FieldButtonProps {
7
19
  svg: ReactSVGComponentType;
8
20
  assistiveText: string;
@@ -14,9 +26,10 @@ export interface FieldLayoutBaseProps {
14
26
  className?: string;
15
27
  label: string;
16
28
  hideLabel?: boolean;
29
+ required?: boolean;
30
+ requiredLabel?: string;
17
31
  additionalText?: string;
18
32
  preserveSpace?: boolean;
19
- required?: boolean;
20
33
  disabled?: boolean;
21
34
  isFocused?: boolean;
22
35
  isTouched?: boolean;
@@ -27,12 +40,12 @@ export interface FieldLayoutBaseProps {
27
40
  children: ReactNode;
28
41
  }
29
42
  export interface InputImperativeHandle {
30
- focus: () => void;
43
+ setFocus: () => void;
31
44
  }
32
45
  export interface FieldLayoutProps extends Omit<FieldLayoutBaseProps, 'children'> {
33
46
  input: React.ReactElement;
34
47
  inputHandle: InputImperativeHandle | null;
35
- icon?: ReactSVGComponentType;
48
+ icon?: React.ReactElement<IconProps>;
36
49
  button?: React.ReactElement<FieldButtonProps>;
37
50
  }
38
51
  export declare type FieldAdditionalTextVariant = 'normal' | 'error';
@@ -41,10 +54,14 @@ export interface FieldAdditionalTextProps {
41
54
  id?: string;
42
55
  children: ReactNode;
43
56
  }
57
+ /**
58
+ * <Field*>
59
+ */
44
60
  interface FieldCommonProps {
45
61
  type?: InputType;
46
62
  id?: string;
47
63
  label: string;
64
+ requiredLabel?: string;
48
65
  hideLabel?: boolean;
49
66
  additionalText?: string;
50
67
  preserveSpace?: boolean;
@@ -53,12 +70,15 @@ interface FieldCommonProps {
53
70
  dataset?: Dataset;
54
71
  inputDataset?: Dataset;
55
72
  }
56
- interface SingleLineFieldCommonProps extends FieldCommonProps {
73
+ export interface SingleLineFieldCommonProps extends FieldCommonProps {
57
74
  type?: SingleLineInputType;
58
- icon?: ReactSVGComponentType;
75
+ icon?: React.ReactElement<IconProps>;
59
76
  button?: React.ReactElement<FieldButtonProps>;
60
77
  }
61
- export interface TextFieldProps extends SingleLineFieldCommonProps {
78
+ /**
79
+ * public <*Field> props
80
+ */
81
+ export declare type TextFieldProps = SingleLineFieldCommonProps & CombinableInputProps<InputTextProps> & {
62
82
  type?: SimpleTextInputType;
63
- }
83
+ };
64
84
  export {};
@@ -1,4 +1,4 @@
1
- /* AUTO GENERATED @Fri Dec 02 2022 15:15:52 GMT+0000 (Coordinated Universal Time) */
1
+ /* AUTO GENERATED @Fri Dec 16 2022 13:10:31 GMT+0000 (Coordinated Universal Time) */
2
2
 
3
3
  @breakpoints: {
4
4
  narrow-l: 400px;
@@ -1,4 +1,4 @@
1
- /* AUTO GENERATED @Fri Dec 02 2022 15:15:51 GMT+0000 (Coordinated Universal Time) */
1
+ /* AUTO GENERATED @Fri Dec 16 2022 13:10:30 GMT+0000 (Coordinated Universal Time) */
2
2
 
3
3
  @AVATAR_SIZE_OPTIONS: 2xs, xs, s, m, l, xl;
4
4
  @BOX_PADDING_OPTIONS: none, 3xs, 2xs, xs, s, m, l, xl;
@@ -30,8 +30,8 @@
30
30
  @TEXT_INLINE_TAG_OPTIONS: span, strong, em;
31
31
  @TEXT_SIZE_OPTIONS: 2xs, xs, s, m, l, xl;
32
32
  @TEXT_TAG_OPTIONS: p, div, span;
33
- @TEXT_VARIANT_OPTIONS: xs, s, s-italic, s-medium, s-medium-italic, s-bold, s-bold-italic, m,
34
- m-italic, m-medium, m-medium-italic, m-bold, m-bold-italic, l, l-italic, l-medium,
33
+ @TEXT_VARIANT_OPTIONS: xs, xs-medium, s, s-italic, s-medium, s-medium-italic, s-bold, s-bold-italic,
34
+ m, m-italic, m-medium, m-medium-italic, m-bold, m-bold-italic, l, l-italic, l-medium,
35
35
  l-medium-italic, xl, xl-italic, xl-medium, xl-medium-italic;
36
36
  @TEXT_WEIGHT_OPTIONS: 400, 500, 700, normal, medium, bold;
37
37
  @THEME_OPTIONS: bold-ui, base-ui, preply-ui;
@@ -1,4 +1,4 @@
1
- /* AUTO GENERATED @Fri Dec 02 2022 15:15:52 GMT+0000 (Coordinated Universal Time) */
1
+ /* AUTO GENERATED @Fri Dec 16 2022 13:10:30 GMT+0000 (Coordinated Universal Time) */
2
2
 
3
3
  @scheme-color: var(--aface6);
4
4
  @scheme-bgColor: var(--786b9e);
@@ -87,12 +87,16 @@
87
87
  @root-text-base-lineHeight: var(--d4313c);
88
88
  @background-primary: var(--7271a6);
89
89
  @background-secondary: var(--5836cb);
90
+ @background-error: var(--4ae8c9);
90
91
  @background-overlay: var(--410fb7);
91
92
  @content-primary-color: var(--e41135);
92
93
  @content-secondary-color: var(--3d280d);
93
94
  @content-branded-color: var(--4dadf3);
94
95
  @content-positive-color: var(--318747);
95
96
  @content-error-color: var(--9167e9);
97
+ @border-base-borderColor: var(--29cd58);
98
+ @border-focus-borderColor: var(--398094);
99
+ @border-error-borderColor: var(--eaf4a3);
96
100
  @action-base-borderRadius: var(--8d5131);
97
101
  @action-base-disabled-color: var(--a8b89c);
98
102
  @action-base-disabled-bgColor: var(--04daeb);
@@ -102,6 +106,9 @@
102
106
  @action-base-focus-outlineColor: var(--603ec6);
103
107
  @action-base-gap: var(--0aee7b);
104
108
  @action-inline-borderRadius: var(--5eeb28);
109
+ @action-inline-borderColor: var(--ea1746);
110
+ @action-inline-hover-bgColor: var(--0bbea4);
111
+ @action-inline-active-bgColor: var(--33e933);
105
112
  @action-variant-primary-color: var(--d2baa6);
106
113
  @action-variant-secondary-color: var(--1614c9);
107
114
  @action-variant-tertiary-color: var(--937543);
@@ -248,6 +255,7 @@
248
255
  @text-size-l-fontSize: var(--da41aa);
249
256
  @text-size-xl-fontSize: var(--698b61);
250
257
  @text-variant-xs-fontSize: var(--4c9f68);
258
+ @text-variant-xs-medium-fontSize: var(--547b8f);
251
259
  @text-variant-s-fontSize: var(--a7cfda);
252
260
  @text-variant-s-italic-fontSize: var(--79c03c);
253
261
  @text-variant-s-medium-fontSize: var(--28e99e);
@@ -269,6 +277,7 @@
269
277
  @text-variant-xl-medium-fontSize: var(--19e13e);
270
278
  @text-variant-xl-medium-italic-fontSize: var(--88dc17);
271
279
  @text-variant-xs-fontWeight: var(--71d69c);
280
+ @text-variant-xs-medium-fontWeight: var(--86a200);
272
281
  @text-variant-s-fontWeight: var(--dc8b92);
273
282
  @text-variant-s-italic-fontWeight: var(--5127dd);
274
283
  @text-variant-s-medium-fontWeight: var(--ca04c0);
@@ -290,6 +299,7 @@
290
299
  @text-variant-xl-medium-fontWeight: var(--6455e5);
291
300
  @text-variant-xl-medium-italic-fontWeight: var(--cc6f61);
292
301
  @text-variant-xs-lineHeight: var(--543571);
302
+ @text-variant-xs-medium-lineHeight: var(--e7e648);
293
303
  @text-variant-s-lineHeight: var(--c552e7);
294
304
  @text-variant-s-italic-lineHeight: var(--aeb64b);
295
305
  @text-variant-s-medium-lineHeight: var(--af784d);
@@ -311,6 +321,7 @@
311
321
  @text-variant-xl-medium-lineHeight: var(--85e4ac);
312
322
  @text-variant-xl-medium-italic-lineHeight: var(--904c1e);
313
323
  @text-variant-xs-letterSpacing: var(--29af86);
324
+ @text-variant-xs-medium-letterSpacing: var(--d7a1ad);
314
325
  @text-variant-s-letterSpacing: var(--4d1d51);
315
326
  @text-variant-s-italic-letterSpacing: var(--a50d8c);
316
327
  @text-variant-s-medium-letterSpacing: var(--015e8c);
@@ -332,6 +343,7 @@
332
343
  @text-variant-xl-medium-letterSpacing: var(--e76960);
333
344
  @text-variant-xl-medium-italic-letterSpacing: var(--cf0e2c);
334
345
  @text-variant-xs-fontStyle: var(--647b4d);
346
+ @text-variant-xs-medium-fontStyle: var(--abe371);
335
347
  @text-variant-s-fontStyle: var(--b8dd4e);
336
348
  @text-variant-s-italic-fontStyle: var(--c89e06);
337
349
  @text-variant-s-medium-fontStyle: var(--e1d91f);
@@ -353,6 +365,7 @@
353
365
  @text-variant-xl-medium-fontStyle: var(--0a5e67);
354
366
  @text-variant-xl-medium-italic-fontStyle: var(--6fc949);
355
367
  @text-variant-xs-variationSettings: var(--afe759);
368
+ @text-variant-xs-medium-variationSettings: var(--f65ebc);
356
369
  @text-variant-s-variationSettings: var(--93fedc);
357
370
  @text-variant-s-italic-variationSettings: var(--0557d4);
358
371
  @text-variant-s-medium-variationSettings: var(--d7e46a);
@@ -380,8 +393,8 @@
380
393
  @text-weight-normal-fontWeight: var(--5ea101);
381
394
  @text-weight-medium-fontWeight: var(--2734e9);
382
395
  @text-weight-bold-fontWeight: var(--800787);
383
- @field-additionalText-normal-color: var(--4c4008);
384
- @field-additionalText-error-color: var(--622733);
396
+ @input-base-borderWidth: var(--d9baa3);
397
+ @input-base-borderRadius: var(--c4b051);
385
398
  @root-size-none: var(--c12f10);
386
399
  @root-size-25: var(--389aa7);
387
400
  @root-size-50: var(--8848e0);
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,10 @@
1
+ import type { ColorName, Dataset, IconSize, TextAccent } from '@preply/ds-core';
2
+ import { ReactSVGComponentType } from '../svg/types';
3
+ export interface IconProps {
4
+ svg: ReactSVGComponentType;
5
+ size?: IconSize;
6
+ accent?: TextAccent;
7
+ color?: ColorName;
8
+ label?: string;
9
+ dataset?: Dataset;
10
+ }
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './css-module';
5
5
  export * from './dom/props';
6
6
  export * from './events';
7
7
  export * from './field';
8
+ export * from './icon';
8
9
  export * from './input';
9
10
  export * from './instrument';
10
11
  export * from './keyboard';
@@ -12,6 +13,7 @@ export * from './layout';
12
13
  export * from './location';
13
14
  export * from './responsive';
14
15
  export * from './ssr';
16
+ export * from './svg';
15
17
  export * from './theme';
16
18
  export * from './token';
17
19
  export * from './types';
package/dist/index.js CHANGED
@@ -15,7 +15,8 @@ export { useTextField } from './field/hooks/useTextField.js';
15
15
  export { ADDITIONAL_TEXT_VARIANT_OPTIONS } from './field/options.js';
16
16
  export { AUTO_COMPLETE_DATE_DEFAULT, AUTO_COMPLETE_PASSWORD_DEFAULT, AUTO_COMPLETE_TEXT_DEFAULT, INPUT_TYPE_DEFAULT } from './input/constants.js';
17
17
  export { AUTO_COMPLETE_DATE_OPTIONS, AUTO_COMPLETE_PASSWORD_OPTIONS, AUTO_COMPLETE_TEXT_OPTIONS, INPUT_TYPE_OPTIONS, INPUT_TYPE_SIMPLE_TEXT_OPTIONS } from './input/options.js';
18
- export { useForcedRef } from './input/util.js';
18
+ export { getInputProps } from './input/utils/getInputProps.js';
19
+ export { useForcedRef } from './input/utils/useForcedRef.js';
19
20
  export { useInstrument } from './instrument/hooks/useInstrument.js';
20
21
  export { InstrumentProvider } from './instrument/providers/Instrument.js';
21
22
  export { useLayoutClassNames } from './layout/hooks/useLayoutClassNames.js';
@@ -25,6 +26,7 @@ export { useLayoutGridResponsiveColumns } from './layout/hooks/useLayoutGridResp
25
26
  export { useLayoutHideClassnames } from './layout/module-layout-hide/hooks/useLayoutHideClassnames.js';
26
27
  export { useAlignSelfClassNames } from './layout/module-align-self/hooks/useAlignSelfClassNames.js';
27
28
  export { useLayoutPaddingClassnames } from './layout/module-layout-padding/hooks/useLayoutPaddingClassnames.js';
29
+ export { useLayoutRelativeClassnames } from './layout/module-layout-relative/hooks/useLayoutRelativeClassnames.js';
28
30
  export { useLayoutGapClassnames } from './layout/module-layout-gap/hooks/useLayoutGapClassnames.js';
29
31
  export { minWidth } from './responsive/sc/mixins.js';
30
32
  export { ServerStyleSheet } from './ssr/classes/ServerStyleSheet.js';
@@ -47,4 +49,4 @@ export { withGetToken } from './token/hocs/withGetToken.js';
47
49
  export { useTextAccentClassnames } from './typography/module-text-accent/hooks/useTextAccentClassnames.js';
48
50
  export { useTextCenteredClassnames } from './typography/module-text-centered/hooks/useTextCenteredClassnames.js';
49
51
  export { useTextWeightClassNames } from './typography/module-text-weight/hooks/useTextWeightClassNames.js';
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
@@ -1,4 +1,5 @@
1
1
  export * from './constants';
2
2
  export * from './options';
3
3
  export * from './types';
4
- export * from './util';
4
+ export * from './utils/getInputProps';
5
+ export * from './utils/useForcedRef';
@@ -1,4 +1,5 @@
1
1
  export { AUTO_COMPLETE_DATE_DEFAULT, AUTO_COMPLETE_PASSWORD_DEFAULT, AUTO_COMPLETE_TEXT_DEFAULT, INPUT_TYPE_DEFAULT } from './constants.js';
2
2
  export { AUTO_COMPLETE_DATE_OPTIONS, AUTO_COMPLETE_PASSWORD_OPTIONS, AUTO_COMPLETE_TEXT_OPTIONS, INPUT_TYPE_OPTIONS, INPUT_TYPE_SIMPLE_TEXT_OPTIONS } from './options.js';
3
- export { useForcedRef } from './util.js';
4
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzsifQ==
3
+ export { getInputProps } from './utils/getInputProps.js';
4
+ export { useForcedRef } from './utils/useForcedRef.js';
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7In0=
@@ -1,5 +1,5 @@
1
1
  import type { Option } from '@preply/ds-core-types';
2
- import type { AutoCompleteDateOptions, AutoCompletePasswordOptions, AutoCompleteTextOptions, InputType } from './types';
2
+ import { AutoCompleteDateOptions, AutoCompletePasswordOptions, AutoCompleteTextOptions, InputType } from './private/types';
3
3
  export declare const INPUT_TYPE_SIMPLE_TEXT_OPTIONS: Option<InputType>[];
4
4
  export declare const INPUT_TYPE_OPTIONS: Option<InputType>[];
5
5
  export declare const AUTO_COMPLETE_TEXT_OPTIONS: Option<AutoCompleteTextOptions>[];
@@ -37,4 +37,4 @@ const AUTO_COMPLETE_PASSWORD_OPTIONS = [
37
37
  ];
38
38
 
39
39
  export { AUTO_COMPLETE_DATE_OPTIONS, AUTO_COMPLETE_PASSWORD_OPTIONS, AUTO_COMPLETE_TEXT_OPTIONS, INPUT_TYPE_OPTIONS, INPUT_TYPE_SIMPLE_TEXT_OPTIONS };
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0L29wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcHRpb24gfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUtdHlwZXMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gICAgQXV0b0NvbXBsZXRlRGF0ZU9wdGlvbnMsXG4gICAgQXV0b0NvbXBsZXRlUGFzc3dvcmRPcHRpb25zLFxuICAgIEF1dG9Db21wbGV0ZVRleHRPcHRpb25zLFxuICAgIElucHV0VHlwZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBJTlBVVF9UWVBFX1NJTVBMRV9URVhUX09QVElPTlM6IE9wdGlvbjxJbnB1dFR5cGU+W10gPSBbXG4gICAgeyBpZDogJ3RleHQnIH0sXG4gICAgeyBpZDogJ3NlYXJjaCcgfSxcbiAgICB7IGlkOiAnZW1haWwnIH0sXG4gICAgeyBpZDogJ3RlbCcgfSxcbiAgICB7IGlkOiAndXJsJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IElOUFVUX1RZUEVfT1BUSU9OUzogT3B0aW9uPElucHV0VHlwZT5bXSA9IFtcbiAgICAuLi5JTlBVVF9UWVBFX1NJTVBMRV9URVhUX09QVElPTlMsXG4gICAgeyBpZDogJ3Bhc3N3b3JkJyB9LFxuICAgIHsgaWQ6ICdudW1iZXInIH0sXG4gICAgeyBpZDogJ2RhdGUnIH0sXG4gICAgeyBpZDogJ3RpbWUnIH0sXG4gICAgeyBpZDogJ2NoZWNrYm94JyB9LFxuICAgIHsgaWQ6ICdyYWRpbycgfSxcbiAgICB7IGlkOiAndGV4dGFyZWEnIH0sXG4gICAgeyBpZDogJ3NlbGVjdCcgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPX0NPTVBMRVRFX1RFWFRfT1BUSU9OUzogT3B0aW9uPEF1dG9Db21wbGV0ZVRleHRPcHRpb25zPltdID0gW1xuICAgIHsgaWQ6ICdvZmYnIH0sXG4gICAgeyBpZDogJ29uJyB9LFxuICAgIHsgaWQ6ICduYW1lJyB9LFxuICAgIHsgaWQ6ICdlbWFpbCcgfSxcbiAgICB7IGlkOiAndXNlcm5hbWUnIH0sXG4gICAgeyBpZDogJ2xhbmd1YWdlJyB9LFxuICAgIHsgaWQ6ICd0ZWwnIH0sXG4gICAgeyBpZDogJ3VybCcgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPX0NPTVBMRVRFX0RBVEVfT1BUSU9OUzogT3B0aW9uPEF1dG9Db21wbGV0ZURhdGVPcHRpb25zPltdID0gW1xuICAgIHsgaWQ6ICdvZmYnIH0sXG4gICAgeyBpZDogJ29uJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfUEFTU1dPUkRfT1BUSU9OUzogT3B0aW9uPEF1dG9Db21wbGV0ZVBhc3N3b3JkT3B0aW9ucz5bXSA9IFtcbiAgICB7IGlkOiAnb2ZmJyB9LFxuICAgIHsgaWQ6ICduZXctcGFzc3dvcmQnIH0sXG4gICAgeyBpZDogJ2N1cnJlbnQtcGFzc3dvcmQnIH0sXG5dO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQVNhLDhCQUE4QixHQUF3QjtJQUMvRCxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUU7SUFDaEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQ2YsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO0lBQ2IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO0VBQ2Y7TUFFVyxrQkFBa0IsR0FBd0I7SUFDbkQsR0FBRyw4QkFBOEI7SUFDakMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2xCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtJQUNoQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7SUFDbEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQ2YsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2xCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtFQUNsQjtNQUVXLDBCQUEwQixHQUFzQztJQUN6RSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUU7SUFDYixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7SUFDWixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUU7SUFDZixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7SUFDbEIsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2xCLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUNiLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtFQUNmO01BRVcsMEJBQTBCLEdBQXNDO0lBQ3pFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUNiLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtFQUNkO01BRVcsOEJBQThCLEdBQTBDO0lBQ2pGLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUNiLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRTtJQUN0QixFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRTs7Ozs7In0=
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0L29wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcHRpb24gfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUtdHlwZXMnO1xuXG5pbXBvcnQge1xuICAgIEF1dG9Db21wbGV0ZURhdGVPcHRpb25zLFxuICAgIEF1dG9Db21wbGV0ZVBhc3N3b3JkT3B0aW9ucyxcbiAgICBBdXRvQ29tcGxldGVUZXh0T3B0aW9ucyxcbiAgICBJbnB1dFR5cGUsXG59IGZyb20gJy4vcHJpdmF0ZS90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBJTlBVVF9UWVBFX1NJTVBMRV9URVhUX09QVElPTlM6IE9wdGlvbjxJbnB1dFR5cGU+W10gPSBbXG4gICAgeyBpZDogJ3RleHQnIH0sXG4gICAgeyBpZDogJ3NlYXJjaCcgfSxcbiAgICB7IGlkOiAnZW1haWwnIH0sXG4gICAgeyBpZDogJ3RlbCcgfSxcbiAgICB7IGlkOiAndXJsJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IElOUFVUX1RZUEVfT1BUSU9OUzogT3B0aW9uPElucHV0VHlwZT5bXSA9IFtcbiAgICAuLi5JTlBVVF9UWVBFX1NJTVBMRV9URVhUX09QVElPTlMsXG4gICAgeyBpZDogJ3Bhc3N3b3JkJyB9LFxuICAgIHsgaWQ6ICdudW1iZXInIH0sXG4gICAgeyBpZDogJ2RhdGUnIH0sXG4gICAgeyBpZDogJ3RpbWUnIH0sXG4gICAgeyBpZDogJ2NoZWNrYm94JyB9LFxuICAgIHsgaWQ6ICdyYWRpbycgfSxcbiAgICB7IGlkOiAndGV4dGFyZWEnIH0sXG4gICAgeyBpZDogJ3NlbGVjdCcgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPX0NPTVBMRVRFX1RFWFRfT1BUSU9OUzogT3B0aW9uPEF1dG9Db21wbGV0ZVRleHRPcHRpb25zPltdID0gW1xuICAgIHsgaWQ6ICdvZmYnIH0sXG4gICAgeyBpZDogJ29uJyB9LFxuICAgIHsgaWQ6ICduYW1lJyB9LFxuICAgIHsgaWQ6ICdlbWFpbCcgfSxcbiAgICB7IGlkOiAndXNlcm5hbWUnIH0sXG4gICAgeyBpZDogJ2xhbmd1YWdlJyB9LFxuICAgIHsgaWQ6ICd0ZWwnIH0sXG4gICAgeyBpZDogJ3VybCcgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBBVVRPX0NPTVBMRVRFX0RBVEVfT1BUSU9OUzogT3B0aW9uPEF1dG9Db21wbGV0ZURhdGVPcHRpb25zPltdID0gW1xuICAgIHsgaWQ6ICdvZmYnIH0sXG4gICAgeyBpZDogJ29uJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfUEFTU1dPUkRfT1BUSU9OUzogT3B0aW9uPEF1dG9Db21wbGV0ZVBhc3N3b3JkT3B0aW9ucz5bXSA9IFtcbiAgICB7IGlkOiAnb2ZmJyB9LFxuICAgIHsgaWQ6ICduZXctcGFzc3dvcmQnIH0sXG4gICAgeyBpZDogJ2N1cnJlbnQtcGFzc3dvcmQnIH0sXG5dO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQVNhLDhCQUE4QixHQUF3QjtJQUMvRCxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUU7SUFDaEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQ2YsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO0lBQ2IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO0VBQ2Y7TUFFVyxrQkFBa0IsR0FBd0I7SUFDbkQsR0FBRyw4QkFBOEI7SUFDakMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2xCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtJQUNoQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7SUFDbEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO0lBQ2YsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2xCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRTtFQUNsQjtNQUVXLDBCQUEwQixHQUFzQztJQUN6RSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUU7SUFDYixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7SUFDWixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUU7SUFDZixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7SUFDbEIsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFO0lBQ2xCLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUNiLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtFQUNmO01BRVcsMEJBQTBCLEdBQXNDO0lBQ3pFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUNiLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtFQUNkO01BRVcsOEJBQThCLEdBQTBDO0lBQ2pGLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtJQUNiLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRTtJQUN0QixFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRTs7Ozs7In0=
@@ -0,0 +1,103 @@
1
+ import type { Dataset } from '@preply/ds-core';
2
+ import { ChangeEventHandler, FocusEventHandler, KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react';
3
+ import type { ARIAAttributeNames, ARIAInputProps } from '../../accessibility/aria/types';
4
+ export declare type SimpleTextInputType = 'text' | 'search' | 'email' | 'tel' | 'url';
5
+ export declare type SingleLineInputType = SimpleTextInputType | 'password' | 'number' | 'date' | 'time';
6
+ export declare type HTMLInputType = SingleLineInputType | 'checkbox' | 'radio';
7
+ export declare type InputType = HTMLInputType | 'textarea' | 'select';
8
+ export declare type AutoCompleteTextOptions = 'off' | 'on' | 'name' | 'email' | 'username' | 'language' | 'tel' | 'url';
9
+ export declare type AutoCompleteDateOptions = 'off' | 'on';
10
+ export declare type AutoCompletePasswordOptions = 'off' | 'new-password' | 'current-password';
11
+ /**
12
+ * native <input> props
13
+ */
14
+ export interface InputCommonProps extends ARIAInputProps {
15
+ type: InputType;
16
+ id: string;
17
+ name?: string;
18
+ value?: string;
19
+ defaultValue?: string;
20
+ onChange?: ChangeEventHandler;
21
+ onFocus?: FocusEventHandler;
22
+ onBlur?: FocusEventHandler;
23
+ onClick?: MouseEventHandler;
24
+ onKeyDown?: KeyboardEventHandler;
25
+ onKeyUp?: KeyboardEventHandler;
26
+ required?: boolean;
27
+ disabled?: boolean;
28
+ hasError?: boolean;
29
+ dataset?: Dataset;
30
+ }
31
+ export interface InputStringProps extends InputCommonProps {
32
+ type: SingleLineInputType | 'textarea';
33
+ placeholder?: string;
34
+ maxLength?: number;
35
+ }
36
+ export interface InputSingleLineProps extends InputStringProps {
37
+ type: SingleLineInputType;
38
+ }
39
+ export interface SimpleTextInputTypeProps extends InputSingleLineProps {
40
+ type: SimpleTextInputType;
41
+ autoComplete?: AutoCompleteTextOptions;
42
+ }
43
+ export interface InputTypeTextProps extends SimpleTextInputTypeProps {
44
+ type: 'text';
45
+ }
46
+ export interface InputTypeSearchProps extends SimpleTextInputTypeProps {
47
+ type: 'search';
48
+ }
49
+ export interface InputTypeEmailProps extends SimpleTextInputTypeProps {
50
+ type: 'email';
51
+ }
52
+ export interface InputTypeTelProps extends SimpleTextInputTypeProps {
53
+ type: 'tel';
54
+ }
55
+ export interface InputTypeUrlProps extends SimpleTextInputTypeProps {
56
+ type: 'url';
57
+ }
58
+ export interface InputTypePasswordProps extends InputSingleLineProps {
59
+ type: 'password';
60
+ autoComplete?: AutoCompletePasswordOptions;
61
+ }
62
+ export interface InputBoundedProps extends InputSingleLineProps {
63
+ type: 'number' | 'date' | 'time';
64
+ min?: string;
65
+ max?: string;
66
+ }
67
+ export interface InputTypeNumberProps extends InputBoundedProps {
68
+ type: 'number';
69
+ }
70
+ export interface InputTypeDateProps extends InputBoundedProps {
71
+ type: 'date';
72
+ autoComplete?: AutoCompleteDateOptions;
73
+ }
74
+ export interface InputTypeTimeProps extends InputBoundedProps {
75
+ type: 'time';
76
+ }
77
+ export interface InputCheckableProps extends InputCommonProps {
78
+ type: 'checkbox' | 'radio';
79
+ checked?: boolean;
80
+ }
81
+ export interface InputTypeCheckboxProps extends InputCheckableProps {
82
+ type: 'checkbox';
83
+ }
84
+ export interface InputTypeRadioProps extends InputCommonProps, InputCheckableProps {
85
+ type: 'radio';
86
+ name: string;
87
+ }
88
+ export interface InputTypeTextareaProps extends InputStringProps {
89
+ type: 'textarea';
90
+ rows?: number;
91
+ }
92
+ export interface InputTypeSelectProps extends InputCommonProps {
93
+ type: 'select';
94
+ children?: ReactNode;
95
+ }
96
+ export declare type InputGenericTextProps = InputTypeTextProps | InputTypeSearchProps | InputTypeEmailProps | InputTypeTelProps | InputTypeUrlProps;
97
+ export declare type UnknownInputProps = InputTypeTextProps | InputTypeSearchProps | InputTypeEmailProps | InputTypeTelProps | InputTypeUrlProps | InputTypePasswordProps | InputTypeNumberProps | InputTypeDateProps | InputTypeTimeProps | InputTypeCheckboxProps | InputTypeRadioProps | InputTypeTextareaProps | InputTypeSelectProps;
98
+ /**
99
+ * allows merging <Input*> props onto <Field*> props
100
+ */
101
+ export declare type CombinableInputProps<T extends InputCommonProps> = Omit<T, 'id' | 'type' | ARIAAttributeNames> & {
102
+ id?: string;
103
+ };
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,9 @@
1
+ import { InputHTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes } from 'react';
2
+ import type { InputBaseProps } from '../types';
3
+ export declare const getTextProps: (props: InputBaseProps) => InputHTMLAttributes<HTMLInputElement>;
4
+ export declare const getDateTimeProps: (props: InputBaseProps) => InputHTMLAttributes<HTMLInputElement>;
5
+ export declare const getBoundedProps: (props: InputBaseProps) => InputHTMLAttributes<HTMLInputElement>;
6
+ export declare const getTextareaProps: (props: InputBaseProps) => TextareaHTMLAttributes<HTMLTextAreaElement>;
7
+ export declare const getCheckableProps: (props: InputBaseProps) => InputHTMLAttributes<HTMLInputElement>;
8
+ export declare const getRadioProps: (props: InputBaseProps) => InputHTMLAttributes<HTMLInputElement>;
9
+ export declare const getSelectProps: (props: InputBaseProps) => SelectHTMLAttributes<HTMLSelectElement>;
@@ -0,0 +1,87 @@
1
+ const isText = (props) => {
2
+ const { type } = props;
3
+ return (type === 'text' ||
4
+ type === 'search' ||
5
+ type === 'password' ||
6
+ type === 'email' ||
7
+ type === 'tel' ||
8
+ type === 'url' ||
9
+ type === 'number' ||
10
+ type === 'textarea');
11
+ };
12
+ const isDateTime = (props) => {
13
+ const { type } = props;
14
+ return type === 'date' || type === 'time';
15
+ };
16
+ const isBounded = (props) => {
17
+ const { type } = props;
18
+ return type === 'number' || type === 'date' || type === 'time';
19
+ };
20
+ const isCheckable = (props) => {
21
+ const { type } = props;
22
+ return type === 'checkbox';
23
+ };
24
+ const isRadio = (props) => {
25
+ const { type } = props;
26
+ return type === 'radio';
27
+ };
28
+ const isTextarea = (props) => {
29
+ const { type } = props;
30
+ return type === 'number' || type === 'date' || type === 'time';
31
+ };
32
+ const isSelect = (props) => {
33
+ const { type } = props;
34
+ return type === 'select';
35
+ };
36
+ const getTextProps = (props) => {
37
+ if (isText(props)) {
38
+ const { value, placeholder, maxLength, autoComplete } = props;
39
+ return { value, placeholder, maxLength, autoComplete };
40
+ }
41
+ return {};
42
+ };
43
+ const getDateTimeProps = (props) => {
44
+ if (isDateTime(props)) {
45
+ const { defaultValue, placeholder, maxLength, autoComplete } = props;
46
+ return { defaultValue, placeholder, maxLength, autoComplete };
47
+ }
48
+ return {};
49
+ };
50
+ const getBoundedProps = (props) => {
51
+ if (isBounded(props)) {
52
+ const { min, max } = props;
53
+ return { min, max };
54
+ }
55
+ return {};
56
+ };
57
+ const getTextareaProps = (props) => {
58
+ if (isTextarea(props)) {
59
+ const { rows } = props;
60
+ return { rows };
61
+ }
62
+ return {};
63
+ };
64
+ const getCheckableProps = (props) => {
65
+ if (isCheckable(props)) {
66
+ const { checked } = props;
67
+ return { checked };
68
+ }
69
+ return {};
70
+ };
71
+ const getRadioProps = (props) => {
72
+ if (isRadio(props)) {
73
+ const { checked, name } = props;
74
+ return { defaultChecked: checked, name };
75
+ }
76
+ return {};
77
+ };
78
+ const getSelectProps = (props) => {
79
+ if (isSelect(props)) {
80
+ const { value, children } = props;
81
+ return { value, children };
82
+ }
83
+ return {};
84
+ };
85
+
86
+ export { getBoundedProps, getCheckableProps, getDateTimeProps, getRadioProps, getSelectProps, getTextProps, getTextareaProps };
87
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dC9wcml2YXRlL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0SFRNTEF0dHJpYnV0ZXMsIFNlbGVjdEhUTUxBdHRyaWJ1dGVzLCBUZXh0YXJlYUhUTUxBdHRyaWJ1dGVzIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IElucHV0QmFzZVByb3BzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gICAgSW5wdXRCb3VuZGVkUHJvcHMsXG4gICAgSW5wdXRDaGVja2FibGVQcm9wcyxcbiAgICBJbnB1dENvbW1vblByb3BzLFxuICAgIElucHV0VHlwZVNlbGVjdFByb3BzLFxuICAgIElucHV0VHlwZVRleHRQcm9wcyxcbiAgICBJbnB1dFR5cGVUZXh0YXJlYVByb3BzLFxufSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgaXNUZXh0ID0gKHByb3BzOiBJbnB1dENvbW1vblByb3BzKTogcHJvcHMgaXMgSW5wdXRUeXBlVGV4dFByb3BzID0+IHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICAgIHR5cGUgPT09ICd0ZXh0JyB8fFxuICAgICAgICB0eXBlID09PSAnc2VhcmNoJyB8fFxuICAgICAgICB0eXBlID09PSAncGFzc3dvcmQnIHx8XG4gICAgICAgIHR5cGUgPT09ICdlbWFpbCcgfHxcbiAgICAgICAgdHlwZSA9PT0gJ3RlbCcgfHxcbiAgICAgICAgdHlwZSA9PT0gJ3VybCcgfHxcbiAgICAgICAgdHlwZSA9PT0gJ251bWJlcicgfHxcbiAgICAgICAgdHlwZSA9PT0gJ3RleHRhcmVhJ1xuICAgICk7XG59O1xuXG5jb25zdCBpc0RhdGVUaW1lID0gKHByb3BzOiBJbnB1dENvbW1vblByb3BzKTogcHJvcHMgaXMgSW5wdXRUeXBlVGV4dFByb3BzID0+IHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IHByb3BzO1xuICAgIHJldHVybiB0eXBlID09PSAnZGF0ZScgfHwgdHlwZSA9PT0gJ3RpbWUnO1xufTtcblxuY29uc3QgaXNCb3VuZGVkID0gKHByb3BzOiBJbnB1dENvbW1vblByb3BzKTogcHJvcHMgaXMgSW5wdXRCb3VuZGVkUHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIHR5cGUgPT09ICdudW1iZXInIHx8IHR5cGUgPT09ICdkYXRlJyB8fCB0eXBlID09PSAndGltZSc7XG59O1xuXG5jb25zdCBpc0NoZWNrYWJsZSA9IChwcm9wczogSW5wdXRDb21tb25Qcm9wcyk6IHByb3BzIGlzIElucHV0Q2hlY2thYmxlUHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gcHJvcHM7XG4gICAgcmV0dXJuIHR5cGUgPT09ICdjaGVja2JveCc7XG59O1xuXG5jb25zdCBpc1JhZGlvID0gKHByb3BzOiBJbnB1dENvbW1vblByb3BzKTogcHJvcHMgaXMgSW5wdXRDaGVja2FibGVQcm9wcyA9PiB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBwcm9wcztcbiAgICByZXR1cm4gdHlwZSA9PT0gJ3JhZGlvJztcbn07XG5cbmNvbnN0IGlzVGV4dGFyZWEgPSAocHJvcHM6IElucHV0Q29tbW9uUHJvcHMpOiBwcm9wcyBpcyBJbnB1dFR5cGVUZXh0YXJlYVByb3BzID0+IHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IHByb3BzO1xuICAgIHJldHVybiB0eXBlID09PSAnbnVtYmVyJyB8fCB0eXBlID09PSAnZGF0ZScgfHwgdHlwZSA9PT0gJ3RpbWUnO1xufTtcblxuY29uc3QgaXNTZWxlY3QgPSAocHJvcHM6IElucHV0Q29tbW9uUHJvcHMpOiBwcm9wcyBpcyBJbnB1dFR5cGVTZWxlY3RQcm9wcyA9PiB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBwcm9wcztcbiAgICByZXR1cm4gdHlwZSA9PT0gJ3NlbGVjdCc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dFByb3BzID0gKHByb3BzOiBJbnB1dEJhc2VQcm9wcyk6IElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4gPT4ge1xuICAgIGlmIChpc1RleHQocHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHBsYWNlaG9sZGVyLCBtYXhMZW5ndGgsIGF1dG9Db21wbGV0ZSB9ID0gcHJvcHM7XG4gICAgICAgIHJldHVybiB7IHZhbHVlLCBwbGFjZWhvbGRlciwgbWF4TGVuZ3RoLCBhdXRvQ29tcGxldGUgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGVUaW1lUHJvcHMgPSAocHJvcHM6IElucHV0QmFzZVByb3BzKTogSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PiA9PiB7XG4gICAgaWYgKGlzRGF0ZVRpbWUocHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IHsgZGVmYXVsdFZhbHVlLCBwbGFjZWhvbGRlciwgbWF4TGVuZ3RoLCBhdXRvQ29tcGxldGUgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4geyBkZWZhdWx0VmFsdWUsIHBsYWNlaG9sZGVyLCBtYXhMZW5ndGgsIGF1dG9Db21wbGV0ZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Qm91bmRlZFByb3BzID0gKHByb3BzOiBJbnB1dEJhc2VQcm9wcyk6IElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4gPT4ge1xuICAgIGlmIChpc0JvdW5kZWQocHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4geyBtaW4sIG1heCB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dGFyZWFQcm9wcyA9IChcbiAgICBwcm9wczogSW5wdXRCYXNlUHJvcHMsXG4pOiBUZXh0YXJlYUhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0+IHtcbiAgICBpZiAoaXNUZXh0YXJlYShwcm9wcykpIHtcbiAgICAgICAgY29uc3QgeyByb3dzIH0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIHsgcm93cyB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q2hlY2thYmxlUHJvcHMgPSAocHJvcHM6IElucHV0QmFzZVByb3BzKTogSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PiA9PiB7XG4gICAgaWYgKGlzQ2hlY2thYmxlKHByb3BzKSkge1xuICAgICAgICBjb25zdCB7IGNoZWNrZWQgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4geyBjaGVja2VkIH07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSYWRpb1Byb3BzID0gKHByb3BzOiBJbnB1dEJhc2VQcm9wcyk6IElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4gPT4ge1xuICAgIGlmIChpc1JhZGlvKHByb3BzKSkge1xuICAgICAgICBjb25zdCB7IGNoZWNrZWQsIG5hbWUgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4geyBkZWZhdWx0Q2hlY2tlZDogY2hlY2tlZCwgbmFtZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0UHJvcHMgPSAocHJvcHM6IElucHV0QmFzZVByb3BzKTogU2VsZWN0SFRNTEF0dHJpYnV0ZXM8SFRNTFNlbGVjdEVsZW1lbnQ+ID0+IHtcbiAgICBpZiAoaXNTZWxlY3QocHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIHsgdmFsdWUsIGNoaWxkcmVuIH07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUF1QjtJQUNuQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFFBQ0ksSUFBSSxLQUFLLE1BQU07UUFDZixJQUFJLEtBQUssUUFBUTtRQUNqQixJQUFJLEtBQUssVUFBVTtRQUNuQixJQUFJLEtBQUssT0FBTztRQUNoQixJQUFJLEtBQUssS0FBSztRQUNkLElBQUksS0FBSyxLQUFLO1FBQ2QsSUFBSSxLQUFLLFFBQVE7UUFDakIsSUFBSSxLQUFLLFVBQVUsRUFDckI7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQXVCO0lBQ3ZDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDdkIsT0FBTyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxNQUFNLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUF1QjtJQUN0QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxNQUFNLENBQUM7QUFDbkUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUF1QjtJQUN4QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQXVCO0lBQ3BDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDdkIsT0FBTyxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBdUI7SUFDdkMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN2QixPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0FBQ25FLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBdUI7SUFDckMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN2QixPQUFPLElBQUksS0FBSyxRQUFRLENBQUM7QUFDN0IsQ0FBQyxDQUFDO01BRVcsWUFBWSxHQUFHLENBQUMsS0FBcUI7SUFDOUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDZixNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQztLQUMxRDtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ2QsRUFBRTtNQUVXLGdCQUFnQixHQUFHLENBQUMsS0FBcUI7SUFDbEQsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbkIsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7S0FDakU7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNkLEVBQUU7TUFFVyxlQUFlLEdBQUcsQ0FBQyxLQUFxQjtJQUNqRCxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNsQixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMzQixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0tBQ3ZCO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxFQUFFO01BRVcsZ0JBQWdCLEdBQUcsQ0FDNUIsS0FBcUI7SUFFckIsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDbkI7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNkLEVBQUU7TUFFVyxpQkFBaUIsR0FBRyxDQUFDLEtBQXFCO0lBQ25ELElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0tBQ3RCO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxFQUFFO01BRVcsYUFBYSxHQUFHLENBQUMsS0FBcUI7SUFDL0MsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDNUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNkLEVBQUU7TUFFVyxjQUFjLEdBQUcsQ0FBQyxLQUFxQjtJQUNoRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBQzlCO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZDs7OzsifQ==
@@ -1,106 +1,44 @@
1
- import type { Dataset } from '@preply/ds-core';
2
- import { ChangeEventHandler, FocusEventHandler, KeyboardEventHandler, MouseEventHandler, ReactNode } from 'react';
3
- declare type ARIAAttributeNames = 'aria-describedby' | 'aria-disabled' | 'aria-invalid' | 'aria-required';
4
- declare type WithRequired<T, K extends keyof T> = T & {
5
- [P in K]-?: T[P];
1
+ import type { ValueChangeEventHandler } from '../events';
2
+ import type { InputTypeCheckboxProps, InputTypeDateProps, InputTypeNumberProps, InputTypePasswordProps, InputTypeRadioProps, InputTypeSelectProps, InputTypeTextProps, InputTypeTextareaProps, InputTypeTimeProps, SimpleTextInputType, UnknownInputProps } from './private/types';
3
+ /**
4
+ * private <Input*> components
5
+ */
6
+ export declare type InputBaseProps = UnknownInputProps & {
7
+ className?: string;
6
8
  };
7
- export declare type ARIAInputPropsMap = WithRequired<ARIAInputProps, ARIAAttributeNames>;
8
- export declare type ARIAInputProps = Pick<React.HTMLAttributes<HTMLInputElement>, ARIAAttributeNames>;
9
- export declare type SimpleTextInputType = 'text' | 'search' | 'email' | 'tel' | 'url';
10
- export declare type SingleLineInputType = SimpleTextInputType | 'password' | 'number' | 'date' | 'time';
11
- export declare type HTMLInputType = SingleLineInputType | 'checkbox' | 'radio';
12
- export declare type InputType = HTMLInputType | 'textarea' | 'select';
13
- export declare type AutoCompleteTextOptions = 'off' | 'on' | 'name' | 'email' | 'username' | 'language' | 'tel' | 'url';
14
- export declare type AutoCompleteDateOptions = 'off' | 'on';
15
- export declare type AutoCompletePasswordOptions = 'off' | 'new-password' | 'current-password';
16
- export interface InputCommonProps extends ARIAInputProps {
17
- type: InputType;
18
- id: string;
19
- name?: string;
20
- value?: string;
21
- defaultValue?: string;
22
- onChange?: ChangeEventHandler;
23
- onFocus?: FocusEventHandler;
24
- onBlur?: FocusEventHandler;
25
- onClick?: MouseEventHandler;
26
- onKeyDown?: KeyboardEventHandler;
27
- onKeyUp?: KeyboardEventHandler;
28
- required?: boolean;
29
- disabled?: boolean;
30
- hasError?: boolean;
31
- dataset?: Dataset;
32
- }
33
- export interface InputStringProps extends InputCommonProps {
34
- type: SingleLineInputType | 'textarea';
35
- placeholder?: string;
36
- maxLength?: number;
37
- }
38
- export interface InputSingleLineProps extends InputStringProps {
39
- type: SingleLineInputType;
40
- }
41
- export interface SimpleTextInputTypeProps extends InputSingleLineProps {
9
+ export declare type InputTextProps = Omit<InputTypeTextProps, 'type'> & {
42
10
  type: SimpleTextInputType;
43
- autoComplete?: AutoCompleteTextOptions;
44
- }
45
- export interface InputTypeTextProps extends SimpleTextInputTypeProps {
46
- type: 'text';
47
- }
48
- export interface InputTypeSearchProps extends SimpleTextInputTypeProps {
49
- type: 'search';
50
- }
51
- export interface InputTypeEmailProps extends SimpleTextInputTypeProps {
52
- type: 'email';
53
- }
54
- export interface InputTypeTelProps extends SimpleTextInputTypeProps {
55
- type: 'tel';
56
- }
57
- export interface InputTypeUrlProps extends SimpleTextInputTypeProps {
58
- type: 'url';
59
- }
60
- export interface InputTypePasswordProps extends InputSingleLineProps {
61
- type: 'password';
62
- autoComplete?: AutoCompletePasswordOptions;
63
- }
64
- export interface InputBoundedProps extends InputSingleLineProps {
65
- type: 'number' | 'date' | 'time';
66
- min?: string;
67
- max?: string;
68
- }
69
- export interface InputTypeNumberProps extends InputBoundedProps {
70
- type: 'number';
71
- }
72
- export interface InputTypeDateProps extends InputBoundedProps {
73
- type: 'date';
74
- autoComplete?: AutoCompleteDateOptions;
75
- }
76
- export interface InputTypeTimeProps extends InputBoundedProps {
77
- type: 'time';
78
- }
79
- export interface InputCheckableProps extends InputCommonProps {
80
- type: 'checkbox' | 'radio';
11
+ onValueChange?: ValueChangeEventHandler<string>;
12
+ };
13
+ export declare type InputTimeProps = Omit<InputTypeTimeProps, 'type' | 'value'> & {
14
+ defaultValue?: string;
15
+ onValueChange?: ValueChangeEventHandler<string>;
16
+ };
17
+ export declare type RadioProps = Omit<InputTypeRadioProps, 'type' | 'value'> & {
81
18
  checked?: boolean;
82
- }
83
- export interface InputTypeCheckboxProps extends InputCheckableProps {
84
- type: 'checkbox';
85
- }
86
- export interface InputTypeRadioProps extends InputCommonProps, InputCheckableProps {
87
- type: 'radio';
88
19
  name: string;
89
- }
90
- export interface InputTypeTextareaProps extends InputStringProps {
91
- type: 'textarea';
92
- rows?: number;
93
- }
94
- export interface InputTypeSelectProps extends InputCommonProps {
95
- type: 'select';
96
- children?: ReactNode;
97
- }
98
- export declare type InputGenericTextProps = InputTypeTextProps | InputTypeSearchProps | InputTypeEmailProps | InputTypeTelProps | InputTypeUrlProps;
99
- declare type UnknownInputProps = InputTypeTextProps | InputTypeSearchProps | InputTypeEmailProps | InputTypeTelProps | InputTypeUrlProps | InputTypePasswordProps | InputTypeNumberProps | InputTypeDateProps | InputTypeTimeProps | InputTypeCheckboxProps | InputTypeRadioProps | InputTypeTextareaProps | InputTypeSelectProps;
100
- export declare type InputProps = UnknownInputProps & {
101
- className?: string;
20
+ onValueChange?: ValueChangeEventHandler<boolean>;
21
+ };
22
+ export declare type SelectProps = Omit<InputTypeSelectProps, 'type'> & {
23
+ onValueChange?: ValueChangeEventHandler<string>;
24
+ };
25
+ export declare type TextareaProps = Omit<InputTypeTextareaProps, 'type'> & {
26
+ onValueChange?: ValueChangeEventHandler<string>;
27
+ };
28
+ export declare type CheckboxProps = Omit<InputTypeCheckboxProps, 'type' | 'value'> & {
29
+ checked?: boolean;
30
+ onValueChange?: ValueChangeEventHandler<boolean>;
31
+ };
32
+ export declare type InputDateProps = Omit<InputTypeDateProps, 'type' | 'value' | 'defaultValue'> & {
33
+ defaultValue?: Date;
34
+ onValueChange?: ValueChangeEventHandler<Date>;
35
+ };
36
+ export declare type InputNumberProps = Omit<InputTypeNumberProps, 'type' | 'value' | 'min' | 'max'> & {
37
+ value?: number;
38
+ min?: number;
39
+ max?: number;
40
+ onValueChange?: ValueChangeEventHandler<number>;
102
41
  };
103
- export declare type CombinableInputProps<T extends InputCommonProps> = Omit<T, 'id' | 'type'> & {
104
- id?: string;
42
+ export declare type InputPasswordProps = Omit<InputTypePasswordProps, 'type'> & {
43
+ onValueChange?: ValueChangeEventHandler<string>;
105
44
  };
106
- export {};
@@ -0,0 +1,3 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import type { InputBaseProps } from '../types';
3
+ export declare const getInputProps: (props: InputBaseProps) => HTMLAttributes<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>;
@@ -0,0 +1,14 @@
1
+ import { getTextProps, getDateTimeProps, getBoundedProps, getTextareaProps, getCheckableProps, getRadioProps, getSelectProps } from '../private/utils.js';
2
+
3
+ const getInputProps = (props) => ({
4
+ ...getTextProps(props),
5
+ ...getDateTimeProps(props),
6
+ ...getBoundedProps(props),
7
+ ...getTextareaProps(props),
8
+ ...getCheckableProps(props),
9
+ ...getRadioProps(props),
10
+ ...getSelectProps(props),
11
+ });
12
+
13
+ export { getInputProps };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0SW5wdXRQcm9wcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L3V0aWxzL2dldElucHV0UHJvcHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTEF0dHJpYnV0ZXMgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gICAgZ2V0Qm91bmRlZFByb3BzLFxuICAgIGdldENoZWNrYWJsZVByb3BzLFxuICAgIGdldERhdGVUaW1lUHJvcHMsXG4gICAgZ2V0UmFkaW9Qcm9wcyxcbiAgICBnZXRTZWxlY3RQcm9wcyxcbiAgICBnZXRUZXh0UHJvcHMsXG4gICAgZ2V0VGV4dGFyZWFQcm9wcyxcbn0gZnJvbSAnLi4vcHJpdmF0ZS91dGlscyc7XG5pbXBvcnQgdHlwZSB7IElucHV0QmFzZVByb3BzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZ2V0SW5wdXRQcm9wcyA9IChcbiAgICBwcm9wczogSW5wdXRCYXNlUHJvcHMsXG4pOiBIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PiA9PiAoe1xuICAgIC4uLmdldFRleHRQcm9wcyhwcm9wcyksXG4gICAgLi4uZ2V0RGF0ZVRpbWVQcm9wcyhwcm9wcyksXG4gICAgLi4uZ2V0Qm91bmRlZFByb3BzKHByb3BzKSxcbiAgICAuLi5nZXRUZXh0YXJlYVByb3BzKHByb3BzKSxcbiAgICAuLi5nZXRDaGVja2FibGVQcm9wcyhwcm9wcyksXG4gICAgLi4uZ2V0UmFkaW9Qcm9wcyhwcm9wcyksXG4gICAgLi4uZ2V0U2VsZWN0UHJvcHMocHJvcHMpLFxufSk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7TUFhYSxhQUFhLEdBQUcsQ0FDekIsS0FBcUIsTUFDeUQ7SUFDOUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ3RCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQzFCLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUN6QixHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUMxQixHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUMzQixHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDdkIsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO0NBQzNCOzs7OyJ9
@@ -0,0 +1,11 @@
1
+ import { useState, useEffect, useRef } from 'react';
2
+
3
+ function useForcedRef() {
4
+ const [init] = useState(true);
5
+ const [, setFauxState] = useState(false);
6
+ useEffect(() => setFauxState(init), [init]);
7
+ return useRef(null);
8
+ }
9
+
10
+ export { useForcedRef };
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlRm9yY2VkUmVmLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5wdXQvdXRpbHMvdXNlRm9yY2VkUmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9yY2VkUmVmPFQ+KCk6IFJlZk9iamVjdDxUPiB7XG4gICAgY29uc3QgW2luaXRdID0gdXNlU3RhdGU8Ym9vbGVhbj4odHJ1ZSk7XG4gICAgY29uc3QgWywgc2V0RmF1eFN0YXRlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiBzZXRGYXV4U3RhdGUoaW5pdCksIFtpbml0XSk7XG5cbiAgICByZXR1cm4gdXNlUmVmPFQ+KG51bGwpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O1NBRWdCLFlBQVk7SUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUN2QyxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRWxELFNBQVMsQ0FBQyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFNUMsT0FBTyxNQUFNLENBQUksSUFBSSxDQUFDLENBQUM7QUFDM0I7Ozs7In0=
@@ -5,11 +5,12 @@ import styles from '../style/index.module.less.js';
5
5
  import { moduleClassNames, booleanClassNames, stringClassNames } from '../../css-module/classNames.js';
6
6
  import { useLayoutPaddingClassnames } from '../module-layout-padding/hooks/useLayoutPaddingClassnames.js';
7
7
  import { useLayoutHideClassnames } from '../module-layout-hide/hooks/useLayoutHideClassnames.js';
8
+ import { useLayoutRelativeClassnames } from '../module-layout-relative/hooks/useLayoutRelativeClassnames.js';
8
9
 
9
10
  const LAYOUT_FLEX = 'LayoutFlex';
10
11
  const useLayoutFlexClassNames = (layout, props) => {
11
12
  useStyleExtract(styles);
12
- const { gap = LAYOUT_GAP_DEFAULT, padding = LAYOUT_PADDING_DEFAULT, nowrap, column, reverse, direction, justifyContent, alignItems, hide, inline, } = props || {};
13
+ const { gap = LAYOUT_GAP_DEFAULT, padding = LAYOUT_PADDING_DEFAULT, nowrap, column, reverse, direction, justifyContent, alignItems, hide, relative, inline, } = props || {};
13
14
  if (layout !== 'flex') {
14
15
  return [];
15
16
  }
@@ -28,8 +29,15 @@ const useLayoutFlexClassNames = (layout, props) => {
28
29
  const paddingClassNames = useLayoutPaddingClassnames(padding);
29
30
  const showClassName = inline ? 'inline-flex' : 'flex';
30
31
  const hideClassNames = useLayoutHideClassnames(hide, showClassName);
31
- return [...classNames, ...gapClassNames, ...paddingClassNames, ...hideClassNames];
32
+ const relativeClassNames = useLayoutRelativeClassnames(relative);
33
+ return [
34
+ ...classNames,
35
+ ...gapClassNames,
36
+ ...paddingClassNames,
37
+ ...hideClassNames,
38
+ ...relativeClassNames,
39
+ ];
32
40
  };
33
41
 
34
42
  export { useLayoutFlexClassNames };
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0RmxleENsYXNzTmFtZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXlvdXQvaG9va3MvdXNlTGF5b3V0RmxleENsYXNzTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYXlvdXRGbGV4UHJvcHMsIExheW91dFR5cGUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHtcbiAgICBMQVlPVVRfRkxFWF9ESVJFQ1RJT05fREVGQVVMVCxcbiAgICBMQVlPVVRfR0FQX0RFRkFVTFQsXG4gICAgTEFZT1VUX1BBRERJTkdfREVGQVVMVCxcbn0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgYm9vbGVhbkNsYXNzTmFtZXMsIG1vZHVsZUNsYXNzTmFtZXMsIHN0cmluZ0NsYXNzTmFtZXMgfSBmcm9tICcuLi8uLi9jc3MtbW9kdWxlJztcbmltcG9ydCB7IHVzZVN0eWxlRXh0cmFjdCB9IGZyb20gJy4uLy4uL3Nzci9ob29rcy91c2VTdHlsZUV4dHJhY3QnO1xuaW1wb3J0IHsgdXNlTGF5b3V0R2FwQ2xhc3NuYW1lcyB9IGZyb20gJy4uL21vZHVsZS1sYXlvdXQtZ2FwL2hvb2tzL3VzZUxheW91dEdhcENsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlTGF5b3V0SGlkZUNsYXNzbmFtZXMgfSBmcm9tICcuLi9tb2R1bGUtbGF5b3V0LWhpZGUnO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFkZGluZ0NsYXNzbmFtZXMgfSBmcm9tICcuLi9tb2R1bGUtbGF5b3V0LXBhZGRpbmcnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi9zdHlsZS9pbmRleC5tb2R1bGUubGVzcyc7XG5cbmNvbnN0IExBWU9VVF9GTEVYID0gJ0xheW91dEZsZXgnO1xuXG50eXBlIEhvb2sgPSAobGF5b3V0PzogTGF5b3V0VHlwZSwgcHJvcHM/OiBMYXlvdXRGbGV4UHJvcHMpID0+IHN0cmluZ1tdO1xuXG5leHBvcnQgY29uc3QgdXNlTGF5b3V0RmxleENsYXNzTmFtZXM6IEhvb2sgPSAobGF5b3V0LCBwcm9wcykgPT4ge1xuICAgIHVzZVN0eWxlRXh0cmFjdChzdHlsZXMpO1xuXG4gICAgY29uc3Qge1xuICAgICAgICBnYXAgPSBMQVlPVVRfR0FQX0RFRkFVTFQsXG4gICAgICAgIHBhZGRpbmcgPSBMQVlPVVRfUEFERElOR19ERUZBVUxULFxuICAgICAgICBub3dyYXAsXG4gICAgICAgIGNvbHVtbixcbiAgICAgICAgcmV2ZXJzZSxcbiAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICBqdXN0aWZ5Q29udGVudCxcbiAgICAgICAgYWxpZ25JdGVtcyxcbiAgICAgICAgaGlkZSxcbiAgICAgICAgaW5saW5lLFxuICAgIH0gPSBwcm9wcyB8fCB7fTtcblxuICAgIGlmIChsYXlvdXQgIT09ICdmbGV4Jykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsRGlyZWN0aW9uID1cbiAgICAgICAgZGlyZWN0aW9uIHx8ICghcmV2ZXJzZSAmJiAhY29sdW1uID8gTEFZT1VUX0ZMRVhfRElSRUNUSU9OX0RFRkFVTFQgOiB1bmRlZmluZWQpO1xuXG4gICAgY29uc3QgY29sdW1uQ2xhc3NOYW1lID0gY29sdW1uID8gJ2NvbHVtbicgOiAncm93JztcbiAgICBjb25zdCByZXZlcnNlQ2xhc3NOYW1lID0gcmV2ZXJzZSA/ICdyZXYnIDogJ2Z3ZCc7XG4gICAgY29uc3QgY29sdW1uUmV2ZXJzZUNsYXNzTmFtZSA9IGAke2NvbHVtbkNsYXNzTmFtZX0tJHtyZXZlcnNlQ2xhc3NOYW1lfWA7XG5cbiAgICBjb25zdCBjbGFzc05hbWVzID0gbW9kdWxlQ2xhc3NOYW1lcyhzdHlsZXMsIExBWU9VVF9GTEVYLCBbXG4gICAgICAgIGJvb2xlYW5DbGFzc05hbWVzKCdub3dyYXAnLCB1bmRlZmluZWQsIG5vd3JhcCksXG4gICAgICAgIGNvbHVtblJldmVyc2VDbGFzc05hbWUsXG4gICAgICAgIHN0cmluZ0NsYXNzTmFtZXMoJ2RpcmVjdGlvbicsIGFjdHVhbERpcmVjdGlvbiksXG4gICAgICAgIHN0cmluZ0NsYXNzTmFtZXMoJ2p1c3RpZnktY29udGVudCcsIGp1c3RpZnlDb250ZW50KSxcbiAgICAgICAgc3RyaW5nQ2xhc3NOYW1lcygnYWxpZ24taXRlbXMnLCBhbGlnbkl0ZW1zKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IGdhcENsYXNzTmFtZXMgPSB1c2VMYXlvdXRHYXBDbGFzc25hbWVzKGdhcCk7XG4gICAgY29uc3QgcGFkZGluZ0NsYXNzTmFtZXMgPSB1c2VMYXlvdXRQYWRkaW5nQ2xhc3NuYW1lcyhwYWRkaW5nKTtcbiAgICBjb25zdCBzaG93Q2xhc3NOYW1lID0gaW5saW5lID8gJ2lubGluZS1mbGV4JyA6ICdmbGV4JztcbiAgICBjb25zdCBoaWRlQ2xhc3NOYW1lcyA9IHVzZUxheW91dEhpZGVDbGFzc25hbWVzKGhpZGUsIHNob3dDbGFzc05hbWUpO1xuXG4gICAgcmV0dXJuIFsuLi5jbGFzc05hbWVzLCAuLi5nYXBDbGFzc05hbWVzLCAuLi5wYWRkaW5nQ2xhc3NOYW1lcywgLi4uaGlkZUNsYXNzTmFtZXNdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQWNBLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztNQUlwQix1QkFBdUIsR0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLO0lBQ3ZELGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QixNQUFNLEVBQ0YsR0FBRyxHQUFHLGtCQUFrQixFQUN4QixPQUFPLEdBQUcsc0JBQXNCLEVBQ2hDLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxjQUFjLEVBQ2QsVUFBVSxFQUNWLElBQUksRUFDSixNQUFNLEdBQ1QsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRWhCLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtRQUNuQixPQUFPLEVBQUUsQ0FBQztLQUNiO0lBRUQsTUFBTSxlQUFlLEdBQ2pCLFNBQVMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyw2QkFBNkIsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUVuRixNQUFNLGVBQWUsR0FBRyxNQUFNLEdBQUcsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNsRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2pELE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxlQUFlLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUV4RSxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO1FBQ3JELGlCQUFpQixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDO1FBQzlDLHNCQUFzQjtRQUN0QixnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDO1FBQzlDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztRQUNuRCxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO0tBQzlDLENBQUMsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxHQUFHLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDdEQsTUFBTSxjQUFjLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUM7QUFDdEY7Ozs7In0=
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0RmxleENsYXNzTmFtZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXlvdXQvaG9va3MvdXNlTGF5b3V0RmxleENsYXNzTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYXlvdXRGbGV4UHJvcHMsIExheW91dFR5cGUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHtcbiAgICBMQVlPVVRfRkxFWF9ESVJFQ1RJT05fREVGQVVMVCxcbiAgICBMQVlPVVRfR0FQX0RFRkFVTFQsXG4gICAgTEFZT1VUX1BBRERJTkdfREVGQVVMVCxcbn0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgYm9vbGVhbkNsYXNzTmFtZXMsIG1vZHVsZUNsYXNzTmFtZXMsIHN0cmluZ0NsYXNzTmFtZXMgfSBmcm9tICcuLi8uLi9jc3MtbW9kdWxlJztcbmltcG9ydCB7IHVzZVN0eWxlRXh0cmFjdCB9IGZyb20gJy4uLy4uL3Nzci9ob29rcy91c2VTdHlsZUV4dHJhY3QnO1xuaW1wb3J0IHsgdXNlTGF5b3V0R2FwQ2xhc3NuYW1lcyB9IGZyb20gJy4uL21vZHVsZS1sYXlvdXQtZ2FwL2hvb2tzL3VzZUxheW91dEdhcENsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlTGF5b3V0SGlkZUNsYXNzbmFtZXMgfSBmcm9tICcuLi9tb2R1bGUtbGF5b3V0LWhpZGUnO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFkZGluZ0NsYXNzbmFtZXMgfSBmcm9tICcuLi9tb2R1bGUtbGF5b3V0LXBhZGRpbmcnO1xuaW1wb3J0IHsgdXNlTGF5b3V0UmVsYXRpdmVDbGFzc25hbWVzIH0gZnJvbSAnLi4vbW9kdWxlLWxheW91dC1yZWxhdGl2ZSc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL3N0eWxlL2luZGV4Lm1vZHVsZS5sZXNzJztcblxuY29uc3QgTEFZT1VUX0ZMRVggPSAnTGF5b3V0RmxleCc7XG5cbnR5cGUgSG9vayA9IChsYXlvdXQ/OiBMYXlvdXRUeXBlLCBwcm9wcz86IExheW91dEZsZXhQcm9wcykgPT4gc3RyaW5nW107XG5cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRGbGV4Q2xhc3NOYW1lczogSG9vayA9IChsYXlvdXQsIHByb3BzKSA9PiB7XG4gICAgdXNlU3R5bGVFeHRyYWN0KHN0eWxlcyk7XG5cbiAgICBjb25zdCB7XG4gICAgICAgIGdhcCA9IExBWU9VVF9HQVBfREVGQVVMVCxcbiAgICAgICAgcGFkZGluZyA9IExBWU9VVF9QQURESU5HX0RFRkFVTFQsXG4gICAgICAgIG5vd3JhcCxcbiAgICAgICAgY29sdW1uLFxuICAgICAgICByZXZlcnNlLFxuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIGp1c3RpZnlDb250ZW50LFxuICAgICAgICBhbGlnbkl0ZW1zLFxuICAgICAgICBoaWRlLFxuICAgICAgICByZWxhdGl2ZSxcbiAgICAgICAgaW5saW5lLFxuICAgIH0gPSBwcm9wcyB8fCB7fTtcblxuICAgIGlmIChsYXlvdXQgIT09ICdmbGV4Jykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsRGlyZWN0aW9uID1cbiAgICAgICAgZGlyZWN0aW9uIHx8ICghcmV2ZXJzZSAmJiAhY29sdW1uID8gTEFZT1VUX0ZMRVhfRElSRUNUSU9OX0RFRkFVTFQgOiB1bmRlZmluZWQpO1xuXG4gICAgY29uc3QgY29sdW1uQ2xhc3NOYW1lID0gY29sdW1uID8gJ2NvbHVtbicgOiAncm93JztcbiAgICBjb25zdCByZXZlcnNlQ2xhc3NOYW1lID0gcmV2ZXJzZSA/ICdyZXYnIDogJ2Z3ZCc7XG4gICAgY29uc3QgY29sdW1uUmV2ZXJzZUNsYXNzTmFtZSA9IGAke2NvbHVtbkNsYXNzTmFtZX0tJHtyZXZlcnNlQ2xhc3NOYW1lfWA7XG5cbiAgICBjb25zdCBjbGFzc05hbWVzID0gbW9kdWxlQ2xhc3NOYW1lcyhzdHlsZXMsIExBWU9VVF9GTEVYLCBbXG4gICAgICAgIGJvb2xlYW5DbGFzc05hbWVzKCdub3dyYXAnLCB1bmRlZmluZWQsIG5vd3JhcCksXG4gICAgICAgIGNvbHVtblJldmVyc2VDbGFzc05hbWUsXG4gICAgICAgIHN0cmluZ0NsYXNzTmFtZXMoJ2RpcmVjdGlvbicsIGFjdHVhbERpcmVjdGlvbiksXG4gICAgICAgIHN0cmluZ0NsYXNzTmFtZXMoJ2p1c3RpZnktY29udGVudCcsIGp1c3RpZnlDb250ZW50KSxcbiAgICAgICAgc3RyaW5nQ2xhc3NOYW1lcygnYWxpZ24taXRlbXMnLCBhbGlnbkl0ZW1zKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IGdhcENsYXNzTmFtZXMgPSB1c2VMYXlvdXRHYXBDbGFzc25hbWVzKGdhcCk7XG4gICAgY29uc3QgcGFkZGluZ0NsYXNzTmFtZXMgPSB1c2VMYXlvdXRQYWRkaW5nQ2xhc3NuYW1lcyhwYWRkaW5nKTtcbiAgICBjb25zdCBzaG93Q2xhc3NOYW1lID0gaW5saW5lID8gJ2lubGluZS1mbGV4JyA6ICdmbGV4JztcbiAgICBjb25zdCBoaWRlQ2xhc3NOYW1lcyA9IHVzZUxheW91dEhpZGVDbGFzc25hbWVzKGhpZGUsIHNob3dDbGFzc05hbWUpO1xuICAgIGNvbnN0IHJlbGF0aXZlQ2xhc3NOYW1lcyA9IHVzZUxheW91dFJlbGF0aXZlQ2xhc3NuYW1lcyhyZWxhdGl2ZSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICAuLi5jbGFzc05hbWVzLFxuICAgICAgICAuLi5nYXBDbGFzc05hbWVzLFxuICAgICAgICAuLi5wYWRkaW5nQ2xhc3NOYW1lcyxcbiAgICAgICAgLi4uaGlkZUNsYXNzTmFtZXMsXG4gICAgICAgIC4uLnJlbGF0aXZlQ2xhc3NOYW1lcyxcbiAgICBdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFlQSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7TUFJcEIsdUJBQXVCLEdBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSztJQUN2RCxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEIsTUFBTSxFQUNGLEdBQUcsR0FBRyxrQkFBa0IsRUFDeEIsT0FBTyxHQUFHLHNCQUFzQixFQUNoQyxNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsY0FBYyxFQUNkLFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sR0FDVCxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFaEIsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFFRCxNQUFNLGVBQWUsR0FDakIsU0FBUyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLDZCQUE2QixHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRW5GLE1BQU0sZUFBZSxHQUFHLE1BQU0sR0FBRyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDakQsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBRXhFLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7UUFDckQsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFDOUMsc0JBQXNCO1FBQ3RCLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUM7UUFDOUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7S0FDOUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsTUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxNQUFNLGFBQWEsR0FBRyxNQUFNLEdBQUcsYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUN0RCxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDcEUsTUFBTSxrQkFBa0IsR0FBRywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVqRSxPQUFPO1FBQ0gsR0FBRyxVQUFVO1FBQ2IsR0FBRyxhQUFhO1FBQ2hCLEdBQUcsaUJBQWlCO1FBQ3BCLEdBQUcsY0FBYztRQUNqQixHQUFHLGtCQUFrQjtLQUN4QixDQUFDO0FBQ047Ozs7In0=
@@ -4,12 +4,13 @@ import { useLayoutGapClassnames } from '../module-layout-gap/hooks/useLayoutGapC
4
4
  import styles from '../style/index.module.less.js';
5
5
  import { useLayoutPaddingClassnames } from '../module-layout-padding/hooks/useLayoutPaddingClassnames.js';
6
6
  import { useLayoutHideClassnames } from '../module-layout-hide/hooks/useLayoutHideClassnames.js';
7
+ import { useLayoutRelativeClassnames } from '../module-layout-relative/hooks/useLayoutRelativeClassnames.js';
7
8
  import { moduleClassNames, stringClassNames } from '../../css-module/classNames.js';
8
9
 
9
10
  const LAYOUT_GRID = 'LayoutGrid';
10
11
  const useLayoutGridClassNames = (layout, props) => {
11
12
  useStyleExtract(styles);
12
- const { gap = LAYOUT_GAP_DEFAULT, padding = LAYOUT_PADDING_DEFAULT, justifyContent, alignItems, justifyItems, hide, } = props || {};
13
+ const { gap = LAYOUT_GAP_DEFAULT, padding = LAYOUT_PADDING_DEFAULT, justifyContent, alignItems, justifyItems, hide, relative, } = props || {};
13
14
  if (layout !== 'grid') {
14
15
  return [];
15
16
  }
@@ -21,8 +22,15 @@ const useLayoutGridClassNames = (layout, props) => {
21
22
  const gapClassNames = useLayoutGapClassnames(gap);
22
23
  const paddingClassNames = useLayoutPaddingClassnames(padding);
23
24
  const hideClassNames = useLayoutHideClassnames(hide, 'grid');
24
- return [...classNames, ...gapClassNames, ...paddingClassNames, ...hideClassNames];
25
+ const relativeClassNames = useLayoutRelativeClassnames(relative);
26
+ return [
27
+ ...classNames,
28
+ ...gapClassNames,
29
+ ...paddingClassNames,
30
+ ...hideClassNames,
31
+ ...relativeClassNames,
32
+ ];
25
33
  };
26
34
 
27
35
  export { useLayoutGridClassNames };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0R3JpZENsYXNzTmFtZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXlvdXQvaG9va3MvdXNlTGF5b3V0R3JpZENsYXNzTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYXlvdXRHcmlkUHJvcHMsIExheW91dFR5cGUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgTEFZT1VUX0dBUF9ERUZBVUxULCBMQVlPVVRfUEFERElOR19ERUZBVUxUIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgbW9kdWxlQ2xhc3NOYW1lcywgc3RyaW5nQ2xhc3NOYW1lcyB9IGZyb20gJy4uLy4uL2Nzcy1tb2R1bGUnO1xuaW1wb3J0IHsgdXNlU3R5bGVFeHRyYWN0IH0gZnJvbSAnLi4vLi4vc3NyL2hvb2tzL3VzZVN0eWxlRXh0cmFjdCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRHYXBDbGFzc25hbWVzIH0gZnJvbSAnLi4vbW9kdWxlLWxheW91dC1nYXAvaG9va3MvdXNlTGF5b3V0R2FwQ2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VMYXlvdXRIaWRlQ2xhc3NuYW1lcyB9IGZyb20gJy4uL21vZHVsZS1sYXlvdXQtaGlkZSc7XG5pbXBvcnQgeyB1c2VMYXlvdXRQYWRkaW5nQ2xhc3NuYW1lcyB9IGZyb20gJy4uL21vZHVsZS1sYXlvdXQtcGFkZGluZyc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4uL3N0eWxlL2luZGV4Lm1vZHVsZS5sZXNzJztcblxuY29uc3QgTEFZT1VUX0dSSUQgPSAnTGF5b3V0R3JpZCc7XG5cbnR5cGUgSG9vayA9IChsYXlvdXQ/OiBMYXlvdXRUeXBlLCBwcm9wcz86IExheW91dEdyaWRQcm9wcykgPT4gc3RyaW5nW107XG5cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRHcmlkQ2xhc3NOYW1lczogSG9vayA9IChsYXlvdXQsIHByb3BzKSA9PiB7XG4gICAgdXNlU3R5bGVFeHRyYWN0KHN0eWxlcyk7XG5cbiAgICBjb25zdCB7XG4gICAgICAgIGdhcCA9IExBWU9VVF9HQVBfREVGQVVMVCxcbiAgICAgICAgcGFkZGluZyA9IExBWU9VVF9QQURESU5HX0RFRkFVTFQsXG4gICAgICAgIGp1c3RpZnlDb250ZW50LFxuICAgICAgICBhbGlnbkl0ZW1zLFxuICAgICAgICBqdXN0aWZ5SXRlbXMsXG4gICAgICAgIGhpZGUsXG4gICAgfSA9IHByb3BzIHx8IHt9O1xuXG4gICAgaWYgKGxheW91dCAhPT0gJ2dyaWQnKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc05hbWVzID0gbW9kdWxlQ2xhc3NOYW1lcyhzdHlsZXMsIExBWU9VVF9HUklELCBbXG4gICAgICAgIHN0cmluZ0NsYXNzTmFtZXMoJ2p1c3RpZnktY29udGVudCcsIGp1c3RpZnlDb250ZW50KSxcbiAgICAgICAgc3RyaW5nQ2xhc3NOYW1lcygnYWxpZ24taXRlbXMnLCBhbGlnbkl0ZW1zKSxcbiAgICAgICAgc3RyaW5nQ2xhc3NOYW1lcygnanVzdGlmeS1pdGVtcycsIGp1c3RpZnlJdGVtcyksXG4gICAgXSk7XG5cbiAgICBjb25zdCBnYXBDbGFzc05hbWVzID0gdXNlTGF5b3V0R2FwQ2xhc3NuYW1lcyhnYXApO1xuICAgIGNvbnN0IHBhZGRpbmdDbGFzc05hbWVzID0gdXNlTGF5b3V0UGFkZGluZ0NsYXNzbmFtZXMocGFkZGluZyk7XG4gICAgY29uc3QgaGlkZUNsYXNzTmFtZXMgPSB1c2VMYXlvdXRIaWRlQ2xhc3NuYW1lcyhoaWRlLCAnZ3JpZCcpO1xuXG4gICAgcmV0dXJuIFsuLi5jbGFzc05hbWVzLCAuLi5nYXBDbGFzc05hbWVzLCAuLi5wYWRkaW5nQ2xhc3NOYW1lcywgLi4uaGlkZUNsYXNzTmFtZXNdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVVBLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztNQUlwQix1QkFBdUIsR0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLO0lBQ3ZELGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QixNQUFNLEVBQ0YsR0FBRyxHQUFHLGtCQUFrQixFQUN4QixPQUFPLEdBQUcsc0JBQXNCLEVBQ2hDLGNBQWMsRUFDZCxVQUFVLEVBQ1YsWUFBWSxFQUNaLElBQUksR0FDUCxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFaEIsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFFRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO1FBQ3JELGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQztRQUNuRCxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO1FBQzNDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7S0FDbEQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsTUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFN0QsT0FBTyxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztBQUN0Rjs7OzsifQ==
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0R3JpZENsYXNzTmFtZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXlvdXQvaG9va3MvdXNlTGF5b3V0R3JpZENsYXNzTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMYXlvdXRHcmlkUHJvcHMsIExheW91dFR5cGUgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgTEFZT1VUX0dBUF9ERUZBVUxULCBMQVlPVVRfUEFERElOR19ERUZBVUxUIH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgbW9kdWxlQ2xhc3NOYW1lcywgc3RyaW5nQ2xhc3NOYW1lcyB9IGZyb20gJy4uLy4uL2Nzcy1tb2R1bGUnO1xuaW1wb3J0IHsgdXNlU3R5bGVFeHRyYWN0IH0gZnJvbSAnLi4vLi4vc3NyL2hvb2tzL3VzZVN0eWxlRXh0cmFjdCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRHYXBDbGFzc25hbWVzIH0gZnJvbSAnLi4vbW9kdWxlLWxheW91dC1nYXAvaG9va3MvdXNlTGF5b3V0R2FwQ2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VMYXlvdXRIaWRlQ2xhc3NuYW1lcyB9IGZyb20gJy4uL21vZHVsZS1sYXlvdXQtaGlkZSc7XG5pbXBvcnQgeyB1c2VMYXlvdXRQYWRkaW5nQ2xhc3NuYW1lcyB9IGZyb20gJy4uL21vZHVsZS1sYXlvdXQtcGFkZGluZyc7XG5pbXBvcnQgeyB1c2VMYXlvdXRSZWxhdGl2ZUNsYXNzbmFtZXMgfSBmcm9tICcuLi9tb2R1bGUtbGF5b3V0LXJlbGF0aXZlJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi4vc3R5bGUvaW5kZXgubW9kdWxlLmxlc3MnO1xuXG5jb25zdCBMQVlPVVRfR1JJRCA9ICdMYXlvdXRHcmlkJztcblxudHlwZSBIb29rID0gKGxheW91dD86IExheW91dFR5cGUsIHByb3BzPzogTGF5b3V0R3JpZFByb3BzKSA9PiBzdHJpbmdbXTtcblxuZXhwb3J0IGNvbnN0IHVzZUxheW91dEdyaWRDbGFzc05hbWVzOiBIb29rID0gKGxheW91dCwgcHJvcHMpID0+IHtcbiAgICB1c2VTdHlsZUV4dHJhY3Qoc3R5bGVzKTtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgZ2FwID0gTEFZT1VUX0dBUF9ERUZBVUxULFxuICAgICAgICBwYWRkaW5nID0gTEFZT1VUX1BBRERJTkdfREVGQVVMVCxcbiAgICAgICAganVzdGlmeUNvbnRlbnQsXG4gICAgICAgIGFsaWduSXRlbXMsXG4gICAgICAgIGp1c3RpZnlJdGVtcyxcbiAgICAgICAgaGlkZSxcbiAgICAgICAgcmVsYXRpdmUsXG4gICAgfSA9IHByb3BzIHx8IHt9O1xuXG4gICAgaWYgKGxheW91dCAhPT0gJ2dyaWQnKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc05hbWVzID0gbW9kdWxlQ2xhc3NOYW1lcyhzdHlsZXMsIExBWU9VVF9HUklELCBbXG4gICAgICAgIHN0cmluZ0NsYXNzTmFtZXMoJ2p1c3RpZnktY29udGVudCcsIGp1c3RpZnlDb250ZW50KSxcbiAgICAgICAgc3RyaW5nQ2xhc3NOYW1lcygnYWxpZ24taXRlbXMnLCBhbGlnbkl0ZW1zKSxcbiAgICAgICAgc3RyaW5nQ2xhc3NOYW1lcygnanVzdGlmeS1pdGVtcycsIGp1c3RpZnlJdGVtcyksXG4gICAgXSk7XG5cbiAgICBjb25zdCBnYXBDbGFzc05hbWVzID0gdXNlTGF5b3V0R2FwQ2xhc3NuYW1lcyhnYXApO1xuICAgIGNvbnN0IHBhZGRpbmdDbGFzc05hbWVzID0gdXNlTGF5b3V0UGFkZGluZ0NsYXNzbmFtZXMocGFkZGluZyk7XG4gICAgY29uc3QgaGlkZUNsYXNzTmFtZXMgPSB1c2VMYXlvdXRIaWRlQ2xhc3NuYW1lcyhoaWRlLCAnZ3JpZCcpO1xuICAgIGNvbnN0IHJlbGF0aXZlQ2xhc3NOYW1lcyA9IHVzZUxheW91dFJlbGF0aXZlQ2xhc3NuYW1lcyhyZWxhdGl2ZSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICAuLi5jbGFzc05hbWVzLFxuICAgICAgICAuLi5nYXBDbGFzc05hbWVzLFxuICAgICAgICAuLi5wYWRkaW5nQ2xhc3NOYW1lcyxcbiAgICAgICAgLi4uaGlkZUNsYXNzTmFtZXMsXG4gICAgICAgIC4uLnJlbGF0aXZlQ2xhc3NOYW1lcyxcbiAgICBdO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7TUFJcEIsdUJBQXVCLEdBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSztJQUN2RCxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEIsTUFBTSxFQUNGLEdBQUcsR0FBRyxrQkFBa0IsRUFDeEIsT0FBTyxHQUFHLHNCQUFzQixFQUNoQyxjQUFjLEVBQ2QsVUFBVSxFQUNWLFlBQVksRUFDWixJQUFJLEVBQ0osUUFBUSxHQUNYLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUVoQixJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7UUFDbkIsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7UUFDckQsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7UUFDM0MsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztLQUNsRCxDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELE1BQU0sY0FBYyxHQUFHLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxNQUFNLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWpFLE9BQU87UUFDSCxHQUFHLFVBQVU7UUFDYixHQUFHLGFBQWE7UUFDaEIsR0FBRyxpQkFBaUI7UUFDcEIsR0FBRyxjQUFjO1FBQ2pCLEdBQUcsa0JBQWtCO0tBQ3hCLENBQUM7QUFDTjs7OzsifQ==
@@ -5,4 +5,5 @@ export { useLayoutGridResponsiveColumns } from './hooks/useLayoutGridResponsiveC
5
5
  export { useLayoutHideClassnames } from './module-layout-hide';
6
6
  export { useAlignSelfClassNames } from './module-align-self';
7
7
  export { useLayoutPaddingClassnames } from './module-layout-padding';
8
+ export { useLayoutRelativeClassnames } from './module-layout-relative';
8
9
  export * from './module-layout-gap';
@@ -5,5 +5,6 @@ export { useLayoutGridResponsiveColumns } from './hooks/useLayoutGridResponsiveC
5
5
  export { useLayoutHideClassnames } from './module-layout-hide/hooks/useLayoutHideClassnames.js';
6
6
  export { useAlignSelfClassNames } from './module-align-self/hooks/useAlignSelfClassNames.js';
7
7
  export { useLayoutPaddingClassnames } from './module-layout-padding/hooks/useLayoutPaddingClassnames.js';
8
+ export { useLayoutRelativeClassnames } from './module-layout-relative/hooks/useLayoutRelativeClassnames.js';
8
9
  export { useLayoutGapClassnames } from './module-layout-gap/hooks/useLayoutGapClassnames.js';
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OyJ9
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OzsifQ==
@@ -0,0 +1,3 @@
1
+ export declare const useLayoutRelativeClassnames: (relative?: boolean | ({
2
+ _: boolean;
3
+ } & Partial<Record<import("@preply/ds-core").Breakpoint, boolean>>) | undefined) => string[];
@@ -0,0 +1,14 @@
1
+ import { useStyleExtract } from '../../../ssr/hooks/useStyleExtract.js';
2
+ import styles from '../style/index.module.less.js';
3
+ import { moduleLocals, booleanClassNames } from '../../../css-module/classNames.js';
4
+
5
+ const LAYOUT_RELATIVE = 'LayoutRelative';
6
+ const useLayoutRelativeClassnames = (relative) => {
7
+ useStyleExtract(styles);
8
+ return moduleLocals(styles, LAYOUT_RELATIVE, [
9
+ booleanClassNames('relative', undefined, relative),
10
+ ]);
11
+ };
12
+
13
+ export { useLayoutRelativeClassnames };
14
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGF5b3V0UmVsYXRpdmVDbGFzc25hbWVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGF5b3V0L21vZHVsZS1sYXlvdXQtcmVsYXRpdmUvaG9va3MvdXNlTGF5b3V0UmVsYXRpdmVDbGFzc25hbWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzcG9uc2l2ZSB9IGZyb20gJ0BwcmVwbHkvZHMtY29yZSc7XG5cbmltcG9ydCB7IGJvb2xlYW5DbGFzc05hbWVzLCBtb2R1bGVMb2NhbHMgfSBmcm9tICcuLi8uLi8uLi9jc3MtbW9kdWxlJztcbmltcG9ydCB7IHVzZVN0eWxlRXh0cmFjdCB9IGZyb20gJy4uLy4uLy4uL3Nzci9ob29rcy91c2VTdHlsZUV4dHJhY3QnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi9zdHlsZS9pbmRleC5tb2R1bGUubGVzcyc7XG5cbmNvbnN0IExBWU9VVF9SRUxBVElWRSA9ICdMYXlvdXRSZWxhdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCB1c2VMYXlvdXRSZWxhdGl2ZUNsYXNzbmFtZXMgPSAocmVsYXRpdmU/OiBSZXNwb25zaXZlPGJvb2xlYW4+KTogc3RyaW5nW10gPT4ge1xuICAgIHVzZVN0eWxlRXh0cmFjdChzdHlsZXMpO1xuXG4gICAgcmV0dXJuIG1vZHVsZUxvY2FscyhzdHlsZXMsIExBWU9VVF9SRUxBVElWRSwgW1xuICAgICAgICBib29sZWFuQ2xhc3NOYW1lcygncmVsYXRpdmUnLCB1bmRlZmluZWQsIHJlbGF0aXZlKSxcbiAgICBdKTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDO01BRTVCLDJCQUEyQixHQUFHLENBQUMsUUFBOEI7SUFDdEUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXhCLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUU7UUFDekMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUM7S0FDckQsQ0FBQyxDQUFDO0FBQ1A7Ozs7In0=
@@ -0,0 +1 @@
1
+ export { useLayoutRelativeClassnames } from './hooks/useLayoutRelativeClassnames';
@@ -0,0 +1,2 @@
1
+ export { useLayoutRelativeClassnames } from './hooks/useLayoutRelativeClassnames.js';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,5 @@
1
+ @import './mixins.less';
2
+
3
+ .LayoutRelative {
4
+ .layout-relative();
5
+ }
@@ -0,0 +1,9 @@
1
+ import styleInject from '../../../external/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = "._3xRBBL{position:relative}";
4
+ var styles = {__id:"/home/jenkins/workspace/design-system_main/packages/web-core/src/layout/module-layout-relative/style/index.module.less",__css:css_248z,"LayoutRelative--relative":"_3xRBBL"};
5
+ var stylesheet=css_248z;
6
+ styleInject(css_248z);
7
+
8
+ export { styles as default, stylesheet };
9
+
@@ -0,0 +1,5 @@
1
+ .layout-relative() {
2
+ &--relative {
3
+ position: relative;
4
+ }
5
+ }
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../../external/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = "";
4
+ var stylesheet="";
5
+ styleInject(css_248z);
6
+
7
+ export { css_248z as default, stylesheet };
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbbnVsbF0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3Qix3REFBNEQ7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyJ9
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,2 @@
1
+ import { SVGAttributes } from 'react';
2
+ export declare type ReactSVGComponentType = React.ComponentType<SVGAttributes<SVGElement>>;
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -96,6 +96,11 @@
96
96
  background-color: @@token;
97
97
  }
98
98
 
99
+ .border-width(@namespace, @key) {
100
+ @token: '@{namespace}-@{key}-borderWidth';
101
+ border-width: @@token;
102
+ }
103
+
99
104
  .border-color(@namespace, @key) {
100
105
  @token: '@{namespace}-@{key}-borderColor';
101
106
  border-color: @@token;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@preply/ds-web-core",
3
- "version": "0.48.0",
3
+ "version": "0.49.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -19,14 +19,14 @@
19
19
  "dev": "run build:rollup -w"
20
20
  },
21
21
  "dependencies": {
22
- "@preply/ds-core": "0.48.0",
23
- "@preply/ds-core-types": "0.48.0"
22
+ "@preply/ds-core": "0.49.0",
23
+ "@preply/ds-core-types": "0.49.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@preply/ds-core": "0.48.0",
27
- "@preply/ds-core-types": "0.48.0",
26
+ "@preply/ds-core": "0.49.0",
27
+ "@preply/ds-core-types": "0.49.0",
28
28
  "react": "^16.8.3",
29
29
  "react-dom": "^16.8.3"
30
30
  },
31
- "gitHead": "fbdfd8333ec527e33eb0eb6dc1b3d8b0a90fe20b"
31
+ "gitHead": "3e8afea186374a22e2491bf687edd78b6ff99e60"
32
32
  }
@@ -1,11 +0,0 @@
1
- import { useState, useEffect, useRef } from 'react';
2
-
3
- function useForcedRef() {
4
- const [init] = useState(true);
5
- const [, setFauxState] = useState(false);
6
- useEffect(() => setFauxState(init), [init]);
7
- return useRef(null);
8
- }
9
-
10
- export { useForcedRef };
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0L3V0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JjZWRSZWY8VD4oKTogUmVmT2JqZWN0PFQ+IHtcbiAgICBjb25zdCBbaW5pdF0gPSB1c2VTdGF0ZTxib29sZWFuPih0cnVlKTtcbiAgICBjb25zdCBbLCBzZXRGYXV4U3RhdGVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHNldEZhdXhTdGF0ZShpbml0KSwgW2luaXRdKTtcblxuICAgIHJldHVybiB1c2VSZWY8VD4obnVsbCk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7U0FFZ0IsWUFBWTtJQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxRQUFRLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFbEQsU0FBUyxDQUFDLE1BQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUU1QyxPQUFPLE1BQU0sQ0FBSSxJQUFJLENBQUMsQ0FBQztBQUMzQjs7OzsifQ==