@stack-spot/citric-react 0.42.0-beta.0 → 0.43.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 (209) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/citric.css +2926 -2920
  3. package/dist/components/Accordion.d.ts +1 -1
  4. package/dist/components/Accordion.js +1 -1
  5. package/dist/components/Alert.d.ts +1 -1
  6. package/dist/components/Alert.js +1 -1
  7. package/dist/components/AsyncContent.d.ts +1 -1
  8. package/dist/components/AsyncContent.js +1 -1
  9. package/dist/components/Autocomplete.d.ts +370 -0
  10. package/dist/components/Autocomplete.d.ts.map +1 -0
  11. package/dist/components/{Autocomplete/Autocomplete.js → Autocomplete.js} +163 -98
  12. package/dist/components/Autocomplete.js.map +1 -0
  13. package/dist/components/Avatar.d.ts +1 -1
  14. package/dist/components/Avatar.js +1 -1
  15. package/dist/components/AvatarGroup.d.ts +1 -1
  16. package/dist/components/AvatarGroup.js +1 -1
  17. package/dist/components/Badge.d.ts +1 -1
  18. package/dist/components/Badge.js +1 -1
  19. package/dist/components/Blockquote.d.ts +1 -1
  20. package/dist/components/Blockquote.js +1 -1
  21. package/dist/components/Breadcrumb.d.ts +1 -1
  22. package/dist/components/Breadcrumb.js +1 -1
  23. package/dist/components/Button.d.ts +1 -1
  24. package/dist/components/Button.js +1 -1
  25. package/dist/components/ButtonLink.d.ts +1 -1
  26. package/dist/components/ButtonLink.js +1 -1
  27. package/dist/components/Card.d.ts +1 -1
  28. package/dist/components/Card.js +1 -1
  29. package/dist/components/Checkbox.d.ts +1 -1
  30. package/dist/components/Checkbox.d.ts.map +1 -1
  31. package/dist/components/Checkbox.js +2 -2
  32. package/dist/components/Checkbox.js.map +1 -1
  33. package/dist/components/CheckboxGroup.d.ts +1 -1
  34. package/dist/components/CheckboxGroup.js +1 -1
  35. package/dist/components/Circle.d.ts +1 -1
  36. package/dist/components/Circle.js +1 -1
  37. package/dist/components/Divider.d.ts +1 -1
  38. package/dist/components/Divider.js +1 -1
  39. package/dist/components/ErrorBoundary.d.ts +1 -1
  40. package/dist/components/ErrorBoundary.js +1 -1
  41. package/dist/components/ErrorMessage.d.ts +1 -1
  42. package/dist/components/ErrorMessage.js +1 -1
  43. package/dist/components/FallbackBoundary.d.ts +1 -1
  44. package/dist/components/FallbackBoundary.js +1 -1
  45. package/dist/components/Favorite.d.ts +1 -1
  46. package/dist/components/Favorite.js +1 -1
  47. package/dist/components/FieldGroup.d.ts +1 -1
  48. package/dist/components/FieldGroup.js +1 -1
  49. package/dist/components/Form.d.ts +2 -2
  50. package/dist/components/Form.js +1 -1
  51. package/dist/components/FormGroup.d.ts +1 -1
  52. package/dist/components/FormGroup.js +1 -1
  53. package/dist/components/Icon.d.ts +1 -1
  54. package/dist/components/Icon.js +1 -1
  55. package/dist/components/IconBox.d.ts +3 -3
  56. package/dist/components/IconBox.js +1 -1
  57. package/dist/components/ImageBox.d.ts +3 -3
  58. package/dist/components/ImageBox.js +1 -1
  59. package/dist/components/ImageWithFallback.d.ts +1 -1
  60. package/dist/components/ImageWithFallback.js +1 -1
  61. package/dist/components/Input.d.ts +1 -1
  62. package/dist/components/Input.js +1 -1
  63. package/dist/components/Link.d.ts +1 -1
  64. package/dist/components/Link.js +1 -1
  65. package/dist/components/LoadingPanel.d.ts +1 -1
  66. package/dist/components/LoadingPanel.js +1 -1
  67. package/dist/components/MenuOverlay/Menu.d.ts +1 -1
  68. package/dist/components/MenuOverlay/Menu.js +1 -1
  69. package/dist/components/MenuOverlay/index.d.ts +1 -1
  70. package/dist/components/MenuOverlay/index.js +1 -1
  71. package/dist/components/Overlay/index.d.ts +1 -1
  72. package/dist/components/Overlay/index.js +1 -1
  73. package/dist/components/Pagination.d.ts +1 -1
  74. package/dist/components/Pagination.js +1 -1
  75. package/dist/components/ProgressBar.d.ts +1 -1
  76. package/dist/components/ProgressBar.js +1 -1
  77. package/dist/components/ProgressCircular.d.ts +1 -1
  78. package/dist/components/ProgressCircular.js +1 -1
  79. package/dist/components/RadioGroup.d.ts +1 -1
  80. package/dist/components/RadioGroup.js +1 -1
  81. package/dist/components/Rating.d.ts +1 -1
  82. package/dist/components/Rating.js +1 -1
  83. package/dist/components/Select/MultiSelect.d.ts +1 -1
  84. package/dist/components/Select/MultiSelect.js +1 -1
  85. package/dist/components/Select/RichSelect.d.ts +1 -1
  86. package/dist/components/Select/RichSelect.js +1 -1
  87. package/dist/components/Select/SimpleSelect.d.ts +1 -1
  88. package/dist/components/Select/SimpleSelect.js +1 -1
  89. package/dist/components/Select/index.d.ts +1 -1
  90. package/dist/components/Select/index.js +1 -1
  91. package/dist/components/SelectBox.d.ts +9 -1
  92. package/dist/components/SelectBox.d.ts.map +1 -1
  93. package/dist/components/SelectBox.js +6 -5
  94. package/dist/components/SelectBox.js.map +1 -1
  95. package/dist/components/Skeleton.d.ts +1 -1
  96. package/dist/components/Skeleton.js +1 -1
  97. package/dist/components/Slider.d.ts +1 -1
  98. package/dist/components/Slider.js +1 -1
  99. package/dist/components/SmartTable.d.ts +1 -1
  100. package/dist/components/SmartTable.js +1 -1
  101. package/dist/components/Stepper.d.ts +1 -1
  102. package/dist/components/Stepper.js +1 -1
  103. package/dist/components/Table.d.ts +3 -3
  104. package/dist/components/Table.js +1 -1
  105. package/dist/components/Tabs/index.d.ts +1 -1
  106. package/dist/components/Tabs/index.js +1 -1
  107. package/dist/components/Textarea.d.ts +1 -1
  108. package/dist/components/Textarea.js +1 -1
  109. package/dist/components/Tooltip.d.ts +1 -1
  110. package/dist/components/Tooltip.js +1 -1
  111. package/dist/context/CitricProvider.d.ts +1 -1
  112. package/dist/context/CitricProvider.js +1 -1
  113. package/dist/index.d.ts +2 -1
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +2 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/overlay.js +1 -1
  118. package/dist/theme.css +415 -415
  119. package/dist/utils/css.js +1 -1
  120. package/dist/utils/css.js.map +1 -1
  121. package/package.json +1 -1
  122. package/scripts/build-css.ts +49 -49
  123. package/src/components/Accordion.tsx +130 -130
  124. package/src/components/Alert.tsx +24 -24
  125. package/src/components/AsyncContent.tsx +75 -75
  126. package/src/components/{Autocomplete/Autocomplete.tsx → Autocomplete.tsx} +403 -159
  127. package/src/components/Avatar.tsx +45 -45
  128. package/src/components/AvatarGroup.tsx +49 -49
  129. package/src/components/Badge.tsx +47 -47
  130. package/src/components/Blockquote.tsx +18 -18
  131. package/src/components/Breadcrumb.tsx +33 -33
  132. package/src/components/Button.tsx +105 -105
  133. package/src/components/ButtonLink.tsx +45 -45
  134. package/src/components/Card.tsx +68 -68
  135. package/src/components/Checkbox.tsx +51 -52
  136. package/src/components/CheckboxGroup.tsx +153 -153
  137. package/src/components/Circle.tsx +43 -43
  138. package/src/components/CitricComponent.ts +47 -47
  139. package/src/components/Divider.tsx +24 -24
  140. package/src/components/ErrorBoundary.tsx +75 -75
  141. package/src/components/ErrorMessage.tsx +11 -11
  142. package/src/components/FallbackBoundary.tsx +40 -40
  143. package/src/components/Favorite.tsx +57 -57
  144. package/src/components/FieldGroup.tsx +46 -46
  145. package/src/components/Form.tsx +36 -36
  146. package/src/components/FormGroup.tsx +57 -57
  147. package/src/components/Icon.tsx +35 -35
  148. package/src/components/IconBox.tsx +134 -134
  149. package/src/components/ImageBox.tsx +125 -125
  150. package/src/components/ImageWithFallback.tsx +65 -65
  151. package/src/components/Input.tsx +49 -49
  152. package/src/components/Link.tsx +55 -55
  153. package/src/components/LoadingPanel.tsx +12 -12
  154. package/src/components/MenuOverlay/Menu.tsx +158 -158
  155. package/src/components/MenuOverlay/context.ts +20 -20
  156. package/src/components/MenuOverlay/index.tsx +55 -55
  157. package/src/components/MenuOverlay/keyboard.ts +60 -60
  158. package/src/components/MenuOverlay/types.ts +171 -171
  159. package/src/components/Overlay/context.ts +10 -10
  160. package/src/components/Overlay/index.tsx +182 -182
  161. package/src/components/Overlay/types.ts +75 -75
  162. package/src/components/Pagination.tsx +133 -133
  163. package/src/components/ProgressBar.tsx +45 -45
  164. package/src/components/ProgressCircular.tsx +45 -45
  165. package/src/components/RadioGroup.tsx +147 -147
  166. package/src/components/Rating.tsx +98 -98
  167. package/src/components/Select/MultiSelect.tsx +217 -217
  168. package/src/components/Select/RichSelect.tsx +128 -128
  169. package/src/components/Select/SimpleSelect.tsx +73 -73
  170. package/src/components/Select/hooks.ts +133 -133
  171. package/src/components/Select/index.tsx +35 -35
  172. package/src/components/Select/types.ts +134 -134
  173. package/src/components/SelectBox.tsx +181 -167
  174. package/src/components/Skeleton.tsx +53 -53
  175. package/src/components/Slider.tsx +89 -89
  176. package/src/components/SmartTable.tsx +227 -227
  177. package/src/components/Stepper.tsx +163 -163
  178. package/src/components/Table.tsx +234 -234
  179. package/src/components/Tabs/TabController.ts +54 -54
  180. package/src/components/Tabs/index.tsx +106 -106
  181. package/src/components/Tabs/types.ts +67 -67
  182. package/src/components/Tabs/utils.ts +6 -6
  183. package/src/components/Text.ts +111 -111
  184. package/src/components/Textarea.tsx +27 -27
  185. package/src/components/Tooltip.tsx +83 -83
  186. package/src/components/layout.tsx +101 -101
  187. package/src/context/CitricContext.tsx +4 -4
  188. package/src/context/CitricProvider.tsx +14 -14
  189. package/src/context/hooks.ts +6 -6
  190. package/src/index.ts +59 -59
  191. package/src/overlay.ts +348 -348
  192. package/src/types.ts +235 -235
  193. package/src/utils/ValueController.ts +28 -28
  194. package/src/utils/acessibility.ts +92 -92
  195. package/src/utils/checkbox.ts +121 -121
  196. package/src/utils/css.ts +119 -119
  197. package/src/utils/options.ts +9 -9
  198. package/src/utils/radio.ts +93 -93
  199. package/src/utils/react.ts +6 -6
  200. package/src/utils/time.ts +5 -5
  201. package/tsconfig.json +10 -10
  202. package/dist/components/Autocomplete/Autocomplete.d.ts +0 -211
  203. package/dist/components/Autocomplete/Autocomplete.d.ts.map +0 -1
  204. package/dist/components/Autocomplete/Autocomplete.js.map +0 -1
  205. package/dist/components/Autocomplete/index.d.ts +0 -3
  206. package/dist/components/Autocomplete/index.d.ts.map +0 -1
  207. package/dist/components/Autocomplete/index.js +0 -2
  208. package/dist/components/Autocomplete/index.js.map +0 -1
  209. package/src/components/Autocomplete/index.ts +0 -3
@@ -1,83 +1,83 @@
1
- import { listToClass } from '@stack-spot/portal-theme'
2
- import { useRef } from 'react'
3
- import { WithColorPalette, WithColorScheme } from '../types'
4
- import { Overlay } from './Overlay'
5
- import { BaseOverlayProps } from './Overlay/types'
6
-
7
- export interface BaseTooltipProps extends
8
- Omit<BaseOverlayProps<'div'>, 'tag' | 'onRenderChild' | 'reference'>, WithColorPalette, WithColorScheme {
9
- /**
10
- * Whether or not to show the tooltip's arrow.
11
- *
12
- * @default true
13
- */
14
- showArrow?: boolean,
15
- /**
16
- * The unique id of the HTML element to be created to show the tooltip. If not provided, a random number will be used.
17
- */
18
- tooltipId?: string,
19
- /**
20
- * Makes the tooltip text compact, centering it better when it's a single line.
21
- *
22
- * Effectively, it makes the line height equals to 1 and applies a slightly larger padding.
23
- *
24
- * @default true
25
- */
26
- compact?: boolean,
27
- /**
28
- * The max-width of the tooltip. Defaults to 250px.
29
- */
30
- maxWidth?: string,
31
- /**
32
- * A space between the tooltip and the element who triggered it.
33
- *
34
- * @default '6px'
35
- */
36
- margin?: string,
37
- /**
38
- * Whether or not to disable the tooltip, i.e. not show it.
39
- *
40
- * @default false
41
- */
42
- disabled?: boolean,
43
- }
44
-
45
- export type TooltipProps = Omit<React.JSX.IntrinsicElements['div'], 'content'> & BaseTooltipProps
46
-
47
- /**
48
- * Renders a tooltip overlay for its child. By default, the tooltip is rendered on hover, but this can be changed through the property
49
- * "triggerOn".
50
- *
51
- * The content of the tooltip can be any React element.
52
- *
53
- * @example
54
- * ```
55
- * <Tooltip content="This is some help for you">
56
- * <IconButton icon="Question" />
57
- * </Tooltip>
58
- * ```
59
- */
60
- export const Tooltip = ({
61
- tooltipId, children, showArrow = true, compact = true, attributes, colorScheme, colorPalette, disabled, maxWidth = '250px',
62
- margin = '6px', ...props
63
- }: TooltipProps) => {
64
- const id = useRef(tooltipId || `${Math.random()}`)
65
- return disabled ? children : (
66
- <Overlay
67
- attributes={{
68
- className: listToClass([attributes?.className, showArrow && 'with-arrow', compact && 'compact']),
69
- style: { margin, maxWidth, lineHeight: typeof props.content === 'string' ? 'normal' : undefined, ...attributes?.style },
70
- role: 'tooltip',
71
- id: id.current,
72
- 'data-citric': 'tooltip',
73
- 'data-color-scheme': colorScheme,
74
- 'data-color-palette': colorPalette,
75
- ...attributes,
76
- }}
77
- onRenderChild={e => e.setAttribute('aria-describedby', id.current)}
78
- {...props}
79
- >
80
- {children}
81
- </Overlay>
82
- )
83
- }
1
+ import { listToClass } from '@stack-spot/portal-theme'
2
+ import { useRef } from 'react'
3
+ import { WithColorPalette, WithColorScheme } from '../types'
4
+ import { Overlay } from './Overlay'
5
+ import { BaseOverlayProps } from './Overlay/types'
6
+
7
+ export interface BaseTooltipProps extends
8
+ Omit<BaseOverlayProps<'div'>, 'tag' | 'onRenderChild' | 'reference'>, WithColorPalette, WithColorScheme {
9
+ /**
10
+ * Whether or not to show the tooltip's arrow.
11
+ *
12
+ * @default true
13
+ */
14
+ showArrow?: boolean,
15
+ /**
16
+ * The unique id of the HTML element to be created to show the tooltip. If not provided, a random number will be used.
17
+ */
18
+ tooltipId?: string,
19
+ /**
20
+ * Makes the tooltip text compact, centering it better when it's a single line.
21
+ *
22
+ * Effectively, it makes the line height equals to 1 and applies a slightly larger padding.
23
+ *
24
+ * @default true
25
+ */
26
+ compact?: boolean,
27
+ /**
28
+ * The max-width of the tooltip. Defaults to 250px.
29
+ */
30
+ maxWidth?: string,
31
+ /**
32
+ * A space between the tooltip and the element who triggered it.
33
+ *
34
+ * @default '6px'
35
+ */
36
+ margin?: string,
37
+ /**
38
+ * Whether or not to disable the tooltip, i.e. not show it.
39
+ *
40
+ * @default false
41
+ */
42
+ disabled?: boolean,
43
+ }
44
+
45
+ export type TooltipProps = Omit<React.JSX.IntrinsicElements['div'], 'content'> & BaseTooltipProps
46
+
47
+ /**
48
+ * Renders a tooltip overlay for its child. By default, the tooltip is rendered on hover, but this can be changed through the property
49
+ * "triggerOn".
50
+ *
51
+ * The content of the tooltip can be any React element.
52
+ *
53
+ * @example
54
+ * ```
55
+ * <Tooltip content="This is some help for you">
56
+ * <IconButton icon="Question" />
57
+ * </Tooltip>
58
+ * ```
59
+ */
60
+ export const Tooltip = ({
61
+ tooltipId, children, showArrow = true, compact = true, attributes, colorScheme, colorPalette, disabled, maxWidth = '250px',
62
+ margin = '6px', ...props
63
+ }: TooltipProps) => {
64
+ const id = useRef(tooltipId || `${Math.random()}`)
65
+ return disabled ? children : (
66
+ <Overlay
67
+ attributes={{
68
+ className: listToClass([attributes?.className, showArrow && 'with-arrow', compact && 'compact']),
69
+ style: { margin, maxWidth, lineHeight: typeof props.content === 'string' ? 'normal' : undefined, ...attributes?.style },
70
+ role: 'tooltip',
71
+ id: id.current,
72
+ 'data-citric': 'tooltip',
73
+ 'data-color-scheme': colorScheme,
74
+ 'data-color-palette': colorPalette,
75
+ ...attributes,
76
+ }}
77
+ onRenderChild={e => e.setAttribute('aria-describedby', id.current)}
78
+ {...props}
79
+ >
80
+ {children}
81
+ </Overlay>
82
+ )
83
+ }
@@ -1,101 +1,101 @@
1
- import { listToClass } from '@stack-spot/portal-theme'
2
- import { createElement } from 'react'
3
- import { HTMLTag, WithStyleShortcuts } from '../types'
4
- import { applyStyles } from '../utils/css'
5
- import { withRef } from '../utils/react'
6
-
7
- export const layout = {
8
- center: 'center',
9
- row: 'row',
10
- column: 'column',
11
- }
12
-
13
- export interface BaseLayoutProps<T extends keyof HTMLTag> extends WithStyleShortcuts {
14
- /**
15
- * HTML tag to render.
16
- *
17
- * @default 'div'
18
- */
19
- tag?: T,
20
- }
21
-
22
- export interface BaseRowProps<T extends keyof HTMLTag> extends BaseLayoutProps<T> {
23
- /**
24
- * Whether or not to center items horizontally.
25
- *
26
- * @default true
27
- */
28
- center?: boolean,
29
- }
30
-
31
- export interface BaseColumnProps<T extends keyof HTMLTag> extends BaseLayoutProps<T> {
32
- /**
33
- * Whether or not to center items vertically.
34
- *
35
- * @default false
36
- */
37
- center?: boolean,
38
- }
39
-
40
- export type CenterProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseLayoutProps<T>
41
- export type RowProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseRowProps<T>
42
- export type ColumnProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseColumnProps<T>
43
-
44
- /**
45
- * Centers the content both vertically and horizontally. Elements are placed in a column (flex).
46
- *
47
- * This element accepts many style shortcuts as attributes: bg, fg, border, radius, justifyContent, alignItems, flex, gap, m, mt, mb, ml,
48
- * mr, p, pt, pb, pl, pr, w, h.
49
- *
50
- * @example
51
- * ```
52
- * <Center w="200px" h="200px" gap="10px">
53
- * <img src="/an-image.png" />
54
- * <Text>This content is centered!</Text>
55
- * </Center>
56
- * ```
57
- */
58
- export const Center = withRef(
59
- function Center<T extends keyof HTMLTag = 'div'>({ tag, className, ...props }: CenterProps<T>) {
60
- return createElement(tag || 'div', { className: listToClass(['center', className]), ...applyStyles(props) })
61
- },
62
- )
63
-
64
- /**
65
- * Creates a row (flex). The elements in this row are horizontally centered unless `center = false`.
66
- *
67
- * @example
68
- * ```
69
- * <Row gap={3}>
70
- * <Icon icon="Stack" />
71
- * <Text>Stacks</Text>
72
- * </Row>
73
- * ```
74
- */
75
- export const Row = withRef(
76
- function Row<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: RowProps<T>) {
77
- return createElement(
78
- tag || 'div',
79
- { className: listToClass(['row', center === false && 'no-center', className]), ...applyStyles(props) },
80
- )
81
- },
82
- )
83
-
84
- /**
85
- * Creates a column (flex). The elements in this row are placed at the start of the horizontal axis, unless `center = true`, in this case,
86
- * they're centered.
87
- *
88
- * @example
89
- * ```
90
- * <Column gap={5}>
91
- * <Text>Item 1</Text>
92
- * <Text>Item 2</Text>
93
- * <Text>Item 3</Text>
94
- * </Row>
95
- * ```
96
- */
97
- export const Column = withRef(
98
- function Column<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: ColumnProps<T>) {
99
- return createElement(tag || 'div', { className: listToClass(['column', center && 'center', className]), ...applyStyles(props) })
100
- },
101
- )
1
+ import { listToClass } from '@stack-spot/portal-theme'
2
+ import { createElement } from 'react'
3
+ import { HTMLTag, WithStyleShortcuts } from '../types'
4
+ import { applyStyles } from '../utils/css'
5
+ import { withRef } from '../utils/react'
6
+
7
+ export const layout = {
8
+ center: 'center',
9
+ row: 'row',
10
+ column: 'column',
11
+ }
12
+
13
+ export interface BaseLayoutProps<T extends keyof HTMLTag> extends WithStyleShortcuts {
14
+ /**
15
+ * HTML tag to render.
16
+ *
17
+ * @default 'div'
18
+ */
19
+ tag?: T,
20
+ }
21
+
22
+ export interface BaseRowProps<T extends keyof HTMLTag> extends BaseLayoutProps<T> {
23
+ /**
24
+ * Whether or not to center items horizontally.
25
+ *
26
+ * @default true
27
+ */
28
+ center?: boolean,
29
+ }
30
+
31
+ export interface BaseColumnProps<T extends keyof HTMLTag> extends BaseLayoutProps<T> {
32
+ /**
33
+ * Whether or not to center items vertically.
34
+ *
35
+ * @default false
36
+ */
37
+ center?: boolean,
38
+ }
39
+
40
+ export type CenterProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseLayoutProps<T>
41
+ export type RowProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseRowProps<T>
42
+ export type ColumnProps<T extends keyof HTMLTag> = HTMLTag[T] & BaseColumnProps<T>
43
+
44
+ /**
45
+ * Centers the content both vertically and horizontally. Elements are placed in a column (flex).
46
+ *
47
+ * This element accepts many style shortcuts as attributes: bg, fg, border, radius, justifyContent, alignItems, flex, gap, m, mt, mb, ml,
48
+ * mr, p, pt, pb, pl, pr, w, h.
49
+ *
50
+ * @example
51
+ * ```
52
+ * <Center w="200px" h="200px" gap="10px">
53
+ * <img src="/an-image.png" />
54
+ * <Text>This content is centered!</Text>
55
+ * </Center>
56
+ * ```
57
+ */
58
+ export const Center = withRef(
59
+ function Center<T extends keyof HTMLTag = 'div'>({ tag, className, ...props }: CenterProps<T>) {
60
+ return createElement(tag || 'div', { className: listToClass(['center', className]), ...applyStyles(props) })
61
+ },
62
+ )
63
+
64
+ /**
65
+ * Creates a row (flex). The elements in this row are horizontally centered unless `center = false`.
66
+ *
67
+ * @example
68
+ * ```
69
+ * <Row gap={3}>
70
+ * <Icon icon="Stack" />
71
+ * <Text>Stacks</Text>
72
+ * </Row>
73
+ * ```
74
+ */
75
+ export const Row = withRef(
76
+ function Row<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: RowProps<T>) {
77
+ return createElement(
78
+ tag || 'div',
79
+ { className: listToClass(['row', center === false && 'no-center', className]), ...applyStyles(props) },
80
+ )
81
+ },
82
+ )
83
+
84
+ /**
85
+ * Creates a column (flex). The elements in this row are placed at the start of the horizontal axis, unless `center = true`, in this case,
86
+ * they're centered.
87
+ *
88
+ * @example
89
+ * ```
90
+ * <Column gap={5}>
91
+ * <Text>Item 1</Text>
92
+ * <Text>Item 2</Text>
93
+ * <Text>Item 3</Text>
94
+ * </Row>
95
+ * ```
96
+ */
97
+ export const Column = withRef(
98
+ function Column<T extends keyof HTMLTag = 'div'>({ tag, className, center, ...props }: ColumnProps<T>) {
99
+ return createElement(tag || 'div', { className: listToClass(['column', center && 'center', className]), ...applyStyles(props) })
100
+ },
101
+ )
@@ -1,4 +1,4 @@
1
- import { createContext } from 'react'
2
- import { CitricController } from '../types'
3
-
4
- export const CitricContext = createContext<CitricController | undefined>(undefined)
1
+ import { createContext } from 'react'
2
+ import { CitricController } from '../types'
3
+
4
+ export const CitricContext = createContext<CitricController | undefined>(undefined)
@@ -1,14 +1,14 @@
1
- import { FallbackBoundary } from '../components/FallbackBoundary'
2
- import { CitricController } from '../types'
3
- import { CitricContext } from './CitricContext'
4
-
5
- /**
6
- * An optional provider for customizing the behavior of the Design System. This accepts a CitricController as its value.
7
- */
8
- export const CitricProvider = ({ children, value }: { children: React.ReactNode, value?: CitricController }) => (
9
- <CitricContext.Provider value={value}>
10
- <FallbackBoundary>
11
- {children}
12
- </FallbackBoundary>
13
- </CitricContext.Provider>
14
- )
1
+ import { FallbackBoundary } from '../components/FallbackBoundary'
2
+ import { CitricController } from '../types'
3
+ import { CitricContext } from './CitricContext'
4
+
5
+ /**
6
+ * An optional provider for customizing the behavior of the Design System. This accepts a CitricController as its value.
7
+ */
8
+ export const CitricProvider = ({ children, value }: { children: React.ReactNode, value?: CitricController }) => (
9
+ <CitricContext.Provider value={value}>
10
+ <FallbackBoundary>
11
+ {children}
12
+ </FallbackBoundary>
13
+ </CitricContext.Provider>
14
+ )
@@ -1,6 +1,6 @@
1
- import { useContext } from 'react'
2
- import { CitricContext } from './CitricContext'
3
-
4
- export function useCitricController() {
5
- return useContext(CitricContext)
6
- }
1
+ import { useContext } from 'react'
2
+ import { CitricContext } from './CitricContext'
3
+
4
+ export function useCitricController() {
5
+ return useContext(CitricContext)
6
+ }
package/src/index.ts CHANGED
@@ -1,59 +1,59 @@
1
- export * from './components/Accordion'
2
- export * from './components/Alert'
3
- export * from './components/AsyncContent'
4
- export * from './components/Autocomplete'
5
- export * from './components/Avatar'
6
- export * from './components/AvatarGroup'
7
- export * from './components/Badge'
8
- export * from './components/Blockquote'
9
- export * from './components/Breadcrumb'
10
- export * from './components/Button'
11
- export * from './components/ButtonLink'
12
- export * from './components/Card'
13
- export * from './components/Checkbox'
14
- export * from './components/CheckboxGroup'
15
- export * from './components/Circle'
16
- export * from './components/CitricComponent'
17
- export * from './components/Divider'
18
- export * from './components/ErrorBoundary'
19
- export * from './components/FallbackBoundary'
20
- export * from './components/Favorite'
21
- export * from './components/FieldGroup'
22
- export * from './components/Form'
23
- export * from './components/FormGroup'
24
- export * from './components/Icon'
25
- export * from './components/IconBox'
26
- export * from './components/ImageBox'
27
- export * from './components/ImageWithFallback'
28
- export * from './components/Input'
29
- export * from './components/layout'
30
- export * from './components/Link'
31
- export * from './components/MenuOverlay'
32
- export * from './components/MenuOverlay/types'
33
- export * from './components/Overlay'
34
- export * from './components/Overlay/types'
35
- export * from './components/Pagination'
36
- export * from './components/ProgressBar'
37
- export * from './components/ProgressCircular'
38
- export * from './components/RadioGroup'
39
- export * from './components/Rating'
40
- export * from './components/Select'
41
- export * from './components/Select/MultiSelect'
42
- export * from './components/SelectBox'
43
- export * from './components/Skeleton'
44
- export * from './components/Slider'
45
- export * from './components/SmartTable'
46
- export * from './components/Stepper'
47
- export * from './components/Table'
48
- export * from './components/Tabs'
49
- export * from './components/Tabs/TabController'
50
- export * from './components/Tabs/types'
51
- export * from './components/Text'
52
- export * from './components/Textarea'
53
- export * from './components/Tooltip'
54
- export * from './context/CitricProvider'
55
- export type { CitricController } from './types'
56
- export * from './utils/checkbox'
57
- export * from './utils/radio'
58
- export * from './utils/ValueController'
59
-
1
+ export * from './components/Accordion'
2
+ export * from './components/Alert'
3
+ export * from './components/AsyncContent'
4
+ export * from './components/Autocomplete'
5
+ export * from './components/Avatar'
6
+ export * from './components/AvatarGroup'
7
+ export * from './components/Badge'
8
+ export * from './components/Blockquote'
9
+ export * from './components/Breadcrumb'
10
+ export * from './components/Button'
11
+ export * from './components/ButtonLink'
12
+ export * from './components/Card'
13
+ export * from './components/Checkbox'
14
+ export * from './components/CheckboxGroup'
15
+ export * from './components/Circle'
16
+ export * from './components/CitricComponent'
17
+ export * from './components/Divider'
18
+ export * from './components/ErrorBoundary'
19
+ export * from './components/FallbackBoundary'
20
+ export * from './components/Favorite'
21
+ export * from './components/FieldGroup'
22
+ export * from './components/Form'
23
+ export * from './components/FormGroup'
24
+ export * from './components/Icon'
25
+ export * from './components/IconBox'
26
+ export * from './components/ImageBox'
27
+ export * from './components/ImageWithFallback'
28
+ export * from './components/Input'
29
+ export * from './components/layout'
30
+ export * from './components/Link'
31
+ export * from './components/MenuOverlay'
32
+ export * from './components/MenuOverlay/types'
33
+ export * from './components/Overlay'
34
+ export * from './components/Overlay/types'
35
+ export * from './components/Pagination'
36
+ export * from './components/ProgressBar'
37
+ export * from './components/ProgressCircular'
38
+ export * from './components/RadioGroup'
39
+ export * from './components/Rating'
40
+ export * from './components/Select'
41
+ export * from './components/Select/MultiSelect'
42
+ export * from './components/SelectBox'
43
+ export * from './components/Skeleton'
44
+ export * from './components/Slider'
45
+ export * from './components/SmartTable'
46
+ export * from './components/Stepper'
47
+ export * from './components/Table'
48
+ export * from './components/Tabs'
49
+ export * from './components/Tabs/TabController'
50
+ export * from './components/Tabs/types'
51
+ export * from './components/Text'
52
+ export * from './components/Textarea'
53
+ export * from './components/Tooltip'
54
+ export * from './context/CitricProvider'
55
+ export type { CitricController } from './types'
56
+ export * from './utils/checkbox'
57
+ export { styleObjectToCssString } from './utils/css'
58
+ export * from './utils/radio'
59
+ export * from './utils/ValueController'