@snack-uikit/fields 0.45.0 → 0.47.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/CHANGELOG.md +22 -0
  2. package/README.md +2 -0
  3. package/dist/cjs/components/FieldColor/FieldColor.d.ts +1 -1
  4. package/dist/cjs/components/FieldSecure/FieldSecure.d.ts +1 -1
  5. package/dist/cjs/components/FieldSelect/FieldSelectMultiple.d.ts +1 -1
  6. package/dist/cjs/components/FieldSelect/FieldSelectSingle.d.ts +1 -1
  7. package/dist/cjs/components/FieldSlider/FieldSlider.d.ts +1 -1
  8. package/dist/cjs/components/FieldText/FieldText.d.ts +2 -2
  9. package/dist/cjs/components/FieldText/FieldText.js +4 -2
  10. package/dist/cjs/components/FieldTextArea/FieldTextArea.d.ts +2 -2
  11. package/dist/cjs/components/FieldTextArea/FieldTextArea.js +4 -2
  12. package/dist/cjs/helperComponents/ButtonFieldList/ButtonFieldList.d.ts +1 -1
  13. package/dist/cjs/helperComponents/TextArea/TextArea.d.ts +2 -0
  14. package/dist/cjs/helperComponents/TextArea/TextArea.js +5 -3
  15. package/dist/cjs/hooks/addonButton/index.d.ts +2 -0
  16. package/dist/cjs/hooks/addonButton/index.js +26 -0
  17. package/dist/cjs/hooks/addonButton/useAddonButton.d.ts +14 -0
  18. package/dist/cjs/hooks/{usePostfixButton.js → addonButton/useAddonButton.js} +22 -16
  19. package/dist/cjs/hooks/addonButton/usePostfixButton.d.ts +6 -0
  20. package/dist/cjs/hooks/addonButton/usePostfixButton.js +26 -0
  21. package/dist/cjs/hooks/addonButton/usePrefixButton.d.ts +6 -0
  22. package/dist/cjs/hooks/addonButton/usePrefixButton.js +26 -0
  23. package/dist/cjs/hooks/index.d.ts +1 -2
  24. package/dist/cjs/hooks/index.js +1 -2
  25. package/dist/cjs/types/allFields.d.ts +9 -4
  26. package/dist/esm/components/FieldColor/FieldColor.d.ts +1 -1
  27. package/dist/esm/components/FieldSecure/FieldSecure.d.ts +1 -1
  28. package/dist/esm/components/FieldSelect/FieldSelectMultiple.d.ts +1 -1
  29. package/dist/esm/components/FieldSelect/FieldSelectSingle.d.ts +1 -1
  30. package/dist/esm/components/FieldSlider/FieldSlider.d.ts +1 -1
  31. package/dist/esm/components/FieldText/FieldText.d.ts +2 -2
  32. package/dist/esm/components/FieldText/FieldText.js +2 -2
  33. package/dist/esm/components/FieldTextArea/FieldTextArea.d.ts +2 -2
  34. package/dist/esm/components/FieldTextArea/FieldTextArea.js +2 -2
  35. package/dist/esm/helperComponents/ButtonFieldList/ButtonFieldList.d.ts +1 -1
  36. package/dist/esm/helperComponents/TextArea/TextArea.d.ts +2 -0
  37. package/dist/esm/helperComponents/TextArea/TextArea.js +2 -2
  38. package/dist/esm/hooks/addonButton/index.d.ts +2 -0
  39. package/dist/esm/hooks/addonButton/index.js +2 -0
  40. package/dist/esm/hooks/addonButton/useAddonButton.d.ts +14 -0
  41. package/dist/esm/hooks/addonButton/useAddonButton.js +30 -0
  42. package/dist/esm/hooks/addonButton/usePostfixButton.d.ts +6 -0
  43. package/dist/esm/hooks/addonButton/usePostfixButton.js +16 -0
  44. package/dist/esm/hooks/addonButton/usePrefixButton.d.ts +6 -0
  45. package/dist/esm/hooks/addonButton/usePrefixButton.js +16 -0
  46. package/dist/esm/hooks/index.d.ts +1 -2
  47. package/dist/esm/hooks/index.js +1 -2
  48. package/dist/esm/types/allFields.d.ts +9 -4
  49. package/package.json +6 -6
  50. package/src/components/FieldText/FieldText.tsx +3 -0
  51. package/src/components/FieldTextArea/FieldTextArea.tsx +12 -1
  52. package/src/helperComponents/TextArea/TextArea.tsx +4 -0
  53. package/src/hooks/addonButton/index.ts +2 -0
  54. package/src/hooks/{usePostfixButton.tsx → addonButton/useAddonButton.tsx} +30 -23
  55. package/src/hooks/addonButton/usePostfixButton.tsx +12 -0
  56. package/src/hooks/addonButton/usePrefixButton.tsx +12 -0
  57. package/src/hooks/index.ts +1 -2
  58. package/src/types/allFields.ts +15 -5
  59. package/dist/cjs/hooks/usePostfixButton.d.ts +0 -11
  60. package/dist/cjs/hooks/usePrefixButton.d.ts +0 -11
  61. package/dist/cjs/hooks/usePrefixButton.js +0 -63
  62. package/dist/esm/hooks/usePostfixButton.d.ts +0 -11
  63. package/dist/esm/hooks/usePostfixButton.js +0 -28
  64. package/dist/esm/hooks/usePrefixButton.d.ts +0 -11
  65. package/dist/esm/hooks/usePrefixButton.js +0 -28
  66. package/src/hooks/usePrefixButton.tsx +0 -76
@@ -1,76 +0,0 @@
1
- import { ReactElement, useMemo, useRef } from 'react';
2
-
3
- import { ButtonProps, InactiveItem, Size } from '@snack-uikit/input-private';
4
-
5
- import { ButtonField, ButtonFieldList, ButtonFieldProps } from '../helperComponents';
6
- import { Button } from '../types';
7
-
8
- export function usePrefixButton({
9
- button,
10
- prefixIcon,
11
- size,
12
- disabled,
13
- readonly,
14
- onFocus,
15
- onBlur,
16
- }: {
17
- button?: Button;
18
- prefixIcon?: ReactElement;
19
- size: Size;
20
- disabled?: boolean;
21
- readonly?: boolean;
22
- } & Pick<ButtonFieldProps, 'onFocus' | 'onBlur'>): ButtonProps {
23
- const buttonListRef = useRef<HTMLButtonElement>(null);
24
-
25
- const prefixIconProps: InactiveItem = useMemo(
26
- () => ({
27
- id: 'prefixIcon',
28
- active: false,
29
- show: Boolean(prefixIcon && !button),
30
- render: () => <>{prefixIcon}</>,
31
- }),
32
- [button, prefixIcon],
33
- );
34
-
35
- const prefixButtonProps: InactiveItem = useMemo(
36
- () => ({
37
- id: 'prefixButton',
38
- active: false,
39
- show: Boolean(button && button.variant === 'before'),
40
- render: renderProps => {
41
- const buttonProps: ButtonFieldProps = {
42
- ...renderProps,
43
- variant: 'before',
44
- size,
45
- content: button?.content,
46
- disabled: disabled || readonly,
47
- onFocus,
48
- onBlur,
49
- };
50
-
51
- if (button?.items) {
52
- return (
53
- <ButtonFieldList
54
- {...buttonProps}
55
- ref={buttonListRef}
56
- onClick={() => {
57
- setTimeout(() => buttonListRef.current?.focus(), 0);
58
- }}
59
- search={button.search}
60
- items={button.items}
61
- selection={button.selection}
62
- open={button.open}
63
- scroll={button.scroll}
64
- onOpenChange={button.onOpenChange}
65
- />
66
- );
67
- }
68
-
69
- return <ButtonField {...buttonProps} />;
70
- },
71
- }),
72
- [button, size, disabled, readonly, onFocus, onBlur],
73
- );
74
-
75
- return button ? prefixButtonProps : prefixIconProps;
76
- }