@wireservers-ui/react-natives 1.0.0 → 1.0.1-rc1

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 (402) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +214 -98
  3. package/bin/cli.js +356 -0
  4. package/package.json +27 -48
  5. package/src/accordion/accordion-content.tsx +30 -30
  6. package/src/accordion/accordion-icon.tsx +54 -54
  7. package/src/accordion/accordion-item.tsx +37 -37
  8. package/src/accordion/accordion-title-text.tsx +24 -24
  9. package/src/accordion/accordion-trigger.tsx +38 -38
  10. package/src/accordion/accordion.tsx +91 -91
  11. package/src/accordion/index.ts +24 -24
  12. package/src/accordion/styles.ts +74 -74
  13. package/src/accordion/types.ts +56 -56
  14. package/src/actionsheet/actionsheet-backdrop.tsx +23 -23
  15. package/src/actionsheet/actionsheet-content.tsx +19 -19
  16. package/src/actionsheet/actionsheet-drag-indicator-wrapper.tsx +19 -19
  17. package/src/actionsheet/actionsheet-drag-indicator.tsx +19 -19
  18. package/src/actionsheet/actionsheet-item-text.tsx +19 -19
  19. package/src/actionsheet/actionsheet-item.tsx +20 -20
  20. package/src/actionsheet/actionsheet-scroll-view.tsx +12 -12
  21. package/src/actionsheet/actionsheet.tsx +45 -45
  22. package/src/actionsheet/index.ts +20 -20
  23. package/src/actionsheet/styles.ts +25 -25
  24. package/src/actionsheet/types.ts +49 -49
  25. package/src/alert/alert-body.tsx +19 -19
  26. package/src/alert/alert-close-button.tsx +23 -23
  27. package/src/alert/alert-icon.tsx +40 -40
  28. package/src/alert/alert-text.tsx +22 -22
  29. package/src/alert/alert.tsx +33 -33
  30. package/src/alert/index.ts +15 -15
  31. package/src/alert/styles.ts +112 -112
  32. package/src/alert/types.ts +36 -36
  33. package/src/alert-dialog/alert-dialog.tsx +54 -54
  34. package/src/alert-dialog/index.ts +2 -2
  35. package/src/alert-dialog/styles.ts +40 -40
  36. package/src/alert-dialog/types.ts +40 -40
  37. package/src/aspect-ratio/aspect-ratio.tsx +20 -20
  38. package/src/aspect-ratio/index.ts +2 -2
  39. package/src/aspect-ratio/styles.ts +6 -6
  40. package/src/aspect-ratio/types.ts +7 -7
  41. package/src/avatar/avatar-badge.tsx +22 -22
  42. package/src/avatar/avatar-fallback-text.tsx +33 -33
  43. package/src/avatar/avatar-group.tsx +53 -53
  44. package/src/avatar/avatar-image.tsx +21 -21
  45. package/src/avatar/avatar.tsx +27 -27
  46. package/src/avatar/index.ts +14 -14
  47. package/src/avatar/styles.ts +94 -94
  48. package/src/avatar/types.ts +35 -35
  49. package/src/badge/badge-icon.tsx +20 -20
  50. package/src/badge/badge-text.tsx +24 -24
  51. package/src/badge/badge.tsx +39 -39
  52. package/src/badge/index.ts +11 -11
  53. package/src/badge/styles.ts +175 -175
  54. package/src/badge/types.ts +37 -37
  55. package/src/blockquote/blockquote.tsx +21 -21
  56. package/src/blockquote/index.ts +2 -2
  57. package/src/blockquote/styles.ts +11 -11
  58. package/src/blockquote/types.ts +6 -6
  59. package/src/box/box.tsx +19 -19
  60. package/src/box/index.ts +2 -2
  61. package/src/box/styles.ts +6 -6
  62. package/src/box/types.ts +6 -6
  63. package/src/breadcrumb/breadcrumb-item.tsx +20 -20
  64. package/src/breadcrumb/breadcrumb-link.tsx +20 -20
  65. package/src/breadcrumb/breadcrumb-text.tsx +19 -19
  66. package/src/breadcrumb/breadcrumb.tsx +43 -43
  67. package/src/breadcrumb/index.ts +12 -12
  68. package/src/breadcrumb/styles.ts +36 -36
  69. package/src/breadcrumb/types.ts +33 -33
  70. package/src/button/button-group.tsx +35 -35
  71. package/src/button/button-icon.tsx +37 -37
  72. package/src/button/button-spinner.tsx +12 -12
  73. package/src/button/button-text.tsx +27 -27
  74. package/src/button/button.tsx +42 -42
  75. package/src/button/index.ts +19 -19
  76. package/src/button/styles.ts +250 -250
  77. package/src/button/types.ts +67 -67
  78. package/src/calendar/calendar-day-cell.tsx +67 -67
  79. package/src/calendar/calendar-day-view.tsx +66 -66
  80. package/src/calendar/calendar-event.tsx +59 -59
  81. package/src/calendar/calendar-header.tsx +60 -60
  82. package/src/calendar/calendar-horizontal-view.tsx +372 -372
  83. package/src/calendar/calendar-legend.tsx +41 -41
  84. package/src/calendar/calendar-month-view.tsx +47 -47
  85. package/src/calendar/calendar-vertical-view.tsx +395 -395
  86. package/src/calendar/calendar-view-switcher.tsx +65 -65
  87. package/src/calendar/calendar-week-view.tsx +52 -52
  88. package/src/calendar/calendar.tsx +74 -74
  89. package/src/calendar/index.ts +27 -27
  90. package/src/calendar/styles.ts +367 -367
  91. package/src/calendar/types.ts +101 -101
  92. package/src/calendar/use-calendar.ts +170 -170
  93. package/src/calendar/utils.ts +278 -278
  94. package/src/card/card-body.tsx +22 -22
  95. package/src/card/card-footer.tsx +19 -19
  96. package/src/card/card-header.tsx +22 -22
  97. package/src/card/card.tsx +27 -27
  98. package/src/card/index.ts +13 -13
  99. package/src/card/styles.ts +54 -54
  100. package/src/card/types.ts +31 -31
  101. package/src/carousel/carousel.tsx +436 -436
  102. package/src/carousel/index.ts +2 -2
  103. package/src/carousel/styles.ts +21 -21
  104. package/src/carousel/types.ts +41 -41
  105. package/src/center/center.tsx +19 -19
  106. package/src/center/index.ts +2 -2
  107. package/src/center/styles.ts +6 -6
  108. package/src/center/types.ts +6 -6
  109. package/src/checkbox/checkbox-group.tsx +63 -63
  110. package/src/checkbox/checkbox-icon.tsx +35 -35
  111. package/src/checkbox/checkbox-indicator.tsx +30 -30
  112. package/src/checkbox/checkbox-label.tsx +24 -24
  113. package/src/checkbox/checkbox.tsx +86 -86
  114. package/src/checkbox/index.ts +14 -14
  115. package/src/checkbox/styles.ts +69 -69
  116. package/src/checkbox/types.ts +55 -55
  117. package/src/circular-progress/circular-progress.tsx +82 -82
  118. package/src/circular-progress/index.ts +2 -2
  119. package/src/circular-progress/styles.ts +31 -31
  120. package/src/circular-progress/types.ts +18 -18
  121. package/src/code/code.tsx +36 -36
  122. package/src/code/index.ts +2 -2
  123. package/src/code/styles.ts +25 -25
  124. package/src/code/types.ts +13 -13
  125. package/src/collapsible/collapsible.tsx +58 -58
  126. package/src/collapsible/index.ts +2 -2
  127. package/src/collapsible/styles.ts +5 -5
  128. package/src/collapsible/types.ts +21 -21
  129. package/src/color-picker/color-picker-box.tsx +115 -115
  130. package/src/color-picker/color-picker-slider.tsx +98 -98
  131. package/src/color-picker/color-picker.tsx +162 -162
  132. package/src/color-picker/color-utils.ts +215 -215
  133. package/src/color-picker/index.ts +34 -34
  134. package/src/color-picker/styles.ts +32 -32
  135. package/src/color-picker/types.ts +49 -49
  136. package/src/color-picker/use-pointer-drag.ts +80 -80
  137. package/src/container/container.tsx +19 -19
  138. package/src/container/index.ts +2 -2
  139. package/src/container/styles.ts +21 -21
  140. package/src/container/types.ts +10 -10
  141. package/src/date-picker/date-picker.tsx +136 -136
  142. package/src/date-picker/index.ts +15 -15
  143. package/src/date-picker/styles.ts +18 -18
  144. package/src/date-picker/types.ts +33 -33
  145. package/src/divider/divider.tsx +21 -21
  146. package/src/divider/index.ts +2 -2
  147. package/src/divider/styles.ts +14 -14
  148. package/src/divider/types.ts +7 -7
  149. package/src/drawer/drawer-backdrop.tsx +23 -23
  150. package/src/drawer/drawer-body.tsx +19 -19
  151. package/src/drawer/drawer-close-button.tsx +29 -29
  152. package/src/drawer/drawer-content.tsx +142 -142
  153. package/src/drawer/drawer-footer.tsx +19 -19
  154. package/src/drawer/drawer-header.tsx +19 -19
  155. package/src/drawer/drawer.tsx +54 -54
  156. package/src/drawer/index.ts +22 -22
  157. package/src/drawer/styles.ts +36 -36
  158. package/src/drawer/types.ts +62 -62
  159. package/src/empty/empty.tsx +53 -53
  160. package/src/empty/index.ts +2 -2
  161. package/src/empty/styles.ts +26 -26
  162. package/src/empty/types.ts +22 -22
  163. package/src/fab/fab-icon.tsx +20 -20
  164. package/src/fab/fab-label.tsx +22 -22
  165. package/src/fab/fab.tsx +45 -45
  166. package/src/fab/index.ts +11 -11
  167. package/src/fab/styles.ts +57 -57
  168. package/src/fab/types.ts +33 -33
  169. package/src/form-control/form-control-error-icon.tsx +25 -25
  170. package/src/form-control/form-control-error-message.tsx +40 -40
  171. package/src/form-control/form-control-helper-text.tsx +25 -25
  172. package/src/form-control/form-control-label-text.tsx +25 -25
  173. package/src/form-control/form-control-label.tsx +36 -36
  174. package/src/form-control/form-control.tsx +46 -46
  175. package/src/form-control/index.ts +20 -20
  176. package/src/form-control/styles.ts +105 -105
  177. package/src/form-control/types.ts +45 -45
  178. package/src/heading/heading.tsx +21 -21
  179. package/src/heading/index.ts +2 -2
  180. package/src/heading/styles.ts +24 -24
  181. package/src/heading/types.ts +19 -19
  182. package/src/icon/icon.tsx +21 -21
  183. package/src/icon/index.ts +2 -2
  184. package/src/icon/styles.ts +18 -18
  185. package/src/icon/types.ts +8 -8
  186. package/src/icon-button/icon-button.tsx +23 -23
  187. package/src/icon-button/index.ts +2 -2
  188. package/src/icon-button/styles.ts +78 -78
  189. package/src/icon-button/types.ts +15 -15
  190. package/src/image/image.tsx +20 -20
  191. package/src/image/index.ts +2 -2
  192. package/src/image/styles.ts +28 -28
  193. package/src/image/types.ts +11 -11
  194. package/src/index.ts +1039 -1039
  195. package/src/input/index.ts +13 -13
  196. package/src/input/input-field.tsx +35 -35
  197. package/src/input/input-icon.tsx +25 -25
  198. package/src/input/input-slot.tsx +24 -24
  199. package/src/input/input.tsx +73 -73
  200. package/src/input/styles.ts +90 -90
  201. package/src/input/types.ts +39 -39
  202. package/src/kbd/index.ts +2 -2
  203. package/src/kbd/kbd.tsx +21 -21
  204. package/src/kbd/styles.ts +11 -11
  205. package/src/kbd/types.ts +7 -7
  206. package/src/link/index.ts +4 -4
  207. package/src/link/link-text.tsx +19 -19
  208. package/src/link/link.tsx +31 -31
  209. package/src/link/styles.ts +19 -19
  210. package/src/link/types.ts +13 -13
  211. package/src/list/index.ts +2 -2
  212. package/src/list/list.tsx +55 -55
  213. package/src/list/styles.ts +8 -8
  214. package/src/list/types.ts +17 -17
  215. package/src/menu/index.ts +2 -2
  216. package/src/menu/menu.tsx +99 -99
  217. package/src/menu/styles.ts +14 -14
  218. package/src/menu/types.ts +30 -30
  219. package/src/modal/index.ts +18 -18
  220. package/src/modal/modal-backdrop.tsx +23 -23
  221. package/src/modal/modal-body.tsx +19 -19
  222. package/src/modal/modal-close-button.tsx +29 -29
  223. package/src/modal/modal-content.tsx +22 -22
  224. package/src/modal/modal-footer.tsx +19 -19
  225. package/src/modal/modal-header.tsx +19 -19
  226. package/src/modal/modal.tsx +50 -50
  227. package/src/modal/styles.ts +37 -37
  228. package/src/modal/types.ts +49 -49
  229. package/src/nativewind-env.d.ts +1 -1
  230. package/src/number-input/index.ts +18 -18
  231. package/src/number-input/number-input.tsx +161 -161
  232. package/src/number-input/styles.ts +35 -35
  233. package/src/number-input/types.ts +44 -44
  234. package/src/overlay/index.ts +2 -2
  235. package/src/overlay/overlay.tsx +21 -21
  236. package/src/overlay/styles.ts +6 -6
  237. package/src/overlay/types.ts +7 -7
  238. package/src/pagination/index.ts +2 -2
  239. package/src/pagination/pagination.tsx +58 -58
  240. package/src/pagination/styles.ts +27 -27
  241. package/src/pagination/types.ts +19 -19
  242. package/src/password-input/index.ts +14 -14
  243. package/src/password-input/password-input.tsx +79 -79
  244. package/src/password-input/styles.ts +25 -25
  245. package/src/password-input/types.ts +24 -24
  246. package/src/pin-input/index.ts +12 -12
  247. package/src/pin-input/pin-input.tsx +96 -96
  248. package/src/pin-input/styles.ts +16 -16
  249. package/src/pin-input/types.ts +26 -26
  250. package/src/popover/index.ts +2 -2
  251. package/src/popover/popover.tsx +98 -98
  252. package/src/popover/styles.ts +31 -31
  253. package/src/popover/types.ts +46 -46
  254. package/src/portal/index.ts +2 -2
  255. package/src/portal/portal.tsx +8 -8
  256. package/src/portal/styles.ts +2 -2
  257. package/src/portal/types.ts +3 -3
  258. package/src/pressable/index.ts +2 -2
  259. package/src/pressable/pressable.tsx +20 -20
  260. package/src/pressable/styles.ts +10 -10
  261. package/src/pressable/types.ts +6 -6
  262. package/src/progress/index.ts +9 -9
  263. package/src/progress/progress-filled-track.tsx +26 -26
  264. package/src/progress/progress.tsx +52 -52
  265. package/src/progress/styles.ts +34 -34
  266. package/src/progress/types.ts +28 -28
  267. package/src/radio/index.ts +14 -14
  268. package/src/radio/radio-group.tsx +61 -61
  269. package/src/radio/radio-icon.tsx +24 -24
  270. package/src/radio/radio-indicator.tsx +30 -30
  271. package/src/radio/radio-label.tsx +24 -24
  272. package/src/radio/radio.tsx +68 -68
  273. package/src/radio/styles.ts +69 -69
  274. package/src/radio/types.ts +51 -51
  275. package/src/rating/index.ts +7 -7
  276. package/src/rating/rating.tsx +93 -93
  277. package/src/rating/styles.ts +13 -13
  278. package/src/rating/types.ts +29 -29
  279. package/src/search-input/index.ts +16 -16
  280. package/src/search-input/search-input.tsx +119 -119
  281. package/src/search-input/styles.ts +28 -28
  282. package/src/search-input/types.ts +31 -31
  283. package/src/segmented-control/index.ts +2 -2
  284. package/src/segmented-control/segmented-control.tsx +34 -34
  285. package/src/segmented-control/styles.ts +22 -22
  286. package/src/segmented-control/types.ts +22 -22
  287. package/src/select/index.ts +28 -28
  288. package/src/select/select-backdrop.tsx +25 -25
  289. package/src/select/select-content.tsx +49 -49
  290. package/src/select/select-drag-indicator.tsx +19 -19
  291. package/src/select/select-icon.tsx +25 -25
  292. package/src/select/select-input.tsx +32 -32
  293. package/src/select/select-item-text.tsx +30 -30
  294. package/src/select/select-item.tsx +72 -72
  295. package/src/select/select-portal.tsx +22 -22
  296. package/src/select/select-scroll-view.tsx +22 -22
  297. package/src/select/select-trigger.tsx +64 -64
  298. package/src/select/select.tsx +101 -101
  299. package/src/select/styles.ts +114 -114
  300. package/src/select/types.ts +92 -92
  301. package/src/skeleton/index.ts +2 -2
  302. package/src/skeleton/skeleton.tsx +29 -29
  303. package/src/skeleton/styles.ts +14 -14
  304. package/src/skeleton/types.ts +12 -12
  305. package/src/slider/index.ts +12 -12
  306. package/src/slider/slider-filled-track.tsx +31 -31
  307. package/src/slider/slider-thumb.tsx +52 -52
  308. package/src/slider/slider-track.tsx +154 -154
  309. package/src/slider/slider.tsx +193 -193
  310. package/src/slider/styles.ts +71 -71
  311. package/src/slider/types.ts +47 -47
  312. package/src/snackbar/index.ts +2 -2
  313. package/src/snackbar/snackbar.tsx +39 -39
  314. package/src/snackbar/styles.ts +29 -29
  315. package/src/snackbar/types.ts +21 -21
  316. package/src/spinner/index.ts +2 -2
  317. package/src/spinner/spinner.tsx +29 -29
  318. package/src/spinner/styles.ts +15 -15
  319. package/src/spinner/types.ts +10 -10
  320. package/src/stack/index.ts +2 -2
  321. package/src/stack/stack.tsx +49 -49
  322. package/src/stack/styles.ts +25 -25
  323. package/src/stack/types.ts +15 -15
  324. package/src/stat/index.ts +2 -2
  325. package/src/stat/stat.tsx +48 -48
  326. package/src/stat/styles.ts +34 -34
  327. package/src/stat/types.ts +24 -24
  328. package/src/stepper/index.ts +2 -2
  329. package/src/stepper/stepper.tsx +95 -95
  330. package/src/stepper/styles.ts +49 -49
  331. package/src/stepper/types.ts +20 -20
  332. package/src/switch/index.ts +2 -2
  333. package/src/switch/styles.ts +24 -24
  334. package/src/switch/switch.tsx +67 -67
  335. package/src/switch/types.ts +23 -23
  336. package/src/table/index.ts +2 -2
  337. package/src/table/styles.ts +12 -12
  338. package/src/table/table.tsx +52 -52
  339. package/src/table/types.ts +10 -10
  340. package/src/tabs/index.ts +18 -18
  341. package/src/tabs/styles.ts +113 -113
  342. package/src/tabs/tab-list.tsx +29 -29
  343. package/src/tabs/tab-panel.tsx +29 -29
  344. package/src/tabs/tab-panels.tsx +21 -21
  345. package/src/tabs/tab-text.tsx +26 -26
  346. package/src/tabs/tab.tsx +56 -56
  347. package/src/tabs/tabs.tsx +71 -71
  348. package/src/tabs/types.ts +53 -53
  349. package/src/tag/index.ts +14 -14
  350. package/src/tag/styles.ts +115 -115
  351. package/src/tag/tag-close-button.tsx +26 -26
  352. package/src/tag/tag-icon.tsx +20 -20
  353. package/src/tag/tag-text.tsx +22 -22
  354. package/src/tag/tag.tsx +40 -40
  355. package/src/tag/types.ts +33 -33
  356. package/src/tags-input/index.ts +18 -18
  357. package/src/tags-input/styles.ts +29 -29
  358. package/src/tags-input/tags-input.tsx +149 -149
  359. package/src/tags-input/types.ts +37 -37
  360. package/src/text/index.ts +2 -2
  361. package/src/text/styles.ts +54 -54
  362. package/src/text/text.tsx +51 -51
  363. package/src/text/types.ts +36 -36
  364. package/src/textarea/index.ts +2 -2
  365. package/src/textarea/styles.ts +37 -37
  366. package/src/textarea/textarea.tsx +68 -68
  367. package/src/textarea/types.ts +14 -14
  368. package/src/timeline/index.ts +2 -2
  369. package/src/timeline/styles.ts +57 -57
  370. package/src/timeline/timeline.tsx +52 -52
  371. package/src/timeline/types.ts +30 -30
  372. package/src/toast/index.ts +17 -17
  373. package/src/toast/styles.ts +118 -118
  374. package/src/toast/toast-description.tsx +22 -22
  375. package/src/toast/toast-provider.tsx +136 -136
  376. package/src/toast/toast-title.tsx +22 -22
  377. package/src/toast/toast.tsx +43 -43
  378. package/src/toast/types.ts +50 -50
  379. package/src/toast/use-toast.ts +7 -7
  380. package/src/toggle/index.ts +2 -2
  381. package/src/toggle/styles.ts +30 -30
  382. package/src/toggle/toggle.tsx +25 -25
  383. package/src/toggle/types.ts +15 -15
  384. package/src/toggle-group/index.ts +2 -2
  385. package/src/toggle-group/styles.ts +35 -35
  386. package/src/toggle-group/toggle-group.tsx +60 -60
  387. package/src/toggle-group/types.ts +29 -29
  388. package/src/tooltip/index.ts +11 -11
  389. package/src/tooltip/styles.ts +9 -9
  390. package/src/tooltip/tooltip-content.tsx +19 -19
  391. package/src/tooltip/tooltip-text.tsx +19 -19
  392. package/src/tooltip/tooltip.tsx +116 -116
  393. package/src/tooltip/types.ts +35 -35
  394. package/src/utils/brand.ts +5 -5
  395. package/src/utils/create-context.ts +17 -17
  396. package/src/utils/index.ts +8 -8
  397. package/src/utils/types.ts +20 -20
  398. package/src/visually-hidden/index.ts +2 -2
  399. package/src/visually-hidden/styles.ts +6 -6
  400. package/src/visually-hidden/types.ts +6 -6
  401. package/src/visually-hidden/visually-hidden.tsx +22 -22
  402. package/tailwind-preset.js +203 -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
+ });