@stack-spot/portal-components 2.27.0 → 2.27.2

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 (250) hide show
  1. package/CHANGELOG.md +635 -621
  2. package/dist/components/AnimatedHeight.d.ts +1 -1
  3. package/dist/components/AnimatedHeight.js +26 -26
  4. package/dist/components/AsyncContent.d.ts +1 -1
  5. package/dist/components/AsyncContent.js +1 -1
  6. package/dist/components/BannerWarning.d.ts +1 -1
  7. package/dist/components/BannerWarning.js +1 -1
  8. package/dist/components/Breadcrumb/index.d.ts +2 -2
  9. package/dist/components/Breadcrumb/index.js +1 -1
  10. package/dist/components/Breadcrumb/styled.js +31 -31
  11. package/dist/components/ButtonLoading.d.ts +1 -1
  12. package/dist/components/ButtonLoading.js +1 -1
  13. package/dist/components/ChatBot.d.ts +1 -1
  14. package/dist/components/ChatBot.js +1 -1
  15. package/dist/components/ContentValidateFilter.d.ts +1 -1
  16. package/dist/components/ContentValidateFilter.js +1 -1
  17. package/dist/components/FadingOverflow.d.ts +1 -1
  18. package/dist/components/FadingOverflow.js +69 -69
  19. package/dist/components/FileTreeView/More.d.ts +1 -1
  20. package/dist/components/FileTreeView/More.js +1 -1
  21. package/dist/components/FileTreeView/index.d.ts +1 -1
  22. package/dist/components/FileTreeView/index.js +1 -1
  23. package/dist/components/InfiniteScroll.d.ts +1 -1
  24. package/dist/components/InfiniteScroll.js +1 -1
  25. package/dist/components/InfoMaintenanceBanner.d.ts +1 -1
  26. package/dist/components/InfoMaintenanceBanner.js +2 -2
  27. package/dist/components/LazyMarkdown/BlockquoteMd.d.ts +1 -1
  28. package/dist/components/LazyMarkdown/BlockquoteMd.js +1 -1
  29. package/dist/components/LazyMarkdown/CodeViewer.d.ts +1 -1
  30. package/dist/components/LazyMarkdown/CodeViewer.js +76 -76
  31. package/dist/components/LazyMarkdown/Markdown.d.ts +1 -1
  32. package/dist/components/LazyMarkdown/Markdown.js +1 -1
  33. package/dist/components/LazyMarkdown/MarkdownButton.d.ts +1 -1
  34. package/dist/components/LazyMarkdown/MarkdownButton.js +1 -1
  35. package/dist/components/LazyMarkdown/Video.d.ts +1 -1
  36. package/dist/components/LazyMarkdown/Video.js +1 -1
  37. package/dist/components/LazyMarkdown/index.d.ts +1 -1
  38. package/dist/components/LazyMarkdown/index.js +1 -1
  39. package/dist/components/Placeholder.d.ts +7 -3
  40. package/dist/components/Placeholder.d.ts.map +1 -1
  41. package/dist/components/Placeholder.js +3 -3
  42. package/dist/components/Placeholder.js.map +1 -1
  43. package/dist/components/ScrollView.js +16 -16
  44. package/dist/components/Select/BadgeItem.d.ts +1 -1
  45. package/dist/components/Select/BadgeItem.js +1 -1
  46. package/dist/components/Select/ClearInput.d.ts +1 -1
  47. package/dist/components/Select/ClearInput.js +1 -1
  48. package/dist/components/Select/CloseItem.d.ts +1 -1
  49. package/dist/components/Select/CloseItem.js +1 -1
  50. package/dist/components/Select/CreatableSelect.js +1 -1
  51. package/dist/components/Select/CustomMenu.d.ts +1 -1
  52. package/dist/components/Select/CustomMenu.js +1 -1
  53. package/dist/components/Select/LabelItem.d.ts +1 -1
  54. package/dist/components/Select/LabelItem.js +1 -1
  55. package/dist/components/Select/MultiValue.d.ts +1 -1
  56. package/dist/components/Select/MultiValue.js +1 -1
  57. package/dist/components/Select/SelectInfiniteScroll.d.ts +1 -1
  58. package/dist/components/Select/SelectInfiniteScroll.js +1 -1
  59. package/dist/components/Select/SelectSearch.d.ts +1 -1
  60. package/dist/components/Select/SelectSearch.js +1 -1
  61. package/dist/components/SelectionList.d.ts +1 -1
  62. package/dist/components/SelectionList.js +61 -61
  63. package/dist/components/StatusCircle.d.ts +1 -1
  64. package/dist/components/StatusCircle.js +6 -6
  65. package/dist/components/Stepper/Navigation.js +4 -4
  66. package/dist/components/Stepper/Step.js +3 -3
  67. package/dist/components/Stepper/Stepper.js +6 -6
  68. package/dist/components/Stepper/headers.js +22 -22
  69. package/dist/components/Table/HeaderItem.js +1 -1
  70. package/dist/components/Table/SettingsVerticalMenu.d.ts +1 -1
  71. package/dist/components/Table/SettingsVerticalMenu.js +1 -1
  72. package/dist/components/Table/StyledLinkTable.d.ts +1 -1
  73. package/dist/components/Table/StyledLinkTable.js +5 -5
  74. package/dist/components/Table/TableData.d.ts +1 -1
  75. package/dist/components/Table/TableData.js +25 -25
  76. package/dist/components/TimelineSection.d.ts +1 -1
  77. package/dist/components/TimelineSection.js +14 -14
  78. package/dist/components/error/ErrorFeedback.d.ts +1 -1
  79. package/dist/components/error/ErrorFeedback.js +35 -35
  80. package/dist/components/error/NotFound.d.ts +1 -1
  81. package/dist/components/error/NotFound.js +1 -1
  82. package/dist/components/error/UnderMaintenance.d.ts +1 -1
  83. package/dist/components/error/UnderMaintenance.js +1 -1
  84. package/dist/components/form/Form/Form.d.ts +1 -1
  85. package/dist/components/form/Form/Form.js +1 -1
  86. package/dist/components/form/Form/FormGroup.d.ts +2 -2
  87. package/dist/components/form/Form/FormGroup.js +1 -1
  88. package/dist/components/form/SearchInput.d.ts +1 -1
  89. package/dist/components/form/SearchInput.js +1 -1
  90. package/dist/components/form/Select/CustomSelect.d.ts +1 -1
  91. package/dist/components/form/Select/CustomSelect.js +1 -1
  92. package/dist/components/form/Select/DetailedSelect.d.ts +1 -1
  93. package/dist/components/form/Select/DetailedSelect.js +1 -1
  94. package/dist/components/form/Select/Select.d.ts +1 -1
  95. package/dist/components/form/Select/Select.js +1 -1
  96. package/dist/components/form/Select/styled.js +161 -161
  97. package/dist/components/form/Select/utils.js +1 -1
  98. package/dist/components/notification/NotificationComponent.d.ts +1 -1
  99. package/dist/components/notification/NotificationComponent.js +54 -54
  100. package/dist/components/notification/NotificationItem.d.ts +1 -1
  101. package/dist/components/notification/NotificationItem.d.ts.map +1 -1
  102. package/dist/components/notification/NotificationItem.js +11 -5
  103. package/dist/components/notification/NotificationItem.js.map +1 -1
  104. package/dist/components/notification/NotificationList.d.ts +1 -1
  105. package/dist/components/notification/NotificationList.d.ts.map +1 -1
  106. package/dist/components/notification/NotificationList.js +44 -44
  107. package/dist/components/notification/NotificationList.js.map +1 -1
  108. package/dist/components/notification/NotificationPlaceholder.d.ts +1 -1
  109. package/dist/components/notification/NotificationPlaceholder.d.ts.map +1 -1
  110. package/dist/components/notification/NotificationPlaceholder.js +2 -2
  111. package/dist/components/notification/NotificationPlaceholder.js.map +1 -1
  112. package/dist/containers/NotificationsPage.d.ts +1 -1
  113. package/dist/containers/NotificationsPage.d.ts.map +1 -1
  114. package/dist/containers/NotificationsPage.js +24 -11
  115. package/dist/containers/NotificationsPage.js.map +1 -1
  116. package/dist/context/anchor.d.ts +1 -1
  117. package/dist/context/anchor.js +1 -1
  118. package/dist/context/loading.d.ts +1 -1
  119. package/dist/context/loading.js +1 -1
  120. package/dist/context/notification/context.d.ts +1 -1
  121. package/dist/context/notification/context.js +1 -1
  122. package/dist/context/notification/types.d.ts +1 -0
  123. package/dist/context/notification/types.d.ts.map +1 -1
  124. package/dist/hooks/date.js +1 -1
  125. package/dist/hooks/service-now.js +28 -28
  126. package/dist/svg/AI.d.ts +1 -1
  127. package/dist/svg/AI.js +1 -1
  128. package/dist/svg/CS.d.ts +1 -1
  129. package/dist/svg/CS.js +1 -1
  130. package/dist/svg/EDP.d.ts +1 -1
  131. package/dist/svg/EDP.js +1 -1
  132. package/dist/svg/Forbidden.d.ts +1 -1
  133. package/dist/svg/Forbidden.js +1 -1
  134. package/dist/svg/GenericPlaceholder.d.ts +4 -2
  135. package/dist/svg/GenericPlaceholder.d.ts.map +1 -1
  136. package/dist/svg/GenericPlaceholder.js +2 -2
  137. package/dist/svg/GenericPlaceholder.js.map +1 -1
  138. package/dist/svg/HUB.d.ts +1 -1
  139. package/dist/svg/HUB.js +1 -1
  140. package/dist/svg/Logo.d.ts +1 -1
  141. package/dist/svg/Logo.js +1 -1
  142. package/dist/svg/MiniLogo.d.ts +1 -1
  143. package/dist/svg/MiniLogo.js +1 -1
  144. package/dist/svg/NotFound.d.ts +1 -1
  145. package/dist/svg/NotFound.js +1 -1
  146. package/dist/svg/ServerError.d.ts +1 -1
  147. package/dist/svg/ServerError.js +1 -1
  148. package/dist/svg/Unauthenticated.d.ts +1 -1
  149. package/dist/svg/Unauthenticated.js +1 -1
  150. package/package.json +6 -6
  151. package/readme.md +66 -66
  152. package/src/components/AnimatedHeight.tsx +174 -174
  153. package/src/components/AsyncContent.tsx +78 -78
  154. package/src/components/BannerWarning.tsx +91 -91
  155. package/src/components/Breadcrumb/index.tsx +76 -76
  156. package/src/components/Breadcrumb/styled.ts +37 -37
  157. package/src/components/ButtonLoading.tsx +29 -29
  158. package/src/components/ChatBot.tsx +82 -82
  159. package/src/components/ContentValidateFilter.tsx +15 -15
  160. package/src/components/FadingOverflow.tsx +265 -265
  161. package/src/components/FileTreeView/More.tsx +114 -114
  162. package/src/components/FileTreeView/index.tsx +186 -186
  163. package/src/components/InfiniteScroll.tsx +24 -24
  164. package/src/components/InfoMaintenanceBanner.tsx +29 -29
  165. package/src/components/LazyMarkdown/BlockquoteMd.tsx +107 -107
  166. package/src/components/LazyMarkdown/CodeViewer.tsx +161 -161
  167. package/src/components/LazyMarkdown/Markdown.tsx +122 -122
  168. package/src/components/LazyMarkdown/MarkdownButton.tsx +24 -24
  169. package/src/components/LazyMarkdown/Video.tsx +13 -13
  170. package/src/components/LazyMarkdown/index.tsx +21 -21
  171. package/src/components/Placeholder.tsx +123 -118
  172. package/src/components/ScrollView.tsx +57 -57
  173. package/src/components/Select/BadgeItem.tsx +58 -58
  174. package/src/components/Select/ClearInput.tsx +24 -24
  175. package/src/components/Select/CloseItem.tsx +38 -38
  176. package/src/components/Select/CreatableSelect.tsx +155 -155
  177. package/src/components/Select/CustomMenu.tsx +16 -16
  178. package/src/components/Select/LabelItem.tsx +8 -8
  179. package/src/components/Select/MultiValue.tsx +49 -49
  180. package/src/components/Select/SelectInfiniteScroll.tsx +82 -82
  181. package/src/components/Select/SelectSearch.tsx +195 -195
  182. package/src/components/Select/index.tsx +7 -7
  183. package/src/components/Select/types.ts +8 -8
  184. package/src/components/SelectionList.tsx +427 -427
  185. package/src/components/StatusCircle.tsx +67 -67
  186. package/src/components/Stepper/Navigation.tsx +97 -97
  187. package/src/components/Stepper/Step.tsx +30 -30
  188. package/src/components/Stepper/Stepper.tsx +113 -113
  189. package/src/components/Stepper/headers.tsx +64 -64
  190. package/src/components/Stepper/index.ts +3 -3
  191. package/src/components/Table/HeaderItem.tsx +52 -52
  192. package/src/components/Table/SettingsVerticalMenu.tsx +50 -50
  193. package/src/components/Table/StyledLinkTable.tsx +22 -22
  194. package/src/components/Table/TableData.tsx +251 -251
  195. package/src/components/Table/index.tsx +2 -2
  196. package/src/components/TimelineSection.tsx +66 -66
  197. package/src/components/error/ErrorFeedback.tsx +217 -217
  198. package/src/components/error/NotFound.tsx +24 -24
  199. package/src/components/error/UnderMaintenance.tsx +30 -30
  200. package/src/components/error/index.ts +4 -4
  201. package/src/components/form/Form/Form.tsx +101 -101
  202. package/src/components/form/Form/FormGroup.tsx +221 -221
  203. package/src/components/form/Form/index.ts +2 -2
  204. package/src/components/form/SearchInput.tsx +69 -69
  205. package/src/components/form/Select/CustomSelect.tsx +232 -232
  206. package/src/components/form/Select/DetailedSelect.tsx +85 -85
  207. package/src/components/form/Select/Select.tsx +67 -67
  208. package/src/components/form/Select/index.ts +4 -4
  209. package/src/components/form/Select/styled.ts +165 -165
  210. package/src/components/form/Select/types.ts +112 -112
  211. package/src/components/form/Select/utils.tsx +28 -28
  212. package/src/components/notification/NotificationComponent.tsx +340 -340
  213. package/src/components/notification/NotificationItem.tsx +345 -336
  214. package/src/components/notification/NotificationList.tsx +179 -178
  215. package/src/components/notification/NotificationPlaceholder.tsx +44 -43
  216. package/src/components/notification/types.ts +72 -72
  217. package/src/containers/NotificationsPage.tsx +119 -98
  218. package/src/context/anchor.tsx +37 -37
  219. package/src/context/loading.tsx +36 -36
  220. package/src/context/notification/LazyNotificationList.ts +103 -103
  221. package/src/context/notification/NotificationController.ts +104 -104
  222. package/src/context/notification/context.tsx +23 -23
  223. package/src/context/notification/hooks.ts +98 -98
  224. package/src/context/notification/types.ts +66 -65
  225. package/src/hooks/date.ts +31 -31
  226. package/src/hooks/keyboard.tsx +128 -128
  227. package/src/hooks/manual-render.tsx +10 -10
  228. package/src/hooks/service-now.tsx +233 -233
  229. package/src/hooks/text.tsx +30 -30
  230. package/src/hooks/title.tsx +28 -28
  231. package/src/hooks/use-effect-once.tsx +43 -43
  232. package/src/index.ts +19 -19
  233. package/src/notifications.ts +11 -11
  234. package/src/svg/AI.tsx +41 -41
  235. package/src/svg/CS.tsx +48 -48
  236. package/src/svg/EDP.tsx +31 -31
  237. package/src/svg/Forbidden.tsx +22 -22
  238. package/src/svg/GenericPlaceholder.tsx +20 -20
  239. package/src/svg/HUB.tsx +48 -48
  240. package/src/svg/Logo.tsx +16 -16
  241. package/src/svg/MiniLogo.tsx +12 -12
  242. package/src/svg/NotFound.tsx +16 -16
  243. package/src/svg/ServerError.tsx +33 -33
  244. package/src/svg/Unauthenticated.tsx +16 -16
  245. package/src/svg/index.ts +11 -11
  246. package/src/utils/accessibility.ts +135 -135
  247. package/src/utils/cookie.ts +73 -73
  248. package/src/utils/promise.ts +5 -5
  249. package/src/utils/read-file.ts +16 -16
  250. package/tsconfig.json +10 -10
@@ -1,195 +1,195 @@
1
- import { IconBox } from '@citric/core'
2
- import { ChevronDown } from '@citric/icons'
3
- import { theme } from '@stack-spot/portal-theme'
4
- import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
5
- import { ComponentProps, ComponentType, RefCallback } from 'react'
6
- import Select, { components, CSSObjectWithLabel, Props as SelectProps } from 'react-select'
7
- import { ClearInput } from './ClearInput'
8
- import { MultiValue } from './MultiValue'
9
-
10
- export interface SelectSearchProps extends Partial<SelectProps> {
11
- options: any[],
12
- components?: Partial<typeof components>,
13
- disabled?: boolean,
14
- onChange?: (newValue?: any) => void,
15
- ref?: RefCallback<any>,
16
- }
17
-
18
- const EmptyComponent = () => <></>
19
-
20
- const DropdownIndicator: ComponentType<ComponentProps<typeof components.DropdownIndicator>> = (props) => <IconBox
21
- aria-hidden="true"
22
- colorIcon="gray.50"
23
- sx={{
24
- cursor: 'pointer',
25
- width: '10px',
26
- height: '6px',
27
- marginRight: '14px',
28
- transition: 'transform 0.3s ease-in',
29
- transform: `rotate(${props.selectProps.menuIsOpen ? '180' : '0'}deg)`,
30
- }}
31
- >
32
- <ChevronDown />
33
- </IconBox>
34
-
35
- export const SelectSearch = ({
36
- options,
37
- components: customComponents = {},
38
- onChange,
39
- styles: customStyles = {},
40
- disabled,
41
- ref,
42
- ...props
43
- }: SelectSearchProps) => {
44
- const t = useTranslate(dictionary)
45
- return (
46
- <Select
47
- options={options}
48
- onChange={onChange}
49
- isDisabled={disabled}
50
- ref={ref}
51
- noOptionsMessage={() => t.noOptions}
52
- {...props}
53
- styles={{
54
- ...customStyles,
55
- container: (base) => ({
56
- ...base,
57
- width: '100%',
58
- }),
59
- control: (base, state) => ({
60
- ...base,
61
- height: '2.5rem',
62
- display: 'flex',
63
- alignItems: 'center',
64
- padding: '0px',
65
- color: theme.color.light.contrastText,
66
- backgroundColor: theme.color.light[300],
67
- border: `1px solid ${theme.color.light[600]}`,
68
- outlineColor: theme.color.light[700],
69
- '&:hover': {
70
- border: `0.063rem solid ${theme.color.light[600]}`,
71
- },
72
- fontSize: '0.875rem',
73
- lineHeight: '1.714',
74
- fontFamily: 'Roboto, sans-serif',
75
- ...(state.isFocused || state.menuIsOpen
76
- ? {
77
- borderColor: `${theme.color.primary[500]} !important`,
78
- outline: `0.063rem solid ${theme.color.primary[500]} !important`,
79
- }
80
- : {}),
81
- ...(state.isDisabled
82
- ? {
83
- backgroundColor: theme.color.light[500],
84
- borderColor: theme.color.light[600],
85
- cursor: 'not-allowed',
86
- }
87
- : {}),
88
- ...customStyles?.control?.(base, state),
89
- } as CSSObjectWithLabel),
90
- input: (base, state) => ({
91
- ...base,
92
- color: theme.color.light.contrastText,
93
- position: 'fixed',
94
- ...customStyles?.input?.(base, state),
95
- }),
96
- menu: (base, state) => ({
97
- ...base,
98
- marginTop: '0.25rem',
99
- position: 'relative',
100
- backgroundColor: theme.color.light[300],
101
- ...customStyles?.menu?.(base, state),
102
- }),
103
- option: (base, state) => ({
104
- ...base,
105
- display: 'flex',
106
- alignItems: 'center',
107
- backgroundColor: theme.color.light[300],
108
- cursor: 'pointer',
109
- '&:hover': {
110
- backgroundColor: theme.color.light[500],
111
- },
112
- border: '1px solid transparent',
113
- ...(state.isFocused
114
- ? {
115
- borderColor: `${theme.color.light.contrastText} !important`,
116
- }
117
- : {}),
118
- ...customStyles?.option?.(base, state),
119
- }),
120
- menuList: (base, state) => ({
121
- ...base,
122
- padding: 0,
123
- '&::-webkit-scrollbar': {
124
- width: '0.125rem',
125
- height: '.5rem',
126
- backgroundColor: 'transparent',
127
- },
128
- '&::-webkit-scrollbar-track': {
129
- background: `${theme.color.light[300]}`,
130
- borderRadius: '2px',
131
- },
132
- '&::-webkit-scrollbar-thumb': {
133
- background: `${theme.color.primary[500]}`,
134
- borderRadius: '2px',
135
- },
136
- '&::-webkit-scrollbar-thumb:hover': {
137
- background: `${theme.color.light[700]}`,
138
- borderRadius: '2px',
139
- },
140
- '&::-webkit-scrollbar-corner': {
141
- backgroundColor: 'transparent',
142
- },
143
- ...customStyles?.menuList?.(base, state),
144
- }),
145
- multiValue: (base, state) => ({
146
- ...base,
147
- background: 'transparent',
148
- alignItems: 'center',
149
- margin: 0,
150
- ...customStyles?.multiValue?.(base, state),
151
- }),
152
- multiValueLabel: (base, state) => ({
153
- ...base,
154
- margin: 0,
155
- ...customStyles?.multiValueLabel?.(base, state),
156
- }),
157
- multiValueRemove: (base, state) => ({
158
- ...base,
159
- backgroundColor: 'transparent',
160
- margin: 0,
161
- '&:hover': {
162
- backgroundColor: 'transparent',
163
- },
164
- ...customStyles?.multiValueRemove?.(base, state),
165
- }),
166
- noOptionsMessage: (base, state) => ({
167
- ...base,
168
- backgroundColor: theme.color.light[300],
169
- ...customStyles?.noOptionsMessage?.(base, state),
170
- }),
171
- }}
172
- components={{
173
- ...components,
174
- DropdownIndicator,
175
- IndicatorSeparator: EmptyComponent,
176
- ClearIndicator: ClearInput,
177
- MultiValue: MultiValue,
178
- MultiValueRemove: () => <></>,
179
- ...customComponents,
180
- }}
181
- />
182
- )
183
- }
184
-
185
-
186
-
187
-
188
- const dictionary = {
189
- en: {
190
- noOptions: 'No options',
191
- },
192
- pt: {
193
- noOptions: 'Sem opções',
194
- },
195
- } satisfies Dictionary
1
+ import { IconBox } from '@citric/core'
2
+ import { ChevronDown } from '@citric/icons'
3
+ import { theme } from '@stack-spot/portal-theme'
4
+ import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
5
+ import { ComponentProps, ComponentType, RefCallback } from 'react'
6
+ import Select, { components, CSSObjectWithLabel, Props as SelectProps } from 'react-select'
7
+ import { ClearInput } from './ClearInput'
8
+ import { MultiValue } from './MultiValue'
9
+
10
+ export interface SelectSearchProps extends Partial<SelectProps> {
11
+ options: any[],
12
+ components?: Partial<typeof components>,
13
+ disabled?: boolean,
14
+ onChange?: (newValue?: any) => void,
15
+ ref?: RefCallback<any>,
16
+ }
17
+
18
+ const EmptyComponent = () => <></>
19
+
20
+ const DropdownIndicator: ComponentType<ComponentProps<typeof components.DropdownIndicator>> = (props) => <IconBox
21
+ aria-hidden="true"
22
+ colorIcon="gray.50"
23
+ sx={{
24
+ cursor: 'pointer',
25
+ width: '10px',
26
+ height: '6px',
27
+ marginRight: '14px',
28
+ transition: 'transform 0.3s ease-in',
29
+ transform: `rotate(${props.selectProps.menuIsOpen ? '180' : '0'}deg)`,
30
+ }}
31
+ >
32
+ <ChevronDown />
33
+ </IconBox>
34
+
35
+ export const SelectSearch = ({
36
+ options,
37
+ components: customComponents = {},
38
+ onChange,
39
+ styles: customStyles = {},
40
+ disabled,
41
+ ref,
42
+ ...props
43
+ }: SelectSearchProps) => {
44
+ const t = useTranslate(dictionary)
45
+ return (
46
+ <Select
47
+ options={options}
48
+ onChange={onChange}
49
+ isDisabled={disabled}
50
+ ref={ref}
51
+ noOptionsMessage={() => t.noOptions}
52
+ {...props}
53
+ styles={{
54
+ ...customStyles,
55
+ container: (base) => ({
56
+ ...base,
57
+ width: '100%',
58
+ }),
59
+ control: (base, state) => ({
60
+ ...base,
61
+ height: '2.5rem',
62
+ display: 'flex',
63
+ alignItems: 'center',
64
+ padding: '0px',
65
+ color: theme.color.light.contrastText,
66
+ backgroundColor: theme.color.light[300],
67
+ border: `1px solid ${theme.color.light[600]}`,
68
+ outlineColor: theme.color.light[700],
69
+ '&:hover': {
70
+ border: `0.063rem solid ${theme.color.light[600]}`,
71
+ },
72
+ fontSize: '0.875rem',
73
+ lineHeight: '1.714',
74
+ fontFamily: 'Roboto, sans-serif',
75
+ ...(state.isFocused || state.menuIsOpen
76
+ ? {
77
+ borderColor: `${theme.color.primary[500]} !important`,
78
+ outline: `0.063rem solid ${theme.color.primary[500]} !important`,
79
+ }
80
+ : {}),
81
+ ...(state.isDisabled
82
+ ? {
83
+ backgroundColor: theme.color.light[500],
84
+ borderColor: theme.color.light[600],
85
+ cursor: 'not-allowed',
86
+ }
87
+ : {}),
88
+ ...customStyles?.control?.(base, state),
89
+ } as CSSObjectWithLabel),
90
+ input: (base, state) => ({
91
+ ...base,
92
+ color: theme.color.light.contrastText,
93
+ position: 'fixed',
94
+ ...customStyles?.input?.(base, state),
95
+ }),
96
+ menu: (base, state) => ({
97
+ ...base,
98
+ marginTop: '0.25rem',
99
+ position: 'relative',
100
+ backgroundColor: theme.color.light[300],
101
+ ...customStyles?.menu?.(base, state),
102
+ }),
103
+ option: (base, state) => ({
104
+ ...base,
105
+ display: 'flex',
106
+ alignItems: 'center',
107
+ backgroundColor: theme.color.light[300],
108
+ cursor: 'pointer',
109
+ '&:hover': {
110
+ backgroundColor: theme.color.light[500],
111
+ },
112
+ border: '1px solid transparent',
113
+ ...(state.isFocused
114
+ ? {
115
+ borderColor: `${theme.color.light.contrastText} !important`,
116
+ }
117
+ : {}),
118
+ ...customStyles?.option?.(base, state),
119
+ }),
120
+ menuList: (base, state) => ({
121
+ ...base,
122
+ padding: 0,
123
+ '&::-webkit-scrollbar': {
124
+ width: '0.125rem',
125
+ height: '.5rem',
126
+ backgroundColor: 'transparent',
127
+ },
128
+ '&::-webkit-scrollbar-track': {
129
+ background: `${theme.color.light[300]}`,
130
+ borderRadius: '2px',
131
+ },
132
+ '&::-webkit-scrollbar-thumb': {
133
+ background: `${theme.color.primary[500]}`,
134
+ borderRadius: '2px',
135
+ },
136
+ '&::-webkit-scrollbar-thumb:hover': {
137
+ background: `${theme.color.light[700]}`,
138
+ borderRadius: '2px',
139
+ },
140
+ '&::-webkit-scrollbar-corner': {
141
+ backgroundColor: 'transparent',
142
+ },
143
+ ...customStyles?.menuList?.(base, state),
144
+ }),
145
+ multiValue: (base, state) => ({
146
+ ...base,
147
+ background: 'transparent',
148
+ alignItems: 'center',
149
+ margin: 0,
150
+ ...customStyles?.multiValue?.(base, state),
151
+ }),
152
+ multiValueLabel: (base, state) => ({
153
+ ...base,
154
+ margin: 0,
155
+ ...customStyles?.multiValueLabel?.(base, state),
156
+ }),
157
+ multiValueRemove: (base, state) => ({
158
+ ...base,
159
+ backgroundColor: 'transparent',
160
+ margin: 0,
161
+ '&:hover': {
162
+ backgroundColor: 'transparent',
163
+ },
164
+ ...customStyles?.multiValueRemove?.(base, state),
165
+ }),
166
+ noOptionsMessage: (base, state) => ({
167
+ ...base,
168
+ backgroundColor: theme.color.light[300],
169
+ ...customStyles?.noOptionsMessage?.(base, state),
170
+ }),
171
+ }}
172
+ components={{
173
+ ...components,
174
+ DropdownIndicator,
175
+ IndicatorSeparator: EmptyComponent,
176
+ ClearIndicator: ClearInput,
177
+ MultiValue: MultiValue,
178
+ MultiValueRemove: () => <></>,
179
+ ...customComponents,
180
+ }}
181
+ />
182
+ )
183
+ }
184
+
185
+
186
+
187
+
188
+ const dictionary = {
189
+ en: {
190
+ noOptions: 'No options',
191
+ },
192
+ pt: {
193
+ noOptions: 'Sem opções',
194
+ },
195
+ } satisfies Dictionary
@@ -1,7 +1,7 @@
1
- import { CreatableSelect } from './CreatableSelect'
2
- import { CustomMenu } from './CustomMenu'
3
- import { SelectInfiniteScroll, SelectInfiniteScrollProps } from './SelectInfiniteScroll'
4
- import { SelectSearch, SelectSearchProps } from './SelectSearch'
5
-
6
- export { CreatableSelect, CustomMenu, SelectInfiniteScroll, SelectInfiniteScrollProps, SelectSearch, SelectSearchProps }
7
-
1
+ import { CreatableSelect } from './CreatableSelect'
2
+ import { CustomMenu } from './CustomMenu'
3
+ import { SelectInfiniteScroll, SelectInfiniteScrollProps } from './SelectInfiniteScroll'
4
+ import { SelectSearch, SelectSearchProps } from './SelectSearch'
5
+
6
+ export { CreatableSelect, CustomMenu, SelectInfiniteScroll, SelectInfiniteScrollProps, SelectSearch, SelectSearchProps }
7
+
@@ -1,8 +1,8 @@
1
- import { MultiValue, SingleValue } from 'react-select'
2
-
3
- export type CreatableValueType = SingleValue<CreatableSelectOptionType> | MultiValue<CreatableSelectOptionType>
4
-
5
- export interface CreatableSelectOptionType {
6
- label: string,
7
- value: string,
8
- }
1
+ import { MultiValue, SingleValue } from 'react-select'
2
+
3
+ export type CreatableValueType = SingleValue<CreatableSelectOptionType> | MultiValue<CreatableSelectOptionType>
4
+
5
+ export interface CreatableSelectOptionType {
6
+ label: string,
7
+ value: string,
8
+ }