@preply/ds-web-core 0.47.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 (66) hide show
  1. package/dist/accessibility/aria/types.d.ts +8 -0
  2. package/dist/accessibility/aria/types.js +2 -0
  3. package/dist/{aria → accessibility/aria}/utils.d.ts +2 -2
  4. package/dist/accessibility/aria/utils.js +22 -0
  5. package/dist/accessibility/index.d.ts +1 -0
  6. package/dist/accessibility/index.js +2 -0
  7. package/dist/accessibility/style/mixins.less +9 -0
  8. package/dist/{actions/style/action.mixins.less.js → accessibility/style/mixins.less.js} +0 -0
  9. package/dist/actions/style/{action.mixins.less → mixins.less} +0 -0
  10. package/dist/actions/style/mixins.less.js +8 -0
  11. package/dist/dom/props/constants.d.ts +2 -3
  12. package/dist/dom/props/constants.js +4 -3
  13. package/dist/dom/props/index.d.ts +1 -1
  14. package/dist/dom/props/index.js +7 -4
  15. package/dist/field/constants.d.ts +2 -0
  16. package/dist/field/constants.js +4 -3
  17. package/dist/field/hooks/useTextField.d.ts +9 -5
  18. package/dist/field/hooks/useTextField.js +11 -9
  19. package/dist/field/index.d.ts +1 -0
  20. package/dist/field/index.js +3 -2
  21. package/dist/field/options.d.ts +3 -0
  22. package/dist/field/options.js +7 -0
  23. package/dist/field/types.d.ts +49 -20
  24. package/dist/generated/breakpoints.less +1 -1
  25. package/dist/generated/options.less +3 -3
  26. package/dist/generated/tokens.less +17 -1
  27. package/dist/icon/index.d.ts +1 -0
  28. package/dist/{aria → icon}/index.js +1 -1
  29. package/dist/icon/types.d.ts +10 -0
  30. package/dist/icon/types.js +2 -0
  31. package/dist/index.d.ts +3 -1
  32. package/dist/index.js +7 -4
  33. package/dist/input/index.d.ts +2 -1
  34. package/dist/input/index.js +3 -2
  35. package/dist/input/options.d.ts +1 -1
  36. package/dist/input/options.js +1 -1
  37. package/dist/input/private/types.d.ts +103 -0
  38. package/dist/input/private/types.js +2 -0
  39. package/dist/input/private/utils.d.ts +9 -0
  40. package/dist/input/private/utils.js +87 -0
  41. package/dist/input/types.d.ts +38 -100
  42. package/dist/input/utils/getInputProps.d.ts +3 -0
  43. package/dist/input/utils/getInputProps.js +14 -0
  44. package/dist/input/{util.d.ts → utils/useForcedRef.d.ts} +0 -0
  45. package/dist/input/utils/useForcedRef.js +11 -0
  46. package/dist/layout/hooks/useLayoutFlexClassNames.js +11 -3
  47. package/dist/layout/hooks/useLayoutGridClassNames.js +11 -3
  48. package/dist/layout/index.d.ts +1 -0
  49. package/dist/layout/index.js +2 -1
  50. package/dist/layout/module-layout-relative/hooks/useLayoutRelativeClassnames.d.ts +3 -0
  51. package/dist/layout/module-layout-relative/hooks/useLayoutRelativeClassnames.js +14 -0
  52. package/dist/layout/module-layout-relative/index.d.ts +1 -0
  53. package/dist/layout/module-layout-relative/index.js +2 -0
  54. package/dist/layout/module-layout-relative/style/index.module.less +5 -0
  55. package/dist/layout/module-layout-relative/style/index.module.less.js +9 -0
  56. package/dist/layout/module-layout-relative/style/mixins.less +5 -0
  57. package/dist/layout/module-layout-relative/style/mixins.less.js +8 -0
  58. package/dist/svg/index.d.ts +1 -0
  59. package/dist/svg/index.js +2 -0
  60. package/dist/svg/types.d.ts +2 -0
  61. package/dist/svg/types.js +2 -0
  62. package/dist/theme/style/declarations.mixins.less +5 -0
  63. package/package.json +6 -6
  64. package/dist/aria/index.d.ts +0 -1
  65. package/dist/aria/utils.js +0 -22
  66. package/dist/input/util.js +0 -11
@@ -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+IHtcbiAgICBpZiAoaXNTZWxlY3QocHJvcHMpKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIHsgdmFsdWUsIGNoaWxkcmVuIH07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUF1QjtJ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
@@ -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';