@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
@@ -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>;
@@ -0,0 +1,22 @@
1
+ const SUFIX = '-desc';
2
+ const removeFalsyProperties = (props) => {
3
+ return Object.keys(props).reduce((acc, key) => {
4
+ if (props[key]) {
5
+ acc[key] = props[key];
6
+ }
7
+ return acc;
8
+ }, {});
9
+ };
10
+ const makeDescId = (id) => `${id}${SUFIX}`;
11
+ const getAriaProps = ({ 'aria-describedby': ariaDescribedBy, 'aria-disabled': ariaDisabled, 'aria-invalid': ariaInvalid, 'aria-required': ariaRequired, required, disabled, hasError, }) => {
12
+ const props = {
13
+ 'aria-describedby': ariaDescribedBy || '',
14
+ 'aria-disabled': !!ariaDisabled || !!disabled,
15
+ 'aria-invalid': !!ariaInvalid || !!hasError,
16
+ 'aria-required': !!ariaRequired || !!required,
17
+ };
18
+ return removeFalsyProperties(props);
19
+ };
20
+
21
+ export { getAriaProps, makeDescId };
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hY2Nlc3NpYmlsaXR5L2FyaWEvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRDb21tb25Qcm9wcyB9IGZyb20gJy4uLy4uL2lucHV0L3ByaXZhdGUvdHlwZXMnO1xuXG5pbXBvcnQgeyBBUklBSW5wdXRQcm9wcywgQVJJQUlucHV0UHJvcHNNYXAgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgU1VGSVggPSAnLWRlc2MnO1xuXG5jb25zdCByZW1vdmVGYWxzeVByb3BlcnRpZXMgPSAocHJvcHM6IEFSSUFJbnB1dFByb3BzTWFwKTogQVJJQUlucHV0UHJvcHMgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhwcm9wcykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBpZiAocHJvcHNba2V5XSkge1xuICAgICAgICAgICAgYWNjW2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufTtcblxuZXhwb3J0IGNvbnN0IG1ha2VEZXNjSWQgPSAoaWQ6IHN0cmluZyk6IHN0cmluZyA9PiBgJHtpZH0ke1NVRklYfWA7XG5cbmV4cG9ydCBjb25zdCBnZXRBcmlhUHJvcHMgPSAoe1xuICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogYXJpYURlc2NyaWJlZEJ5LFxuICAgICdhcmlhLWRpc2FibGVkJzogYXJpYURpc2FibGVkLFxuICAgICdhcmlhLWludmFsaWQnOiBhcmlhSW52YWxpZCxcbiAgICAnYXJpYS1yZXF1aXJlZCc6IGFyaWFSZXF1aXJlZCxcbiAgICByZXF1aXJlZCxcbiAgICBkaXNhYmxlZCxcbiAgICBoYXNFcnJvcixcbn06IElucHV0Q29tbW9uUHJvcHMpOiBBUklBSW5wdXRQcm9wcyA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogYXJpYURlc2NyaWJlZEJ5IHx8ICcnLFxuICAgICAgICAnYXJpYS1kaXNhYmxlZCc6ICEhYXJpYURpc2FibGVkIHx8ICEhZGlzYWJsZWQsXG4gICAgICAgICdhcmlhLWludmFsaWQnOiAhIWFyaWFJbnZhbGlkIHx8ICEhaGFzRXJyb3IsXG4gICAgICAgICdhcmlhLXJlcXVpcmVkJzogISFhcmlhUmVxdWlyZWQgfHwgISFyZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbW92ZUZhbHN5UHJvcGVydGllcyhwcm9wcyk7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUV0QixNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBd0I7SUFDbkQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHO1FBQ3RDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1osR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sR0FBRyxDQUFDO0tBQ2QsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQztNQUVXLFVBQVUsR0FBRyxDQUFDLEVBQVUsS0FBYSxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUc7TUFFckQsWUFBWSxHQUFHLENBQUMsRUFDekIsa0JBQWtCLEVBQUUsZUFBZSxFQUNuQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixjQUFjLEVBQUUsV0FBVyxFQUMzQixlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsR0FDTztJQUNmLE1BQU0sS0FBSyxHQUFHO1FBQ1Ysa0JBQWtCLEVBQUUsZUFBZSxJQUFJLEVBQUU7UUFDekMsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFFBQVE7UUFDN0MsY0FBYyxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFFBQVE7UUFDM0MsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFFBQVE7S0FDaEQsQ0FBQztJQUVGLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEM7Ozs7In0=
@@ -0,0 +1 @@
1
+ export { getAriaProps } from './aria/utils';
@@ -0,0 +1,2 @@
1
+ export { getAriaProps } from './aria/utils.js';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,9 @@
1
+ .sr-only() {
2
+ clip: rect(0 0 0 0);
3
+ clip-path: inset(50%);
4
+ height: 1px;
5
+ overflow: hidden;
6
+ position: absolute;
7
+ white-space: nowrap;
8
+ width: 1px;
9
+ }
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbbnVsbF0sInNvdXJjZXNDb250ZW50IjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QixxREFBeUQ7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyJ9
@@ -1,6 +1,5 @@
1
- export declare const PROPS_EXTERNAL_REL: {
2
- rel: string;
3
- };
1
+ export declare const REL_VALUES_EXTERNAL_URL: string[];
2
+ export declare const REL_VALUES_NO_FOLLOW: string[];
4
3
  export declare const PROPS_EXTERNAL_TARGET: {
5
4
  target: string;
6
5
  };
@@ -1,5 +1,6 @@
1
- const PROPS_EXTERNAL_REL = { rel: 'noreferrer noopener' };
1
+ const REL_VALUES_EXTERNAL_URL = ['noreferrer', 'noopener'];
2
+ const REL_VALUES_NO_FOLLOW = ['nofollow'];
2
3
  const PROPS_EXTERNAL_TARGET = { target: '_blank' };
3
4
 
4
- export { PROPS_EXTERNAL_REL, PROPS_EXTERNAL_TARGET };
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tL3Byb3BzL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUFJPUFNfRVhURVJOQUxfUkVMID0geyByZWw6ICdub3JlZmVycmVyIG5vb3BlbmVyJyB9O1xuZXhwb3J0IGNvbnN0IFBST1BTX0VYVEVSTkFMX1RBUkdFVCA9IHsgdGFyZ2V0OiAnX2JsYW5rJyB9O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQUFhLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixHQUFHO01BQ3BELHFCQUFxQixHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVE7Ozs7In0=
5
+ export { PROPS_EXTERNAL_TARGET, REL_VALUES_EXTERNAL_URL, REL_VALUES_NO_FOLLOW };
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZG9tL3Byb3BzL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUkVMX1ZBTFVFU19FWFRFUk5BTF9VUkwgPSBbJ25vcmVmZXJyZXInLCAnbm9vcGVuZXInXTtcbmV4cG9ydCBjb25zdCBSRUxfVkFMVUVTX05PX0ZPTExPVyA9IFsnbm9mb2xsb3cnXTtcbmV4cG9ydCBjb25zdCBQUk9QU19FWFRFUk5BTF9UQVJHRVQgPSB7IHRhcmdldDogJ19ibGFuaycgfTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiTUFBYSx1QkFBdUIsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUU7TUFDckQsb0JBQW9CLEdBQUcsQ0FBQyxVQUFVLEVBQUU7TUFDcEMscUJBQXFCLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUTs7OzsifQ==
@@ -1,4 +1,4 @@
1
1
  import type { Dataset } from '@preply/ds-core';
2
2
  import type { AnchorProps } from '../../types';
3
3
  export declare const getDatasetProps: (dataset?: Dataset | undefined) => Dataset;
4
- export declare const getExternalUrlProps: (hostname: string | undefined, url: string, opensInNewTab?: boolean | undefined) => AnchorProps;
4
+ export declare const getExternalUrlProps: (hostname: string | undefined, url: string, opensInNewTab?: boolean | undefined, nofollow?: boolean | undefined) => AnchorProps;
@@ -1,6 +1,6 @@
1
1
  import { currentHostname } from '../../location/index.js';
2
2
  import { domainOf } from '../../url/index.js';
3
- import { PROPS_EXTERNAL_REL, PROPS_EXTERNAL_TARGET } from './constants.js';
3
+ import { REL_VALUES_EXTERNAL_URL, REL_VALUES_NO_FOLLOW, PROPS_EXTERNAL_TARGET } from './constants.js';
4
4
 
5
5
  const getDatasetProps = (dataset) => {
6
6
  if (!dataset) {
@@ -11,15 +11,18 @@ const getDatasetProps = (dataset) => {
11
11
  return acc;
12
12
  }, {});
13
13
  };
14
- const getExternalUrlProps = (hostname, url, opensInNewTab) => {
14
+ const getExternalUrlProps = (hostname, url, opensInNewTab, nofollow) => {
15
15
  const local = hostname || currentHostname();
16
16
  const isAbsolute = /^[a-z]+:/.test(url) || url.startsWith('//');
17
17
  const isExternal = isAbsolute && domainOf(url) !== local;
18
- const propsRel = isExternal ? PROPS_EXTERNAL_REL : {};
18
+ const relValuesNoFollow = isExternal ? REL_VALUES_EXTERNAL_URL : [];
19
+ const relValuesExternalUrl = nofollow ? REL_VALUES_NO_FOLLOW : [];
20
+ const relValues = [...relValuesNoFollow, ...relValuesExternalUrl].join(' ');
21
+ const propsRel = relValues ? { rel: relValues } : {};
19
22
  const useExternalTarget = opensInNewTab === undefined ? isExternal : opensInNewTab;
20
23
  const propsTarget = useExternalTarget ? PROPS_EXTERNAL_TARGET : {};
21
24
  return { ...propsRel, ...propsTarget };
22
25
  };
23
26
 
24
27
  export { getDatasetProps, getExternalUrlProps };
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vcHJvcHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhc2V0IH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgY3VycmVudEhvc3RuYW1lIH0gZnJvbSAnLi4vLi4vbG9jYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBBbmNob3JQcm9wcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGRvbWFpbk9mIH0gZnJvbSAnLi4vLi4vdXJsJztcblxuaW1wb3J0IHsgUFJPUFNfRVhURVJOQUxfUkVMLCBQUk9QU19FWFRFUk5BTF9UQVJHRVQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhc2V0UHJvcHMgPSAoZGF0YXNldD86IERhdGFzZXQpOiBEYXRhc2V0ID0+IHtcbiAgICBpZiAoIWRhdGFzZXQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YXNldCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBhY2NbYGRhdGEtJHtrZXl9YF0gPSBkYXRhc2V0W2tleV07XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRGF0YXNldCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXh0ZXJuYWxVcmxQcm9wcyA9IChcbiAgICBob3N0bmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wZW5zSW5OZXdUYWI/OiBib29sZWFuLFxuKTogQW5jaG9yUHJvcHMgPT4ge1xuICAgIGNvbnN0IGxvY2FsID0gaG9zdG5hbWUgfHwgY3VycmVudEhvc3RuYW1lKCk7XG4gICAgY29uc3QgaXNBYnNvbHV0ZSA9IC9eW2Etel0rOi8udGVzdCh1cmwpIHx8IHVybC5zdGFydHNXaXRoKCcvLycpO1xuICAgIGNvbnN0IGlzRXh0ZXJuYWwgPSBpc0Fic29sdXRlICYmIGRvbWFpbk9mKHVybCkgIT09IGxvY2FsO1xuXG4gICAgY29uc3QgcHJvcHNSZWwgPSBpc0V4dGVybmFsID8gUFJPUFNfRVhURVJOQUxfUkVMIDoge307XG5cbiAgICBjb25zdCB1c2VFeHRlcm5hbFRhcmdldCA9IG9wZW5zSW5OZXdUYWIgPT09IHVuZGVmaW5lZCA/IGlzRXh0ZXJuYWwgOiBvcGVuc0luTmV3VGFiO1xuICAgIGNvbnN0IHByb3BzVGFyZ2V0ID0gdXNlRXh0ZXJuYWxUYXJnZXQgPyBQUk9QU19FWFRFUk5BTF9UQVJHRVQgOiB7fTtcblxuICAgIHJldHVybiB7IC4uLnByb3BzUmVsLCAuLi5wcm9wc1RhcmdldCB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O01BUWEsZUFBZSxHQUFHLENBQUMsT0FBaUI7SUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ2I7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUc7UUFDeEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxHQUFHLENBQUM7S0FDZCxFQUFFLEVBQWEsQ0FBQyxDQUFDO0FBQ3RCLEVBQUU7TUFFVyxtQkFBbUIsR0FBRyxDQUMvQixRQUE0QixFQUM1QixHQUFXLEVBQ1gsYUFBdUI7SUFFdkIsTUFBTSxLQUFLLEdBQUcsUUFBUSxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQzVDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRSxNQUFNLFVBQVUsR0FBRyxVQUFVLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQztJQUV6RCxNQUFNLFFBQVEsR0FBRyxVQUFVLEdBQUcsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRXRELE1BQU0saUJBQWlCLEdBQUcsYUFBYSxLQUFLLFNBQVMsR0FBRyxVQUFVLEdBQUcsYUFBYSxDQUFDO0lBQ25GLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixHQUFHLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUVuRSxPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztBQUMzQzs7OzsifQ==
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vcHJvcHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhc2V0IH0gZnJvbSAnQHByZXBseS9kcy1jb3JlJztcblxuaW1wb3J0IHsgY3VycmVudEhvc3RuYW1lIH0gZnJvbSAnLi4vLi4vbG9jYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBBbmNob3JQcm9wcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGRvbWFpbk9mIH0gZnJvbSAnLi4vLi4vdXJsJztcblxuaW1wb3J0IHsgUFJPUFNfRVhURVJOQUxfVEFSR0VULCBSRUxfVkFMVUVTX0VYVEVSTkFMX1VSTCwgUkVMX1ZBTFVFU19OT19GT0xMT1cgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhc2V0UHJvcHMgPSAoZGF0YXNldD86IERhdGFzZXQpOiBEYXRhc2V0ID0+IHtcbiAgICBpZiAoIWRhdGFzZXQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YXNldCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBhY2NbYGRhdGEtJHtrZXl9YF0gPSBkYXRhc2V0W2tleV07XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRGF0YXNldCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXh0ZXJuYWxVcmxQcm9wcyA9IChcbiAgICBob3N0bmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wZW5zSW5OZXdUYWI/OiBib29sZWFuLFxuICAgIG5vZm9sbG93PzogYm9vbGVhbixcbik6IEFuY2hvclByb3BzID0+IHtcbiAgICBjb25zdCBsb2NhbCA9IGhvc3RuYW1lIHx8IGN1cnJlbnRIb3N0bmFtZSgpO1xuICAgIGNvbnN0IGlzQWJzb2x1dGUgPSAvXlthLXpdKzovLnRlc3QodXJsKSB8fCB1cmwuc3RhcnRzV2l0aCgnLy8nKTtcbiAgICBjb25zdCBpc0V4dGVybmFsID0gaXNBYnNvbHV0ZSAmJiBkb21haW5PZih1cmwpICE9PSBsb2NhbDtcblxuICAgIGNvbnN0IHJlbFZhbHVlc05vRm9sbG93ID0gaXNFeHRlcm5hbCA/IFJFTF9WQUxVRVNfRVhURVJOQUxfVVJMIDogW107XG4gICAgY29uc3QgcmVsVmFsdWVzRXh0ZXJuYWxVcmwgPSBub2ZvbGxvdyA/IFJFTF9WQUxVRVNfTk9fRk9MTE9XIDogW107XG5cbiAgICBjb25zdCByZWxWYWx1ZXMgPSBbLi4ucmVsVmFsdWVzTm9Gb2xsb3csIC4uLnJlbFZhbHVlc0V4dGVybmFsVXJsXS5qb2luKCcgJyk7XG4gICAgY29uc3QgcHJvcHNSZWwgPSByZWxWYWx1ZXMgPyB7IHJlbDogcmVsVmFsdWVzIH0gOiB7fTtcblxuICAgIGNvbnN0IHVzZUV4dGVybmFsVGFyZ2V0ID0gb3BlbnNJbk5ld1RhYiA9PT0gdW5kZWZpbmVkID8gaXNFeHRlcm5hbCA6IG9wZW5zSW5OZXdUYWI7XG4gICAgY29uc3QgcHJvcHNUYXJnZXQgPSB1c2VFeHRlcm5hbFRhcmdldCA/IFBST1BTX0VYVEVSTkFMX1RBUkdFVCA6IHt9O1xuXG4gICAgcmV0dXJuIHsgLi4ucHJvcHNSZWwsIC4uLnByb3BzVGFyZ2V0IH07XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7TUFRYSxlQUFlLEdBQUcsQ0FBQyxPQUFpQjtJQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRztRQUN4QyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsQ0FBQztLQUNkLEVBQUUsRUFBYSxDQUFDLENBQUM7QUFDdEIsRUFBRTtNQUVXLG1CQUFtQixHQUFHLENBQy9CLFFBQTRCLEVBQzVCLEdBQVcsRUFDWCxhQUF1QixFQUN2QixRQUFrQjtJQUVsQixNQUFNLEtBQUssR0FBRyxRQUFRLElBQUksZUFBZSxFQUFFLENBQUM7SUFDNUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLFVBQVUsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDO0lBRXpELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxHQUFHLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztJQUNwRSxNQUFNLG9CQUFvQixHQUFHLFFBQVEsR0FBRyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFFbEUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUUsTUFBTSxRQUFRLEdBQUcsU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUVyRCxNQUFNLGlCQUFpQixHQUFHLGFBQWEsS0FBSyxTQUFTLEdBQUcsVUFBVSxHQUFHLGFBQWEsQ0FBQztJQUNuRixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsR0FBRyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFFbkUsT0FBTyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDM0M7Ozs7In0=
@@ -1 +1,3 @@
1
+ import { FieldAdditionalTextVariant } from './types';
1
2
  export declare const FIELD_TYPE_DEFAULT = "text";
3
+ export declare const FIELD_ADDITIONAL_TEXT_VARIANT_DEFAULT: FieldAdditionalTextVariant;
@@ -1,4 +1,5 @@
1
- const FIELD_TYPE_DEFAULT = 'text';
1
+ const FIELD_TYPE_DEFAULT = 'text';
2
+ const FIELD_ADDITIONAL_TEXT_VARIANT_DEFAULT = 'normal';
2
3
 
3
- export { FIELD_TYPE_DEFAULT };
4
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmllbGQvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0RFRkFVTFQgPSAndGV4dCc7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik1BQWEsa0JBQWtCLEdBQUc7Ozs7In0=
4
+ export { FIELD_ADDITIONAL_TEXT_VARIANT_DEFAULT, FIELD_TYPE_DEFAULT };
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmllbGQvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkQWRkaXRpb25hbFRleHRWYXJpYW50IH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0RFRkFVTFQgPSAndGV4dCc7XG5leHBvcnQgY29uc3QgRklFTERfQURESVRJT05BTF9URVhUX1ZBUklBTlRfREVGQVVMVDogRmllbGRBZGRpdGlvbmFsVGV4dFZhcmlhbnQgPSAnbm9ybWFsJztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiTUFFYSxrQkFBa0IsR0FBRyxPQUFPO01BQzVCLHFDQUFxQyxHQUErQjs7OzsifQ==
@@ -1,8 +1,12 @@
1
- import { SimpleTextInputTypeProps } from '../../input';
2
- import { SingleLineFieldLayoutProps, TextFieldProps } from '../types';
1
+ import type { InputTextProps } from '../../input';
2
+ import type { FieldLayoutProps } from '../types';
3
3
  declare type UseTextFieldState = {
4
- fieldProps: Omit<SingleLineFieldLayoutProps, 'input' | 'className'>;
5
- inputProps: SimpleTextInputTypeProps;
4
+ layoutProps: Omit<FieldLayoutProps, 'input' | 'className' | 'inputHandle'>;
5
+ inputProps: InputTextProps;
6
6
  };
7
- export declare const useTextField: (props: TextFieldProps & Pick<SimpleTextInputTypeProps, "type" | "required" | "disabled" | "hasError" | "dataset" | "aria-describedby" | "aria-disabled" | "aria-invalid" | "aria-required" | "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 {};
@@ -1,10 +1,11 @@
1
1
  import { makeTinyId } from '@preply/ds-core';
2
2
  import { useState } from 'react';
3
- import { makeDescId } from '../../aria/utils.js';
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);
@@ -24,23 +25,23 @@ const useTextField = (props) => {
24
25
  onChange === null || onChange === void 0 ? void 0 : onChange(ev);
25
26
  };
26
27
  const actualHasError = hasError || !!errorMessage;
28
+ const actualAdditionalText = errorMessage || additionalText;
27
29
  const describeId = actualHasError || !!additionalText ? makeDescId(actualId) : undefined;
28
30
  return {
29
- fieldProps: {
31
+ layoutProps: {
30
32
  id: actualId,
31
- type: actualType,
32
33
  label,
33
34
  hideLabel,
34
- additionalText,
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
- errorMessage,
43
- preserveSpace,
44
45
  icon,
45
46
  button,
46
47
  dataset,
@@ -49,13 +50,14 @@ const useTextField = (props) => {
49
50
  type: actualType,
50
51
  id: actualId,
51
52
  value,
52
- // assitiveText: hideVisualLabel ?? label : undefined,
53
53
  onChange: handleChange,
54
54
  onFocus: handleFocus,
55
55
  onBlur: handleBlur,
56
56
  required,
57
57
  disabled,
58
58
  hasError: actualHasError,
59
+ autoComplete,
60
+ dataset: inputDataset,
59
61
  'aria-describedby': describeId,
60
62
  ...rest,
61
63
  },
@@ -63,4 +65,4 @@ const useTextField = (props) => {
63
65
  };
64
66
 
65
67
  export { useTextField };
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dEZpZWxkLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGQvaG9va3MvdXNlVGV4dEZpZWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VUaW55SWQgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnRIYW5kbGVyLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgbWFrZURlc2NJZCB9IGZyb20gJy4uLy4uL2FyaWEvdXRpbHMnO1xuaW1wb3J0IHsgRm9jdXNFdmVudEhhbmRsZXIgfSBmcm9tICcuLi8uLi9ldmVudHMnO1xuaW1wb3J0IHsgU2ltcGxlVGV4dElucHV0VHlwZVByb3BzIH0gZnJvbSAnLi4vLi4vaW5wdXQnO1xuaW1wb3J0IHsgRklFTERfVFlQRV9ERUZBVUxUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNpbmdsZUxpbmVGaWVsZExheW91dFByb3BzLCBUZXh0RmllbGRQcm9wcyB9IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBVc2VUZXh0RmllbGRTdGF0ZSA9IHtcbiAgICBmaWVsZFByb3BzOiBPbWl0PFNpbmdsZUxpbmVGaWVsZExheW91dFByb3BzLCAnaW5wdXQnIHwgJ2NsYXNzTmFtZSc+O1xuICAgIGlucHV0UHJvcHM6IFNpbXBsZVRleHRJbnB1dFR5cGVQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VUZXh0RmllbGQgPSAoXG4gICAgcHJvcHM6IFRleHRGaWVsZFByb3BzICYgT21pdDxTaW1wbGVUZXh0SW5wdXRUeXBlUHJvcHMsICdpZCc+LFxuKTogVXNlVGV4dEZpZWxkU3RhdGUgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgaWQsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgaGlkZUxhYmVsLFxuICAgICAgICBhZGRpdGlvbmFsVGV4dCxcbiAgICAgICAgcHJlc2VydmVTcGFjZSxcbiAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBoYXNFcnJvcixcbiAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICBpY29uLFxuICAgICAgICBidXR0b24sXG4gICAgICAgIG9uRm9jdXMsXG4gICAgICAgIG9uQmx1cixcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgICAgIGRhdGFzZXQsXG4gICAgICAgIC4uLnJlc3RcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBhY3R1YWxJZCA9IGlkIHx8IG1ha2VUaW55SWQoKTtcbiAgICBjb25zdCBhY3R1YWxUeXBlID0gdHlwZSA/PyBGSUVMRF9UWVBFX0RFRkFVTFQ7XG5cbiAgICBjb25zdCBbaXNGb2N1c2VkLCBzZXRJc0ZvY3VzZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGNvbnN0IFtpc1RvdWNoZWQsIHNldElzVG91Y2hlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gICAgY29uc3QgW2lzQ2hhbmdlZCwgc2V0SXNDaGFuZ2VkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlciA9IGV2ID0+IHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKHRydWUpO1xuICAgICAgICBzZXRJc1RvdWNoZWQodHJ1ZSk7XG4gICAgICAgIG9uRm9jdXM/Lihldik7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpO1xuICAgICAgICBvbkJsdXI/Lihldik7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0NoYW5nZWQoZmFsc2UpO1xuICAgICAgICBvbkNoYW5nZT8uKGV2KTtcbiAgICB9O1xuXG4gICAgY29uc3QgYWN0dWFsSGFzRXJyb3IgPSBoYXNFcnJvciB8fCAhIWVycm9yTWVzc2FnZTtcbiAgICBjb25zdCBkZXNjcmliZUlkID0gYWN0dWFsSGFzRXJyb3IgfHwgISFhZGRpdGlvbmFsVGV4dCA/IG1ha2VEZXNjSWQoYWN0dWFsSWQpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgZmllbGRQcm9wczoge1xuICAgICAgICAgICAgaWQ6IGFjdHVhbElkLFxuICAgICAgICAgICAgdHlwZTogYWN0dWFsVHlwZSxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgaGlkZUxhYmVsLFxuICAgICAgICAgICAgYWRkaXRpb25hbFRleHQsXG4gICAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgaXNGb2N1c2VkLFxuICAgICAgICAgICAgaXNUb3VjaGVkLFxuICAgICAgICAgICAgaXNDaGFuZ2VkLFxuICAgICAgICAgICAgaGFzVmFsdWU6IHR5cGVvZiB2YWx1ZSAhPT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgaGFzRXJyb3I6IGFjdHVhbEhhc0Vycm9yLFxuICAgICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgcHJlc2VydmVTcGFjZSxcbiAgICAgICAgICAgIGljb24sXG4gICAgICAgICAgICBidXR0b24sXG4gICAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICB9LFxuICAgICAgICBpbnB1dFByb3BzOiB7XG4gICAgICAgICAgICB0eXBlOiBhY3R1YWxUeXBlLFxuICAgICAgICAgICAgaWQ6IGFjdHVhbElkLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAvLyBhc3NpdGl2ZVRleHQ6IGhpZGVWaXN1YWxMYWJlbCA/PyBsYWJlbCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsXG4gICAgICAgICAgICBvbkZvY3VzOiBoYW5kbGVGb2N1cyxcbiAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlQmx1cixcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBoYXNFcnJvcjogYWN0dWFsSGFzRXJyb3IsXG4gICAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6IGRlc2NyaWJlSWQsXG4gICAgICAgICAgICAuLi5yZXN0LFxuICAgICAgICB9LFxuICAgIH07XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O01BY2EsWUFBWSxHQUFHLENBQ3hCLEtBQTREO0lBRTVELE1BQU0sRUFDRixJQUFJLEVBQ0osRUFBRSxFQUNGLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUNULGNBQWMsRUFDZCxhQUFhLEVBQ2IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxFQUNQLEdBQUcsSUFBSSxFQUNWLEdBQUcsS0FBSyxDQUFDO0lBRVYsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLGtCQUFrQixDQUFDO0lBRTlDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTNELE1BQU0sV0FBVyxHQUFzQixFQUFFO1FBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBRUYsTUFBTSxVQUFVLEdBQXNCLEVBQUU7UUFDcEMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUF1QixFQUFFO1FBQ3ZDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUcsRUFBRSxFQUFFO0tBQ2xCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNsRCxNQUFNLFVBQVUsR0FBRyxjQUFjLElBQUksQ0FBQyxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBRXpGLE9BQU87UUFDSCxVQUFVLEVBQUU7WUFDUixFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUs7WUFDTCxTQUFTO1lBQ1QsY0FBYztZQUNkLFFBQVE7WUFDUixRQUFRO1lBQ1IsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsUUFBUSxFQUFFLE9BQU8sS0FBSyxLQUFLLFNBQVM7WUFDcEMsUUFBUSxFQUFFLGNBQWM7WUFDeEIsWUFBWTtZQUNaLGFBQWE7WUFDYixJQUFJO1lBQ0osTUFBTTtZQUNOLE9BQU87U0FDVjtRQUNELFVBQVUsRUFBRTtZQUNSLElBQUksRUFBRSxVQUFVO1lBQ2hCLEVBQUUsRUFBRSxRQUFRO1lBQ1osS0FBSzs7WUFFTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixPQUFPLEVBQUUsV0FBVztZQUNwQixNQUFNLEVBQUUsVUFBVTtZQUNsQixRQUFRO1lBQ1IsUUFBUTtZQUNSLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLGtCQUFrQixFQUFFLFVBQVU7WUFDOUIsR0FBRyxJQUFJO1NBQ1Y7S0FDSixDQUFDO0FBQ047Ozs7In0=
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGV4dEZpZWxkLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGQvaG9va3MvdXNlVGV4dEZpZWxkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VUaW55SWQgfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnRIYW5kbGVyLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgbWFrZURlc2NJZCB9IGZyb20gJy4uLy4uL2FjY2Vzc2liaWxpdHkvYXJpYS91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEZvY3VzRXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgSW5wdXRUZXh0UHJvcHMgfSBmcm9tICcuLi8uLi9pbnB1dCc7XG5pbXBvcnQgeyBBVVRPX0NPTVBMRVRFX1RFWFRfREVGQVVMVCB9IGZyb20gJy4uLy4uL2lucHV0JztcbmltcG9ydCB7IEZJRUxEX1RZUEVfREVGQVVMVCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IEZpZWxkTGF5b3V0UHJvcHMsIFRleHRGaWVsZFByb3BzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG50eXBlIFVzZVRleHRGaWVsZFN0YXRlID0ge1xuICAgIGxheW91dFByb3BzOiBPbWl0PEZpZWxkTGF5b3V0UHJvcHMsICdpbnB1dCcgfCAnY2xhc3NOYW1lJyB8ICdpbnB1dEhhbmRsZSc+O1xuICAgIGlucHV0UHJvcHM6IElucHV0VGV4dFByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVRleHRGaWVsZCA9IChcbiAgICBwcm9wczogVGV4dEZpZWxkUHJvcHMgJiBPbWl0PElucHV0VGV4dFByb3BzLCAnaWQnPixcbik6IFVzZVRleHRGaWVsZFN0YXRlID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGlkLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIGhpZGVMYWJlbCxcbiAgICAgICAgcHJlc2VydmVTcGFjZSxcbiAgICAgICAgcmVxdWlyZWQsXG4gICAgICAgIHJlcXVpcmVkTGFiZWwsXG4gICAgICAgIGFkZGl0aW9uYWxUZXh0LFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgaGFzRXJyb3IsXG4gICAgICAgIGVycm9yTWVzc2FnZSxcbiAgICAgICAgaWNvbixcbiAgICAgICAgYnV0dG9uLFxuICAgICAgICBvbkZvY3VzLFxuICAgICAgICBvbkJsdXIsXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICBhdXRvQ29tcGxldGUgPSBBVVRPX0NPTVBMRVRFX1RFWFRfREVGQVVMVCxcbiAgICAgICAgaW5wdXREYXRhc2V0LFxuICAgICAgICBkYXRhc2V0LFxuICAgICAgICAuLi5yZXN0XG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgYWN0dWFsSWQgPSBpZCB8fCBtYWtlVGlueUlkKCk7XG4gICAgY29uc3QgYWN0dWFsVHlwZSA9IHR5cGUgPz8gRklFTERfVFlQRV9ERUZBVUxUO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gICAgY29uc3QgW2lzVG91Y2hlZCwgc2V0SXNUb3VjaGVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBjb25zdCBbaXNDaGFuZ2VkLCBzZXRJc0NoYW5nZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0ZvY3VzZWQodHJ1ZSk7XG4gICAgICAgIHNldElzVG91Y2hlZCh0cnVlKTtcbiAgICAgICAgb25Gb2N1cz8uKGV2KTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyID0gZXYgPT4ge1xuICAgICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpO1xuICAgICAgICBvbkJsdXI/Lihldik7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlciA9IGV2ID0+IHtcbiAgICAgICAgc2V0SXNDaGFuZ2VkKGZhbHNlKTtcbiAgICAgICAgb25DaGFuZ2U/Lihldik7XG4gICAgfTtcblxuICAgIGNvbnN0IGFjdHVhbEhhc0Vycm9yID0gaGFzRXJyb3IgfHwgISFlcnJvck1lc3NhZ2U7XG4gICAgY29uc3QgYWN0dWFsQWRkaXRpb25hbFRleHQgPSBlcnJvck1lc3NhZ2UgfHwgYWRkaXRpb25hbFRleHQ7XG4gICAgY29uc3QgZGVzY3JpYmVJZCA9IGFjdHVhbEhhc0Vycm9yIHx8ICEhYWRkaXRpb25hbFRleHQgPyBtYWtlRGVzY0lkKGFjdHVhbElkKSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxheW91dFByb3BzOiB7XG4gICAgICAgICAgICBpZDogYWN0dWFsSWQsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIGhpZGVMYWJlbCxcbiAgICAgICAgICAgIHJlcXVpcmVkLFxuICAgICAgICAgICAgcmVxdWlyZWRMYWJlbCxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxUZXh0OiBhY3R1YWxBZGRpdGlvbmFsVGV4dCxcbiAgICAgICAgICAgIHByZXNlcnZlU3BhY2UsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGlzRm9jdXNlZCxcbiAgICAgICAgICAgIGlzVG91Y2hlZCxcbiAgICAgICAgICAgIGlzQ2hhbmdlZCxcbiAgICAgICAgICAgIGhhc1ZhbHVlOiB0eXBlb2YgdmFsdWUgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGhhc0Vycm9yOiBhY3R1YWxIYXNFcnJvcixcbiAgICAgICAgICAgIGljb24sXG4gICAgICAgICAgICBidXR0b24sXG4gICAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICB9LFxuICAgICAgICBpbnB1dFByb3BzOiB7XG4gICAgICAgICAgICB0eXBlOiBhY3R1YWxUeXBlLFxuICAgICAgICAgICAgaWQ6IGFjdHVhbElkLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLFxuICAgICAgICAgICAgb25Gb2N1czogaGFuZGxlRm9jdXMsXG4gICAgICAgICAgICBvbkJsdXI6IGhhbmRsZUJsdXIsXG4gICAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgaGFzRXJyb3I6IGFjdHVhbEhhc0Vycm9yLFxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlLFxuICAgICAgICAgICAgZGF0YXNldDogaW5wdXREYXRhc2V0LFxuICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZUlkLFxuICAgICAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgfSxcbiAgICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7TUFlYSxZQUFZLEdBQUcsQ0FDeEIsS0FBa0Q7SUFFbEQsTUFBTSxFQUNGLElBQUksRUFDSixFQUFFLEVBQ0YsS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDUixhQUFhLEVBQ2IsY0FBYyxFQUNkLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixRQUFRLEVBQ1IsWUFBWSxHQUFHLDBCQUEwQixFQUN6QyxZQUFZLEVBQ1osT0FBTyxFQUNQLEdBQUcsSUFBSSxFQUNWLEdBQUcsS0FBSyxDQUFDO0lBRVYsTUFBTSxRQUFRLEdBQUcsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLGtCQUFrQixDQUFDO0lBQzlDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTNELE1BQU0sV0FBVyxHQUFzQixFQUFFO1FBQ3JDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLEVBQUUsRUFBRTtLQUNqQixDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQXNCLEVBQUU7UUFDcEMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxFQUFFLEVBQUU7S0FDaEIsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUF1QixFQUFFO1FBQ3ZDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUcsRUFBRSxFQUFFO0tBQ2xCLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNsRCxNQUFNLG9CQUFvQixHQUFHLFlBQVksSUFBSSxjQUFjLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUV6RixPQUFPO1FBQ0gsV0FBVyxFQUFFO1lBQ1QsRUFBRSxFQUFFLFFBQVE7WUFDWixLQUFLO1lBQ0wsU0FBUztZQUNULFFBQVE7WUFDUixhQUFhO1lBQ2IsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxhQUFhO1lBQ2IsUUFBUTtZQUNSLFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFFBQVEsRUFBRSxPQUFPLEtBQUssS0FBSyxTQUFTO1lBQ3BDLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLElBQUk7WUFDSixNQUFNO1lBQ04sT0FBTztTQUNWO1FBQ0QsVUFBVSxFQUFFO1lBQ1IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsRUFBRSxFQUFFLFFBQVE7WUFDWixLQUFLO1lBQ0wsUUFBUSxFQUFFLFlBQVk7WUFDdEIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsUUFBUTtZQUNSLFFBQVE7WUFDUixRQUFRLEVBQUUsY0FBYztZQUN4QixZQUFZO1lBQ1osT0FBTyxFQUFFLFlBQVk7WUFDckIsa0JBQWtCLEVBQUUsVUFBVTtZQUM5QixHQUFHLElBQUk7U0FDVjtLQUNKLENBQUM7QUFDTjs7OzsifQ==
@@ -1,3 +1,4 @@
1
1
  export * from './constants';
2
2
  export * from './hooks/useTextField';
3
+ export * from './options';
3
4
  export * from './types';
@@ -1,3 +1,4 @@
1
- export { FIELD_TYPE_DEFAULT } from './constants.js';
1
+ export { FIELD_ADDITIONAL_TEXT_VARIANT_DEFAULT, FIELD_TYPE_DEFAULT } from './constants.js';
2
2
  export { useTextField } from './hooks/useTextField.js';
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
3
+ export { ADDITIONAL_TEXT_VARIANT_OPTIONS } from './options.js';
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzsifQ==
@@ -0,0 +1,3 @@
1
+ import type { Option } from '@preply/ds-core-types';
2
+ import type { FieldAdditionalTextVariant } from './types';
3
+ export declare const ADDITIONAL_TEXT_VARIANT_OPTIONS: Option<FieldAdditionalTextVariant>[];
@@ -0,0 +1,7 @@
1
+ const ADDITIONAL_TEXT_VARIANT_OPTIONS = [
2
+ { id: 'normal' },
3
+ { id: 'error' },
4
+ ];
5
+
6
+ export { ADDITIONAL_TEXT_VARIANT_OPTIONS };
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpZWxkL29wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcHRpb24gfSBmcm9tICdAcHJlcGx5L2RzLWNvcmUtdHlwZXMnO1xuXG5pbXBvcnQgdHlwZSB7IEZpZWxkQWRkaXRpb25hbFRleHRWYXJpYW50IH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBBRERJVElPTkFMX1RFWFRfVkFSSUFOVF9PUFRJT05TOiBPcHRpb248RmllbGRBZGRpdGlvbmFsVGV4dFZhcmlhbnQ+W10gPSBbXG4gICAgeyBpZDogJ25vcm1hbCcgfSxcbiAgICB7IGlkOiAnZXJyb3InIH0sXG5dO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJNQUlhLCtCQUErQixHQUF5QztJQUNqRixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUU7SUFDaEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFOzs7OzsifQ==
@@ -1,41 +1,67 @@
1
- import { Dataset } from '@preply/ds-core';
2
- import { MouseEventHandler, 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;
9
21
  onClick: MouseEventHandler;
10
22
  dataset?: Dataset;
11
23
  }
12
- export interface FieldLayoutProps {
24
+ export interface FieldLayoutBaseProps {
13
25
  id: string;
14
- className: string;
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
- isFocused: boolean;
22
- isTouched: boolean;
23
- isChanged: boolean;
24
- hasValue: boolean;
25
- hasError: boolean;
26
- errorMessage?: string;
34
+ isFocused?: boolean;
35
+ isTouched?: boolean;
36
+ isChanged?: boolean;
37
+ hasValue?: boolean;
38
+ hasError?: boolean;
27
39
  dataset?: Dataset;
40
+ children: ReactNode;
41
+ }
42
+ export interface InputImperativeHandle {
43
+ setFocus: () => void;
28
44
  }
29
- export interface SingleLineFieldLayoutProps extends FieldLayoutProps {
45
+ export interface FieldLayoutProps extends Omit<FieldLayoutBaseProps, 'children'> {
30
46
  input: React.ReactElement;
31
- type: SingleLineInputType;
32
- icon?: ReactSVGComponentType;
47
+ inputHandle: InputImperativeHandle | null;
48
+ icon?: React.ReactElement<IconProps>;
33
49
  button?: React.ReactElement<FieldButtonProps>;
34
50
  }
51
+ export declare type FieldAdditionalTextVariant = 'normal' | 'error';
52
+ export interface FieldAdditionalTextProps {
53
+ variant?: FieldAdditionalTextVariant;
54
+ id?: string;
55
+ children: ReactNode;
56
+ }
57
+ /**
58
+ * <Field*>
59
+ */
35
60
  interface FieldCommonProps {
36
61
  type?: InputType;
37
62
  id?: string;
38
63
  label: string;
64
+ requiredLabel?: string;
39
65
  hideLabel?: boolean;
40
66
  additionalText?: string;
41
67
  preserveSpace?: boolean;
@@ -44,12 +70,15 @@ interface FieldCommonProps {
44
70
  dataset?: Dataset;
45
71
  inputDataset?: Dataset;
46
72
  }
47
- interface SingleLineFieldCommonProps extends FieldCommonProps {
73
+ export interface SingleLineFieldCommonProps extends FieldCommonProps {
48
74
  type?: SingleLineInputType;
49
- icon?: ReactSVGComponentType;
75
+ icon?: React.ReactElement<IconProps>;
50
76
  button?: React.ReactElement<FieldButtonProps>;
51
77
  }
52
- export interface TextFieldProps extends SingleLineFieldCommonProps {
78
+ /**
79
+ * public <*Field> props
80
+ */
81
+ export declare type TextFieldProps = SingleLineFieldCommonProps & CombinableInputProps<InputTextProps> & {
53
82
  type?: SimpleTextInputType;
54
- }
83
+ };
55
84
  export {};
@@ -1,4 +1,4 @@
1
- /* AUTO GENERATED @Thu Nov 10 2022 09:32:36 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 @Thu Nov 10 2022 09:32:35 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 @Thu Nov 10 2022 09:32:36 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,11 +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);
96
+ @content-error-color: var(--9167e9);
97
+ @border-base-borderColor: var(--29cd58);
98
+ @border-focus-borderColor: var(--398094);
99
+ @border-error-borderColor: var(--eaf4a3);
95
100
  @action-base-borderRadius: var(--8d5131);
96
101
  @action-base-disabled-color: var(--a8b89c);
97
102
  @action-base-disabled-bgColor: var(--04daeb);
@@ -101,6 +106,9 @@
101
106
  @action-base-focus-outlineColor: var(--603ec6);
102
107
  @action-base-gap: var(--0aee7b);
103
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);
104
112
  @action-variant-primary-color: var(--d2baa6);
105
113
  @action-variant-secondary-color: var(--1614c9);
106
114
  @action-variant-tertiary-color: var(--937543);
@@ -247,6 +255,7 @@
247
255
  @text-size-l-fontSize: var(--da41aa);
248
256
  @text-size-xl-fontSize: var(--698b61);
249
257
  @text-variant-xs-fontSize: var(--4c9f68);
258
+ @text-variant-xs-medium-fontSize: var(--547b8f);
250
259
  @text-variant-s-fontSize: var(--a7cfda);
251
260
  @text-variant-s-italic-fontSize: var(--79c03c);
252
261
  @text-variant-s-medium-fontSize: var(--28e99e);
@@ -268,6 +277,7 @@
268
277
  @text-variant-xl-medium-fontSize: var(--19e13e);
269
278
  @text-variant-xl-medium-italic-fontSize: var(--88dc17);
270
279
  @text-variant-xs-fontWeight: var(--71d69c);
280
+ @text-variant-xs-medium-fontWeight: var(--86a200);
271
281
  @text-variant-s-fontWeight: var(--dc8b92);
272
282
  @text-variant-s-italic-fontWeight: var(--5127dd);
273
283
  @text-variant-s-medium-fontWeight: var(--ca04c0);
@@ -289,6 +299,7 @@
289
299
  @text-variant-xl-medium-fontWeight: var(--6455e5);
290
300
  @text-variant-xl-medium-italic-fontWeight: var(--cc6f61);
291
301
  @text-variant-xs-lineHeight: var(--543571);
302
+ @text-variant-xs-medium-lineHeight: var(--e7e648);
292
303
  @text-variant-s-lineHeight: var(--c552e7);
293
304
  @text-variant-s-italic-lineHeight: var(--aeb64b);
294
305
  @text-variant-s-medium-lineHeight: var(--af784d);
@@ -310,6 +321,7 @@
310
321
  @text-variant-xl-medium-lineHeight: var(--85e4ac);
311
322
  @text-variant-xl-medium-italic-lineHeight: var(--904c1e);
312
323
  @text-variant-xs-letterSpacing: var(--29af86);
324
+ @text-variant-xs-medium-letterSpacing: var(--d7a1ad);
313
325
  @text-variant-s-letterSpacing: var(--4d1d51);
314
326
  @text-variant-s-italic-letterSpacing: var(--a50d8c);
315
327
  @text-variant-s-medium-letterSpacing: var(--015e8c);
@@ -331,6 +343,7 @@
331
343
  @text-variant-xl-medium-letterSpacing: var(--e76960);
332
344
  @text-variant-xl-medium-italic-letterSpacing: var(--cf0e2c);
333
345
  @text-variant-xs-fontStyle: var(--647b4d);
346
+ @text-variant-xs-medium-fontStyle: var(--abe371);
334
347
  @text-variant-s-fontStyle: var(--b8dd4e);
335
348
  @text-variant-s-italic-fontStyle: var(--c89e06);
336
349
  @text-variant-s-medium-fontStyle: var(--e1d91f);
@@ -352,6 +365,7 @@
352
365
  @text-variant-xl-medium-fontStyle: var(--0a5e67);
353
366
  @text-variant-xl-medium-italic-fontStyle: var(--6fc949);
354
367
  @text-variant-xs-variationSettings: var(--afe759);
368
+ @text-variant-xs-medium-variationSettings: var(--f65ebc);
355
369
  @text-variant-s-variationSettings: var(--93fedc);
356
370
  @text-variant-s-italic-variationSettings: var(--0557d4);
357
371
  @text-variant-s-medium-variationSettings: var(--d7e46a);
@@ -379,6 +393,8 @@
379
393
  @text-weight-normal-fontWeight: var(--5ea101);
380
394
  @text-weight-medium-fontWeight: var(--2734e9);
381
395
  @text-weight-bold-fontWeight: var(--800787);
396
+ @input-base-borderWidth: var(--d9baa3);
397
+ @input-base-borderRadius: var(--c4b051);
382
398
  @root-size-none: var(--c12f10);
383
399
  @root-size-25: var(--389aa7);
384
400
  @root-size-50: var(--8848e0);
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -1,2 +1,2 @@
1
- export { getAriaProps } from './utils.js';
1
+
2
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
@@ -1,10 +1,11 @@
1
- export * from './aria';
1
+ export * from './accessibility';
2
2
  export * from './color/module-color';
3
3
  export * from './color-scheme';
4
4
  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
@@ -1,7 +1,7 @@
1
1
  export { getDatasetProps, getExternalUrlProps } from './dom/props/index.js';
2
2
  export { mapEdgeKeyToStandard } from './keyboard/index.js';
3
3
  export { currentHostname, currentHref } from './location/index.js';
4
- export { getAriaProps } from './aria/utils.js';
4
+ export { getAriaProps } from './accessibility/aria/utils.js';
5
5
  export { useColorClassNames } from './color/module-color/hooks/useColorClassNames.js';
6
6
  export { colorSchemes } from './color-scheme/colorSchemes.js';
7
7
  export { ColorScheme } from './color-scheme/classes/ColorScheme.js';
@@ -10,11 +10,13 @@ export { useColorScheme } from './color-scheme/hooks/useColorScheme.js';
10
10
  export { withColorScheme } from './color-scheme/hocs/withColorScheme.js';
11
11
  export { booleanClassNames, globalClassNames, longhandClassNames, moduleClassName, moduleClassNames, moduleLocals, stringClassNames } from './css-module/classNames.js';
12
12
  export { useFocusEvents } from './events/hooks/useFocusEvents.js';
13
- export { FIELD_TYPE_DEFAULT } from './field/constants.js';
13
+ export { FIELD_ADDITIONAL_TEXT_VARIANT_DEFAULT, FIELD_TYPE_DEFAULT } from './field/constants.js';
14
14
  export { useTextField } from './field/hooks/useTextField.js';
15
+ export { ADDITIONAL_TEXT_VARIANT_OPTIONS } from './field/options.js';
15
16
  export { AUTO_COMPLETE_DATE_DEFAULT, AUTO_COMPLETE_PASSWORD_DEFAULT, AUTO_COMPLETE_TEXT_DEFAULT, INPUT_TYPE_DEFAULT } from './input/constants.js';
16
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';
17
- export { useForcedRef } from './input/util.js';
18
+ export { getInputProps } from './input/utils/getInputProps.js';
19
+ export { useForcedRef } from './input/utils/useForcedRef.js';
18
20
  export { useInstrument } from './instrument/hooks/useInstrument.js';
19
21
  export { InstrumentProvider } from './instrument/providers/Instrument.js';
20
22
  export { useLayoutClassNames } from './layout/hooks/useLayoutClassNames.js';
@@ -24,6 +26,7 @@ export { useLayoutGridResponsiveColumns } from './layout/hooks/useLayoutGridResp
24
26
  export { useLayoutHideClassnames } from './layout/module-layout-hide/hooks/useLayoutHideClassnames.js';
25
27
  export { useAlignSelfClassNames } from './layout/module-align-self/hooks/useAlignSelfClassNames.js';
26
28
  export { useLayoutPaddingClassnames } from './layout/module-layout-padding/hooks/useLayoutPaddingClassnames.js';
29
+ export { useLayoutRelativeClassnames } from './layout/module-layout-relative/hooks/useLayoutRelativeClassnames.js';
27
30
  export { useLayoutGapClassnames } from './layout/module-layout-gap/hooks/useLayoutGapClassnames.js';
28
31
  export { minWidth } from './responsive/sc/mixins.js';
29
32
  export { ServerStyleSheet } from './ssr/classes/ServerStyleSheet.js';
@@ -46,4 +49,4 @@ export { withGetToken } from './token/hocs/withGetToken.js';
46
49
  export { useTextAccentClassnames } from './typography/module-text-accent/hooks/useTextAccentClassnames.js';
47
50
  export { useTextCenteredClassnames } from './typography/module-text-centered/hooks/useTextCenteredClassnames.js';
48
51
  export { useTextWeightClassNames } from './typography/module-text-weight/hooks/useTextWeightClassNames.js';
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
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';