@wireservers-ui/react-natives 1.0.0-rc.3 → 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 +28 -49
  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,92 +1,92 @@
1
- import type { View, Text as RNText, Pressable, ScrollView } from 'react-native';
2
-
3
- export type SelectSize = 'sm' | 'md' | 'lg' | 'xl';
4
- export type SelectVariant = 'outline' | 'filled' | 'underlined' | 'rounded';
5
-
6
- export interface TriggerLayout {
7
- pageX: number;
8
- pageY: number;
9
- width: number;
10
- height: number;
11
- }
12
-
13
- export interface SelectContextValue {
14
- isOpen: boolean;
15
- selectedValue: string | null;
16
- selectedLabel: string;
17
- size: SelectSize;
18
- variant: SelectVariant;
19
- isDisabled: boolean;
20
- isInvalid: boolean;
21
- triggerLayout: TriggerLayout | null;
22
- onOpen: () => void;
23
- onClose: () => void;
24
- onValueChange: (value: string, label: string) => void;
25
- setTriggerLayout: (layout: TriggerLayout) => void;
26
- }
27
-
28
- export interface SelectProps {
29
- className?: string;
30
- selectedValue?: string;
31
- defaultValue?: string;
32
- onValueChange?: (value: string) => void;
33
- size?: SelectSize;
34
- variant?: SelectVariant;
35
- isDisabled?: boolean;
36
- isInvalid?: boolean;
37
- placeholder?: string;
38
- children: React.ReactNode;
39
- }
40
-
41
- export interface SelectTriggerProps
42
- extends React.ComponentPropsWithoutRef<typeof Pressable> {
43
- className?: string;
44
- }
45
-
46
- export interface SelectInputProps
47
- extends React.ComponentPropsWithoutRef<typeof RNText> {
48
- className?: string;
49
- placeholder?: string;
50
- }
51
-
52
- export interface SelectIconProps {
53
- as?: React.ElementType;
54
- className?: string;
55
- }
56
-
57
- export interface SelectPortalProps {
58
- children: React.ReactNode;
59
- }
60
-
61
- export interface SelectBackdropProps
62
- extends React.ComponentPropsWithoutRef<typeof Pressable> {
63
- className?: string;
64
- }
65
-
66
- export interface SelectContentProps
67
- extends React.ComponentPropsWithoutRef<typeof View> {
68
- className?: string;
69
- }
70
-
71
- export interface SelectItemProps
72
- extends React.ComponentPropsWithoutRef<typeof Pressable> {
73
- className?: string;
74
- label: string;
75
- value: string;
76
- isDisabled?: boolean;
77
- }
78
-
79
- export interface SelectItemTextProps
80
- extends React.ComponentPropsWithoutRef<typeof RNText> {
81
- className?: string;
82
- }
83
-
84
- export interface SelectDragIndicatorProps
85
- extends React.ComponentPropsWithoutRef<typeof View> {
86
- className?: string;
87
- }
88
-
89
- export interface SelectScrollViewProps
90
- extends React.ComponentPropsWithoutRef<typeof ScrollView> {
91
- className?: string;
92
- }
1
+ import type { View, Text as RNText, Pressable, ScrollView } from 'react-native';
2
+
3
+ export type SelectSize = 'sm' | 'md' | 'lg' | 'xl';
4
+ export type SelectVariant = 'outline' | 'filled' | 'underlined' | 'rounded';
5
+
6
+ export interface TriggerLayout {
7
+ pageX: number;
8
+ pageY: number;
9
+ width: number;
10
+ height: number;
11
+ }
12
+
13
+ export interface SelectContextValue {
14
+ isOpen: boolean;
15
+ selectedValue: string | null;
16
+ selectedLabel: string;
17
+ size: SelectSize;
18
+ variant: SelectVariant;
19
+ isDisabled: boolean;
20
+ isInvalid: boolean;
21
+ triggerLayout: TriggerLayout | null;
22
+ onOpen: () => void;
23
+ onClose: () => void;
24
+ onValueChange: (value: string, label: string) => void;
25
+ setTriggerLayout: (layout: TriggerLayout) => void;
26
+ }
27
+
28
+ export interface SelectProps {
29
+ className?: string;
30
+ selectedValue?: string;
31
+ defaultValue?: string;
32
+ onValueChange?: (value: string) => void;
33
+ size?: SelectSize;
34
+ variant?: SelectVariant;
35
+ isDisabled?: boolean;
36
+ isInvalid?: boolean;
37
+ placeholder?: string;
38
+ children: React.ReactNode;
39
+ }
40
+
41
+ export interface SelectTriggerProps
42
+ extends React.ComponentPropsWithoutRef<typeof Pressable> {
43
+ className?: string;
44
+ }
45
+
46
+ export interface SelectInputProps
47
+ extends React.ComponentPropsWithoutRef<typeof RNText> {
48
+ className?: string;
49
+ placeholder?: string;
50
+ }
51
+
52
+ export interface SelectIconProps {
53
+ as?: React.ElementType;
54
+ className?: string;
55
+ }
56
+
57
+ export interface SelectPortalProps {
58
+ children: React.ReactNode;
59
+ }
60
+
61
+ export interface SelectBackdropProps
62
+ extends React.ComponentPropsWithoutRef<typeof Pressable> {
63
+ className?: string;
64
+ }
65
+
66
+ export interface SelectContentProps
67
+ extends React.ComponentPropsWithoutRef<typeof View> {
68
+ className?: string;
69
+ }
70
+
71
+ export interface SelectItemProps
72
+ extends React.ComponentPropsWithoutRef<typeof Pressable> {
73
+ className?: string;
74
+ label: string;
75
+ value: string;
76
+ isDisabled?: boolean;
77
+ }
78
+
79
+ export interface SelectItemTextProps
80
+ extends React.ComponentPropsWithoutRef<typeof RNText> {
81
+ className?: string;
82
+ }
83
+
84
+ export interface SelectDragIndicatorProps
85
+ extends React.ComponentPropsWithoutRef<typeof View> {
86
+ className?: string;
87
+ }
88
+
89
+ export interface SelectScrollViewProps
90
+ extends React.ComponentPropsWithoutRef<typeof ScrollView> {
91
+ className?: string;
92
+ }
@@ -1,2 +1,2 @@
1
- export { Skeleton } from './skeleton';
2
- export type { SkeletonProps, SkeletonVariant } from './types';
1
+ export { Skeleton } from './skeleton';
2
+ export type { SkeletonProps, SkeletonVariant } from './types';
@@ -1,29 +1,29 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
- import type { SkeletonProps } from './types';
4
- import { skeletonStyle, SKELETON_VARIANT_STYLE } from './styles';
5
-
6
- export const Skeleton = React.forwardRef<
7
- React.ElementRef<typeof View>,
8
- SkeletonProps
9
- >(({ className, variant, width, height, isLoaded, children, style, ...props }, ref) => {
10
- if (isLoaded) {
11
- return <>{children}</>;
12
- }
13
-
14
- return (
15
- <View
16
- ref={ref}
17
- className={skeletonStyle({ class: className })}
18
- style={[
19
- SKELETON_VARIANT_STYLE[variant ?? 'rounded'],
20
- width !== undefined ? { width } : undefined,
21
- height !== undefined ? { height } : undefined,
22
- style,
23
- ]}
24
- {...props}
25
- />
26
- );
27
- });
28
-
29
- Skeleton.displayName = 'Skeleton';
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import type { SkeletonProps } from './types';
4
+ import { skeletonStyle, SKELETON_VARIANT_STYLE } from './styles';
5
+
6
+ export const Skeleton = React.forwardRef<
7
+ React.ElementRef<typeof View>,
8
+ SkeletonProps
9
+ >(({ className, variant, width, height, isLoaded, children, style, ...props }, ref) => {
10
+ if (isLoaded) {
11
+ return <>{children}</>;
12
+ }
13
+
14
+ return (
15
+ <View
16
+ ref={ref}
17
+ className={skeletonStyle({ class: className })}
18
+ style={[
19
+ SKELETON_VARIANT_STYLE[variant ?? 'rounded'],
20
+ width !== undefined ? { width } : undefined,
21
+ height !== undefined ? { height } : undefined,
22
+ style,
23
+ ]}
24
+ {...props}
25
+ />
26
+ );
27
+ });
28
+
29
+ Skeleton.displayName = 'Skeleton';
@@ -1,14 +1,14 @@
1
- import { tv } from 'tailwind-variants';
2
-
3
- export const skeletonStyle = tv({
4
- base: 'bg-background-200 animate-pulse',
5
- variants: {},
6
- defaultVariants: {},
7
- });
8
-
9
- export const SKELETON_VARIANT_STYLE: Record<string, { borderRadius: number }> = {
10
- text: { borderRadius: 4 },
11
- circular: { borderRadius: 9999 },
12
- rectangular: { borderRadius: 0 },
13
- rounded: { borderRadius: 8 },
14
- };
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ export const skeletonStyle = tv({
4
+ base: 'bg-background-200 animate-pulse',
5
+ variants: {},
6
+ defaultVariants: {},
7
+ });
8
+
9
+ export const SKELETON_VARIANT_STYLE: Record<string, { borderRadius: number }> = {
10
+ text: { borderRadius: 4 },
11
+ circular: { borderRadius: 9999 },
12
+ rectangular: { borderRadius: 0 },
13
+ rounded: { borderRadius: 8 },
14
+ };
@@ -1,12 +1,12 @@
1
- import type { DimensionValue, View } from 'react-native';
2
-
3
- export type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'rounded';
4
-
5
- export interface SkeletonProps
6
- extends React.ComponentPropsWithoutRef<typeof View> {
7
- className?: string;
8
- variant?: SkeletonVariant;
9
- width?: DimensionValue;
10
- height?: DimensionValue;
11
- isLoaded?: boolean;
12
- }
1
+ import type { DimensionValue, View } from 'react-native';
2
+
3
+ export type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'rounded';
4
+
5
+ export interface SkeletonProps
6
+ extends React.ComponentPropsWithoutRef<typeof View> {
7
+ className?: string;
8
+ variant?: SkeletonVariant;
9
+ width?: DimensionValue;
10
+ height?: DimensionValue;
11
+ isLoaded?: boolean;
12
+ }
@@ -1,12 +1,12 @@
1
- export { Slider, SliderProvider, useSliderContext } from './slider';
2
- export { SliderTrack } from './slider-track';
3
- export { SliderFilledTrack } from './slider-filled-track';
4
- export { SliderThumb } from './slider-thumb';
5
- export type {
6
- SliderProps,
7
- SliderTrackProps,
8
- SliderFilledTrackProps,
9
- SliderThumbProps,
10
- SliderSize,
11
- SliderContextValue,
12
- } from './types';
1
+ export { Slider, SliderProvider, useSliderContext } from './slider';
2
+ export { SliderTrack } from './slider-track';
3
+ export { SliderFilledTrack } from './slider-filled-track';
4
+ export { SliderThumb } from './slider-thumb';
5
+ export type {
6
+ SliderProps,
7
+ SliderTrackProps,
8
+ SliderFilledTrackProps,
9
+ SliderThumbProps,
10
+ SliderSize,
11
+ SliderContextValue,
12
+ } from './types';
@@ -1,31 +1,31 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
- import { useSliderContext } from './slider';
4
- import type { SliderFilledTrackProps } from './types';
5
- import { sliderFilledTrackStyle } from './styles';
6
-
7
- export const SliderFilledTrack = React.forwardRef<
8
- React.ElementRef<typeof View>,
9
- SliderFilledTrackProps
10
- >(({ className, style, ...props }, ref) => {
11
- const { orientation, percentage } = useSliderContext();
12
-
13
- const dynamicStyle =
14
- orientation === 'horizontal'
15
- ? { width: `${percentage}%` as const }
16
- : { height: `${percentage}%` as const };
17
-
18
- return (
19
- <View
20
- ref={ref}
21
- className={sliderFilledTrackStyle({
22
- orientation,
23
- class: className,
24
- })}
25
- style={[dynamicStyle, style]}
26
- {...props}
27
- />
28
- );
29
- });
30
-
31
- SliderFilledTrack.displayName = 'SliderFilledTrack';
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+ import { useSliderContext } from './slider';
4
+ import type { SliderFilledTrackProps } from './types';
5
+ import { sliderFilledTrackStyle } from './styles';
6
+
7
+ export const SliderFilledTrack = React.forwardRef<
8
+ React.ElementRef<typeof View>,
9
+ SliderFilledTrackProps
10
+ >(({ className, style, ...props }, ref) => {
11
+ const { orientation, percentage } = useSliderContext();
12
+
13
+ const dynamicStyle =
14
+ orientation === 'horizontal'
15
+ ? { width: `${percentage}%` as const }
16
+ : { height: `${percentage}%` as const };
17
+
18
+ return (
19
+ <View
20
+ ref={ref}
21
+ className={sliderFilledTrackStyle({
22
+ orientation,
23
+ class: className,
24
+ })}
25
+ style={[dynamicStyle, style]}
26
+ {...props}
27
+ />
28
+ );
29
+ });
30
+
31
+ SliderFilledTrack.displayName = 'SliderFilledTrack';
@@ -1,52 +1,52 @@
1
- import React from 'react';
2
- import { View, Platform } from 'react-native';
3
- import { useSliderContext } from './slider';
4
- import type { SliderThumbProps } from './types';
5
- import { sliderThumbStyle } from './styles';
6
-
7
- const isWeb = Platform.OS === 'web';
8
-
9
- const THUMB_SIZE: Record<string, number> = {
10
- sm: 16,
11
- md: 20,
12
- lg: 24,
13
- };
14
-
15
- export const SliderThumb = React.forwardRef<
16
- React.ElementRef<typeof View>,
17
- SliderThumbProps
18
- >(({ className, style, ...props }, ref) => {
19
- const { size, percentage, orientation, trackLayout } = useSliderContext();
20
-
21
- const thumbSize = THUMB_SIZE[size] ?? 20;
22
-
23
- const trackDimension =
24
- orientation === 'horizontal' ? trackLayout.width : trackLayout.height;
25
- const offset = (percentage / 100) * trackDimension - thumbSize / 2;
26
-
27
- const positionStyle =
28
- orientation === 'horizontal'
29
- ? {
30
- left: offset,
31
- top: '50%' as const,
32
- transform: [{ translateY: -thumbSize / 2 }],
33
- }
34
- : {
35
- bottom: offset,
36
- left: '50%' as const,
37
- transform: [{ translateX: -thumbSize / 2 }],
38
- };
39
-
40
- return (
41
- <View
42
- ref={ref}
43
- className={sliderThumbStyle({ size, class: className })}
44
- style={[positionStyle, isWeb ? { pointerEvents: 'none' } as any : undefined, style]}
45
- accessible
46
- accessibilityRole="adjustable"
47
- {...props}
48
- />
49
- );
50
- });
51
-
52
- SliderThumb.displayName = 'SliderThumb';
1
+ import React from 'react';
2
+ import { View, Platform } from 'react-native';
3
+ import { useSliderContext } from './slider';
4
+ import type { SliderThumbProps } from './types';
5
+ import { sliderThumbStyle } from './styles';
6
+
7
+ const isWeb = Platform.OS === 'web';
8
+
9
+ const THUMB_SIZE: Record<string, number> = {
10
+ sm: 16,
11
+ md: 20,
12
+ lg: 24,
13
+ };
14
+
15
+ export const SliderThumb = React.forwardRef<
16
+ React.ElementRef<typeof View>,
17
+ SliderThumbProps
18
+ >(({ className, style, ...props }, ref) => {
19
+ const { size, percentage, orientation, trackLayout } = useSliderContext();
20
+
21
+ const thumbSize = THUMB_SIZE[size] ?? 20;
22
+
23
+ const trackDimension =
24
+ orientation === 'horizontal' ? trackLayout.width : trackLayout.height;
25
+ const offset = (percentage / 100) * trackDimension - thumbSize / 2;
26
+
27
+ const positionStyle =
28
+ orientation === 'horizontal'
29
+ ? {
30
+ left: offset,
31
+ top: '50%' as const,
32
+ transform: [{ translateY: -thumbSize / 2 }],
33
+ }
34
+ : {
35
+ bottom: offset,
36
+ left: '50%' as const,
37
+ transform: [{ translateX: -thumbSize / 2 }],
38
+ };
39
+
40
+ return (
41
+ <View
42
+ ref={ref}
43
+ className={sliderThumbStyle({ size, class: className })}
44
+ style={[positionStyle, isWeb ? { pointerEvents: 'none' } as any : undefined, style]}
45
+ accessible
46
+ accessibilityRole="adjustable"
47
+ {...props}
48
+ />
49
+ );
50
+ });
51
+
52
+ SliderThumb.displayName = 'SliderThumb';