@stack-spot/citric-react 0.11.1 → 0.13.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 (205) hide show
  1. package/dist/citric.css +0 -4
  2. package/dist/components/Accordion.d.ts.map +1 -1
  3. package/dist/components/Accordion.js +3 -2
  4. package/dist/components/Accordion.js.map +1 -1
  5. package/dist/components/Alert.d.ts.map +1 -1
  6. package/dist/components/Alert.js +2 -1
  7. package/dist/components/Alert.js.map +1 -1
  8. package/dist/components/AsyncContent.d.ts.map +1 -1
  9. package/dist/components/AsyncContent.js +3 -2
  10. package/dist/components/AsyncContent.js.map +1 -1
  11. package/dist/components/Avatar.d.ts.map +1 -1
  12. package/dist/components/Avatar.js +3 -2
  13. package/dist/components/Avatar.js.map +1 -1
  14. package/dist/components/AvatarGroup.d.ts.map +1 -1
  15. package/dist/components/AvatarGroup.js +3 -2
  16. package/dist/components/AvatarGroup.js.map +1 -1
  17. package/dist/components/Badge.d.ts +2 -1
  18. package/dist/components/Badge.d.ts.map +1 -1
  19. package/dist/components/Badge.js +3 -1
  20. package/dist/components/Badge.js.map +1 -1
  21. package/dist/components/Blockquote.d.ts.map +1 -1
  22. package/dist/components/Blockquote.js +2 -1
  23. package/dist/components/Blockquote.js.map +1 -1
  24. package/dist/components/Breadcrumb.d.ts.map +1 -1
  25. package/dist/components/Breadcrumb.js +3 -2
  26. package/dist/components/Breadcrumb.js.map +1 -1
  27. package/dist/components/Button.d.ts.map +1 -1
  28. package/dist/components/Button.js +3 -2
  29. package/dist/components/Button.js.map +1 -1
  30. package/dist/components/Card.d.ts.map +1 -1
  31. package/dist/components/Card.js +2 -1
  32. package/dist/components/Card.js.map +1 -1
  33. package/dist/components/Checkbox.d.ts.map +1 -1
  34. package/dist/components/Checkbox.js +3 -2
  35. package/dist/components/Checkbox.js.map +1 -1
  36. package/dist/components/CheckboxGroup.d.ts +3 -1
  37. package/dist/components/CheckboxGroup.d.ts.map +1 -1
  38. package/dist/components/CheckboxGroup.js +3 -1
  39. package/dist/components/CheckboxGroup.js.map +1 -1
  40. package/dist/components/Circle.d.ts.map +1 -1
  41. package/dist/components/Circle.js +2 -1
  42. package/dist/components/Circle.js.map +1 -1
  43. package/dist/components/CitricComponent.d.ts +1 -0
  44. package/dist/components/CitricComponent.d.ts.map +1 -1
  45. package/dist/components/CitricComponent.js.map +1 -1
  46. package/dist/components/Divider.d.ts.map +1 -1
  47. package/dist/components/Divider.js +2 -1
  48. package/dist/components/Divider.js.map +1 -1
  49. package/dist/components/Favorite.d.ts +1 -1
  50. package/dist/components/Favorite.d.ts.map +1 -1
  51. package/dist/components/Favorite.js +2 -1
  52. package/dist/components/Favorite.js.map +1 -1
  53. package/dist/components/FieldGroup.d.ts.map +1 -1
  54. package/dist/components/FieldGroup.js +2 -1
  55. package/dist/components/FieldGroup.js.map +1 -1
  56. package/dist/components/Form.d.ts.map +1 -1
  57. package/dist/components/Form.js +2 -1
  58. package/dist/components/Form.js.map +1 -1
  59. package/dist/components/FormGroup.d.ts.map +1 -1
  60. package/dist/components/FormGroup.js +2 -1
  61. package/dist/components/FormGroup.js.map +1 -1
  62. package/dist/components/IconBox.d.ts +6 -3
  63. package/dist/components/IconBox.d.ts.map +1 -1
  64. package/dist/components/IconBox.js +10 -6
  65. package/dist/components/IconBox.js.map +1 -1
  66. package/dist/components/ImageBox.d.ts +52 -0
  67. package/dist/components/ImageBox.d.ts.map +1 -0
  68. package/dist/components/ImageBox.js +33 -0
  69. package/dist/components/ImageBox.js.map +1 -0
  70. package/dist/components/Input.d.ts +3 -1
  71. package/dist/components/Input.d.ts.map +1 -1
  72. package/dist/components/Input.js +3 -1
  73. package/dist/components/Input.js.map +1 -1
  74. package/dist/components/Link.d.ts.map +1 -1
  75. package/dist/components/Link.js +3 -2
  76. package/dist/components/Link.js.map +1 -1
  77. package/dist/components/MenuOverlay/Menu.d.ts.map +1 -1
  78. package/dist/components/MenuOverlay/Menu.js.map +1 -1
  79. package/dist/components/Pagination.d.ts +1 -1
  80. package/dist/components/Pagination.d.ts.map +1 -1
  81. package/dist/components/Pagination.js +3 -2
  82. package/dist/components/Pagination.js.map +1 -1
  83. package/dist/components/ProgressBar.d.ts.map +1 -1
  84. package/dist/components/ProgressBar.js +2 -1
  85. package/dist/components/ProgressBar.js.map +1 -1
  86. package/dist/components/ProgressCircular.d.ts.map +1 -1
  87. package/dist/components/ProgressCircular.js +2 -1
  88. package/dist/components/ProgressCircular.js.map +1 -1
  89. package/dist/components/RadioGroup.d.ts +3 -1
  90. package/dist/components/RadioGroup.d.ts.map +1 -1
  91. package/dist/components/RadioGroup.js +3 -1
  92. package/dist/components/RadioGroup.js.map +1 -1
  93. package/dist/components/Rating.d.ts.map +1 -1
  94. package/dist/components/Rating.js +2 -1
  95. package/dist/components/Rating.js.map +1 -1
  96. package/dist/components/Select/RichSelect.d.ts +3 -1
  97. package/dist/components/Select/RichSelect.d.ts.map +1 -1
  98. package/dist/components/Select/RichSelect.js +5 -2
  99. package/dist/components/Select/RichSelect.js.map +1 -1
  100. package/dist/components/Select/SimpleSelect.d.ts +2 -1
  101. package/dist/components/Select/SimpleSelect.d.ts.map +1 -1
  102. package/dist/components/Select/SimpleSelect.js +4 -2
  103. package/dist/components/Select/SimpleSelect.js.map +1 -1
  104. package/dist/components/Select/index.d.ts +2 -1
  105. package/dist/components/Select/index.d.ts.map +1 -1
  106. package/dist/components/Select/index.js +3 -1
  107. package/dist/components/Select/index.js.map +1 -1
  108. package/dist/components/Select/types.d.ts +3 -1
  109. package/dist/components/Select/types.d.ts.map +1 -1
  110. package/dist/components/SelectBox.d.ts +2 -1
  111. package/dist/components/SelectBox.d.ts.map +1 -1
  112. package/dist/components/SelectBox.js +3 -1
  113. package/dist/components/SelectBox.js.map +1 -1
  114. package/dist/components/Skeleton.d.ts.map +1 -1
  115. package/dist/components/Skeleton.js +2 -1
  116. package/dist/components/Skeleton.js.map +1 -1
  117. package/dist/components/Slider.d.ts.map +1 -1
  118. package/dist/components/Slider.js +3 -2
  119. package/dist/components/Slider.js.map +1 -1
  120. package/dist/components/SmartTable.d.ts +2 -1
  121. package/dist/components/SmartTable.d.ts.map +1 -1
  122. package/dist/components/SmartTable.js +3 -1
  123. package/dist/components/SmartTable.js.map +1 -1
  124. package/dist/components/Stepper.d.ts +3 -1
  125. package/dist/components/Stepper.d.ts.map +1 -1
  126. package/dist/components/Stepper.js +3 -1
  127. package/dist/components/Stepper.js.map +1 -1
  128. package/dist/components/Switch.d.ts.map +1 -1
  129. package/dist/components/Switch.js +3 -2
  130. package/dist/components/Switch.js.map +1 -1
  131. package/dist/components/Table.d.ts +1 -1
  132. package/dist/components/Table.d.ts.map +1 -1
  133. package/dist/components/Table.js +9 -7
  134. package/dist/components/Table.js.map +1 -1
  135. package/dist/components/Tabs/index.d.ts +3 -1
  136. package/dist/components/Tabs/index.d.ts.map +1 -1
  137. package/dist/components/Tabs/index.js +3 -1
  138. package/dist/components/Tabs/index.js.map +1 -1
  139. package/dist/components/Text.d.ts +2 -1
  140. package/dist/components/Text.d.ts.map +1 -1
  141. package/dist/components/Text.js +3 -1
  142. package/dist/components/Text.js.map +1 -1
  143. package/dist/components/Textarea.d.ts +3 -0
  144. package/dist/components/Textarea.d.ts.map +1 -1
  145. package/dist/components/Textarea.js +3 -1
  146. package/dist/components/Textarea.js.map +1 -1
  147. package/dist/components/layout.d.ts +7 -3
  148. package/dist/components/layout.d.ts.map +1 -1
  149. package/dist/components/layout.js +7 -3
  150. package/dist/components/layout.js.map +1 -1
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +1 -0
  154. package/dist/index.js.map +1 -1
  155. package/dist/utils/react.d.ts +2 -0
  156. package/dist/utils/react.d.ts.map +1 -0
  157. package/dist/utils/react.js +6 -0
  158. package/dist/utils/react.js.map +1 -0
  159. package/package.json +1 -1
  160. package/src/components/Accordion.tsx +3 -2
  161. package/src/components/Alert.tsx +3 -2
  162. package/src/components/AsyncContent.tsx +3 -2
  163. package/src/components/Avatar.tsx +3 -2
  164. package/src/components/AvatarGroup.tsx +3 -2
  165. package/src/components/Badge.tsx +4 -1
  166. package/src/components/Blockquote.tsx +3 -2
  167. package/src/components/Breadcrumb.tsx +3 -2
  168. package/src/components/Button.tsx +3 -2
  169. package/src/components/Card.tsx +3 -2
  170. package/src/components/Checkbox.tsx +3 -2
  171. package/src/components/CheckboxGroup.tsx +4 -1
  172. package/src/components/Circle.tsx +3 -2
  173. package/src/components/CitricComponent.ts +1 -0
  174. package/src/components/Divider.tsx +3 -2
  175. package/src/components/Favorite.tsx +5 -3
  176. package/src/components/FieldGroup.tsx +3 -2
  177. package/src/components/Form.tsx +3 -2
  178. package/src/components/FormGroup.tsx +3 -2
  179. package/src/components/IconBox.tsx +11 -8
  180. package/src/components/ImageBox.tsx +85 -0
  181. package/src/components/Input.tsx +4 -1
  182. package/src/components/Link.tsx +3 -2
  183. package/src/components/MenuOverlay/Menu.tsx +3 -3
  184. package/src/components/Pagination.tsx +4 -3
  185. package/src/components/ProgressBar.tsx +4 -2
  186. package/src/components/ProgressCircular.tsx +4 -2
  187. package/src/components/RadioGroup.tsx +4 -1
  188. package/src/components/Rating.tsx +3 -2
  189. package/src/components/Select/RichSelect.tsx +9 -3
  190. package/src/components/Select/SimpleSelect.tsx +11 -5
  191. package/src/components/Select/index.tsx +4 -1
  192. package/src/components/Select/types.ts +3 -1
  193. package/src/components/SelectBox.tsx +4 -1
  194. package/src/components/Skeleton.tsx +4 -2
  195. package/src/components/Slider.tsx +3 -3
  196. package/src/components/SmartTable.tsx +4 -1
  197. package/src/components/Stepper.tsx +4 -1
  198. package/src/components/Switch.tsx +3 -2
  199. package/src/components/Table.tsx +46 -42
  200. package/src/components/Tabs/index.tsx +4 -1
  201. package/src/components/Text.ts +4 -1
  202. package/src/components/Textarea.tsx +6 -1
  203. package/src/components/layout.tsx +8 -3
  204. package/src/index.ts +1 -0
  205. package/src/utils/react.ts +6 -0
@@ -1,5 +1,6 @@
1
1
  import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
2
2
  import { createContext, Suspense, useContext, useEffect, useMemo, useState } from 'react'
3
+ import { withRef } from '../../utils/react'
3
4
  import { CitricComponent } from '../CitricComponent'
4
5
  import { ErrorBoundary } from '../ErrorBoundary'
5
6
  import { ProgressCircular } from '../ProgressCircular'
@@ -10,7 +11,7 @@ import { findSelectedIndex } from './utils'
10
11
 
11
12
  const ctx = createContext<TabController<any> | undefined>(undefined)
12
13
 
13
- export function Tabs<Key extends string>({ tabs, value, onChange, controller: ctrl, ...props }: TabsProps<Key>) {
14
+ function _Tabs<Key extends string>({ tabs, value, onChange, controller: ctrl, ...props }: TabsProps<Key>) {
14
15
  const controller = useMemo(() => ctrl ?? new TabController<Key>(tabs.map(t => t.key), value || tabs[0]?.key), [])
15
16
  const t = useTranslate(dictionary)
16
17
  const [selectedIndex, setSelectedIndex] = useState(findSelectedIndex(tabs, controller.getValue()))
@@ -62,3 +63,5 @@ const dictionary = {
62
63
  error: 'Ocorreu um erro ao carregar a aba.',
63
64
  },
64
65
  } satisfies Dictionary
66
+
67
+ export const Tabs = withRef(_Tabs)
@@ -2,6 +2,7 @@ import { listToClass } from '@stack-spot/portal-theme'
2
2
  import { createElement } from 'react'
3
3
  import { HTMLTag, TextAppearance, WithColor } from '../types'
4
4
  import { applyColor, applyTextAppearance } from '../utils/css'
5
+ import { withRef } from '../utils/react'
5
6
 
6
7
  type SupportedTags = 'span' | 'small' | 'p' | `h${1|2|3|4|5|6}` | 'pre'
7
8
 
@@ -72,7 +73,7 @@ const appearanceToTag: Record<TextAppearance, SupportedTags> = {
72
73
  subtitle4: 'p',
73
74
  }
74
75
 
75
- export function Text<T extends SupportedTags>(
76
+ function _Text<T extends SupportedTags>(
76
77
  { tag, appearance, color, showMargins, weight, align, nowrapEllipsis, style, className, children, ...props }: TextProps<T>,
77
78
  ) {
78
79
  const renderedTag = tag || appearanceToTag[appearance || 'body2']
@@ -91,3 +92,5 @@ export function Text<T extends SupportedTags>(
91
92
  children,
92
93
  )
93
94
  }
95
+
96
+ export const Text = withRef(_Text)
@@ -1,12 +1,17 @@
1
+ import React from 'react'
1
2
  import { ControlledTextarea, WithColorScheme } from '../types'
3
+ import { withRef } from '../utils/react'
2
4
  import { CitricComponent } from './CitricComponent'
3
5
 
4
6
  export interface BaseTextareaProps extends WithColorScheme {
5
7
  value?: string,
6
8
  onChange?: (value: string) => void,
9
+ ref?: React.MutableRefObject<HTMLTextAreaElement | null>,
7
10
  }
8
11
 
9
12
  export type TextareaProps = ControlledTextarea & BaseTextareaProps
10
13
 
11
- export const Textarea = ({ value, onChange, ...props }: TextareaProps) =>
14
+ export const _Textarea = ({ value, onChange, ...props }: TextareaProps) =>
12
15
  <CitricComponent tag="textarea" component="textarea" value={value} onChange={e => onChange?.(e.target.value)} {...props} />
16
+
17
+ export const Textarea = withRef(_Textarea)
@@ -2,6 +2,7 @@ import { listToClass } from '@stack-spot/portal-theme'
2
2
  import { createElement } from 'react'
3
3
  import { HTMLTag, WithStyleShortcuts } from '../types'
4
4
  import { applyStyles } from '../utils/css'
5
+ import { withRef } from '../utils/react'
5
6
 
6
7
  export const layout = {
7
8
  center: 'center',
@@ -40,14 +41,18 @@ export type CenterProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseLayoutProps<
40
41
  export type RowProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseRowProps<T>
41
42
  export type ColumnProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseColumnProps<T>
42
43
 
43
- export function Center<T extends keyof HTMLTag = 'div'>({ tag, className, ...props }: CenterProps<T>) {
44
+ function _Center<T extends keyof HTMLTag = 'div'>({ tag, className, ...props }: CenterProps<T>) {
44
45
  return createElement(tag || 'div', { className: listToClass(['center', className]), ...applyStyles(props) })
45
46
  }
46
47
 
47
- export function Row<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: RowProps<T>) {
48
+ function _Row<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: RowProps<T>) {
48
49
  return createElement(tag || 'div', { className: listToClass(['row', center === false && 'no-center', className]), ...applyStyles(props) })
49
50
  }
50
51
 
51
- export function Column<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: ColumnProps<T>) {
52
+ function _Column<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: ColumnProps<T>) {
52
53
  return createElement(tag || 'div', { className: listToClass(['column', center && 'center', className]), ...applyStyles(props) })
53
54
  }
55
+
56
+ export const Center = withRef(_Center)
57
+ export const Row = withRef(_Row)
58
+ export const Column = withRef(_Column)
package/src/index.ts CHANGED
@@ -20,6 +20,7 @@ export * from './components/FieldGroup'
20
20
  export * from './components/Form'
21
21
  export * from './components/FormGroup'
22
22
  export * from './components/IconBox'
23
+ export * from './components/ImageBox'
23
24
  export * from './components/Input'
24
25
  export * from './components/layout'
25
26
  export * from './components/Link'
@@ -0,0 +1,6 @@
1
+ /* eslint-disable react/display-name */
2
+ import { forwardRef } from 'react'
3
+
4
+ export function withRef<T extends (...args: any[]) => any>(fc: T): T {
5
+ return forwardRef((props, ref) => fc({ ...props, ref })) as any
6
+ }