mautourco-components 0.2.5 → 0.2.8

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 (297) hide show
  1. package/README.md +190 -190
  2. package/dist/components/atoms/Avatar/Avatar.d.ts +14 -14
  3. package/dist/components/atoms/Avatar/Avatar.js +31 -31
  4. package/dist/components/atoms/Button/Button.css +320 -320
  5. package/dist/components/atoms/Button/Button.d.ts +27 -27
  6. package/dist/components/atoms/Button/Button.js +35 -35
  7. package/dist/components/atoms/Checkbox/Checkbox.d.ts +13 -13
  8. package/dist/components/atoms/Checkbox/Checkbox.js +39 -39
  9. package/dist/components/atoms/Icon/Icon.d.ts +10 -10
  10. package/dist/components/atoms/Icon/Icon.js +123 -123
  11. package/dist/components/atoms/Icon/icons/ArrivalIcon.d.ts +8 -8
  12. package/dist/components/atoms/Icon/icons/ArrivalIcon.js +31 -31
  13. package/dist/components/atoms/Icon/icons/BuildingIcon.d.ts +8 -8
  14. package/dist/components/atoms/Icon/icons/BuildingIcon.js +36 -36
  15. package/dist/components/atoms/Icon/icons/CalendarIcon.d.ts +12 -12
  16. package/dist/components/atoms/Icon/icons/CalendarIcon.js +41 -41
  17. package/dist/components/atoms/Icon/icons/CalendarOutlineIcon.d.ts +8 -8
  18. package/dist/components/atoms/Icon/icons/CalendarOutlineIcon.js +36 -36
  19. package/dist/components/atoms/Icon/icons/CarIcon.d.ts +8 -8
  20. package/dist/components/atoms/Icon/icons/CarIcon.js +30 -30
  21. package/dist/components/atoms/Icon/icons/Check.d.ts +8 -8
  22. package/dist/components/atoms/Icon/icons/Check.js +30 -30
  23. package/dist/components/atoms/Icon/icons/CheckCircleIcon.d.ts +8 -8
  24. package/dist/components/atoms/Icon/icons/CheckCircleIcon.js +30 -30
  25. package/dist/components/atoms/Icon/icons/Chevron.d.ts +9 -9
  26. package/dist/components/atoms/Icon/icons/Chevron.js +54 -54
  27. package/dist/components/atoms/Icon/icons/ChevronDownIcon.d.ts +8 -8
  28. package/dist/components/atoms/Icon/icons/ChevronDownIcon.js +30 -30
  29. package/dist/components/atoms/Icon/icons/Close.d.ts +8 -8
  30. package/dist/components/atoms/Icon/icons/Close.js +30 -30
  31. package/dist/components/atoms/Icon/icons/DeleteIcon.d.ts +8 -8
  32. package/dist/components/atoms/Icon/icons/DeleteIcon.js +30 -30
  33. package/dist/components/atoms/Icon/icons/DepartureIcon.d.ts +8 -8
  34. package/dist/components/atoms/Icon/icons/DepartureIcon.js +30 -30
  35. package/dist/components/atoms/Icon/icons/EyeIcon.d.ts +8 -8
  36. package/dist/components/atoms/Icon/icons/EyeIcon.js +30 -30
  37. package/dist/components/atoms/Icon/icons/FacebookIcon.d.ts +8 -8
  38. package/dist/components/atoms/Icon/icons/FacebookIcon.js +36 -36
  39. package/dist/components/atoms/Icon/icons/HomeIcon.d.ts +8 -8
  40. package/dist/components/atoms/Icon/icons/HomeIcon.js +25 -25
  41. package/dist/components/atoms/Icon/icons/InfoIcon.d.ts +8 -8
  42. package/dist/components/atoms/Icon/icons/InfoIcon.js +30 -30
  43. package/dist/components/atoms/Icon/icons/LinkedInIcon.d.ts +8 -8
  44. package/dist/components/atoms/Icon/icons/LinkedInIcon.js +36 -36
  45. package/dist/components/atoms/Icon/icons/MapPinIcon.d.ts +8 -8
  46. package/dist/components/atoms/Icon/icons/MapPinIcon.js +30 -30
  47. package/dist/components/atoms/Icon/icons/MautoucoLogo.d.ts +8 -8
  48. package/dist/components/atoms/Icon/icons/MautoucoLogo.js +37 -37
  49. package/dist/components/atoms/Icon/icons/MenuIcon.d.ts +8 -8
  50. package/dist/components/atoms/Icon/icons/MenuIcon.js +37 -37
  51. package/dist/components/atoms/Icon/icons/MinusIcon.d.ts +8 -8
  52. package/dist/components/atoms/Icon/icons/MinusIcon.js +25 -25
  53. package/dist/components/atoms/Icon/icons/MoreIcon.d.ts +8 -8
  54. package/dist/components/atoms/Icon/icons/MoreIcon.js +30 -30
  55. package/dist/components/atoms/Icon/icons/PlaneIcon.d.ts +8 -8
  56. package/dist/components/atoms/Icon/icons/PlaneIcon.js +36 -36
  57. package/dist/components/atoms/Icon/icons/PlusIcon.d.ts +8 -8
  58. package/dist/components/atoms/Icon/icons/PlusIcon.js +25 -25
  59. package/dist/components/atoms/Icon/icons/Search.d.ts +8 -8
  60. package/dist/components/atoms/Icon/icons/Search.js +30 -30
  61. package/dist/components/atoms/Icon/icons/Settings.d.ts +8 -8
  62. package/dist/components/atoms/Icon/icons/Settings.js +30 -30
  63. package/dist/components/atoms/Icon/icons/ShipIcon.d.ts +8 -8
  64. package/dist/components/atoms/Icon/icons/ShipIcon.js +36 -36
  65. package/dist/components/atoms/Icon/icons/StrollerIcon.d.ts +8 -8
  66. package/dist/components/atoms/Icon/icons/StrollerIcon.js +30 -30
  67. package/dist/components/atoms/Icon/icons/TwitterIcon.d.ts +8 -8
  68. package/dist/components/atoms/Icon/icons/TwitterIcon.js +36 -36
  69. package/dist/components/atoms/Icon/icons/User.d.ts +8 -8
  70. package/dist/components/atoms/Icon/icons/User.js +30 -30
  71. package/dist/components/atoms/Icon/icons/UserIcon.d.ts +12 -12
  72. package/dist/components/atoms/Icon/icons/UserIcon.js +41 -41
  73. package/dist/components/atoms/Icon/icons/Youtube.d.ts +8 -8
  74. package/dist/components/atoms/Icon/icons/Youtube.js +36 -36
  75. package/dist/components/atoms/Illustration/Illustration.d.ts +14 -14
  76. package/dist/components/atoms/Illustration/Illustration.js +33 -33
  77. package/dist/components/atoms/Illustration/illustrations.d.ts +51 -51
  78. package/dist/components/atoms/Illustration/illustrations.js +97 -97
  79. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.d.ts +12 -12
  80. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.js +53 -53
  81. package/dist/components/atoms/Inputs/Input/Input.d.ts +15 -15
  82. package/dist/components/atoms/Inputs/Input/Input.js +27 -27
  83. package/dist/components/atoms/Inputs/Textarea/Textarea.d.ts +14 -14
  84. package/dist/components/atoms/Inputs/Textarea/Textarea.js +15 -15
  85. package/dist/components/atoms/Link/Link.d.ts +44 -44
  86. package/dist/components/atoms/Link/Link.js +76 -76
  87. package/dist/components/atoms/RatingStar/RatingStar.d.ts +40 -40
  88. package/dist/components/atoms/RatingStar/RatingStar.js +54 -54
  89. package/dist/components/atoms/SegmentedButton/SegmentedButton.d.ts +27 -27
  90. package/dist/components/atoms/SegmentedButton/SegmentedButton.js +49 -49
  91. package/dist/components/atoms/SelectedValue/SelectedValue.d.ts +11 -11
  92. package/dist/components/atoms/SelectedValue/SelectedValue.js +29 -29
  93. package/dist/components/atoms/Slider/Slider.d.ts +52 -52
  94. package/dist/components/atoms/Slider/Slider.js +30 -30
  95. package/dist/components/atoms/Spinner/Spinner.d.ts +9 -9
  96. package/dist/components/atoms/Spinner/Spinner.js +38 -38
  97. package/dist/components/atoms/Spinner/variants/ButtonSpinner.d.ts +8 -8
  98. package/dist/components/atoms/Spinner/variants/ButtonSpinner.js +19 -19
  99. package/dist/components/atoms/Spinner/variants/LoadingSpinner.d.ts +7 -7
  100. package/dist/components/atoms/Spinner/variants/LoadingSpinner.js +7 -7
  101. package/dist/components/atoms/Tab/Tab.css +266 -266
  102. package/dist/components/atoms/Tab/Tab.d.ts +22 -22
  103. package/dist/components/atoms/Tab/Tab.js +54 -54
  104. package/dist/components/atoms/Typography/Typography.d.ts +26 -24
  105. package/dist/components/atoms/Typography/Typography.js +109 -100
  106. package/dist/components/molecules/Calendar/CalendarInput.d.ts +34 -34
  107. package/dist/components/molecules/Calendar/CalendarInput.js +49 -49
  108. package/dist/components/molecules/Calendar/DateTime.d.ts +25 -25
  109. package/dist/components/molecules/Calendar/DateTime.js +106 -106
  110. package/dist/components/molecules/Calendar/TimePicker.d.ts +16 -16
  111. package/dist/components/molecules/Calendar/TimePicker.js +91 -91
  112. package/dist/components/molecules/LocationDropdown/LocationDropdown.d.ts +34 -34
  113. package/dist/components/molecules/LocationDropdown/LocationDropdown.js +120 -120
  114. package/dist/components/molecules/LocationDropdown/index.d.ts +2 -2
  115. package/dist/components/molecules/LocationDropdown/index.js +1 -1
  116. package/dist/components/molecules/MultiSelectDropdown/MultiSelectDropdown.d.ts +29 -29
  117. package/dist/components/molecules/MultiSelectDropdown/MultiSelectDropdown.js +106 -106
  118. package/dist/components/molecules/RatingTab/RatingTab.d.ts +39 -39
  119. package/dist/components/molecules/RatingTab/RatingTab.js +41 -41
  120. package/dist/components/molecules/TabGroup/TabGroup.d.ts +17 -17
  121. package/dist/components/molecules/TabGroup/TabGroup.js +30 -30
  122. package/dist/components/molecules/UserCard/UserCard.d.ts +20 -20
  123. package/dist/components/molecules/UserCard/UserCard.js +57 -57
  124. package/dist/components/organisms/CardContainer/CardContainer.d.ts +37 -37
  125. package/dist/components/organisms/CardContainer/CardContainer.js +27 -27
  126. package/dist/components/organisms/DateTimePicker/DateTimePicker.d.ts +15 -15
  127. package/dist/components/organisms/DateTimePicker/DateTimePicker.js +66 -66
  128. package/dist/components/organisms/Dialog/Dialog.d.ts +103 -103
  129. package/dist/components/organisms/Dialog/Dialog.js +162 -162
  130. package/dist/components/organisms/Footer/Footer.d.ts +38 -38
  131. package/dist/components/organisms/Footer/Footer.js +74 -74
  132. package/dist/components/organisms/PaxSelector/PaxSelector.d.ts +63 -63
  133. package/dist/components/organisms/PaxSelector/PaxSelector.js +402 -402
  134. package/dist/components/organisms/RoundTrip/RoundTrip.d.ts +54 -54
  135. package/dist/components/organisms/RoundTrip/RoundTrip.js +179 -179
  136. package/dist/components/organisms/RoundTrip/index.d.ts +2 -2
  137. package/dist/components/organisms/RoundTrip/index.js +1 -1
  138. package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.d.ts +35 -35
  139. package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.js +192 -192
  140. package/dist/components/organisms/SearchBarTransfer/index.d.ts +2 -2
  141. package/dist/components/organisms/SearchBarTransfer/index.js +1 -1
  142. package/dist/components/organisms/TopNavigation/DesktopNav.d.ts +33 -33
  143. package/dist/components/organisms/TopNavigation/DesktopNav.js +32 -32
  144. package/dist/components/organisms/TopNavigation/MobileNav.d.ts +32 -32
  145. package/dist/components/organisms/TopNavigation/MobileNav.js +45 -45
  146. package/dist/components/organisms/TopNavigation/TopNavigation.d.ts +33 -33
  147. package/dist/components/organisms/TopNavigation/TopNavigation.js +20 -20
  148. package/dist/components/organisms/TransferLine/TransferLine.d.ts +53 -53
  149. package/dist/components/organisms/TransferLine/TransferLine.js +179 -179
  150. package/dist/components/ui/button.d.ts +10 -10
  151. package/dist/components/ui/button.js +56 -56
  152. package/dist/components/ui/calendar.d.ts +8 -8
  153. package/dist/components/ui/calendar.js +87 -87
  154. package/dist/components/ui/popover.d.ts +7 -7
  155. package/dist/components/ui/popover.js +42 -42
  156. package/dist/hooks/useMobile.d.ts +5 -5
  157. package/dist/hooks/useMobile.js +26 -26
  158. package/dist/index.d.ts +49 -49
  159. package/dist/index.js +46 -46
  160. package/dist/lib/utils.d.ts +7 -7
  161. package/dist/lib/utils.js +13 -13
  162. package/dist/styles/components/avatar.css +122 -122
  163. package/dist/styles/components/calendar.css +140 -140
  164. package/dist/styles/components/checkbox.css +206 -206
  165. package/dist/styles/components/dropdown.css +269 -269
  166. package/dist/styles/components/forms.css +209 -209
  167. package/dist/styles/components/illustration.css +123 -123
  168. package/dist/styles/components/molecule/calendarInput.css +133 -133
  169. package/dist/styles/components/molecule/dateTime.css +126 -126
  170. package/dist/styles/components/molecule/location-dropdown.css +132 -132
  171. package/dist/styles/components/molecule/timePicker.css +122 -122
  172. package/dist/styles/components/multiselect-dropdown.css +286 -286
  173. package/dist/styles/components/organism/card-container.css +148 -148
  174. package/dist/styles/components/organism/dialog.css +168 -168
  175. package/dist/styles/components/organism/footer.css +119 -119
  176. package/dist/styles/components/organism/pax-selector.css +605 -617
  177. package/dist/styles/components/organism/round-trip.css +139 -139
  178. package/dist/styles/components/organism/search-bar-transfer.css +158 -167
  179. package/dist/styles/components/organism/topnavigation.css +142 -142
  180. package/dist/styles/components/organism/transfer-line.css +138 -138
  181. package/dist/styles/components/rating-star.css +145 -145
  182. package/dist/styles/components/rating-tab.css +178 -180
  183. package/dist/styles/components/scrollbar.css +155 -155
  184. package/dist/styles/components/segmented-button.css +214 -214
  185. package/dist/styles/components/selected-value.css +175 -175
  186. package/dist/styles/components/slider.css +182 -182
  187. package/dist/styles/components/typography.css +245 -245
  188. package/dist/styles/tokens/tokens.css +119 -119
  189. package/dist/styles/tokens/tokens.d.ts +3108 -3108
  190. package/dist/styles/tokens/tokens.js +2652 -2652
  191. package/package.json +103 -103
  192. package/src/components/atoms/Avatar/Avatar.tsx +60 -60
  193. package/src/components/atoms/Button/Button.css +200 -200
  194. package/src/components/atoms/Button/Button.tsx +82 -82
  195. package/src/components/atoms/Checkbox/Checkbox.tsx +83 -83
  196. package/src/components/atoms/Icon/Icon.tsx +163 -163
  197. package/src/components/atoms/Icon/icons/ArrivalIcon.tsx +52 -52
  198. package/src/components/atoms/Icon/icons/BuildingIcon.tsx +50 -50
  199. package/src/components/atoms/Icon/icons/CalendarIcon.tsx +63 -63
  200. package/src/components/atoms/Icon/icons/CalendarOutlineIcon.tsx +50 -50
  201. package/src/components/atoms/Icon/icons/CarIcon.tsx +44 -44
  202. package/src/components/atoms/Icon/icons/Check.tsx +36 -36
  203. package/src/components/atoms/Icon/icons/CheckCircleIcon.tsx +48 -48
  204. package/src/components/atoms/Icon/icons/Chevron.tsx +73 -73
  205. package/src/components/atoms/Icon/icons/ChevronDownIcon.tsx +46 -46
  206. package/src/components/atoms/Icon/icons/Close.tsx +39 -39
  207. package/src/components/atoms/Icon/icons/DeleteIcon.tsx +44 -44
  208. package/src/components/atoms/Icon/icons/DepartureIcon.tsx +50 -50
  209. package/src/components/atoms/Icon/icons/EyeIcon.tsx +44 -44
  210. package/src/components/atoms/Icon/icons/FacebookIcon.tsx +50 -50
  211. package/src/components/atoms/Icon/icons/HomeIcon.tsx +52 -52
  212. package/src/components/atoms/Icon/icons/InfoIcon.tsx +44 -44
  213. package/src/components/atoms/Icon/icons/LinkedInIcon.tsx +50 -50
  214. package/src/components/atoms/Icon/icons/MapPinIcon.tsx +44 -44
  215. package/src/components/atoms/Icon/icons/MautoucoLogo.tsx +93 -93
  216. package/src/components/atoms/Icon/icons/MenuIcon.tsx +49 -49
  217. package/src/components/atoms/Icon/icons/MinusIcon.tsx +45 -45
  218. package/src/components/atoms/Icon/icons/MoreIcon.tsx +44 -44
  219. package/src/components/atoms/Icon/icons/PlaneIcon.tsx +50 -50
  220. package/src/components/atoms/Icon/icons/PlusIcon.tsx +45 -45
  221. package/src/components/atoms/Icon/icons/Search.tsx +37 -37
  222. package/src/components/atoms/Icon/icons/Settings.tsx +38 -38
  223. package/src/components/atoms/Icon/icons/ShipIcon.tsx +50 -50
  224. package/src/components/atoms/Icon/icons/StrollerIcon.tsx +44 -44
  225. package/src/components/atoms/Icon/icons/TwitterIcon.tsx +50 -50
  226. package/src/components/atoms/Icon/icons/User.tsx +37 -37
  227. package/src/components/atoms/Icon/icons/UserIcon.tsx +63 -63
  228. package/src/components/atoms/Icon/icons/Youtube.tsx +50 -50
  229. package/src/components/atoms/Illustration/Illustration.tsx +28 -28
  230. package/src/components/atoms/Illustration/illustrations.ts +116 -116
  231. package/src/components/atoms/Inputs/DropdownInput/DropdownInput.tsx +96 -96
  232. package/src/components/atoms/Inputs/Textarea/Textarea.tsx +51 -51
  233. package/src/components/atoms/Link/Link.tsx +168 -168
  234. package/src/components/atoms/RatingStar/RatingStar.tsx +114 -114
  235. package/src/components/atoms/SegmentedButton/SegmentedButton.tsx +94 -94
  236. package/src/components/atoms/SelectedValue/SelectedValue.tsx +59 -59
  237. package/src/components/atoms/Slider/Slider.tsx +95 -95
  238. package/src/components/atoms/Spinner/Spinner.tsx +56 -56
  239. package/src/components/atoms/Spinner/variants/ButtonSpinner.tsx +37 -37
  240. package/src/components/atoms/Spinner/variants/LoadingSpinner.tsx +22 -22
  241. package/src/components/atoms/Tab/Tab.css +147 -147
  242. package/src/components/atoms/Tab/Tab.tsx +96 -96
  243. package/src/components/atoms/Typography/Typography.tsx +180 -153
  244. package/src/components/molecules/Calendar/CalendarInput.tsx +135 -135
  245. package/src/components/molecules/Calendar/DateTime.tsx +172 -172
  246. package/src/components/molecules/Calendar/TimePicker.tsx +174 -174
  247. package/src/components/molecules/LocationDropdown/LocationDropdown.tsx +234 -234
  248. package/src/components/molecules/LocationDropdown/index.ts +2 -2
  249. package/src/components/molecules/RatingTab/RatingTab.tsx +96 -96
  250. package/src/components/molecules/TabGroup/TabGroup.tsx +60 -60
  251. package/src/components/molecules/UserCard/UserCard.stories.tsx +36 -36
  252. package/src/components/molecules/UserCard/UserCard.tsx +173 -173
  253. package/src/components/organisms/CardContainer/CardContainer.tsx +66 -66
  254. package/src/components/organisms/DateTimePicker/DateTimePicker.tsx +110 -110
  255. package/src/components/organisms/Dialog/Dialog.tsx +352 -352
  256. package/src/components/organisms/Footer/Footer.tsx +290 -290
  257. package/src/components/organisms/PaxSelector/PaxSelector.tsx +979 -979
  258. package/src/components/organisms/RoundTrip/RoundTrip.tsx +335 -335
  259. package/src/components/organisms/RoundTrip/index.ts +2 -2
  260. package/src/components/organisms/SearchBarTransfer/SearchBarTransfer.tsx +388 -388
  261. package/src/components/organisms/SearchBarTransfer/index.ts +2 -2
  262. package/src/components/organisms/TopNavigation/DesktopNav.tsx +133 -133
  263. package/src/components/organisms/TopNavigation/MobileNav.tsx +212 -212
  264. package/src/components/organisms/TopNavigation/TopNavigation.tsx +45 -45
  265. package/src/components/organisms/TransferLine/TransferLine.tsx +369 -369
  266. package/src/components/ui/button.tsx +60 -60
  267. package/src/components/ui/calendar.tsx +246 -246
  268. package/src/components/ui/popover.tsx +46 -46
  269. package/src/styles/components/avatar.css +58 -58
  270. package/src/styles/components/calendar.css +85 -85
  271. package/src/styles/components/checkbox.css +130 -130
  272. package/src/styles/components/dropdown.css +214 -214
  273. package/src/styles/components/forms.css +147 -147
  274. package/src/styles/components/illustration.css +7 -7
  275. package/src/styles/components/molecule/calendarInput.css +156 -156
  276. package/src/styles/components/molecule/dateTime.css +14 -14
  277. package/src/styles/components/molecule/location-dropdown.css +204 -204
  278. package/src/styles/components/molecule/timePicker.css +78 -78
  279. package/src/styles/components/multiselect-dropdown.css +230 -230
  280. package/src/styles/components/organism/card-container.css +49 -49
  281. package/src/styles/components/organism/dialog.css +241 -241
  282. package/src/styles/components/organism/footer.css +113 -113
  283. package/src/styles/components/organism/pax-selector.css +690 -702
  284. package/src/styles/components/organism/round-trip.css +55 -55
  285. package/src/styles/components/organism/search-bar-transfer.css +122 -127
  286. package/src/styles/components/organism/topnavigation.css +161 -161
  287. package/src/styles/components/organism/transfer-line.css +86 -86
  288. package/src/styles/components/rating-star.css +39 -39
  289. package/src/styles/components/rating-tab.css +81 -83
  290. package/src/styles/components/scrollbar.css +63 -63
  291. package/src/styles/components/segmented-button.css +134 -134
  292. package/src/styles/components/selected-value.css +80 -80
  293. package/src/styles/components/slider.css +86 -86
  294. package/src/styles/components/typography.css +251 -251
  295. package/src/styles/fonts.css +50 -0
  296. package/src/styles/tokens/tokens.css +119 -119
  297. package/src/styles/tokens/tokens.js +12 -6
@@ -1,37 +1,37 @@
1
- import React from 'react';
2
- import Spinner from '../Spinner';
3
-
4
- interface ButtonSpinnerProps {
5
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
- className?: string;
7
- variant?: 'primary' | 'secondary' | 'white';
8
- }
9
-
10
- const ButtonSpinner: React.FC<ButtonSpinnerProps> = ({
11
- size = 'sm',
12
- className = '',
13
- variant = 'white'
14
- }) => {
15
- const getVariantClass = () => {
16
- switch (variant) {
17
- case 'primary':
18
- return 'text-white';
19
- case 'secondary':
20
- return 'text-gray-600';
21
- case 'white':
22
- return 'text-white';
23
- default:
24
- return 'text-white';
25
- }
26
- };
27
-
28
- return (
29
- <Spinner
30
- size={size}
31
- speed="fast"
32
- className={`${getVariantClass()} ${className}`}
33
- />
34
- );
35
- };
36
-
37
- export default ButtonSpinner;
1
+ import React from 'react';
2
+ import Spinner from '../Spinner';
3
+
4
+ interface ButtonSpinnerProps {
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
+ className?: string;
7
+ variant?: 'primary' | 'secondary' | 'white';
8
+ }
9
+
10
+ const ButtonSpinner: React.FC<ButtonSpinnerProps> = ({
11
+ size = 'sm',
12
+ className = '',
13
+ variant = 'white'
14
+ }) => {
15
+ const getVariantClass = () => {
16
+ switch (variant) {
17
+ case 'primary':
18
+ return 'text-white';
19
+ case 'secondary':
20
+ return 'text-gray-600';
21
+ case 'white':
22
+ return 'text-white';
23
+ default:
24
+ return 'text-white';
25
+ }
26
+ };
27
+
28
+ return (
29
+ <Spinner
30
+ size={size}
31
+ speed="fast"
32
+ className={`${getVariantClass()} ${className}`}
33
+ />
34
+ );
35
+ };
36
+
37
+ export default ButtonSpinner;
@@ -1,22 +1,22 @@
1
- import React from 'react';
2
- import Spinner from '../Spinner';
3
-
4
- interface LoadingSpinnerProps {
5
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
- className?: string;
7
- }
8
-
9
- const LoadingSpinner: React.FC<LoadingSpinnerProps> = ({
10
- size = 'md',
11
- className = ''
12
- }) => {
13
- return (
14
- <Spinner
15
- size={size}
16
- speed="normal"
17
- className={`text-blue-500 ${className}`}
18
- />
19
- );
20
- };
21
-
22
- export default LoadingSpinner;
1
+ import React from 'react';
2
+ import Spinner from '../Spinner';
3
+
4
+ interface LoadingSpinnerProps {
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
+ className?: string;
7
+ }
8
+
9
+ const LoadingSpinner: React.FC<LoadingSpinnerProps> = ({
10
+ size = 'md',
11
+ className = ''
12
+ }) => {
13
+ return (
14
+ <Spinner
15
+ size={size}
16
+ speed="normal"
17
+ className={`text-blue-500 ${className}`}
18
+ />
19
+ );
20
+ };
21
+
22
+ export default LoadingSpinner;
@@ -1,147 +1,147 @@
1
- .tab {
2
- --tab-width: var(--tab-inline-lg-width, 124rem);
3
- --tab-height: var(--tab-inline-lg-height, 78rem);
4
- position: relative;
5
- display: inline-flex;
6
- align-items: center;
7
- justify-content: center;
8
- box-sizing: border-box;
9
- width: calc(var(--tab-width) / 16);
10
- height: calc(var(--tab-height) / 16);
11
- gap: calc(var(--tab-spacing-container-gap, 0) / 16);
12
- padding-top: calc(var(--tab-spacing-container-padding-y, 8rem) / 16);
13
- padding-bottom: calc(var(--tab-spacing-container-padding-y, 8rem) / 16);
14
- padding-left: calc(var(--tab-spacing-container-padding-x, 8rem) / 16);
15
- padding-right: calc(var(--tab-spacing-container-padding-x, 8rem) / 16);
16
- border: none;
17
- border-radius: calc(var(--tab-border-radius-default, 0) / 16);
18
- border-bottom-style: solid;
19
- border-bottom-width: calc(var(--tab-border-width-default, 4rem) / 16);
20
- border-bottom-color: var(--tab-color-normal-default-border, #e5e5e5);
21
- background-color: var(--tab-color-normal-default-background, #ffffff);
22
- color: var(--color-text-state-default, #737373);
23
- opacity: calc(var(--opacity-opacity-100, 100) / 100);
24
- cursor: pointer;
25
- transition:
26
- background-color 0.2s ease-in-out,
27
- border-color 0.2s ease-in-out,
28
- color 0.2s ease-in-out,
29
- box-shadow 0.2s ease-in-out,
30
- transform 0.15s ease-in-out;
31
- }
32
-
33
- .tab:focus-visible {
34
- outline: none;
35
- box-shadow: 0 0 0 calc(2rem / 16)
36
- var(--tab-color-normal-focused-border, #e5e5e5);
37
- background-color: var(--tab-color-normal-focused-background, #ffffff);
38
- }
39
-
40
- .tab:hover:not(:disabled):not(.tab--active) {
41
- background-color: var(--tab-color-normal-hover-background, #ededed);
42
- border-bottom-color: var(--tab-color-normal-hover-border, #e5e5e5);
43
- color: var(--color-text-state-hover, #404040);
44
- }
45
-
46
- .tab:active:not(:disabled):not(.tab--active) {
47
- background-color: var(--tab-color-normal-pressed-background, #d9d9d9);
48
- border-bottom-color: var(--tab-color-normal-pressed-border, #e5e5e5);
49
- transform: translateY(calc(1rem / 16 * 1));
50
- color: var(--color-text-state-hover, #404040);
51
- }
52
-
53
- .tab--active {
54
- background-color: var(--tab-color-active-default-background, #ffffff);
55
- border-bottom-color: var(--tab-color-active-default-border, #0f7173);
56
- color: var(--color-text-state-filled, #262626);
57
- }
58
-
59
- .tab--active:hover:not(:disabled) {
60
- border-bottom-color: var(--tab-color-active-hover-border, #115b5e);
61
- background-color: var(--tab-color-active-hover-background, #ffffff);
62
- }
63
-
64
- .tab--active:active:not(:disabled) {
65
- border-bottom-color: var(--tab-color-active-pressed-border, #042c2f);
66
- background-color: var(--tab-color-active-pressed-background, #ffffff);
67
- }
68
-
69
- .tab--active:focus-visible {
70
- box-shadow: 0 0 0 calc(2rem / 16)
71
- var(--tab-color-active-focused-border, #042c2f);
72
- background-color: var(--tab-color-active-focused-background, #ffffff);
73
- }
74
-
75
- .tab--disabled,
76
- .tab:disabled {
77
- cursor: not-allowed;
78
- color: var(--color-text-state-disabled, #a3a3a3);
79
- background-color: var(--tab-color-normal-default-background, #ffffff);
80
- border-bottom-color: var(--tab-color-normal-default-border, #e5e5e5);
81
- opacity: 1;
82
- }
83
-
84
- .tab__label {
85
- display: inline-flex;
86
- align-items: center;
87
- justify-content: center;
88
- color: inherit;
89
- }
90
-
91
- .tab--variant-inline.tab--size-lg {
92
- --tab-width: var(--tab-inline-lg-width, 124rem);
93
- --tab-height: var(--tab-inline-lg-height, 78rem);
94
- }
95
-
96
- .tab--variant-inline.tab--size-sm {
97
- --tab-width: var(--tab-inline-sm-width, 115rem);
98
- --tab-height: var(--tab-inline-sm-height, 56rem);
99
- }
100
-
101
- .tab--variant-outline.tab--size-sm {
102
- --tab-width: var(--tab-outline-sm-width, 119rem);
103
- --tab-height: var(--tab-outline-sm-height, 56rem);
104
- border-bottom-color: var(--tab-color-active-default-border, #0f7173);
105
- }
106
-
107
- .tab--variant-outline.tab--size-lg {
108
- --tab-width: var(--tab-outline-lg-width, 129rem);
109
- --tab-height: var(--tab-outline-lg-height, 78rem);
110
- border-bottom-color: var(--tab-color-active-default-border, #0f7173);
111
- }
112
-
113
- .tab--variant-outline {
114
- background-color: var(--tab-color-active-default-background, #ffffff);
115
- }
116
-
117
- .tab--variant-outline:hover:not(:disabled):not(.tab--active),
118
- .tab--variant-outline:active:not(:disabled):not(.tab--active) {
119
- background-color: var(--tab-color-active-hover-background, #ffffff);
120
- }
121
-
122
- .tab--variant-outline.tab--size-sm:hover:not(:disabled):not(.tab--active) {
123
- border-bottom-color: var(--tab-color-active-hover-border, #115b5e);
124
- }
125
-
126
- .tab--variant-outline.tab--size-sm:active:not(:disabled):not(.tab--active) {
127
- border-bottom-color: var(--tab-color-active-pressed-border, #042c2f);
128
- }
129
-
130
- .tab--variant-outline.tab--size-lg:hover:not(:disabled):not(.tab--active) {
131
- border-bottom-color: var(--tab-color-active-hover-border, #115b5e);
132
- }
133
-
134
- .tab--variant-outline.tab--size-lg:active:not(:disabled):not(.tab--active) {
135
- border-bottom-color: var(--tab-color-active-pressed-border, #042c2f);
136
- }
137
-
138
- .tab--variant-outline.tab--size-sm:focus-visible {
139
- outline: none;
140
- box-shadow: none;
141
- --tab-width: var(--tab-outline-sm-focus-width, 121rem);
142
- --tab-height: var(--tab-outline-sm-focus-height, 59rem);
143
- border-radius: calc(var(--border-radius-rounded-sm, 4rem) / 16);
144
- border-top: calc(var(--border-border, 1rem) / 16)
145
- solid var(--color-atoll-green-800, #0f7173);
146
- }
147
-
1
+ .tab {
2
+ --tab-width: var(--tab-inline-lg-width, 124rem);
3
+ --tab-height: var(--tab-inline-lg-height, 78rem);
4
+ position: relative;
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ box-sizing: border-box;
9
+ width: calc(var(--tab-width) / 16);
10
+ height: calc(var(--tab-height) / 16);
11
+ gap: calc(var(--tab-spacing-container-gap, 0) / 16);
12
+ padding-top: calc(var(--tab-spacing-container-padding-y, 8rem) / 16);
13
+ padding-bottom: calc(var(--tab-spacing-container-padding-y, 8rem) / 16);
14
+ padding-left: calc(var(--tab-spacing-container-padding-x, 8rem) / 16);
15
+ padding-right: calc(var(--tab-spacing-container-padding-x, 8rem) / 16);
16
+ border: none;
17
+ border-radius: calc(var(--tab-border-radius-default, 0) / 16);
18
+ border-bottom-style: solid;
19
+ border-bottom-width: calc(var(--tab-border-width-default, 4rem) / 16);
20
+ border-bottom-color: var(--tab-color-normal-default-border, #e5e5e5);
21
+ background-color: var(--tab-color-normal-default-background, #ffffff);
22
+ color: var(--color-text-state-default, #737373);
23
+ opacity: calc(var(--opacity-opacity-100, 100) / 100);
24
+ cursor: pointer;
25
+ transition:
26
+ background-color 0.2s ease-in-out,
27
+ border-color 0.2s ease-in-out,
28
+ color 0.2s ease-in-out,
29
+ box-shadow 0.2s ease-in-out,
30
+ transform 0.15s ease-in-out;
31
+ }
32
+
33
+ .tab:focus-visible {
34
+ outline: none;
35
+ box-shadow: 0 0 0 calc(2rem / 16)
36
+ var(--tab-color-normal-focused-border, #e5e5e5);
37
+ background-color: var(--tab-color-normal-focused-background, #ffffff);
38
+ }
39
+
40
+ .tab:hover:not(:disabled):not(.tab--active) {
41
+ background-color: var(--tab-color-normal-hover-background, #ededed);
42
+ border-bottom-color: var(--tab-color-normal-hover-border, #e5e5e5);
43
+ color: var(--color-text-state-hover, #404040);
44
+ }
45
+
46
+ .tab:active:not(:disabled):not(.tab--active) {
47
+ background-color: var(--tab-color-normal-pressed-background, #d9d9d9);
48
+ border-bottom-color: var(--tab-color-normal-pressed-border, #e5e5e5);
49
+ transform: translateY(calc(1rem / 16 * 1));
50
+ color: var(--color-text-state-hover, #404040);
51
+ }
52
+
53
+ .tab--active {
54
+ background-color: var(--tab-color-active-default-background, #ffffff);
55
+ border-bottom-color: var(--tab-color-active-default-border, #0f7173);
56
+ color: var(--color-text-state-filled, #262626);
57
+ }
58
+
59
+ .tab--active:hover:not(:disabled) {
60
+ border-bottom-color: var(--tab-color-active-hover-border, #115b5e);
61
+ background-color: var(--tab-color-active-hover-background, #ffffff);
62
+ }
63
+
64
+ .tab--active:active:not(:disabled) {
65
+ border-bottom-color: var(--tab-color-active-pressed-border, #042c2f);
66
+ background-color: var(--tab-color-active-pressed-background, #ffffff);
67
+ }
68
+
69
+ .tab--active:focus-visible {
70
+ box-shadow: 0 0 0 calc(2rem / 16)
71
+ var(--tab-color-active-focused-border, #042c2f);
72
+ background-color: var(--tab-color-active-focused-background, #ffffff);
73
+ }
74
+
75
+ .tab--disabled,
76
+ .tab:disabled {
77
+ cursor: not-allowed;
78
+ color: var(--color-text-state-disabled, #a3a3a3);
79
+ background-color: var(--tab-color-normal-default-background, #ffffff);
80
+ border-bottom-color: var(--tab-color-normal-default-border, #e5e5e5);
81
+ opacity: 1;
82
+ }
83
+
84
+ .tab__label {
85
+ display: inline-flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ color: inherit;
89
+ }
90
+
91
+ .tab--variant-inline.tab--size-lg {
92
+ --tab-width: var(--tab-inline-lg-width, 124rem);
93
+ --tab-height: var(--tab-inline-lg-height, 78rem);
94
+ }
95
+
96
+ .tab--variant-inline.tab--size-sm {
97
+ --tab-width: var(--tab-inline-sm-width, 115rem);
98
+ --tab-height: var(--tab-inline-sm-height, 56rem);
99
+ }
100
+
101
+ .tab--variant-outline.tab--size-sm {
102
+ --tab-width: var(--tab-outline-sm-width, 119rem);
103
+ --tab-height: var(--tab-outline-sm-height, 56rem);
104
+ border-bottom-color: var(--tab-color-active-default-border, #0f7173);
105
+ }
106
+
107
+ .tab--variant-outline.tab--size-lg {
108
+ --tab-width: var(--tab-outline-lg-width, 129rem);
109
+ --tab-height: var(--tab-outline-lg-height, 78rem);
110
+ border-bottom-color: var(--tab-color-active-default-border, #0f7173);
111
+ }
112
+
113
+ .tab--variant-outline {
114
+ background-color: var(--tab-color-active-default-background, #ffffff);
115
+ }
116
+
117
+ .tab--variant-outline:hover:not(:disabled):not(.tab--active),
118
+ .tab--variant-outline:active:not(:disabled):not(.tab--active) {
119
+ background-color: var(--tab-color-active-hover-background, #ffffff);
120
+ }
121
+
122
+ .tab--variant-outline.tab--size-sm:hover:not(:disabled):not(.tab--active) {
123
+ border-bottom-color: var(--tab-color-active-hover-border, #115b5e);
124
+ }
125
+
126
+ .tab--variant-outline.tab--size-sm:active:not(:disabled):not(.tab--active) {
127
+ border-bottom-color: var(--tab-color-active-pressed-border, #042c2f);
128
+ }
129
+
130
+ .tab--variant-outline.tab--size-lg:hover:not(:disabled):not(.tab--active) {
131
+ border-bottom-color: var(--tab-color-active-hover-border, #115b5e);
132
+ }
133
+
134
+ .tab--variant-outline.tab--size-lg:active:not(:disabled):not(.tab--active) {
135
+ border-bottom-color: var(--tab-color-active-pressed-border, #042c2f);
136
+ }
137
+
138
+ .tab--variant-outline.tab--size-sm:focus-visible {
139
+ outline: none;
140
+ box-shadow: none;
141
+ --tab-width: var(--tab-outline-sm-focus-width, 121rem);
142
+ --tab-height: var(--tab-outline-sm-focus-height, 59rem);
143
+ border-radius: calc(var(--border-radius-rounded-sm, 4rem) / 16);
144
+ border-top: calc(var(--border-border, 1rem) / 16)
145
+ solid var(--color-atoll-green-800, #0f7173);
146
+ }
147
+
@@ -1,96 +1,96 @@
1
- import React from 'react';
2
- import { Text } from '../Typography/Typography';
3
- import './Tab.css';
4
-
5
- type TextComponentProps = React.ComponentProps<typeof Text>;
6
-
7
- export interface TabProps
8
- extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
9
- /** Textual content rendered inside the tab */
10
- children: React.ReactNode;
11
- /** Whether the tab is currently active */
12
- isActive?: boolean;
13
- /** Visual style family for the tab */
14
- variant?: 'inline' | 'outline';
15
- /** Size token used by the selected variant */
16
- size?: 'sm' | 'lg';
17
- /** Typography variant when the tab is active */
18
- activeTextVariant?: TextComponentProps['variant'];
19
- /** Typography variant when the tab is inactive */
20
- inactiveTextVariant?: TextComponentProps['variant'];
21
- /** Typography size applied to the tab label */
22
- textSize?: TextComponentProps['size'];
23
- }
24
-
25
- const Tab = React.forwardRef<HTMLButtonElement, TabProps>(
26
- (
27
- {
28
- children,
29
- isActive = false,
30
- disabled = false,
31
- className = '',
32
- variant = 'inline',
33
- size = 'lg',
34
- activeTextVariant,
35
- inactiveTextVariant,
36
- textSize,
37
- ...rest
38
- },
39
- ref
40
- ) => {
41
- const { role: roleProp, type: typeProp, ...buttonRest } = rest;
42
-
43
- const tabClasses = [
44
- 'tab',
45
- `tab--variant-${variant}`,
46
- `tab--size-${size}`,
47
- isActive ? 'tab--active' : '',
48
- disabled ? 'tab--disabled' : '',
49
- className,
50
- ]
51
- .filter(Boolean)
52
- .join(' ');
53
-
54
- const defaultTypographyVariant = variant === 'outline' ? 'bold' : 'regular';
55
- const resolvedActiveTextVariant = activeTextVariant ?? defaultTypographyVariant;
56
- const resolvedInactiveTextVariant =
57
- inactiveTextVariant ?? defaultTypographyVariant;
58
- const resolvedVariant = isActive
59
- ? resolvedActiveTextVariant
60
- : resolvedInactiveTextVariant;
61
- const resolvedTextSize =
62
- textSize ??
63
- (variant === 'outline'
64
- ? 'base'
65
- : size === 'lg'
66
- ? 'lg'
67
- : 'base');
68
-
69
- return (
70
- <button
71
- {...buttonRest}
72
- ref={ref}
73
- type={typeProp ?? 'button'}
74
- role={roleProp ?? 'tab'}
75
- aria-selected={isActive}
76
- aria-disabled={disabled || undefined}
77
- disabled={disabled}
78
- className={tabClasses}
79
- >
80
- <Text
81
- as="span"
82
- size={resolvedTextSize}
83
- variant={resolvedVariant}
84
- className="tab__label"
85
- >
86
- {children}
87
- </Text>
88
- </button>
89
- );
90
- }
91
- );
92
-
93
- Tab.displayName = 'Tab';
94
-
95
- export default Tab;
96
-
1
+ import React from 'react';
2
+ import { Text } from '../Typography/Typography';
3
+ import './Tab.css';
4
+
5
+ type TextComponentProps = React.ComponentProps<typeof Text>;
6
+
7
+ export interface TabProps
8
+ extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
9
+ /** Textual content rendered inside the tab */
10
+ children: React.ReactNode;
11
+ /** Whether the tab is currently active */
12
+ isActive?: boolean;
13
+ /** Visual style family for the tab */
14
+ variant?: 'inline' | 'outline';
15
+ /** Size token used by the selected variant */
16
+ size?: 'sm' | 'lg';
17
+ /** Typography variant when the tab is active */
18
+ activeTextVariant?: TextComponentProps['variant'];
19
+ /** Typography variant when the tab is inactive */
20
+ inactiveTextVariant?: TextComponentProps['variant'];
21
+ /** Typography size applied to the tab label */
22
+ textSize?: TextComponentProps['size'];
23
+ }
24
+
25
+ const Tab = React.forwardRef<HTMLButtonElement, TabProps>(
26
+ (
27
+ {
28
+ children,
29
+ isActive = false,
30
+ disabled = false,
31
+ className = '',
32
+ variant = 'inline',
33
+ size = 'lg',
34
+ activeTextVariant,
35
+ inactiveTextVariant,
36
+ textSize,
37
+ ...rest
38
+ },
39
+ ref
40
+ ) => {
41
+ const { role: roleProp, type: typeProp, ...buttonRest } = rest;
42
+
43
+ const tabClasses = [
44
+ 'tab',
45
+ `tab--variant-${variant}`,
46
+ `tab--size-${size}`,
47
+ isActive ? 'tab--active' : '',
48
+ disabled ? 'tab--disabled' : '',
49
+ className,
50
+ ]
51
+ .filter(Boolean)
52
+ .join(' ');
53
+
54
+ const defaultTypographyVariant = variant === 'outline' ? 'bold' : 'regular';
55
+ const resolvedActiveTextVariant = activeTextVariant ?? defaultTypographyVariant;
56
+ const resolvedInactiveTextVariant =
57
+ inactiveTextVariant ?? defaultTypographyVariant;
58
+ const resolvedVariant = isActive
59
+ ? resolvedActiveTextVariant
60
+ : resolvedInactiveTextVariant;
61
+ const resolvedTextSize =
62
+ textSize ??
63
+ (variant === 'outline'
64
+ ? 'base'
65
+ : size === 'lg'
66
+ ? 'lg'
67
+ : 'base');
68
+
69
+ return (
70
+ <button
71
+ {...buttonRest}
72
+ ref={ref}
73
+ type={typeProp ?? 'button'}
74
+ role={roleProp ?? 'tab'}
75
+ aria-selected={isActive}
76
+ aria-disabled={disabled || undefined}
77
+ disabled={disabled}
78
+ className={tabClasses}
79
+ >
80
+ <Text
81
+ as="span"
82
+ size={resolvedTextSize}
83
+ variant={resolvedVariant}
84
+ className="tab__label"
85
+ >
86
+ {children}
87
+ </Text>
88
+ </button>
89
+ );
90
+ }
91
+ );
92
+
93
+ Tab.displayName = 'Tab';
94
+
95
+ export default Tab;
96
+