@blockscout/ui-toolkit 0.0.1-alpha.2 → 0.0.1-alpha.4

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 (103) hide show
  1. package/README.md +125 -62
  2. package/dist/chakra/select.d.ts +4 -1
  3. package/dist/components/AdaptiveTabs/index.d.ts +3 -0
  4. package/dist/components/Hint/Hint.d.ts +11 -0
  5. package/dist/components/RoutedTabs/index.d.ts +3 -0
  6. package/dist/components/buttons/BackToButton.d.ts +7 -0
  7. package/dist/components/buttons/ClearButton.d.ts +6 -0
  8. package/dist/components/{Filter → filters}/FilterInput.d.ts +2 -3
  9. package/dist/components/forms/components/FormFieldError.d.ts +7 -0
  10. package/dist/components/forms/components/index.d.ts +1 -0
  11. package/dist/components/forms/fields/FormFieldAddress.d.ts +5 -0
  12. package/dist/components/forms/fields/FormFieldCheckbox.d.ts +9 -0
  13. package/dist/components/forms/fields/FormFieldColor.d.ts +9 -0
  14. package/dist/components/forms/fields/FormFieldEmail.d.ts +5 -0
  15. package/dist/components/forms/fields/FormFieldSelect.d.ts +7 -0
  16. package/dist/components/forms/fields/FormFieldSelectAsync.d.ts +7 -0
  17. package/dist/components/forms/fields/FormFieldText.d.ts +8 -0
  18. package/dist/components/forms/fields/FormFieldUrl.d.ts +4 -0
  19. package/dist/components/forms/fields/image/FormFieldImagePreview.d.ts +13 -0
  20. package/dist/components/forms/fields/image/useImageField.d.ts +25 -0
  21. package/dist/components/forms/fields/index.d.ts +10 -0
  22. package/dist/components/forms/fields/types.d.ts +19 -0
  23. package/dist/components/forms/inputs/file/DragAndDropArea.d.ts +11 -0
  24. package/dist/components/forms/inputs/file/FileInput.d.ts +13 -0
  25. package/dist/components/forms/inputs/file/FileSnippet.d.ts +11 -0
  26. package/dist/components/forms/inputs/file/utils.d.ts +2 -0
  27. package/dist/components/forms/inputs/index.d.ts +3 -0
  28. package/dist/components/forms/utils/getFormFieldErrorText.d.ts +2 -0
  29. package/dist/components/forms/utils/index.d.ts +1 -0
  30. package/dist/components/forms/validators/address.d.ts +3 -0
  31. package/dist/components/forms/validators/color.d.ts +2 -0
  32. package/dist/components/forms/validators/email.d.ts +2 -0
  33. package/dist/components/forms/validators/index.d.ts +7 -0
  34. package/dist/components/forms/validators/signature.d.ts +1 -0
  35. package/dist/components/forms/validators/text.d.ts +1 -0
  36. package/dist/components/forms/validators/transaction.d.ts +2 -0
  37. package/dist/components/forms/validators/url.d.ts +3 -0
  38. package/dist/components/truncation/TruncatedTextTooltip.d.ts +8 -0
  39. package/dist/hooks/useClipboard.d.ts +1 -1
  40. package/dist/hooks/useFirstMountState.d.ts +1 -0
  41. package/dist/hooks/useIsSticky.d.ts +2 -0
  42. package/dist/hooks/useUpdateEffect.d.ts +2 -0
  43. package/dist/hooks/useViewportSize.d.ts +1 -1
  44. package/dist/index.js +4246 -3097
  45. package/dist/package/src/index.d.ts +24 -3
  46. package/dist/theme/theme.d.ts +1 -0
  47. package/dist/utils/consts.d.ts +15 -0
  48. package/dist/utils/guards.d.ts +2 -0
  49. package/dist/utils/htmlEntities.d.ts +26 -0
  50. package/dist/utils/isBrowser.d.ts +1 -0
  51. package/dist/utils/regexp.d.ts +6 -0
  52. package/dist/utils/url.d.ts +6 -0
  53. package/package.json +33 -3
  54. package/dist/components/ButtonBackTo.d.ts +0 -8
  55. package/dist/components/TruncatedTextTooltip.d.ts +0 -9
  56. package/dist/components/index.d.ts +0 -1
  57. package/dist/theme/foundations/animations.ts +0 -12
  58. package/dist/theme/foundations/borders.ts +0 -13
  59. package/dist/theme/foundations/breakpoints.ts +0 -10
  60. package/dist/theme/foundations/colors.ts +0 -162
  61. package/dist/theme/foundations/durations.ts +0 -15
  62. package/dist/theme/foundations/semanticTokens.ts +0 -471
  63. package/dist/theme/foundations/shadows.ts +0 -19
  64. package/dist/theme/foundations/typography.ts +0 -93
  65. package/dist/theme/foundations/zIndex.ts +0 -20
  66. package/dist/theme/globalCss.ts +0 -57
  67. package/dist/theme/globals/address-entity.ts +0 -33
  68. package/dist/theme/globals/recaptcha.ts +0 -20
  69. package/dist/theme/globals/scrollbar.ts +0 -32
  70. package/dist/theme/recipes/accordion.recipe.ts +0 -145
  71. package/dist/theme/recipes/alert.recipe.ts +0 -135
  72. package/dist/theme/recipes/badge.recipe.ts +0 -83
  73. package/dist/theme/recipes/button.recipe.ts +0 -285
  74. package/dist/theme/recipes/checkbox.recipe.ts +0 -56
  75. package/dist/theme/recipes/checkmark.recipe.ts +0 -73
  76. package/dist/theme/recipes/close-button.recipe.ts +0 -34
  77. package/dist/theme/recipes/dialog.recipe.ts +0 -213
  78. package/dist/theme/recipes/drawer.recipe.ts +0 -173
  79. package/dist/theme/recipes/field.recipe.ts +0 -175
  80. package/dist/theme/recipes/index.ts +0 -68
  81. package/dist/theme/recipes/input.recipe.ts +0 -119
  82. package/dist/theme/recipes/link.recipe.ts +0 -78
  83. package/dist/theme/recipes/list.recipe.ts +0 -67
  84. package/dist/theme/recipes/menu.recipe.ts +0 -105
  85. package/dist/theme/recipes/pin-input.recipe.ts +0 -35
  86. package/dist/theme/recipes/popover.recipe.ts +0 -71
  87. package/dist/theme/recipes/progress-circle.recipe.ts +0 -74
  88. package/dist/theme/recipes/radio-group.recipe.ts +0 -73
  89. package/dist/theme/recipes/radiomark.recipe.ts +0 -91
  90. package/dist/theme/recipes/rating-group.recipe.ts +0 -93
  91. package/dist/theme/recipes/select.recipe.ts +0 -277
  92. package/dist/theme/recipes/skeleton.recipe.ts +0 -56
  93. package/dist/theme/recipes/spinner.recipe.ts +0 -31
  94. package/dist/theme/recipes/stat.recipe.ts +0 -101
  95. package/dist/theme/recipes/switch.recipe.ts +0 -130
  96. package/dist/theme/recipes/table.recipe.ts +0 -84
  97. package/dist/theme/recipes/tabs.recipe.ts +0 -219
  98. package/dist/theme/recipes/tag.recipe.ts +0 -145
  99. package/dist/theme/recipes/textarea.recipe.ts +0 -86
  100. package/dist/theme/recipes/toast.recipe.ts +0 -97
  101. package/dist/theme/recipes/tooltip.recipe.ts +0 -85
  102. package/dist/theme/theme.ts +0 -41
  103. package/dist/theme/utils/entries.ts +0 -12
@@ -1,145 +0,0 @@
1
- import { defineSlotRecipe } from '@chakra-ui/react';
2
-
3
- export const recipe = defineSlotRecipe({
4
- slots: [ 'root', 'label', 'startElement', 'endElement', 'closeTrigger' ],
5
- base: {
6
- root: {
7
- display: 'inline-flex',
8
- alignItems: 'center',
9
- verticalAlign: 'top',
10
- maxWidth: '100%',
11
- userSelect: 'none',
12
- borderRadius: 'sm',
13
- focusVisibleRing: 'outside',
14
- _loading: {
15
- borderRadius: 'sm',
16
- },
17
- },
18
- label: {
19
- lineClamp: '1',
20
- whiteSpace: 'nowrap',
21
- textOverflow: 'ellipsis',
22
- fontWeight: 'medium',
23
- display: 'inline',
24
- },
25
- closeTrigger: {
26
- display: 'flex',
27
- alignItems: 'center',
28
- justifyContent: 'center',
29
- outline: '0',
30
- borderRadius: 'none',
31
- color: 'closeButton.fg',
32
- focusVisibleRing: 'inside',
33
- focusRingWidth: '2px',
34
- _hover: {
35
- color: 'link.primary.hover',
36
- },
37
- },
38
- startElement: {
39
- flexShrink: 0,
40
- display: 'inline-flex',
41
- alignItems: 'center',
42
- justifyContent: 'center',
43
- boxSize: 'var(--tag-element-size)',
44
- ms: 'var(--tag-element-offset)',
45
- '&:has([data-scope=avatar])': {
46
- boxSize: 'var(--tag-avatar-size)',
47
- ms: 'calc(var(--tag-element-offset) * 1.5)',
48
- },
49
- _icon: { boxSize: '100%' },
50
- },
51
- endElement: {
52
- flexShrink: 0,
53
- display: 'inline-flex',
54
- alignItems: 'center',
55
- justifyContent: 'center',
56
- boxSize: 'var(--tag-element-size)',
57
- me: 'var(--tag-element-offset)',
58
- _icon: { boxSize: '100%' },
59
- '&:has(button)': {
60
- ms: 'calc(var(--tag-element-offset) * -1)',
61
- },
62
- },
63
- },
64
-
65
- variants: {
66
- size: {
67
- md: {
68
- root: {
69
- px: '1',
70
- py: '0.5',
71
- minH: '6',
72
- gap: '1',
73
- '--tag-avatar-size': 'spacing.4',
74
- '--tag-element-size': 'spacing.3',
75
- '--tag-element-offset': '0px',
76
- },
77
- label: {
78
- textStyle: 'sm',
79
- },
80
- },
81
- lg: {
82
- root: {
83
- px: '6px',
84
- py: '6px',
85
- minH: '8',
86
- gap: '1',
87
- '--tag-avatar-size': 'spacing.4',
88
- '--tag-element-size': 'spacing.3',
89
- '--tag-element-offset': '0px',
90
- },
91
- label: {
92
- textStyle: 'sm',
93
- },
94
- },
95
- },
96
-
97
- variant: {
98
- subtle: {
99
- root: {
100
- bgColor: 'tag.root.subtle.bg',
101
- color: 'tag.root.subtle.fg',
102
- },
103
- },
104
- clickable: {
105
- root: {
106
- cursor: 'pointer',
107
- bgColor: 'tag.root.clickable.bg',
108
- color: 'tag.root.clickable.fg',
109
- _hover: {
110
- opacity: 0.76,
111
- },
112
- },
113
- },
114
- filter: {
115
- root: {
116
- bgColor: 'tag.root.filter.bg',
117
- },
118
- },
119
- select: {
120
- root: {
121
- cursor: 'pointer',
122
- bgColor: 'tag.root.select.bg',
123
- color: 'tag.root.select.fg',
124
- _hover: {
125
- color: 'blue.400',
126
- opacity: 0.76,
127
- },
128
- _selected: {
129
- bgColor: 'tag.root.select.bg.selected',
130
- color: 'whiteAlpha.800',
131
- _hover: {
132
- color: 'whiteAlpha.800',
133
- opacity: 0.76,
134
- },
135
- },
136
- },
137
- },
138
- },
139
- },
140
-
141
- defaultVariants: {
142
- size: 'md',
143
- variant: 'subtle',
144
- },
145
- });
@@ -1,86 +0,0 @@
1
- import { defineRecipe } from '@chakra-ui/react';
2
-
3
- export const recipe = defineRecipe({
4
- base: {
5
- width: '100%',
6
- minWidth: '0',
7
- minHeight: '160px',
8
- outline: '0',
9
- position: 'relative',
10
- appearance: 'none',
11
- textAlign: 'start',
12
- borderRadius: 'base',
13
- color: 'input.fg',
14
- '--focus-color': 'colors.border.error',
15
- '--error-color': 'colors.border.error',
16
- _invalid: {
17
- focusRingColor: 'var(--error-color)',
18
- borderColor: 'var(--error-color)',
19
- },
20
- },
21
- variants: {
22
- size: {
23
- '2xl': {
24
- textStyle: 'md',
25
- py: '4',
26
- pl: '4',
27
- pr: '5', // === scrollbar width
28
- scrollPaddingBottom: '4',
29
- },
30
- },
31
-
32
- variant: {
33
- outline: {
34
- bg: 'input.bg',
35
- borderWidth: '2px',
36
- borderColor: 'input.border',
37
- focusVisibleRing: 'none',
38
- _hover: {
39
- borderColor: 'input.border.hover',
40
- },
41
- _focus: {
42
- borderColor: 'input.border.focus',
43
- boxShadow: 'size.md',
44
- _hover: {
45
- borderColor: 'input.border.focus',
46
- },
47
- },
48
- _readOnly: {
49
- userSelect: 'all',
50
- bg: 'input.bg.readOnly',
51
- borderColor: 'input.border.readOnly',
52
- _focus: {
53
- borderColor: 'input.border.readOnly',
54
- },
55
- _hover: {
56
- borderColor: 'input.border.readOnly',
57
- },
58
- },
59
- _disabled: {
60
- pointerEvents: 'none',
61
- opacity: 'control.disabled',
62
- },
63
- _invalid: {
64
- borderColor: 'input.border.error',
65
- _hover: {
66
- borderColor: 'input.border.error',
67
- },
68
- },
69
- },
70
- },
71
-
72
- floating: {
73
- 'true': {
74
- paddingTop: '8',
75
- _placeholderShown: {
76
- paddingTop: '10',
77
- },
78
- },
79
- },
80
- },
81
-
82
- defaultVariants: {
83
- size: '2xl',
84
- variant: 'outline',
85
- },
86
- });
@@ -1,97 +0,0 @@
1
- import { defineSlotRecipe } from '@chakra-ui/react';
2
-
3
- export const recipe = defineSlotRecipe({
4
- slots: [ 'root', 'title', 'description', 'indicator', 'actionTrigger', 'closeTrigger' ],
5
- base: {
6
- root: {
7
- width: 'full',
8
- display: 'flex',
9
- alignItems: 'flex-start',
10
- position: 'relative',
11
- gap: '3',
12
- py: '3',
13
- ps: '6',
14
- pe: '3',
15
- borderRadius: 'md',
16
- translate: 'var(--x) var(--y)',
17
- scale: 'var(--scale)',
18
- zIndex: 'var(--z-index)',
19
- height: 'var(--height)',
20
- opacity: 'var(--opacity)',
21
- willChange: 'translate, opacity, scale',
22
- transition:
23
- 'translate 400ms, scale 400ms, opacity 400ms, height 400ms, box-shadow 200ms',
24
- transitionTimingFunction: 'cubic-bezier(0.21, 1.02, 0.73, 1)',
25
- _closed: {
26
- transition: 'translate 400ms, scale 400ms, opacity 200ms',
27
- transitionTimingFunction: 'cubic-bezier(0.06, 0.71, 0.55, 1)',
28
- },
29
- bg: 'toast.bg.info',
30
- color: 'toast.fg',
31
- boxShadow: 'xl',
32
- '--toast-trigger-bg': 'colors.bg.muted',
33
- '&[data-type=warning]': {
34
- color: 'toast.fg',
35
- bg: 'toast.bg.warning',
36
- '--toast-trigger-bg': '{white/10}',
37
- '--toast-border-color': '{white/40}',
38
- },
39
- '&[data-type=success]': {
40
- color: 'toast.fg',
41
- bg: 'toast.bg.success',
42
- '--toast-trigger-bg': '{white/10}',
43
- '--toast-border-color': '{white/40}',
44
- },
45
- '&[data-type=error]': {
46
- color: 'toast.fg',
47
- bg: 'toast.bg.error',
48
- '--toast-trigger-bg': '{white/10}',
49
- '--toast-border-color': '{white/40}',
50
- },
51
- '&[data-type=info]': {
52
- color: 'toast.fg',
53
- bg: 'toast.bg.info',
54
- '--toast-trigger-bg': '{white/10}',
55
- '--toast-border-color': '{white/40}',
56
- },
57
- '&[data-type=loading]': {
58
- color: 'toast.fg',
59
- bg: 'toast.bg.info',
60
- '--toast-trigger-bg': '{white/10}',
61
- '--toast-border-color': '{white/40}',
62
- },
63
- },
64
- title: {
65
- fontWeight: '700',
66
- textStyle: 'md',
67
- marginEnd: '0',
68
- },
69
- description: {
70
- display: 'inline',
71
- textStyle: 'md',
72
- },
73
- indicator: {
74
- flexShrink: '0',
75
- boxSize: '5',
76
- },
77
- actionTrigger: {
78
- textStyle: 'sm',
79
- fontWeight: 'medium',
80
- height: '8',
81
- px: '3',
82
- borderRadius: 'base',
83
- alignSelf: 'center',
84
- borderWidth: '1px',
85
- borderColor: 'var(--toast-border-color, inherit)',
86
- transition: 'background 200ms',
87
- _hover: {
88
- bg: 'var(--toast-trigger-bg)',
89
- },
90
- },
91
- closeTrigger: {
92
- position: 'static',
93
- alignSelf: 'center',
94
- color: 'closeButton.fg',
95
- },
96
- },
97
- });
@@ -1,85 +0,0 @@
1
- import { defineSlotRecipe } from '@chakra-ui/react';
2
-
3
- export const recipe = defineSlotRecipe({
4
- slots: [ 'content', 'arrow', 'arrowTip' ],
5
- base: {
6
- content: {
7
- px: '2',
8
- py: '1',
9
- borderRadius: 'sm',
10
- fontWeight: '500',
11
- textStyle: 'sm',
12
- textAlign: 'center',
13
- boxShadow: 'size.md',
14
- zIndex: 'tooltip',
15
- maxW: '320px',
16
- transformOrigin: 'var(--transform-origin)',
17
- _open: {
18
- animationStyle: 'scale-fade-in',
19
- animationDuration: 'fast',
20
- },
21
- _closed: {
22
- animationStyle: 'scale-fade-out',
23
- animationDuration: 'fast',
24
- },
25
- },
26
- arrow: {
27
- '--arrow-size': 'sizes.2',
28
- '--arrow-background': 'var(--tooltip-bg)',
29
- },
30
- arrowTip: {
31
- borderTopWidth: '1px',
32
- borderInlineStartWidth: '1px',
33
- borderColor: 'var(--tooltip-bg)',
34
- },
35
- },
36
- variants: {
37
- variant: {
38
- regular: {
39
- content: {
40
- '--tooltip-bg': 'colors.tooltip.bg',
41
- bg: 'var(--tooltip-bg)',
42
- color: 'tooltip.fg',
43
- },
44
- },
45
- navigation: {
46
- content: {
47
- '--tooltip-bg': 'colors.tooltip.navigation.bg',
48
- bg: 'var(--tooltip-bg)',
49
- color: 'tooltip.navigation.fg',
50
- borderWidth: '0',
51
- borderRadius: 'base',
52
- minW: '120px',
53
- boxShadow: 'none',
54
- textAlign: 'center',
55
- padding: '15px 12px',
56
- _selected: {
57
- color: 'tooltip.navigation.fg.selected',
58
- },
59
- },
60
- arrow: {
61
- display: 'none',
62
- },
63
- arrowTip: {
64
- display: 'none',
65
- },
66
- },
67
- popover: {
68
- content: {
69
- maxW: 'none',
70
- bg: 'popover.bg',
71
- color: 'text.primary',
72
- p: '4',
73
- boxShadow: 'popover',
74
- boxShadowColor: 'popover.shadow',
75
- borderRadius: 'md',
76
- textAlign: 'left',
77
- fontWeight: 'normal',
78
- },
79
- },
80
- },
81
- },
82
- defaultVariants: {
83
- variant: 'regular',
84
- },
85
- });
@@ -1,41 +0,0 @@
1
- import { createSystem, defaultConfig, defineConfig } from '@chakra-ui/react';
2
-
3
- import { keyframes } from './foundations/animations';
4
- import * as borders from './foundations/borders';
5
- import breakpoints from './foundations/breakpoints';
6
- import colors from './foundations/colors';
7
- import durations from './foundations/durations';
8
- import semanticTokens from './foundations/semanticTokens';
9
- import shadows from './foundations/shadows';
10
- import { fonts, textStyles } from './foundations/typography';
11
- import zIndex from './foundations/zIndex';
12
- import globalCss from './globalCss';
13
- import { recipes, slotRecipes } from './recipes';
14
-
15
- const customConfig = defineConfig({
16
- globalCss,
17
- theme: {
18
- breakpoints,
19
- keyframes,
20
- recipes,
21
- slotRecipes,
22
- semanticTokens,
23
- textStyles,
24
- tokens: {
25
- ...borders,
26
- colors,
27
- durations,
28
- fonts,
29
- shadows,
30
- zIndex,
31
- fontWeights: {
32
- normal: { value: '400' },
33
- medium: { value: '500' },
34
- semibold: { value: '600' },
35
- bold: { value: '700' },
36
- },
37
- },
38
- },
39
- });
40
-
41
- export default createSystem(defaultConfig, customConfig);
@@ -1,12 +0,0 @@
1
- // https://github.com/chakra-ui/chakra-ui/blob/main/packages/react/src/utils/entries.ts#L1
2
- export function mapEntries<A, B, K extends string | number | symbol>(
3
- obj: { [key in K]: A },
4
- f: (key: K, val: A) => [K, B],
5
- ): { [key in K]: B } {
6
- const result: { [key in K]: B } = {} as unknown as { [key in K]: B };
7
- for (const key in obj) {
8
- const kv = f(key, obj[key]);
9
- result[kv[0]] = kv[1];
10
- }
11
- return result;
12
- }