@stack-spot/citric-react 0.41.2 → 0.42.0-beta.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 (204) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/citric.css +3090 -2846
  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/Autocomplete.d.ts +211 -0
  10. package/dist/components/Autocomplete/Autocomplete.d.ts.map +1 -0
  11. package/dist/components/Autocomplete/Autocomplete.js +409 -0
  12. package/dist/components/Autocomplete/Autocomplete.js.map +1 -0
  13. package/dist/components/Autocomplete/index.d.ts +3 -0
  14. package/dist/components/Autocomplete/index.d.ts.map +1 -0
  15. package/dist/components/Autocomplete/index.js +2 -0
  16. package/dist/components/Autocomplete/index.js.map +1 -0
  17. package/dist/components/Avatar.d.ts +1 -1
  18. package/dist/components/Avatar.js +1 -1
  19. package/dist/components/AvatarGroup.d.ts +1 -1
  20. package/dist/components/AvatarGroup.js +1 -1
  21. package/dist/components/Badge.d.ts +1 -1
  22. package/dist/components/Badge.js +1 -1
  23. package/dist/components/Blockquote.d.ts +1 -1
  24. package/dist/components/Blockquote.js +1 -1
  25. package/dist/components/Breadcrumb.d.ts +1 -1
  26. package/dist/components/Breadcrumb.js +1 -1
  27. package/dist/components/Button.d.ts +1 -1
  28. package/dist/components/Button.js +1 -1
  29. package/dist/components/ButtonLink.d.ts +1 -1
  30. package/dist/components/ButtonLink.js +1 -1
  31. package/dist/components/Card.d.ts +1 -1
  32. package/dist/components/Card.js +1 -1
  33. package/dist/components/Checkbox.d.ts +1 -1
  34. package/dist/components/Checkbox.d.ts.map +1 -1
  35. package/dist/components/Checkbox.js +2 -2
  36. package/dist/components/Checkbox.js.map +1 -1
  37. package/dist/components/CheckboxGroup.d.ts +1 -1
  38. package/dist/components/CheckboxGroup.js +1 -1
  39. package/dist/components/Circle.d.ts +1 -1
  40. package/dist/components/Circle.js +1 -1
  41. package/dist/components/CitricComponent.d.ts +1 -1
  42. package/dist/components/CitricComponent.d.ts.map +1 -1
  43. package/dist/components/Divider.d.ts +1 -1
  44. package/dist/components/Divider.js +1 -1
  45. package/dist/components/ErrorBoundary.d.ts +1 -1
  46. package/dist/components/ErrorBoundary.js +1 -1
  47. package/dist/components/ErrorMessage.d.ts +1 -1
  48. package/dist/components/ErrorMessage.js +1 -1
  49. package/dist/components/FallbackBoundary.d.ts +1 -1
  50. package/dist/components/FallbackBoundary.js +1 -1
  51. package/dist/components/Favorite.d.ts +1 -1
  52. package/dist/components/Favorite.js +1 -1
  53. package/dist/components/FieldGroup.d.ts +1 -1
  54. package/dist/components/FieldGroup.js +1 -1
  55. package/dist/components/Form.d.ts +2 -2
  56. package/dist/components/Form.js +1 -1
  57. package/dist/components/FormGroup.d.ts +1 -1
  58. package/dist/components/FormGroup.js +1 -1
  59. package/dist/components/Icon.d.ts +1 -1
  60. package/dist/components/Icon.js +1 -1
  61. package/dist/components/IconBox.d.ts +3 -3
  62. package/dist/components/IconBox.js +1 -1
  63. package/dist/components/ImageBox.d.ts +3 -3
  64. package/dist/components/ImageBox.js +1 -1
  65. package/dist/components/ImageWithFallback.d.ts +1 -1
  66. package/dist/components/ImageWithFallback.js +1 -1
  67. package/dist/components/Input.d.ts +1 -1
  68. package/dist/components/Input.js +1 -1
  69. package/dist/components/Link.d.ts +1 -1
  70. package/dist/components/Link.js +1 -1
  71. package/dist/components/LoadingPanel.d.ts +1 -1
  72. package/dist/components/LoadingPanel.js +1 -1
  73. package/dist/components/MenuOverlay/Menu.d.ts +1 -1
  74. package/dist/components/MenuOverlay/Menu.js +1 -1
  75. package/dist/components/MenuOverlay/index.d.ts +1 -1
  76. package/dist/components/MenuOverlay/index.js +1 -1
  77. package/dist/components/Overlay/index.d.ts +1 -1
  78. package/dist/components/Overlay/index.js +1 -1
  79. package/dist/components/Pagination.d.ts +1 -1
  80. package/dist/components/Pagination.js +1 -1
  81. package/dist/components/ProgressBar.d.ts +1 -1
  82. package/dist/components/ProgressBar.js +1 -1
  83. package/dist/components/ProgressCircular.d.ts +1 -1
  84. package/dist/components/ProgressCircular.js +1 -1
  85. package/dist/components/RadioGroup.d.ts +1 -1
  86. package/dist/components/RadioGroup.js +1 -1
  87. package/dist/components/Rating.d.ts +1 -1
  88. package/dist/components/Rating.js +1 -1
  89. package/dist/components/Select/MultiSelect.d.ts +1 -1
  90. package/dist/components/Select/MultiSelect.js +1 -1
  91. package/dist/components/Select/RichSelect.d.ts +1 -1
  92. package/dist/components/Select/RichSelect.js +1 -1
  93. package/dist/components/Select/SimpleSelect.d.ts +1 -1
  94. package/dist/components/Select/SimpleSelect.js +1 -1
  95. package/dist/components/Select/index.d.ts +1 -1
  96. package/dist/components/Select/index.js +1 -1
  97. package/dist/components/SelectBox.d.ts +1 -1
  98. package/dist/components/SelectBox.js +1 -1
  99. package/dist/components/Skeleton.d.ts +1 -1
  100. package/dist/components/Skeleton.js +1 -1
  101. package/dist/components/Slider.d.ts +1 -1
  102. package/dist/components/Slider.js +1 -1
  103. package/dist/components/SmartTable.d.ts +1 -1
  104. package/dist/components/SmartTable.js +1 -1
  105. package/dist/components/Stepper.d.ts +1 -1
  106. package/dist/components/Stepper.js +1 -1
  107. package/dist/components/Table.d.ts +3 -3
  108. package/dist/components/Table.js +1 -1
  109. package/dist/components/Tabs/index.d.ts +1 -1
  110. package/dist/components/Tabs/index.js +1 -1
  111. package/dist/components/Textarea.d.ts +1 -1
  112. package/dist/components/Textarea.js +1 -1
  113. package/dist/components/Tooltip.d.ts +1 -1
  114. package/dist/components/Tooltip.js +1 -1
  115. package/dist/context/CitricProvider.d.ts +1 -1
  116. package/dist/context/CitricProvider.js +1 -1
  117. package/dist/index.d.ts +1 -0
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +1 -0
  120. package/dist/index.js.map +1 -1
  121. package/dist/overlay.js +1 -1
  122. package/dist/theme.css +415 -415
  123. package/package.json +1 -1
  124. package/scripts/build-css.ts +49 -49
  125. package/src/components/Accordion.tsx +130 -130
  126. package/src/components/Alert.tsx +24 -24
  127. package/src/components/AsyncContent.tsx +75 -75
  128. package/src/components/Autocomplete/Autocomplete.tsx +794 -0
  129. package/src/components/Autocomplete/index.ts +3 -0
  130. package/src/components/Avatar.tsx +45 -45
  131. package/src/components/AvatarGroup.tsx +49 -49
  132. package/src/components/Badge.tsx +47 -47
  133. package/src/components/Blockquote.tsx +18 -18
  134. package/src/components/Breadcrumb.tsx +33 -33
  135. package/src/components/Button.tsx +105 -105
  136. package/src/components/ButtonLink.tsx +45 -45
  137. package/src/components/Card.tsx +68 -68
  138. package/src/components/Checkbox.tsx +52 -51
  139. package/src/components/CheckboxGroup.tsx +153 -153
  140. package/src/components/Circle.tsx +43 -43
  141. package/src/components/CitricComponent.ts +47 -47
  142. package/src/components/Divider.tsx +24 -24
  143. package/src/components/ErrorBoundary.tsx +75 -75
  144. package/src/components/ErrorMessage.tsx +11 -11
  145. package/src/components/FallbackBoundary.tsx +40 -40
  146. package/src/components/Favorite.tsx +57 -57
  147. package/src/components/FieldGroup.tsx +46 -46
  148. package/src/components/Form.tsx +36 -36
  149. package/src/components/FormGroup.tsx +57 -57
  150. package/src/components/Icon.tsx +35 -35
  151. package/src/components/IconBox.tsx +134 -134
  152. package/src/components/ImageBox.tsx +125 -125
  153. package/src/components/ImageWithFallback.tsx +65 -65
  154. package/src/components/Input.tsx +49 -49
  155. package/src/components/Link.tsx +55 -55
  156. package/src/components/LoadingPanel.tsx +12 -12
  157. package/src/components/MenuOverlay/Menu.tsx +158 -158
  158. package/src/components/MenuOverlay/context.ts +20 -20
  159. package/src/components/MenuOverlay/index.tsx +55 -55
  160. package/src/components/MenuOverlay/keyboard.ts +60 -60
  161. package/src/components/MenuOverlay/types.ts +171 -171
  162. package/src/components/Overlay/context.ts +10 -10
  163. package/src/components/Overlay/index.tsx +182 -182
  164. package/src/components/Overlay/types.ts +75 -75
  165. package/src/components/Pagination.tsx +133 -133
  166. package/src/components/ProgressBar.tsx +45 -45
  167. package/src/components/ProgressCircular.tsx +45 -45
  168. package/src/components/RadioGroup.tsx +147 -147
  169. package/src/components/Rating.tsx +98 -98
  170. package/src/components/Select/MultiSelect.tsx +217 -217
  171. package/src/components/Select/RichSelect.tsx +128 -128
  172. package/src/components/Select/SimpleSelect.tsx +73 -73
  173. package/src/components/Select/hooks.ts +133 -133
  174. package/src/components/Select/index.tsx +35 -35
  175. package/src/components/Select/types.ts +134 -134
  176. package/src/components/SelectBox.tsx +167 -167
  177. package/src/components/Skeleton.tsx +53 -53
  178. package/src/components/Slider.tsx +89 -89
  179. package/src/components/SmartTable.tsx +227 -227
  180. package/src/components/Stepper.tsx +163 -163
  181. package/src/components/Table.tsx +234 -234
  182. package/src/components/Tabs/TabController.ts +54 -54
  183. package/src/components/Tabs/index.tsx +106 -106
  184. package/src/components/Tabs/types.ts +67 -67
  185. package/src/components/Tabs/utils.ts +6 -6
  186. package/src/components/Text.ts +111 -111
  187. package/src/components/Textarea.tsx +27 -27
  188. package/src/components/Tooltip.tsx +83 -83
  189. package/src/components/layout.tsx +101 -101
  190. package/src/context/CitricContext.tsx +4 -4
  191. package/src/context/CitricProvider.tsx +14 -14
  192. package/src/context/hooks.ts +6 -6
  193. package/src/index.ts +59 -58
  194. package/src/overlay.ts +348 -348
  195. package/src/types.ts +235 -235
  196. package/src/utils/ValueController.ts +28 -28
  197. package/src/utils/acessibility.ts +92 -92
  198. package/src/utils/checkbox.ts +121 -121
  199. package/src/utils/css.ts +119 -119
  200. package/src/utils/options.ts +9 -9
  201. package/src/utils/radio.ts +93 -93
  202. package/src/utils/react.ts +6 -6
  203. package/src/utils/time.ts +5 -5
  204. package/tsconfig.json +10 -10
@@ -1,133 +1,133 @@
1
- import { Dictionary, interpolate, useTranslate } from '@stack-spot/portal-translate'
2
- import { useMemo } from 'react'
3
- import { withRef } from '../utils/react'
4
- import { CitricComponent } from './CitricComponent'
5
- import { IconButton } from './IconBox'
6
-
7
- const DEFAULT_PAGE = 1
8
- const DEFAULT_PAGE_SIZE_OPTIONS = [10, 20, 30]
9
-
10
- export interface PaginationValue {
11
- /**
12
- * The first page is 1. If "0" is provided, it will be treated as if it was "1".
13
- */
14
- page: number,
15
- /**
16
- * The current number of items in a page.
17
- */
18
- size: number,
19
- }
20
-
21
- export interface BasePaginationProps {
22
- /**
23
- * The options for the page size.
24
- *
25
- * @default [10, 20, 30]
26
- */
27
- pageSizeOptions?: number[],
28
- /**
29
- * Total number of pages
30
- */
31
- totalPages: number,
32
- /**
33
- * The current page and page size.
34
- */
35
- value: PaginationValue,
36
- /**
37
- * Function to run whenever the page size or current page changes.
38
- */
39
- onChange: (value: PaginationValue) => void,
40
- }
41
-
42
- export type PaginationProps = Omit<React.JSX.IntrinsicElements['div'], 'onChange'> & BasePaginationProps
43
-
44
- /**
45
- * Renders a pagination UI, letting the user chose one among multiple pages. This is generally rendered at the bottom of a table.
46
- *
47
- * @example
48
- * ```
49
- * const [pageData, setPageData] = useState({ page: 1, size: 10 })
50
- * return <Pagination
51
- * value={pageData}
52
- * totalPages={50}
53
- * onChange={setPageData}
54
- * />
55
- * ```
56
- */
57
- export const Pagination = withRef((
58
- {
59
- value,
60
- onChange,
61
- totalPages,
62
- pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
63
- ...props
64
- }: PaginationProps,
65
- ) => {
66
- const t = useTranslate(dictionary)
67
- const sizeOptions = useMemo(
68
- () => pageSizeOptions.map(o => <option key={o} selected={value.size === o}>{o}</option>),
69
- [pageSizeOptions],
70
- )
71
- const pageOptions = useMemo(() => {
72
- const options: React.ReactElement[] = []
73
- for (let i = 1; i <= totalPages; i++) {
74
- options.push(<option key={i} value={i} selected={value.page === i}>{i}</option>)
75
- }
76
- return options
77
- }, [value.page, totalPages])
78
-
79
- return (
80
- <CitricComponent tag="div" component="pagination" {...props}>
81
- <div className="page-size">
82
- <label>
83
- {t.itemsPerPage}:
84
- <select
85
- name="itemsPerPage"
86
- onChange={e => onChange({ page: DEFAULT_PAGE, size: parseInt(e.target.value) })}
87
- >
88
- {sizeOptions}
89
- </select>
90
- </label>
91
- </div>
92
- <div className="page-number">
93
- <label>
94
- <select
95
- name="page"
96
- onChange={e => onChange({ page: parseInt(e.target.value), size: value.size })}
97
- value={value.page || DEFAULT_PAGE}
98
- >
99
- {pageOptions}
100
- </select>
101
- </label>
102
- {totalPages > 1 ? interpolate(t.ofTotalPlural, totalPages) : t.ofTotalSingular}
103
- <IconButton
104
- icon="ChevronLeft"
105
- aria-label="previous"
106
- title="previous"
107
- disabled={value.page === DEFAULT_PAGE}
108
- onClick={() => onChange({ page: Math.max(value.page - 1, DEFAULT_PAGE), size: value.size })}
109
- />
110
- <IconButton
111
- icon="ChevronRight"
112
- aria-label="next"
113
- title="next"
114
- disabled={value.page === totalPages}
115
- onClick={() => onChange({ page: Math.min(totalPages, value.page + 1), size: value.size })}
116
- />
117
- </div>
118
- </CitricComponent>
119
- )
120
- })
121
-
122
- const dictionary = {
123
- en: {
124
- itemsPerPage: 'Items per page',
125
- ofTotalSingular: 'of 1 page',
126
- ofTotalPlural: 'of $0 pages',
127
- },
128
- pt: {
129
- itemsPerPage: 'Itens por página',
130
- ofTotalSingular: 'de 1 página',
131
- ofTotalPlural: 'de $0 páginas',
132
- },
133
- } satisfies Dictionary
1
+ import { Dictionary, interpolate, useTranslate } from '@stack-spot/portal-translate'
2
+ import { useMemo } from 'react'
3
+ import { withRef } from '../utils/react'
4
+ import { CitricComponent } from './CitricComponent'
5
+ import { IconButton } from './IconBox'
6
+
7
+ const DEFAULT_PAGE = 1
8
+ const DEFAULT_PAGE_SIZE_OPTIONS = [10, 20, 30]
9
+
10
+ export interface PaginationValue {
11
+ /**
12
+ * The first page is 1. If "0" is provided, it will be treated as if it was "1".
13
+ */
14
+ page: number,
15
+ /**
16
+ * The current number of items in a page.
17
+ */
18
+ size: number,
19
+ }
20
+
21
+ export interface BasePaginationProps {
22
+ /**
23
+ * The options for the page size.
24
+ *
25
+ * @default [10, 20, 30]
26
+ */
27
+ pageSizeOptions?: number[],
28
+ /**
29
+ * Total number of pages
30
+ */
31
+ totalPages: number,
32
+ /**
33
+ * The current page and page size.
34
+ */
35
+ value: PaginationValue,
36
+ /**
37
+ * Function to run whenever the page size or current page changes.
38
+ */
39
+ onChange: (value: PaginationValue) => void,
40
+ }
41
+
42
+ export type PaginationProps = Omit<React.JSX.IntrinsicElements['div'], 'onChange'> & BasePaginationProps
43
+
44
+ /**
45
+ * Renders a pagination UI, letting the user chose one among multiple pages. This is generally rendered at the bottom of a table.
46
+ *
47
+ * @example
48
+ * ```
49
+ * const [pageData, setPageData] = useState({ page: 1, size: 10 })
50
+ * return <Pagination
51
+ * value={pageData}
52
+ * totalPages={50}
53
+ * onChange={setPageData}
54
+ * />
55
+ * ```
56
+ */
57
+ export const Pagination = withRef((
58
+ {
59
+ value,
60
+ onChange,
61
+ totalPages,
62
+ pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
63
+ ...props
64
+ }: PaginationProps,
65
+ ) => {
66
+ const t = useTranslate(dictionary)
67
+ const sizeOptions = useMemo(
68
+ () => pageSizeOptions.map(o => <option key={o} selected={value.size === o}>{o}</option>),
69
+ [pageSizeOptions],
70
+ )
71
+ const pageOptions = useMemo(() => {
72
+ const options: React.ReactElement[] = []
73
+ for (let i = 1; i <= totalPages; i++) {
74
+ options.push(<option key={i} value={i} selected={value.page === i}>{i}</option>)
75
+ }
76
+ return options
77
+ }, [value.page, totalPages])
78
+
79
+ return (
80
+ <CitricComponent tag="div" component="pagination" {...props}>
81
+ <div className="page-size">
82
+ <label>
83
+ {t.itemsPerPage}:
84
+ <select
85
+ name="itemsPerPage"
86
+ onChange={e => onChange({ page: DEFAULT_PAGE, size: parseInt(e.target.value) })}
87
+ >
88
+ {sizeOptions}
89
+ </select>
90
+ </label>
91
+ </div>
92
+ <div className="page-number">
93
+ <label>
94
+ <select
95
+ name="page"
96
+ onChange={e => onChange({ page: parseInt(e.target.value), size: value.size })}
97
+ value={value.page || DEFAULT_PAGE}
98
+ >
99
+ {pageOptions}
100
+ </select>
101
+ </label>
102
+ {totalPages > 1 ? interpolate(t.ofTotalPlural, totalPages) : t.ofTotalSingular}
103
+ <IconButton
104
+ icon="ChevronLeft"
105
+ aria-label="previous"
106
+ title="previous"
107
+ disabled={value.page === DEFAULT_PAGE}
108
+ onClick={() => onChange({ page: Math.max(value.page - 1, DEFAULT_PAGE), size: value.size })}
109
+ />
110
+ <IconButton
111
+ icon="ChevronRight"
112
+ aria-label="next"
113
+ title="next"
114
+ disabled={value.page === totalPages}
115
+ onClick={() => onChange({ page: Math.min(totalPages, value.page + 1), size: value.size })}
116
+ />
117
+ </div>
118
+ </CitricComponent>
119
+ )
120
+ })
121
+
122
+ const dictionary = {
123
+ en: {
124
+ itemsPerPage: 'Items per page',
125
+ ofTotalSingular: 'of 1 page',
126
+ ofTotalPlural: 'of $0 pages',
127
+ },
128
+ pt: {
129
+ itemsPerPage: 'Itens por página',
130
+ ofTotalSingular: 'de 1 página',
131
+ ofTotalPlural: 'de $0 páginas',
132
+ },
133
+ } satisfies Dictionary
@@ -1,45 +1,45 @@
1
- import { listToClass } from '@stack-spot/portal-theme'
2
- import { isNil } from 'lodash'
3
- import { WithColorPalette, WithColorScheme } from '../types'
4
- import { applyCSSVariable } from '../utils/css'
5
- import { withRef } from '../utils/react'
6
- import { CitricComponent } from './CitricComponent'
7
-
8
- export interface BaseProgressBarProps extends WithColorScheme, WithColorPalette {
9
- /**
10
- * A number varying from 0 to 100.
11
- *
12
- * If not provided, the progress will be indeterminate, causing an animation loop.
13
- */
14
- progress?: number,
15
- /**
16
- * The speed which the bar animation runs. Only valid if `progress` is `undefined`.
17
- */
18
- speed?: 'normal' | 'fast',
19
- }
20
-
21
- export type ProgressBarProps = React.JSX.IntrinsicElements['div'] & BaseProgressBarProps
22
-
23
- /**
24
- * Shows a progress bar. This can indicate a loading state or the progress of a task. When "progress" is not set, the bar is animated,
25
- * indicating a busy state.
26
- *
27
- * @example
28
- * A simple loading with a Progress Bar.
29
- * ```
30
- * <ProgressBar />
31
- * ```
32
- * A Progress Bar that is 50% complete.
33
- * ```
34
- * <ProgressBar progress={50} />
35
- * ```
36
- */
37
- export const ProgressBar = withRef(({ progress, speed, style, className, ...props }: ProgressBarProps) =>
38
- <CitricComponent
39
- tag="div"
40
- component="progress-bar"
41
- className={listToClass([className, isNil(progress) && 'indeterminate', speed === 'fast' && 'fast'])}
42
- style={progress === undefined ? style : applyCSSVariable(style, 'progress', progress)}
43
- {...props}
44
- />,
45
- )
1
+ import { listToClass } from '@stack-spot/portal-theme'
2
+ import { isNil } from 'lodash'
3
+ import { WithColorPalette, WithColorScheme } from '../types'
4
+ import { applyCSSVariable } from '../utils/css'
5
+ import { withRef } from '../utils/react'
6
+ import { CitricComponent } from './CitricComponent'
7
+
8
+ export interface BaseProgressBarProps extends WithColorScheme, WithColorPalette {
9
+ /**
10
+ * A number varying from 0 to 100.
11
+ *
12
+ * If not provided, the progress will be indeterminate, causing an animation loop.
13
+ */
14
+ progress?: number,
15
+ /**
16
+ * The speed which the bar animation runs. Only valid if `progress` is `undefined`.
17
+ */
18
+ speed?: 'normal' | 'fast',
19
+ }
20
+
21
+ export type ProgressBarProps = React.JSX.IntrinsicElements['div'] & BaseProgressBarProps
22
+
23
+ /**
24
+ * Shows a progress bar. This can indicate a loading state or the progress of a task. When "progress" is not set, the bar is animated,
25
+ * indicating a busy state.
26
+ *
27
+ * @example
28
+ * A simple loading with a Progress Bar.
29
+ * ```
30
+ * <ProgressBar />
31
+ * ```
32
+ * A Progress Bar that is 50% complete.
33
+ * ```
34
+ * <ProgressBar progress={50} />
35
+ * ```
36
+ */
37
+ export const ProgressBar = withRef(({ progress, speed, style, className, ...props }: ProgressBarProps) =>
38
+ <CitricComponent
39
+ tag="div"
40
+ component="progress-bar"
41
+ className={listToClass([className, isNil(progress) && 'indeterminate', speed === 'fast' && 'fast'])}
42
+ style={progress === undefined ? style : applyCSSVariable(style, 'progress', progress)}
43
+ {...props}
44
+ />,
45
+ )
@@ -1,45 +1,45 @@
1
- import { listToClass } from '@stack-spot/portal-theme'
2
- import { isNil } from 'lodash'
3
- import { WithColorPalette, WithColorScheme } from '../types'
4
- import { applyCSSVariable } from '../utils/css'
5
- import { withRef } from '../utils/react'
6
- import { CitricComponent } from './CitricComponent'
7
-
8
- export interface BaseProgressCircularProps extends WithColorScheme, WithColorPalette {
9
- /**
10
- * A number varying from 0 to 100.
11
- *
12
- * If not provided, the progress will be indeterminate, causing an animation loop.
13
- */
14
- progress?: number,
15
- /**
16
- * @default 'md'
17
- */
18
- size?: 'xs' | 'sm' | 'md' | 'lg',
19
- }
20
-
21
- export type ProgressCircularProps = React.JSX.IntrinsicElements['div'] & BaseProgressCircularProps
22
-
23
- /**
24
- * Shows a circular progress. This can indicate a loading state (spinner) or the progress of a task. When "progress" is not set, the
25
- * spinner is animated, indicating a busy state.
26
- *
27
- * @example
28
- * A simple loading with a Progress Circular.
29
- * ```
30
- * <ProgressCircular />
31
- * ```
32
- * A Progress Circular that is 50% complete.
33
- * ```
34
- * <ProgressCircular progress={50} />
35
- * ```
36
- */
37
- export const ProgressCircular = withRef(({ progress, size, style, className, ...props }: ProgressCircularProps) =>
38
- <CitricComponent
39
- tag="div"
40
- component="progress-circular"
41
- className={listToClass([size, className, isNil(progress) && 'indeterminate'])}
42
- style={progress === undefined ? style : applyCSSVariable(style, 'progress', progress)}
43
- {...props}
44
- />,
45
- )
1
+ import { listToClass } from '@stack-spot/portal-theme'
2
+ import { isNil } from 'lodash'
3
+ import { WithColorPalette, WithColorScheme } from '../types'
4
+ import { applyCSSVariable } from '../utils/css'
5
+ import { withRef } from '../utils/react'
6
+ import { CitricComponent } from './CitricComponent'
7
+
8
+ export interface BaseProgressCircularProps extends WithColorScheme, WithColorPalette {
9
+ /**
10
+ * A number varying from 0 to 100.
11
+ *
12
+ * If not provided, the progress will be indeterminate, causing an animation loop.
13
+ */
14
+ progress?: number,
15
+ /**
16
+ * @default 'md'
17
+ */
18
+ size?: 'xs' | 'sm' | 'md' | 'lg',
19
+ }
20
+
21
+ export type ProgressCircularProps = React.JSX.IntrinsicElements['div'] & BaseProgressCircularProps
22
+
23
+ /**
24
+ * Shows a circular progress. This can indicate a loading state (spinner) or the progress of a task. When "progress" is not set, the
25
+ * spinner is animated, indicating a busy state.
26
+ *
27
+ * @example
28
+ * A simple loading with a Progress Circular.
29
+ * ```
30
+ * <ProgressCircular />
31
+ * ```
32
+ * A Progress Circular that is 50% complete.
33
+ * ```
34
+ * <ProgressCircular progress={50} />
35
+ * ```
36
+ */
37
+ export const ProgressCircular = withRef(({ progress, size, style, className, ...props }: ProgressCircularProps) =>
38
+ <CitricComponent
39
+ tag="div"
40
+ component="progress-circular"
41
+ className={listToClass([size, className, isNil(progress) && 'indeterminate'])}
42
+ style={progress === undefined ? style : applyCSSVariable(style, 'progress', progress)}
43
+ {...props}
44
+ />,
45
+ )