@wireservers-ui/react-natives 2.0.1 → 2.0.2-rc.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 (404) hide show
  1. package/CHANGELOG.md +87 -71
  2. package/LICENSE +21 -21
  3. package/README.md +642 -613
  4. package/bin/cli.js +83 -5
  5. package/bin/init.js +470 -324
  6. package/package.json +1 -1
  7. package/src/accordion/accordion-content.tsx +30 -30
  8. package/src/accordion/accordion-icon.tsx +54 -54
  9. package/src/accordion/accordion-item.tsx +37 -37
  10. package/src/accordion/accordion-title-text.tsx +24 -24
  11. package/src/accordion/accordion-trigger.tsx +38 -38
  12. package/src/accordion/accordion.tsx +91 -91
  13. package/src/accordion/index.ts +24 -24
  14. package/src/accordion/styles.ts +74 -74
  15. package/src/accordion/types.ts +56 -56
  16. package/src/actionsheet/actionsheet-backdrop.tsx +23 -23
  17. package/src/actionsheet/actionsheet-content.tsx +19 -19
  18. package/src/actionsheet/actionsheet-drag-indicator-wrapper.tsx +19 -19
  19. package/src/actionsheet/actionsheet-drag-indicator.tsx +19 -19
  20. package/src/actionsheet/actionsheet-item-text.tsx +19 -19
  21. package/src/actionsheet/actionsheet-item.tsx +20 -20
  22. package/src/actionsheet/actionsheet-scroll-view.tsx +12 -12
  23. package/src/actionsheet/actionsheet.tsx +45 -45
  24. package/src/actionsheet/index.ts +20 -20
  25. package/src/actionsheet/styles.ts +25 -25
  26. package/src/actionsheet/types.ts +49 -49
  27. package/src/alert/alert-body.tsx +19 -19
  28. package/src/alert/alert-close-button.tsx +23 -23
  29. package/src/alert/alert-icon.tsx +40 -40
  30. package/src/alert/alert-text.tsx +22 -22
  31. package/src/alert/alert.tsx +33 -33
  32. package/src/alert/index.ts +15 -15
  33. package/src/alert/styles.ts +112 -112
  34. package/src/alert/types.ts +36 -36
  35. package/src/alert-dialog/alert-dialog.tsx +54 -54
  36. package/src/alert-dialog/index.ts +2 -2
  37. package/src/alert-dialog/styles.ts +40 -40
  38. package/src/alert-dialog/types.ts +40 -40
  39. package/src/aspect-ratio/aspect-ratio.tsx +20 -20
  40. package/src/aspect-ratio/index.ts +2 -2
  41. package/src/aspect-ratio/styles.ts +6 -6
  42. package/src/aspect-ratio/types.ts +7 -7
  43. package/src/avatar/avatar-badge.tsx +22 -22
  44. package/src/avatar/avatar-fallback-text.tsx +33 -33
  45. package/src/avatar/avatar-group.tsx +53 -53
  46. package/src/avatar/avatar-image.tsx +21 -21
  47. package/src/avatar/avatar.tsx +27 -27
  48. package/src/avatar/index.ts +14 -14
  49. package/src/avatar/styles.ts +94 -94
  50. package/src/avatar/types.ts +35 -35
  51. package/src/badge/badge-icon.tsx +20 -20
  52. package/src/badge/badge-text.tsx +24 -24
  53. package/src/badge/badge.tsx +39 -39
  54. package/src/badge/index.ts +11 -11
  55. package/src/badge/styles.ts +175 -175
  56. package/src/badge/types.ts +37 -37
  57. package/src/blockquote/blockquote.tsx +21 -21
  58. package/src/blockquote/index.ts +2 -2
  59. package/src/blockquote/styles.ts +11 -11
  60. package/src/blockquote/types.ts +6 -6
  61. package/src/box/box.tsx +19 -19
  62. package/src/box/index.ts +2 -2
  63. package/src/box/styles.ts +6 -6
  64. package/src/box/types.ts +6 -6
  65. package/src/breadcrumb/breadcrumb-item.tsx +20 -20
  66. package/src/breadcrumb/breadcrumb-link.tsx +20 -20
  67. package/src/breadcrumb/breadcrumb-text.tsx +19 -19
  68. package/src/breadcrumb/breadcrumb.tsx +43 -43
  69. package/src/breadcrumb/index.ts +12 -12
  70. package/src/breadcrumb/styles.ts +36 -36
  71. package/src/breadcrumb/types.ts +33 -33
  72. package/src/button/button-group.tsx +35 -35
  73. package/src/button/button-icon.tsx +37 -37
  74. package/src/button/button-spinner.tsx +12 -12
  75. package/src/button/button-text.tsx +27 -27
  76. package/src/button/button.tsx +42 -42
  77. package/src/button/index.ts +19 -19
  78. package/src/button/styles.ts +250 -250
  79. package/src/button/types.ts +67 -67
  80. package/src/calendar/calendar-day-cell.tsx +67 -67
  81. package/src/calendar/calendar-day-view.tsx +66 -66
  82. package/src/calendar/calendar-event.tsx +59 -59
  83. package/src/calendar/calendar-header.tsx +60 -60
  84. package/src/calendar/calendar-horizontal-view.tsx +372 -372
  85. package/src/calendar/calendar-legend.tsx +41 -41
  86. package/src/calendar/calendar-month-view.tsx +47 -47
  87. package/src/calendar/calendar-vertical-view.tsx +395 -395
  88. package/src/calendar/calendar-view-switcher.tsx +65 -65
  89. package/src/calendar/calendar-week-view.tsx +52 -52
  90. package/src/calendar/calendar.tsx +74 -74
  91. package/src/calendar/index.ts +27 -27
  92. package/src/calendar/styles.ts +367 -367
  93. package/src/calendar/types.ts +101 -101
  94. package/src/calendar/use-calendar.ts +170 -170
  95. package/src/calendar/utils.ts +278 -278
  96. package/src/card/card-body.tsx +22 -22
  97. package/src/card/card-footer.tsx +19 -19
  98. package/src/card/card-header.tsx +22 -22
  99. package/src/card/card.tsx +27 -27
  100. package/src/card/index.ts +13 -13
  101. package/src/card/styles.ts +54 -54
  102. package/src/card/types.ts +31 -31
  103. package/src/carousel/carousel.tsx +436 -436
  104. package/src/carousel/index.ts +2 -2
  105. package/src/carousel/styles.ts +21 -21
  106. package/src/carousel/types.ts +41 -41
  107. package/src/center/center.tsx +19 -19
  108. package/src/center/index.ts +2 -2
  109. package/src/center/styles.ts +6 -6
  110. package/src/center/types.ts +6 -6
  111. package/src/checkbox/checkbox-group.tsx +63 -63
  112. package/src/checkbox/checkbox-icon.tsx +35 -35
  113. package/src/checkbox/checkbox-indicator.tsx +30 -30
  114. package/src/checkbox/checkbox-label.tsx +24 -24
  115. package/src/checkbox/checkbox.tsx +86 -86
  116. package/src/checkbox/index.ts +14 -14
  117. package/src/checkbox/styles.ts +69 -69
  118. package/src/checkbox/types.ts +55 -55
  119. package/src/circular-progress/circular-progress.tsx +82 -82
  120. package/src/circular-progress/index.ts +2 -2
  121. package/src/circular-progress/styles.ts +31 -31
  122. package/src/circular-progress/types.ts +18 -18
  123. package/src/code/code.tsx +36 -36
  124. package/src/code/index.ts +2 -2
  125. package/src/code/styles.ts +25 -25
  126. package/src/code/types.ts +13 -13
  127. package/src/collapsible/collapsible.tsx +58 -58
  128. package/src/collapsible/index.ts +2 -2
  129. package/src/collapsible/styles.ts +5 -5
  130. package/src/collapsible/types.ts +21 -21
  131. package/src/color-picker/color-picker-box.tsx +115 -115
  132. package/src/color-picker/color-picker-slider.tsx +98 -98
  133. package/src/color-picker/color-picker.tsx +162 -162
  134. package/src/color-picker/color-utils.ts +215 -215
  135. package/src/color-picker/index.ts +34 -34
  136. package/src/color-picker/styles.ts +32 -32
  137. package/src/color-picker/types.ts +49 -49
  138. package/src/color-picker/use-pointer-drag.ts +80 -80
  139. package/src/container/container.tsx +19 -19
  140. package/src/container/index.ts +2 -2
  141. package/src/container/styles.ts +21 -21
  142. package/src/container/types.ts +10 -10
  143. package/src/date-picker/date-picker.tsx +136 -136
  144. package/src/date-picker/index.ts +15 -15
  145. package/src/date-picker/styles.ts +18 -18
  146. package/src/date-picker/types.ts +33 -33
  147. package/src/divider/divider.tsx +21 -21
  148. package/src/divider/index.ts +2 -2
  149. package/src/divider/styles.ts +14 -14
  150. package/src/divider/types.ts +7 -7
  151. package/src/drawer/drawer-backdrop.tsx +23 -23
  152. package/src/drawer/drawer-body.tsx +19 -19
  153. package/src/drawer/drawer-close-button.tsx +29 -29
  154. package/src/drawer/drawer-content.tsx +142 -142
  155. package/src/drawer/drawer-footer.tsx +19 -19
  156. package/src/drawer/drawer-header.tsx +19 -19
  157. package/src/drawer/drawer.tsx +54 -54
  158. package/src/drawer/index.ts +22 -22
  159. package/src/drawer/styles.ts +36 -36
  160. package/src/drawer/types.ts +62 -62
  161. package/src/empty/empty.tsx +53 -53
  162. package/src/empty/index.ts +2 -2
  163. package/src/empty/styles.ts +26 -26
  164. package/src/empty/types.ts +22 -22
  165. package/src/fab/fab-icon.tsx +20 -20
  166. package/src/fab/fab-label.tsx +22 -22
  167. package/src/fab/fab.tsx +45 -45
  168. package/src/fab/index.ts +11 -11
  169. package/src/fab/styles.ts +57 -57
  170. package/src/fab/types.ts +33 -33
  171. package/src/form-control/form-control-error-icon.tsx +25 -25
  172. package/src/form-control/form-control-error-message.tsx +40 -40
  173. package/src/form-control/form-control-helper-text.tsx +25 -25
  174. package/src/form-control/form-control-label-text.tsx +25 -25
  175. package/src/form-control/form-control-label.tsx +36 -36
  176. package/src/form-control/form-control.tsx +46 -46
  177. package/src/form-control/index.ts +20 -20
  178. package/src/form-control/styles.ts +105 -105
  179. package/src/form-control/types.ts +45 -45
  180. package/src/heading/heading.tsx +21 -21
  181. package/src/heading/index.ts +2 -2
  182. package/src/heading/styles.ts +24 -24
  183. package/src/heading/types.ts +19 -19
  184. package/src/icon/icon.tsx +21 -21
  185. package/src/icon/index.ts +2 -2
  186. package/src/icon/styles.ts +18 -18
  187. package/src/icon/types.ts +8 -8
  188. package/src/icon-button/icon-button.tsx +23 -23
  189. package/src/icon-button/index.ts +2 -2
  190. package/src/icon-button/styles.ts +78 -78
  191. package/src/icon-button/types.ts +15 -15
  192. package/src/image/image.tsx +20 -20
  193. package/src/image/index.ts +2 -2
  194. package/src/image/styles.ts +28 -28
  195. package/src/image/types.ts +11 -11
  196. package/src/index.ts +1039 -1039
  197. package/src/input/index.ts +13 -13
  198. package/src/input/input-field.tsx +35 -35
  199. package/src/input/input-icon.tsx +25 -25
  200. package/src/input/input-slot.tsx +24 -24
  201. package/src/input/input.tsx +73 -73
  202. package/src/input/styles.ts +90 -90
  203. package/src/input/types.ts +39 -39
  204. package/src/kbd/index.ts +2 -2
  205. package/src/kbd/kbd.tsx +21 -21
  206. package/src/kbd/styles.ts +11 -11
  207. package/src/kbd/types.ts +7 -7
  208. package/src/link/index.ts +4 -4
  209. package/src/link/link-text.tsx +19 -19
  210. package/src/link/link.tsx +31 -31
  211. package/src/link/styles.ts +19 -19
  212. package/src/link/types.ts +13 -13
  213. package/src/list/index.ts +2 -2
  214. package/src/list/list.tsx +55 -55
  215. package/src/list/styles.ts +8 -8
  216. package/src/list/types.ts +17 -17
  217. package/src/menu/index.ts +2 -2
  218. package/src/menu/menu.tsx +99 -99
  219. package/src/menu/styles.ts +14 -14
  220. package/src/menu/types.ts +30 -30
  221. package/src/modal/index.ts +18 -18
  222. package/src/modal/modal-backdrop.tsx +23 -23
  223. package/src/modal/modal-body.tsx +19 -19
  224. package/src/modal/modal-close-button.tsx +29 -29
  225. package/src/modal/modal-content.tsx +22 -22
  226. package/src/modal/modal-footer.tsx +19 -19
  227. package/src/modal/modal-header.tsx +19 -19
  228. package/src/modal/modal.tsx +50 -50
  229. package/src/modal/styles.ts +37 -37
  230. package/src/modal/types.ts +49 -49
  231. package/src/nativewind-env.d.ts +1 -1
  232. package/src/number-input/index.ts +18 -18
  233. package/src/number-input/number-input.tsx +161 -161
  234. package/src/number-input/styles.ts +35 -35
  235. package/src/number-input/types.ts +44 -44
  236. package/src/overlay/index.ts +2 -2
  237. package/src/overlay/overlay.tsx +21 -21
  238. package/src/overlay/styles.ts +6 -6
  239. package/src/overlay/types.ts +7 -7
  240. package/src/pagination/index.ts +2 -2
  241. package/src/pagination/pagination.tsx +58 -58
  242. package/src/pagination/styles.ts +27 -27
  243. package/src/pagination/types.ts +19 -19
  244. package/src/password-input/index.ts +14 -14
  245. package/src/password-input/password-input.tsx +79 -79
  246. package/src/password-input/styles.ts +25 -25
  247. package/src/password-input/types.ts +24 -24
  248. package/src/pin-input/index.ts +12 -12
  249. package/src/pin-input/pin-input.tsx +96 -96
  250. package/src/pin-input/styles.ts +16 -16
  251. package/src/pin-input/types.ts +26 -26
  252. package/src/popover/index.ts +2 -2
  253. package/src/popover/popover.tsx +98 -98
  254. package/src/popover/styles.ts +31 -31
  255. package/src/popover/types.ts +46 -46
  256. package/src/portal/index.ts +2 -2
  257. package/src/portal/portal.tsx +8 -8
  258. package/src/portal/styles.ts +2 -2
  259. package/src/portal/types.ts +3 -3
  260. package/src/pressable/index.ts +2 -2
  261. package/src/pressable/pressable.tsx +20 -20
  262. package/src/pressable/styles.ts +10 -10
  263. package/src/pressable/types.ts +6 -6
  264. package/src/progress/index.ts +9 -9
  265. package/src/progress/progress-filled-track.tsx +26 -26
  266. package/src/progress/progress.tsx +52 -52
  267. package/src/progress/styles.ts +34 -34
  268. package/src/progress/types.ts +28 -28
  269. package/src/radio/index.ts +14 -14
  270. package/src/radio/radio-group.tsx +61 -61
  271. package/src/radio/radio-icon.tsx +24 -24
  272. package/src/radio/radio-indicator.tsx +30 -30
  273. package/src/radio/radio-label.tsx +24 -24
  274. package/src/radio/radio.tsx +68 -68
  275. package/src/radio/styles.ts +69 -69
  276. package/src/radio/types.ts +51 -51
  277. package/src/rating/index.ts +7 -7
  278. package/src/rating/rating.tsx +93 -93
  279. package/src/rating/styles.ts +13 -13
  280. package/src/rating/types.ts +29 -29
  281. package/src/search-input/index.ts +16 -16
  282. package/src/search-input/search-input.tsx +119 -119
  283. package/src/search-input/styles.ts +28 -28
  284. package/src/search-input/types.ts +31 -31
  285. package/src/segmented-control/index.ts +2 -2
  286. package/src/segmented-control/segmented-control.tsx +34 -34
  287. package/src/segmented-control/styles.ts +22 -22
  288. package/src/segmented-control/types.ts +22 -22
  289. package/src/select/index.ts +28 -28
  290. package/src/select/select-backdrop.tsx +25 -25
  291. package/src/select/select-content.tsx +49 -49
  292. package/src/select/select-drag-indicator.tsx +19 -19
  293. package/src/select/select-icon.tsx +25 -25
  294. package/src/select/select-input.tsx +32 -32
  295. package/src/select/select-item-text.tsx +30 -30
  296. package/src/select/select-item.tsx +72 -72
  297. package/src/select/select-portal.tsx +22 -22
  298. package/src/select/select-scroll-view.tsx +22 -22
  299. package/src/select/select-trigger.tsx +64 -64
  300. package/src/select/select.tsx +101 -101
  301. package/src/select/styles.ts +114 -114
  302. package/src/select/types.ts +92 -92
  303. package/src/skeleton/index.ts +2 -2
  304. package/src/skeleton/skeleton.tsx +29 -29
  305. package/src/skeleton/styles.ts +14 -14
  306. package/src/skeleton/types.ts +12 -12
  307. package/src/slider/index.ts +12 -12
  308. package/src/slider/slider-filled-track.tsx +31 -31
  309. package/src/slider/slider-thumb.tsx +52 -52
  310. package/src/slider/slider-track.tsx +154 -154
  311. package/src/slider/slider.tsx +193 -193
  312. package/src/slider/styles.ts +71 -71
  313. package/src/slider/types.ts +47 -47
  314. package/src/snackbar/index.ts +2 -2
  315. package/src/snackbar/snackbar.tsx +39 -39
  316. package/src/snackbar/styles.ts +29 -29
  317. package/src/snackbar/types.ts +21 -21
  318. package/src/spinner/index.ts +2 -2
  319. package/src/spinner/spinner.tsx +29 -29
  320. package/src/spinner/styles.ts +15 -15
  321. package/src/spinner/types.ts +10 -10
  322. package/src/stack/index.ts +2 -2
  323. package/src/stack/stack.tsx +49 -49
  324. package/src/stack/styles.ts +25 -25
  325. package/src/stack/types.ts +15 -15
  326. package/src/stat/index.ts +2 -2
  327. package/src/stat/stat.tsx +48 -48
  328. package/src/stat/styles.ts +34 -34
  329. package/src/stat/types.ts +24 -24
  330. package/src/stepper/index.ts +2 -2
  331. package/src/stepper/stepper.tsx +95 -95
  332. package/src/stepper/styles.ts +49 -49
  333. package/src/stepper/types.ts +20 -20
  334. package/src/switch/index.ts +2 -2
  335. package/src/switch/styles.ts +24 -24
  336. package/src/switch/switch.tsx +67 -67
  337. package/src/switch/types.ts +23 -23
  338. package/src/table/index.ts +2 -2
  339. package/src/table/styles.ts +12 -12
  340. package/src/table/table.tsx +52 -52
  341. package/src/table/types.ts +10 -10
  342. package/src/tabs/index.ts +18 -18
  343. package/src/tabs/styles.ts +113 -113
  344. package/src/tabs/tab-list.tsx +29 -29
  345. package/src/tabs/tab-panel.tsx +29 -29
  346. package/src/tabs/tab-panels.tsx +21 -21
  347. package/src/tabs/tab-text.tsx +26 -26
  348. package/src/tabs/tab.tsx +56 -56
  349. package/src/tabs/tabs.tsx +71 -71
  350. package/src/tabs/types.ts +53 -53
  351. package/src/tag/index.ts +14 -14
  352. package/src/tag/styles.ts +115 -115
  353. package/src/tag/tag-close-button.tsx +26 -26
  354. package/src/tag/tag-icon.tsx +20 -20
  355. package/src/tag/tag-text.tsx +22 -22
  356. package/src/tag/tag.tsx +40 -40
  357. package/src/tag/types.ts +33 -33
  358. package/src/tags-input/index.ts +18 -18
  359. package/src/tags-input/styles.ts +29 -29
  360. package/src/tags-input/tags-input.tsx +149 -149
  361. package/src/tags-input/types.ts +37 -37
  362. package/src/text/index.ts +2 -2
  363. package/src/text/styles.ts +54 -54
  364. package/src/text/text.tsx +51 -51
  365. package/src/text/types.ts +36 -36
  366. package/src/textarea/index.ts +2 -2
  367. package/src/textarea/styles.ts +37 -37
  368. package/src/textarea/textarea.tsx +68 -68
  369. package/src/textarea/types.ts +14 -14
  370. package/src/timeline/index.ts +2 -2
  371. package/src/timeline/styles.ts +57 -57
  372. package/src/timeline/timeline.tsx +52 -52
  373. package/src/timeline/types.ts +30 -30
  374. package/src/toast/index.ts +17 -17
  375. package/src/toast/styles.ts +118 -118
  376. package/src/toast/toast-description.tsx +22 -22
  377. package/src/toast/toast-provider.tsx +136 -136
  378. package/src/toast/toast-title.tsx +22 -22
  379. package/src/toast/toast.tsx +43 -43
  380. package/src/toast/types.ts +50 -50
  381. package/src/toast/use-toast.ts +7 -7
  382. package/src/toggle/index.ts +2 -2
  383. package/src/toggle/styles.ts +30 -30
  384. package/src/toggle/toggle.tsx +25 -25
  385. package/src/toggle/types.ts +15 -15
  386. package/src/toggle-group/index.ts +2 -2
  387. package/src/toggle-group/styles.ts +35 -35
  388. package/src/toggle-group/toggle-group.tsx +60 -60
  389. package/src/toggle-group/types.ts +29 -29
  390. package/src/tooltip/index.ts +11 -11
  391. package/src/tooltip/styles.ts +9 -9
  392. package/src/tooltip/tooltip-content.tsx +19 -19
  393. package/src/tooltip/tooltip-text.tsx +19 -19
  394. package/src/tooltip/tooltip.tsx +116 -116
  395. package/src/tooltip/types.ts +35 -35
  396. package/src/utils/brand.ts +5 -5
  397. package/src/utils/create-context.ts +17 -17
  398. package/src/utils/index.ts +8 -8
  399. package/src/utils/types.ts +20 -20
  400. package/src/visually-hidden/index.ts +2 -2
  401. package/src/visually-hidden/styles.ts +6 -6
  402. package/src/visually-hidden/types.ts +6 -6
  403. package/src/visually-hidden/visually-hidden.tsx +22 -22
  404. package/tailwind-preset.js +212 -203
@@ -1,43 +1,43 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
- import { createComponentContext } from '../utils/create-context';
4
- import type { ToastProps, ToastStatus, ToastVariant } from './types';
5
- import { toastStyle } from './styles';
6
-
7
- export interface ToastItemContextValue {
8
- status: ToastStatus;
9
- variant: ToastVariant;
10
- }
11
-
12
- export const [ToastItemProvider, useToastItemContext] =
13
- createComponentContext<ToastItemContextValue>('ToastItem');
14
-
15
- export const Toast = React.forwardRef<
16
- React.ElementRef<typeof View>,
17
- ToastProps
18
- >(
19
- (
20
- {
21
- className,
22
- status = 'info',
23
- variant = 'subtle',
24
- children,
25
- ...props
26
- },
27
- ref,
28
- ) => {
29
- return (
30
- <ToastItemProvider value={{ status, variant }}>
31
- <View
32
- ref={ref}
33
- className={toastStyle({ status, variant, class: className })}
34
- {...props}
35
- >
36
- {children}
37
- </View>
38
- </ToastItemProvider>
39
- );
40
- },
41
- );
42
-
43
- Toast.displayName = 'Toast';
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { createComponentContext } from '../utils/create-context';
4
+ import type { ToastProps, ToastStatus, ToastVariant } from './types';
5
+ import { toastStyle } from './styles';
6
+
7
+ export interface ToastItemContextValue {
8
+ status: ToastStatus;
9
+ variant: ToastVariant;
10
+ }
11
+
12
+ export const [ToastItemProvider, useToastItemContext] =
13
+ createComponentContext<ToastItemContextValue>('ToastItem');
14
+
15
+ export const Toast = React.forwardRef<
16
+ React.ElementRef<typeof View>,
17
+ ToastProps
18
+ >(
19
+ (
20
+ {
21
+ className,
22
+ status = 'info',
23
+ variant = 'subtle',
24
+ children,
25
+ ...props
26
+ },
27
+ ref,
28
+ ) => {
29
+ return (
30
+ <ToastItemProvider value={{ status, variant }}>
31
+ <View
32
+ ref={ref}
33
+ className={toastStyle({ status, variant, class: className })}
34
+ {...props}
35
+ >
36
+ {children}
37
+ </View>
38
+ </ToastItemProvider>
39
+ );
40
+ },
41
+ );
42
+
43
+ Toast.displayName = 'Toast';
@@ -1,50 +1,50 @@
1
- import type { View, Text as RNText } from 'react-native';
2
-
3
- export type ToastPlacement =
4
- | 'top'
5
- | 'top-right'
6
- | 'top-left'
7
- | 'bottom'
8
- | 'bottom-right'
9
- | 'bottom-left';
10
-
11
- export type ToastStatus = 'info' | 'success' | 'warning' | 'error';
12
-
13
- export type ToastVariant = 'solid' | 'subtle' | 'outline';
14
-
15
- export interface ToastConfig {
16
- id: string;
17
- title?: string;
18
- description?: string;
19
- status?: ToastStatus;
20
- variant?: ToastVariant;
21
- duration?: number;
22
- placement?: ToastPlacement;
23
- isClosable?: boolean;
24
- render?: () => React.ReactNode;
25
- }
26
-
27
- export interface UseToastReturn {
28
- show(config: Omit<ToastConfig, 'id'>): string;
29
- close(id: string): void;
30
- closeAll(): void;
31
- }
32
-
33
- export type ToastContextValue = UseToastReturn;
34
-
35
- export interface ToastProps
36
- extends React.ComponentPropsWithoutRef<typeof View> {
37
- className?: string;
38
- status?: ToastStatus;
39
- variant?: ToastVariant;
40
- }
41
-
42
- export interface ToastTitleProps
43
- extends React.ComponentPropsWithoutRef<typeof RNText> {
44
- className?: string;
45
- }
46
-
47
- export interface ToastDescriptionProps
48
- extends React.ComponentPropsWithoutRef<typeof RNText> {
49
- className?: string;
50
- }
1
+ import type { View, Text as RNText } from 'react-native';
2
+
3
+ export type ToastPlacement =
4
+ | 'top'
5
+ | 'top-right'
6
+ | 'top-left'
7
+ | 'bottom'
8
+ | 'bottom-right'
9
+ | 'bottom-left';
10
+
11
+ export type ToastStatus = 'info' | 'success' | 'warning' | 'error';
12
+
13
+ export type ToastVariant = 'solid' | 'subtle' | 'outline';
14
+
15
+ export interface ToastConfig {
16
+ id: string;
17
+ title?: string;
18
+ description?: string;
19
+ status?: ToastStatus;
20
+ variant?: ToastVariant;
21
+ duration?: number;
22
+ placement?: ToastPlacement;
23
+ isClosable?: boolean;
24
+ render?: () => React.ReactNode;
25
+ }
26
+
27
+ export interface UseToastReturn {
28
+ show(config: Omit<ToastConfig, 'id'>): string;
29
+ close(id: string): void;
30
+ closeAll(): void;
31
+ }
32
+
33
+ export type ToastContextValue = UseToastReturn;
34
+
35
+ export interface ToastProps
36
+ extends React.ComponentPropsWithoutRef<typeof View> {
37
+ className?: string;
38
+ status?: ToastStatus;
39
+ variant?: ToastVariant;
40
+ }
41
+
42
+ export interface ToastTitleProps
43
+ extends React.ComponentPropsWithoutRef<typeof RNText> {
44
+ className?: string;
45
+ }
46
+
47
+ export interface ToastDescriptionProps
48
+ extends React.ComponentPropsWithoutRef<typeof RNText> {
49
+ className?: string;
50
+ }
@@ -1,7 +1,7 @@
1
- import { useToastContext } from './toast-provider';
2
- import type { UseToastReturn } from './types';
3
-
4
- export function useToast(): UseToastReturn {
5
- const { show, close, closeAll } = useToastContext();
6
- return { show, close, closeAll };
7
- }
1
+ import { useToastContext } from './toast-provider';
2
+ import type { UseToastReturn } from './types';
3
+
4
+ export function useToast(): UseToastReturn {
5
+ const { show, close, closeAll } = useToastContext();
6
+ return { show, close, closeAll };
7
+ }
@@ -1,2 +1,2 @@
1
- export { Toggle } from './toggle';
2
- export type { ToggleProps, ToggleVariant, ToggleSize } from './types';
1
+ export { Toggle } from './toggle';
2
+ export type { ToggleProps, ToggleVariant, ToggleSize } from './types';
@@ -1,30 +1,30 @@
1
- import { tv } from 'tailwind-variants';
2
-
3
- export const toggleStyle = tv({
4
- base: 'items-center justify-center rounded-lg',
5
- variants: {
6
- variant: {
7
- outline: 'border border-outline-300 bg-transparent',
8
- solid: 'bg-background-100',
9
- },
10
- size: {
11
- sm: 'h-8 px-2.5',
12
- md: 'h-10 px-3',
13
- lg: 'h-12 px-4',
14
- },
15
- isPressed: {
16
- true: '',
17
- },
18
- isDisabled: {
19
- true: 'opacity-50',
20
- },
21
- },
22
- compoundVariants: [
23
- { variant: 'outline', isPressed: true, class: 'bg-primary-50 border-primary-500' },
24
- { variant: 'solid', isPressed: true, class: 'bg-primary-500' },
25
- ],
26
- defaultVariants: {
27
- variant: 'outline',
28
- size: 'md',
29
- },
30
- });
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ export const toggleStyle = tv({
4
+ base: 'items-center justify-center rounded-lg',
5
+ variants: {
6
+ variant: {
7
+ outline: 'border border-outline-300 bg-transparent',
8
+ solid: 'bg-background-100',
9
+ },
10
+ size: {
11
+ sm: 'h-8 px-2.5',
12
+ md: 'h-10 px-3',
13
+ lg: 'h-12 px-4',
14
+ },
15
+ isPressed: {
16
+ true: '',
17
+ },
18
+ isDisabled: {
19
+ true: 'opacity-50',
20
+ },
21
+ },
22
+ compoundVariants: [
23
+ { variant: 'outline', isPressed: true, class: 'bg-primary-50 border-primary-500' },
24
+ { variant: 'solid', isPressed: true, class: 'bg-primary-500' },
25
+ ],
26
+ defaultVariants: {
27
+ variant: 'outline',
28
+ size: 'md',
29
+ },
30
+ });
@@ -1,25 +1,25 @@
1
- import React from 'react';
2
- import { Pressable } from 'react-native';
3
- import type { ToggleProps } from './types';
4
- import { toggleStyle } from './styles';
5
-
6
- export const Toggle = React.forwardRef<
7
- React.ElementRef<typeof Pressable>,
8
- ToggleProps
9
- >(({ className, variant, size, isPressed = false, onPressedChange, isDisabled, children, ...props }, ref) => {
10
- return (
11
- <Pressable
12
- ref={ref}
13
- disabled={isDisabled}
14
- onPress={() => onPressedChange?.(!isPressed)}
15
- className={toggleStyle({ variant, size, isPressed, isDisabled, class: className })}
16
- accessibilityRole="button"
17
- accessibilityState={{ selected: isPressed }}
18
- {...props}
19
- >
20
- {children}
21
- </Pressable>
22
- );
23
- });
24
-
25
- Toggle.displayName = 'Toggle';
1
+ import React from 'react';
2
+ import { Pressable } from 'react-native';
3
+ import type { ToggleProps } from './types';
4
+ import { toggleStyle } from './styles';
5
+
6
+ export const Toggle = React.forwardRef<
7
+ React.ElementRef<typeof Pressable>,
8
+ ToggleProps
9
+ >(({ className, variant, size, isPressed = false, onPressedChange, isDisabled, children, ...props }, ref) => {
10
+ return (
11
+ <Pressable
12
+ ref={ref}
13
+ disabled={isDisabled}
14
+ onPress={() => onPressedChange?.(!isPressed)}
15
+ className={toggleStyle({ variant, size, isPressed, isDisabled, class: className })}
16
+ accessibilityRole="button"
17
+ accessibilityState={{ selected: isPressed }}
18
+ {...props}
19
+ >
20
+ {children}
21
+ </Pressable>
22
+ );
23
+ });
24
+
25
+ Toggle.displayName = 'Toggle';
@@ -1,15 +1,15 @@
1
- import type { Pressable } from 'react-native';
2
-
3
- export type ToggleVariant = 'outline' | 'solid';
4
- export type ToggleSize = 'sm' | 'md' | 'lg';
5
-
6
- export interface ToggleProps
7
- extends Omit<React.ComponentPropsWithoutRef<typeof Pressable>, 'children'> {
8
- className?: string;
9
- variant?: ToggleVariant;
10
- size?: ToggleSize;
11
- isPressed?: boolean;
12
- onPressedChange?: (pressed: boolean) => void;
13
- isDisabled?: boolean;
14
- children: React.ReactNode;
15
- }
1
+ import type { Pressable } from 'react-native';
2
+
3
+ export type ToggleVariant = 'outline' | 'solid';
4
+ export type ToggleSize = 'sm' | 'md' | 'lg';
5
+
6
+ export interface ToggleProps
7
+ extends Omit<React.ComponentPropsWithoutRef<typeof Pressable>, 'children'> {
8
+ className?: string;
9
+ variant?: ToggleVariant;
10
+ size?: ToggleSize;
11
+ isPressed?: boolean;
12
+ onPressedChange?: (pressed: boolean) => void;
13
+ isDisabled?: boolean;
14
+ children: React.ReactNode;
15
+ }
@@ -1,2 +1,2 @@
1
- export { ToggleGroup, ToggleGroupProvider, useToggleGroupContext, ToggleGroupItem } from './toggle-group';
2
- export type { ToggleGroupProps, ToggleGroupItemProps, ToggleGroupType, ToggleGroupVariant, ToggleGroupSize, ToggleGroupContextValue } from './types';
1
+ export { ToggleGroup, ToggleGroupProvider, useToggleGroupContext, ToggleGroupItem } from './toggle-group';
2
+ export type { ToggleGroupProps, ToggleGroupItemProps, ToggleGroupType, ToggleGroupVariant, ToggleGroupSize, ToggleGroupContextValue } from './types';
@@ -1,35 +1,35 @@
1
- import { tv } from 'tailwind-variants';
2
-
3
- export const toggleGroupStyle = tv({
4
- base: 'flex-row items-center rounded-lg border border-outline-200 overflow-hidden',
5
- variants: {},
6
- });
7
-
8
- export const toggleGroupItemStyle = tv({
9
- base: 'items-center justify-center border-r border-outline-200 last:border-r-0',
10
- variants: {
11
- variant: {
12
- outline: 'bg-transparent',
13
- solid: 'bg-background-50',
14
- },
15
- size: {
16
- sm: 'h-8 px-2.5',
17
- md: 'h-10 px-3',
18
- lg: 'h-12 px-4',
19
- },
20
- isSelected: {
21
- true: '',
22
- },
23
- isDisabled: {
24
- true: 'opacity-50',
25
- },
26
- },
27
- compoundVariants: [
28
- { variant: 'outline', isSelected: true, class: 'bg-primary-50' },
29
- { variant: 'solid', isSelected: true, class: 'bg-primary-500' },
30
- ],
31
- defaultVariants: {
32
- variant: 'outline',
33
- size: 'md',
34
- },
35
- });
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ export const toggleGroupStyle = tv({
4
+ base: 'flex-row items-center rounded-lg border border-outline-200 overflow-hidden',
5
+ variants: {},
6
+ });
7
+
8
+ export const toggleGroupItemStyle = tv({
9
+ base: 'items-center justify-center border-r border-outline-200 last:border-r-0',
10
+ variants: {
11
+ variant: {
12
+ outline: 'bg-transparent',
13
+ solid: 'bg-background-50',
14
+ },
15
+ size: {
16
+ sm: 'h-8 px-2.5',
17
+ md: 'h-10 px-3',
18
+ lg: 'h-12 px-4',
19
+ },
20
+ isSelected: {
21
+ true: '',
22
+ },
23
+ isDisabled: {
24
+ true: 'opacity-50',
25
+ },
26
+ },
27
+ compoundVariants: [
28
+ { variant: 'outline', isSelected: true, class: 'bg-primary-50' },
29
+ { variant: 'solid', isSelected: true, class: 'bg-primary-500' },
30
+ ],
31
+ defaultVariants: {
32
+ variant: 'outline',
33
+ size: 'md',
34
+ },
35
+ });
@@ -1,60 +1,60 @@
1
- import React from 'react';
2
- import { View, Pressable } from 'react-native';
3
- import { createComponentContext } from '../utils/create-context';
4
- import type { ToggleGroupProps, ToggleGroupItemProps, ToggleGroupContextValue } from './types';
5
- import { toggleGroupStyle, toggleGroupItemStyle } from './styles';
6
-
7
- export const [ToggleGroupProvider, useToggleGroupContext] =
8
- createComponentContext<ToggleGroupContextValue>('ToggleGroup');
9
-
10
- export const ToggleGroup = React.forwardRef<
11
- React.ElementRef<typeof View>,
12
- ToggleGroupProps
13
- >(({ className, type = 'single', value, onValueChange, variant = 'outline', size = 'md', children, ...props }, ref) => {
14
- const normalizedValue = Array.isArray(value) ? value : value ? [value] : [];
15
-
16
- const handleValueChange = (itemValue: string) => {
17
- if (type === 'single') {
18
- onValueChange?.(itemValue);
19
- } else {
20
- const newValue = normalizedValue.includes(itemValue)
21
- ? normalizedValue.filter((v) => v !== itemValue)
22
- : [...normalizedValue, itemValue];
23
- onValueChange?.(newValue);
24
- }
25
- };
26
-
27
- return (
28
- <ToggleGroupProvider value={{ type, value: normalizedValue, onValueChange: handleValueChange, variant, size }}>
29
- <View ref={ref} className={toggleGroupStyle({ class: className })} {...props}>
30
- {children}
31
- </View>
32
- </ToggleGroupProvider>
33
- );
34
- });
35
-
36
- ToggleGroup.displayName = 'ToggleGroup';
37
-
38
- export const ToggleGroupItem = React.forwardRef<
39
- React.ElementRef<typeof Pressable>,
40
- ToggleGroupItemProps
41
- >(({ className, value, isDisabled, children, ...props }, ref) => {
42
- const { value: groupValue, onValueChange, variant, size } = useToggleGroupContext();
43
- const isSelected = groupValue.includes(value);
44
-
45
- return (
46
- <Pressable
47
- ref={ref}
48
- disabled={isDisabled}
49
- onPress={() => onValueChange(value)}
50
- className={toggleGroupItemStyle({ variant, size, isSelected, isDisabled, class: className })}
51
- accessibilityRole="button"
52
- accessibilityState={{ selected: isSelected }}
53
- {...props}
54
- >
55
- {children}
56
- </Pressable>
57
- );
58
- });
59
-
60
- ToggleGroupItem.displayName = 'ToggleGroupItem';
1
+ import React from 'react';
2
+ import { View, Pressable } from 'react-native';
3
+ import { createComponentContext } from '../utils/create-context';
4
+ import type { ToggleGroupProps, ToggleGroupItemProps, ToggleGroupContextValue } from './types';
5
+ import { toggleGroupStyle, toggleGroupItemStyle } from './styles';
6
+
7
+ export const [ToggleGroupProvider, useToggleGroupContext] =
8
+ createComponentContext<ToggleGroupContextValue>('ToggleGroup');
9
+
10
+ export const ToggleGroup = React.forwardRef<
11
+ React.ElementRef<typeof View>,
12
+ ToggleGroupProps
13
+ >(({ className, type = 'single', value, onValueChange, variant = 'outline', size = 'md', children, ...props }, ref) => {
14
+ const normalizedValue = Array.isArray(value) ? value : value ? [value] : [];
15
+
16
+ const handleValueChange = (itemValue: string) => {
17
+ if (type === 'single') {
18
+ onValueChange?.(itemValue);
19
+ } else {
20
+ const newValue = normalizedValue.includes(itemValue)
21
+ ? normalizedValue.filter((v) => v !== itemValue)
22
+ : [...normalizedValue, itemValue];
23
+ onValueChange?.(newValue);
24
+ }
25
+ };
26
+
27
+ return (
28
+ <ToggleGroupProvider value={{ type, value: normalizedValue, onValueChange: handleValueChange, variant, size }}>
29
+ <View ref={ref} className={toggleGroupStyle({ class: className })} {...props}>
30
+ {children}
31
+ </View>
32
+ </ToggleGroupProvider>
33
+ );
34
+ });
35
+
36
+ ToggleGroup.displayName = 'ToggleGroup';
37
+
38
+ export const ToggleGroupItem = React.forwardRef<
39
+ React.ElementRef<typeof Pressable>,
40
+ ToggleGroupItemProps
41
+ >(({ className, value, isDisabled, children, ...props }, ref) => {
42
+ const { value: groupValue, onValueChange, variant, size } = useToggleGroupContext();
43
+ const isSelected = groupValue.includes(value);
44
+
45
+ return (
46
+ <Pressable
47
+ ref={ref}
48
+ disabled={isDisabled}
49
+ onPress={() => onValueChange(value)}
50
+ className={toggleGroupItemStyle({ variant, size, isSelected, isDisabled, class: className })}
51
+ accessibilityRole="button"
52
+ accessibilityState={{ selected: isSelected }}
53
+ {...props}
54
+ >
55
+ {children}
56
+ </Pressable>
57
+ );
58
+ });
59
+
60
+ ToggleGroupItem.displayName = 'ToggleGroupItem';
@@ -1,29 +1,29 @@
1
- import type { View, Pressable } from 'react-native';
2
-
3
- export type ToggleGroupType = 'single' | 'multiple';
4
- export type ToggleGroupVariant = 'outline' | 'solid';
5
- export type ToggleGroupSize = 'sm' | 'md' | 'lg';
6
-
7
- export interface ToggleGroupContextValue {
8
- type: ToggleGroupType;
9
- value: string[];
10
- onValueChange: (value: string) => void;
11
- variant: ToggleGroupVariant;
12
- size: ToggleGroupSize;
13
- }
14
-
15
- export interface ToggleGroupProps extends React.ComponentPropsWithoutRef<typeof View> {
16
- className?: string;
17
- type?: ToggleGroupType;
18
- value?: string | string[];
19
- onValueChange?: (value: string | string[]) => void;
20
- variant?: ToggleGroupVariant;
21
- size?: ToggleGroupSize;
22
- }
23
-
24
- export interface ToggleGroupItemProps extends Omit<React.ComponentPropsWithoutRef<typeof Pressable>, 'children'> {
25
- className?: string;
26
- value: string;
27
- isDisabled?: boolean;
28
- children: React.ReactNode;
29
- }
1
+ import type { View, Pressable } from 'react-native';
2
+
3
+ export type ToggleGroupType = 'single' | 'multiple';
4
+ export type ToggleGroupVariant = 'outline' | 'solid';
5
+ export type ToggleGroupSize = 'sm' | 'md' | 'lg';
6
+
7
+ export interface ToggleGroupContextValue {
8
+ type: ToggleGroupType;
9
+ value: string[];
10
+ onValueChange: (value: string) => void;
11
+ variant: ToggleGroupVariant;
12
+ size: ToggleGroupSize;
13
+ }
14
+
15
+ export interface ToggleGroupProps extends React.ComponentPropsWithoutRef<typeof View> {
16
+ className?: string;
17
+ type?: ToggleGroupType;
18
+ value?: string | string[];
19
+ onValueChange?: (value: string | string[]) => void;
20
+ variant?: ToggleGroupVariant;
21
+ size?: ToggleGroupSize;
22
+ }
23
+
24
+ export interface ToggleGroupItemProps extends Omit<React.ComponentPropsWithoutRef<typeof Pressable>, 'children'> {
25
+ className?: string;
26
+ value: string;
27
+ isDisabled?: boolean;
28
+ children: React.ReactNode;
29
+ }
@@ -1,11 +1,11 @@
1
- export { Tooltip } from './tooltip';
2
- export { TooltipContent } from './tooltip-content';
3
- export { TooltipText } from './tooltip-text';
4
-
5
- export type {
6
- TooltipProps,
7
- TooltipContentProps,
8
- TooltipTextProps,
9
- TooltipPlacement,
10
- TooltipContextValue,
11
- } from './types';
1
+ export { Tooltip } from './tooltip';
2
+ export { TooltipContent } from './tooltip-content';
3
+ export { TooltipText } from './tooltip-text';
4
+
5
+ export type {
6
+ TooltipProps,
7
+ TooltipContentProps,
8
+ TooltipTextProps,
9
+ TooltipPlacement,
10
+ TooltipContextValue,
11
+ } from './types';
@@ -1,9 +1,9 @@
1
- import { tv } from 'tailwind-variants';
2
-
3
- export const tooltipContentStyle = tv({
4
- base: 'bg-background-950 rounded-md px-3 py-1.5 shadow-hard-2 min-w-max',
5
- });
6
-
7
- export const tooltipTextStyle = tv({
8
- base: 'text-typography-0 text-xs',
9
- });
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ export const tooltipContentStyle = tv({
4
+ base: 'bg-background-950 rounded-md px-3 py-1.5 shadow-hard-2 min-w-max',
5
+ });
6
+
7
+ export const tooltipTextStyle = tv({
8
+ base: 'text-typography-0 text-xs',
9
+ });