@stack-spot/citric-react 0.42.0-beta.0 → 0.42.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 (208) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/citric.css +2849 -3081
  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/Avatar.d.ts +1 -1
  10. package/dist/components/Avatar.js +1 -1
  11. package/dist/components/AvatarGroup.d.ts +1 -1
  12. package/dist/components/AvatarGroup.js +1 -1
  13. package/dist/components/Badge.d.ts +1 -1
  14. package/dist/components/Badge.js +1 -1
  15. package/dist/components/Blockquote.d.ts +1 -1
  16. package/dist/components/Blockquote.js +1 -1
  17. package/dist/components/Breadcrumb.d.ts +1 -1
  18. package/dist/components/Breadcrumb.js +1 -1
  19. package/dist/components/Button.d.ts +1 -1
  20. package/dist/components/Button.js +1 -1
  21. package/dist/components/ButtonLink.d.ts +1 -1
  22. package/dist/components/ButtonLink.js +1 -1
  23. package/dist/components/Card.d.ts +1 -1
  24. package/dist/components/Card.js +1 -1
  25. package/dist/components/Checkbox.d.ts +1 -1
  26. package/dist/components/Checkbox.d.ts.map +1 -1
  27. package/dist/components/Checkbox.js +2 -2
  28. package/dist/components/Checkbox.js.map +1 -1
  29. package/dist/components/CheckboxGroup.d.ts +1 -1
  30. package/dist/components/CheckboxGroup.js +1 -1
  31. package/dist/components/Circle.d.ts +1 -1
  32. package/dist/components/Circle.js +1 -1
  33. package/dist/components/CitricComponent.d.ts +1 -1
  34. package/dist/components/CitricComponent.d.ts.map +1 -1
  35. package/dist/components/Divider.d.ts +1 -1
  36. package/dist/components/Divider.js +1 -1
  37. package/dist/components/ErrorBoundary.d.ts +1 -1
  38. package/dist/components/ErrorBoundary.js +1 -1
  39. package/dist/components/ErrorMessage.d.ts +1 -1
  40. package/dist/components/ErrorMessage.js +1 -1
  41. package/dist/components/FallbackBoundary.d.ts +1 -1
  42. package/dist/components/FallbackBoundary.js +1 -1
  43. package/dist/components/Favorite.d.ts +1 -1
  44. package/dist/components/Favorite.js +1 -1
  45. package/dist/components/FieldGroup.d.ts +1 -1
  46. package/dist/components/FieldGroup.js +1 -1
  47. package/dist/components/Form.d.ts +2 -2
  48. package/dist/components/Form.js +1 -1
  49. package/dist/components/FormGroup.d.ts +1 -1
  50. package/dist/components/FormGroup.js +1 -1
  51. package/dist/components/Icon.d.ts +1 -1
  52. package/dist/components/Icon.js +1 -1
  53. package/dist/components/IconBox.d.ts +3 -3
  54. package/dist/components/IconBox.js +1 -1
  55. package/dist/components/ImageBox.d.ts +3 -3
  56. package/dist/components/ImageBox.js +1 -1
  57. package/dist/components/ImageWithFallback.d.ts +1 -1
  58. package/dist/components/ImageWithFallback.js +1 -1
  59. package/dist/components/Input.d.ts +1 -1
  60. package/dist/components/Input.js +1 -1
  61. package/dist/components/Link.d.ts +1 -1
  62. package/dist/components/Link.js +1 -1
  63. package/dist/components/LoadingPanel.d.ts +1 -1
  64. package/dist/components/LoadingPanel.js +1 -1
  65. package/dist/components/MenuOverlay/Menu.d.ts +1 -1
  66. package/dist/components/MenuOverlay/Menu.js +1 -1
  67. package/dist/components/MenuOverlay/index.d.ts +1 -1
  68. package/dist/components/MenuOverlay/index.js +1 -1
  69. package/dist/components/Overlay/index.d.ts +1 -1
  70. package/dist/components/Overlay/index.js +1 -1
  71. package/dist/components/Pagination.d.ts +1 -1
  72. package/dist/components/Pagination.js +1 -1
  73. package/dist/components/ProgressBar.d.ts +1 -1
  74. package/dist/components/ProgressBar.js +1 -1
  75. package/dist/components/ProgressCircular.d.ts +1 -1
  76. package/dist/components/ProgressCircular.js +1 -1
  77. package/dist/components/RadioGroup.d.ts +1 -1
  78. package/dist/components/RadioGroup.js +1 -1
  79. package/dist/components/Rating.d.ts +1 -1
  80. package/dist/components/Rating.js +1 -1
  81. package/dist/components/Select/MultiSelect.d.ts +1 -1
  82. package/dist/components/Select/MultiSelect.js +1 -1
  83. package/dist/components/Select/RichSelect.d.ts +1 -1
  84. package/dist/components/Select/RichSelect.js +1 -1
  85. package/dist/components/Select/SimpleSelect.d.ts +1 -1
  86. package/dist/components/Select/SimpleSelect.js +1 -1
  87. package/dist/components/Select/index.d.ts +1 -1
  88. package/dist/components/Select/index.js +1 -1
  89. package/dist/components/SelectBox.d.ts +9 -1
  90. package/dist/components/SelectBox.d.ts.map +1 -1
  91. package/dist/components/SelectBox.js +6 -5
  92. package/dist/components/SelectBox.js.map +1 -1
  93. package/dist/components/Skeleton.d.ts +1 -1
  94. package/dist/components/Skeleton.js +1 -1
  95. package/dist/components/Slider.d.ts +1 -1
  96. package/dist/components/Slider.js +1 -1
  97. package/dist/components/SmartTable.d.ts +1 -1
  98. package/dist/components/SmartTable.js +1 -1
  99. package/dist/components/Stepper.d.ts +1 -1
  100. package/dist/components/Stepper.js +1 -1
  101. package/dist/components/Table.d.ts +3 -3
  102. package/dist/components/Table.js +1 -1
  103. package/dist/components/Tabs/index.d.ts +1 -1
  104. package/dist/components/Tabs/index.js +1 -1
  105. package/dist/components/Textarea.d.ts +1 -1
  106. package/dist/components/Textarea.js +1 -1
  107. package/dist/components/Tooltip.d.ts +1 -1
  108. package/dist/components/Tooltip.js +1 -1
  109. package/dist/context/CitricProvider.d.ts +1 -1
  110. package/dist/context/CitricProvider.js +1 -1
  111. package/dist/index.d.ts +1 -1
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +1 -1
  114. package/dist/index.js.map +1 -1
  115. package/dist/overlay.js +1 -1
  116. package/dist/theme.css +415 -415
  117. package/dist/utils/css.js +1 -1
  118. package/dist/utils/css.js.map +1 -1
  119. package/package.json +1 -1
  120. package/scripts/build-css.ts +49 -49
  121. package/src/components/Accordion.tsx +130 -130
  122. package/src/components/Alert.tsx +24 -24
  123. package/src/components/AsyncContent.tsx +75 -75
  124. package/src/components/Avatar.tsx +45 -45
  125. package/src/components/AvatarGroup.tsx +49 -49
  126. package/src/components/Badge.tsx +47 -47
  127. package/src/components/Blockquote.tsx +18 -18
  128. package/src/components/Breadcrumb.tsx +33 -33
  129. package/src/components/Button.tsx +105 -105
  130. package/src/components/ButtonLink.tsx +45 -45
  131. package/src/components/Card.tsx +68 -68
  132. package/src/components/Checkbox.tsx +51 -52
  133. package/src/components/CheckboxGroup.tsx +153 -153
  134. package/src/components/Circle.tsx +43 -43
  135. package/src/components/CitricComponent.ts +47 -47
  136. package/src/components/Divider.tsx +24 -24
  137. package/src/components/ErrorBoundary.tsx +75 -75
  138. package/src/components/ErrorMessage.tsx +11 -11
  139. package/src/components/FallbackBoundary.tsx +40 -40
  140. package/src/components/Favorite.tsx +57 -57
  141. package/src/components/FieldGroup.tsx +46 -46
  142. package/src/components/Form.tsx +36 -36
  143. package/src/components/FormGroup.tsx +57 -57
  144. package/src/components/Icon.tsx +35 -35
  145. package/src/components/IconBox.tsx +134 -134
  146. package/src/components/ImageBox.tsx +125 -125
  147. package/src/components/ImageWithFallback.tsx +65 -65
  148. package/src/components/Input.tsx +49 -49
  149. package/src/components/Link.tsx +55 -55
  150. package/src/components/LoadingPanel.tsx +12 -12
  151. package/src/components/MenuOverlay/Menu.tsx +158 -158
  152. package/src/components/MenuOverlay/context.ts +20 -20
  153. package/src/components/MenuOverlay/index.tsx +55 -55
  154. package/src/components/MenuOverlay/keyboard.ts +60 -60
  155. package/src/components/MenuOverlay/types.ts +171 -171
  156. package/src/components/Overlay/context.ts +10 -10
  157. package/src/components/Overlay/index.tsx +182 -182
  158. package/src/components/Overlay/types.ts +75 -75
  159. package/src/components/Pagination.tsx +133 -133
  160. package/src/components/ProgressBar.tsx +45 -45
  161. package/src/components/ProgressCircular.tsx +45 -45
  162. package/src/components/RadioGroup.tsx +147 -147
  163. package/src/components/Rating.tsx +98 -98
  164. package/src/components/Select/MultiSelect.tsx +217 -217
  165. package/src/components/Select/RichSelect.tsx +128 -128
  166. package/src/components/Select/SimpleSelect.tsx +73 -73
  167. package/src/components/Select/hooks.ts +133 -133
  168. package/src/components/Select/index.tsx +35 -35
  169. package/src/components/Select/types.ts +134 -134
  170. package/src/components/SelectBox.tsx +181 -167
  171. package/src/components/Skeleton.tsx +53 -53
  172. package/src/components/Slider.tsx +89 -89
  173. package/src/components/SmartTable.tsx +227 -227
  174. package/src/components/Stepper.tsx +163 -163
  175. package/src/components/Table.tsx +234 -234
  176. package/src/components/Tabs/TabController.ts +54 -54
  177. package/src/components/Tabs/index.tsx +106 -106
  178. package/src/components/Tabs/types.ts +67 -67
  179. package/src/components/Tabs/utils.ts +6 -6
  180. package/src/components/Text.ts +111 -111
  181. package/src/components/Textarea.tsx +27 -27
  182. package/src/components/Tooltip.tsx +83 -83
  183. package/src/components/layout.tsx +101 -101
  184. package/src/context/CitricContext.tsx +4 -4
  185. package/src/context/CitricProvider.tsx +14 -14
  186. package/src/context/hooks.ts +6 -6
  187. package/src/index.ts +58 -59
  188. package/src/overlay.ts +348 -348
  189. package/src/types.ts +235 -235
  190. package/src/utils/ValueController.ts +28 -28
  191. package/src/utils/acessibility.ts +92 -92
  192. package/src/utils/checkbox.ts +121 -121
  193. package/src/utils/css.ts +119 -119
  194. package/src/utils/options.ts +9 -9
  195. package/src/utils/radio.ts +93 -93
  196. package/src/utils/react.ts +6 -6
  197. package/src/utils/time.ts +5 -5
  198. package/tsconfig.json +10 -10
  199. package/dist/components/Autocomplete/Autocomplete.d.ts +0 -211
  200. package/dist/components/Autocomplete/Autocomplete.d.ts.map +0 -1
  201. package/dist/components/Autocomplete/Autocomplete.js +0 -409
  202. package/dist/components/Autocomplete/Autocomplete.js.map +0 -1
  203. package/dist/components/Autocomplete/index.d.ts +0 -3
  204. package/dist/components/Autocomplete/index.d.ts.map +0 -1
  205. package/dist/components/Autocomplete/index.js +0 -2
  206. package/dist/components/Autocomplete/index.js.map +0 -1
  207. package/src/components/Autocomplete/Autocomplete.tsx +0 -794
  208. 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,58 @@
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/Avatar'
5
+ export * from './components/AvatarGroup'
6
+ export * from './components/Badge'
7
+ export * from './components/Blockquote'
8
+ export * from './components/Breadcrumb'
9
+ export * from './components/Button'
10
+ export * from './components/ButtonLink'
11
+ export * from './components/Card'
12
+ export * from './components/Checkbox'
13
+ export * from './components/CheckboxGroup'
14
+ export * from './components/Circle'
15
+ export * from './components/CitricComponent'
16
+ export * from './components/Divider'
17
+ export * from './components/ErrorBoundary'
18
+ export * from './components/FallbackBoundary'
19
+ export * from './components/Favorite'
20
+ export * from './components/FieldGroup'
21
+ export * from './components/Form'
22
+ export * from './components/FormGroup'
23
+ export * from './components/Icon'
24
+ export * from './components/IconBox'
25
+ export * from './components/ImageBox'
26
+ export * from './components/ImageWithFallback'
27
+ export * from './components/Input'
28
+ export * from './components/layout'
29
+ export * from './components/Link'
30
+ export * from './components/MenuOverlay'
31
+ export * from './components/MenuOverlay/types'
32
+ export * from './components/Overlay'
33
+ export * from './components/Overlay/types'
34
+ export * from './components/Pagination'
35
+ export * from './components/ProgressBar'
36
+ export * from './components/ProgressCircular'
37
+ export * from './components/RadioGroup'
38
+ export * from './components/Rating'
39
+ export * from './components/Select'
40
+ export * from './components/Select/MultiSelect'
41
+ export * from './components/SelectBox'
42
+ export * from './components/Skeleton'
43
+ export * from './components/Slider'
44
+ export * from './components/SmartTable'
45
+ export * from './components/Stepper'
46
+ export * from './components/Table'
47
+ export * from './components/Tabs'
48
+ export * from './components/Tabs/TabController'
49
+ export * from './components/Tabs/types'
50
+ export * from './components/Text'
51
+ export * from './components/Textarea'
52
+ export * from './components/Tooltip'
53
+ export * from './context/CitricProvider'
54
+ export type { CitricController } from './types'
55
+ export * from './utils/checkbox'
56
+ export { styleObjectToCssString } from './utils/css'
57
+ export * from './utils/radio'
58
+ export * from './utils/ValueController'