@solostylist/ui-kit-native 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/hooks/index.d.ts +6 -0
  2. package/dist/hooks/index.d.ts.map +1 -0
  3. package/dist/hooks/index.js +5 -0
  4. package/dist/hooks/use-count-down.d.ts +72 -0
  5. package/dist/hooks/use-count-down.d.ts.map +1 -0
  6. package/dist/hooks/use-count-down.js +203 -0
  7. package/dist/hooks/use-is-passed-position.d.ts +20 -0
  8. package/dist/hooks/use-is-passed-position.d.ts.map +1 -0
  9. package/dist/hooks/use-is-passed-position.js +31 -0
  10. package/dist/index.d.ts +36 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +37 -0
  13. package/dist/s-avatar/index.d.ts +3 -0
  14. package/dist/s-avatar/index.d.ts.map +1 -0
  15. package/dist/s-avatar/index.js +1 -0
  16. package/dist/s-avatar/s-avatar.d.ts +43 -0
  17. package/dist/s-avatar/s-avatar.d.ts.map +1 -0
  18. package/dist/s-avatar/s-avatar.js +119 -0
  19. package/dist/s-button/index.d.ts +3 -0
  20. package/dist/s-button/index.d.ts.map +1 -0
  21. package/dist/s-button/index.js +1 -0
  22. package/dist/s-button/s-button.d.ts +55 -0
  23. package/dist/s-button/s-button.d.ts.map +1 -0
  24. package/dist/s-button/s-button.js +161 -0
  25. package/dist/s-button-link/index.d.ts +2 -0
  26. package/dist/s-button-link/index.d.ts.map +1 -0
  27. package/dist/s-button-link/index.js +1 -0
  28. package/dist/s-button-link/s-button-link.d.ts +43 -0
  29. package/dist/s-button-link/s-button-link.d.ts.map +1 -0
  30. package/dist/s-button-link/s-button-link.js +59 -0
  31. package/dist/s-chat-input/index.d.ts +2 -0
  32. package/dist/s-chat-input/index.d.ts.map +1 -0
  33. package/dist/s-chat-input/index.js +1 -0
  34. package/dist/s-chat-input/s-chat-input.d.ts +52 -0
  35. package/dist/s-chat-input/s-chat-input.d.ts.map +1 -0
  36. package/dist/s-chat-input/s-chat-input.js +135 -0
  37. package/dist/s-chat-message/index.d.ts +3 -0
  38. package/dist/s-chat-message/index.d.ts.map +1 -0
  39. package/dist/s-chat-message/index.js +2 -0
  40. package/dist/s-chat-message/s-chat-message.d.ts +61 -0
  41. package/dist/s-chat-message/s-chat-message.d.ts.map +1 -0
  42. package/dist/s-chat-message/s-chat-message.js +132 -0
  43. package/dist/s-checkbox/index.d.ts +3 -0
  44. package/dist/s-checkbox/index.d.ts.map +1 -0
  45. package/dist/s-checkbox/index.js +1 -0
  46. package/dist/s-checkbox/s-checkbox.d.ts +32 -0
  47. package/dist/s-checkbox/s-checkbox.d.ts.map +1 -0
  48. package/dist/s-checkbox/s-checkbox.js +52 -0
  49. package/dist/s-chip/index.d.ts +3 -0
  50. package/dist/s-chip/index.d.ts.map +1 -0
  51. package/dist/s-chip/index.js +1 -0
  52. package/dist/s-chip/s-chip.d.ts +52 -0
  53. package/dist/s-chip/s-chip.d.ts.map +1 -0
  54. package/dist/s-chip/s-chip.js +151 -0
  55. package/dist/s-code-block/index.d.ts +3 -0
  56. package/dist/s-code-block/index.d.ts.map +1 -0
  57. package/dist/s-code-block/index.js +2 -0
  58. package/dist/s-code-block/s-code-block.d.ts +40 -0
  59. package/dist/s-code-block/s-code-block.d.ts.map +1 -0
  60. package/dist/s-code-block/s-code-block.js +69 -0
  61. package/dist/s-comment-message/index.d.ts +3 -0
  62. package/dist/s-comment-message/index.d.ts.map +1 -0
  63. package/dist/s-comment-message/index.js +2 -0
  64. package/dist/s-comment-message/s-comment-message.d.ts +54 -0
  65. package/dist/s-comment-message/s-comment-message.d.ts.map +1 -0
  66. package/dist/s-comment-message/s-comment-message.js +109 -0
  67. package/dist/s-copyable-text/index.d.ts +3 -0
  68. package/dist/s-copyable-text/index.d.ts.map +1 -0
  69. package/dist/s-copyable-text/index.js +1 -0
  70. package/dist/s-copyable-text/s-copyable-text.d.ts +24 -0
  71. package/dist/s-copyable-text/s-copyable-text.d.ts.map +1 -0
  72. package/dist/s-copyable-text/s-copyable-text.js +52 -0
  73. package/dist/s-countdown/index.d.ts +7 -0
  74. package/dist/s-countdown/index.d.ts.map +1 -0
  75. package/dist/s-countdown/index.js +6 -0
  76. package/dist/s-countdown/s-count-box.d.ts +44 -0
  77. package/dist/s-countdown/s-count-box.d.ts.map +1 -0
  78. package/dist/s-countdown/s-count-box.js +135 -0
  79. package/dist/s-countdown/s-countdown.d.ts +72 -0
  80. package/dist/s-countdown/s-countdown.d.ts.map +1 -0
  81. package/dist/s-countdown/s-countdown.js +94 -0
  82. package/dist/s-data-table/index.d.ts +3 -0
  83. package/dist/s-data-table/index.d.ts.map +1 -0
  84. package/dist/s-data-table/index.js +2 -0
  85. package/dist/s-data-table/s-data-table.d.ts +64 -0
  86. package/dist/s-data-table/s-data-table.d.ts.map +1 -0
  87. package/dist/s-data-table/s-data-table.js +75 -0
  88. package/dist/s-date-picker/index.d.ts +3 -0
  89. package/dist/s-date-picker/index.d.ts.map +1 -0
  90. package/dist/s-date-picker/index.js +2 -0
  91. package/dist/s-date-picker/s-date-picker.d.ts +41 -0
  92. package/dist/s-date-picker/s-date-picker.d.ts.map +1 -0
  93. package/dist/s-date-picker/s-date-picker.js +161 -0
  94. package/dist/s-date-time-picker/index.d.ts +3 -0
  95. package/dist/s-date-time-picker/index.d.ts.map +1 -0
  96. package/dist/s-date-time-picker/index.js +2 -0
  97. package/dist/s-date-time-picker/s-date-time-picker.d.ts +47 -0
  98. package/dist/s-date-time-picker/s-date-time-picker.d.ts.map +1 -0
  99. package/dist/s-date-time-picker/s-date-time-picker.js +298 -0
  100. package/dist/s-divider/index.d.ts +2 -0
  101. package/dist/s-divider/index.d.ts.map +1 -0
  102. package/dist/s-divider/index.js +1 -0
  103. package/dist/s-divider/s-divider.d.ts +24 -0
  104. package/dist/s-divider/s-divider.d.ts.map +1 -0
  105. package/dist/s-divider/s-divider.js +30 -0
  106. package/dist/s-file-dropzone/index.d.ts +3 -0
  107. package/dist/s-file-dropzone/index.d.ts.map +1 -0
  108. package/dist/s-file-dropzone/index.js +2 -0
  109. package/dist/s-file-dropzone/s-file-dropzone.d.ts +63 -0
  110. package/dist/s-file-dropzone/s-file-dropzone.d.ts.map +1 -0
  111. package/dist/s-file-dropzone/s-file-dropzone.js +115 -0
  112. package/dist/s-file-icon/index.d.ts +3 -0
  113. package/dist/s-file-icon/index.d.ts.map +1 -0
  114. package/dist/s-file-icon/index.js +2 -0
  115. package/dist/s-file-icon/s-file-icon.d.ts +23 -0
  116. package/dist/s-file-icon/s-file-icon.d.ts.map +1 -0
  117. package/dist/s-file-icon/s-file-icon.js +86 -0
  118. package/dist/s-form/s-form.d.ts +0 -1
  119. package/dist/s-form/s-form.d.ts.map +1 -1
  120. package/dist/s-form/s-form.js +0 -1
  121. package/dist/s-icon-button/s-icon-button.d.ts +9 -9
  122. package/dist/s-icon-button/s-icon-button.d.ts.map +1 -1
  123. package/dist/s-icon-button/s-icon-button.js +38 -4
  124. package/dist/s-image-comparison/index.d.ts +2 -0
  125. package/dist/s-image-comparison/index.d.ts.map +1 -0
  126. package/dist/s-image-comparison/index.js +1 -0
  127. package/dist/s-image-comparison/s-image-comparison.d.ts +35 -0
  128. package/dist/s-image-comparison/s-image-comparison.d.ts.map +1 -0
  129. package/dist/s-image-comparison/s-image-comparison.js +111 -0
  130. package/dist/s-label/index.d.ts +3 -0
  131. package/dist/s-label/index.d.ts.map +1 -0
  132. package/dist/s-label/index.js +1 -0
  133. package/dist/s-label/s-label.d.ts +24 -0
  134. package/dist/s-label/s-label.d.ts.map +1 -0
  135. package/dist/s-label/s-label.js +19 -0
  136. package/dist/s-language-switcher/index.d.ts +4 -0
  137. package/dist/s-language-switcher/index.d.ts.map +1 -0
  138. package/dist/s-language-switcher/index.js +2 -0
  139. package/dist/s-language-switcher/s-language-switcher.d.ts +53 -0
  140. package/dist/s-language-switcher/s-language-switcher.d.ts.map +1 -0
  141. package/dist/s-language-switcher/s-language-switcher.js +57 -0
  142. package/dist/s-lazy-image/index.d.ts +3 -0
  143. package/dist/s-lazy-image/index.d.ts.map +1 -0
  144. package/dist/s-lazy-image/index.js +1 -0
  145. package/dist/s-lazy-image/s-lazy-image.d.ts +43 -0
  146. package/dist/s-lazy-image/s-lazy-image.d.ts.map +1 -0
  147. package/dist/s-lazy-image/s-lazy-image.js +74 -0
  148. package/dist/s-moving-border/index.d.ts +2 -0
  149. package/dist/s-moving-border/index.d.ts.map +1 -0
  150. package/dist/s-moving-border/index.js +1 -0
  151. package/dist/s-moving-border/s-moving-border.d.ts +38 -0
  152. package/dist/s-moving-border/s-moving-border.d.ts.map +1 -0
  153. package/dist/s-moving-border/s-moving-border.js +153 -0
  154. package/dist/s-multi-select/index.d.ts +2 -0
  155. package/dist/s-multi-select/index.d.ts.map +1 -0
  156. package/dist/s-multi-select/index.js +1 -0
  157. package/dist/s-multi-select/s-multi-select.d.ts +53 -0
  158. package/dist/s-multi-select/s-multi-select.d.ts.map +1 -0
  159. package/dist/s-multi-select/s-multi-select.js +150 -0
  160. package/dist/s-pagination/index.d.ts +3 -0
  161. package/dist/s-pagination/index.d.ts.map +1 -0
  162. package/dist/s-pagination/index.js +2 -0
  163. package/dist/s-pagination/s-pagination.d.ts +49 -0
  164. package/dist/s-pagination/s-pagination.d.ts.map +1 -0
  165. package/dist/s-pagination/s-pagination.js +147 -0
  166. package/dist/s-rating/index.d.ts +3 -0
  167. package/dist/s-rating/index.d.ts.map +1 -0
  168. package/dist/s-rating/index.js +1 -0
  169. package/dist/s-rating/s-rating.d.ts +55 -0
  170. package/dist/s-rating/s-rating.d.ts.map +1 -0
  171. package/dist/s-rating/s-rating.js +157 -0
  172. package/dist/s-review/index.d.ts +3 -0
  173. package/dist/s-review/index.d.ts.map +1 -0
  174. package/dist/s-review/index.js +1 -0
  175. package/dist/s-review/s-review.d.ts +55 -0
  176. package/dist/s-review/s-review.d.ts.map +1 -0
  177. package/dist/s-review/s-review.js +148 -0
  178. package/dist/s-scroll-to-top/index.d.ts +3 -0
  179. package/dist/s-scroll-to-top/index.d.ts.map +1 -0
  180. package/dist/s-scroll-to-top/index.js +2 -0
  181. package/dist/s-scroll-to-top/s-scroll-to-top.d.ts +36 -0
  182. package/dist/s-scroll-to-top/s-scroll-to-top.d.ts.map +1 -0
  183. package/dist/s-scroll-to-top/s-scroll-to-top.js +61 -0
  184. package/dist/s-select/s-select.d.ts +1 -3
  185. package/dist/s-select/s-select.d.ts.map +1 -1
  186. package/dist/s-select/s-select.js +61 -101
  187. package/dist/s-select-list/index.d.ts +3 -0
  188. package/dist/s-select-list/index.d.ts.map +1 -0
  189. package/dist/s-select-list/index.js +2 -0
  190. package/dist/s-select-list/s-select-list.d.ts +34 -0
  191. package/dist/s-select-list/s-select-list.d.ts.map +1 -0
  192. package/dist/s-select-list/s-select-list.js +115 -0
  193. package/dist/s-skeleton/index.d.ts +3 -0
  194. package/dist/s-skeleton/index.d.ts.map +1 -0
  195. package/dist/s-skeleton/index.js +1 -0
  196. package/dist/s-skeleton/s-skeleton.d.ts +27 -0
  197. package/dist/s-skeleton/s-skeleton.d.ts.map +1 -0
  198. package/dist/s-skeleton/s-skeleton.js +126 -0
  199. package/dist/s-switch/index.d.ts +3 -0
  200. package/dist/s-switch/index.d.ts.map +1 -0
  201. package/dist/s-switch/index.js +1 -0
  202. package/dist/s-switch/s-switch.d.ts +30 -0
  203. package/dist/s-switch/s-switch.d.ts.map +1 -0
  204. package/dist/s-switch/s-switch.js +44 -0
  205. package/dist/s-text-field/s-text-field.d.ts +0 -2
  206. package/dist/s-text-field/s-text-field.d.ts.map +1 -1
  207. package/dist/s-text-field/s-text-field.js +10 -23
  208. package/dist/s-text-shimmer/index.d.ts +2 -0
  209. package/dist/s-text-shimmer/index.d.ts.map +1 -0
  210. package/dist/s-text-shimmer/index.js +1 -0
  211. package/dist/s-text-shimmer/s-text-shimmer.d.ts +22 -0
  212. package/dist/s-text-shimmer/s-text-shimmer.d.ts.map +1 -0
  213. package/dist/s-text-shimmer/s-text-shimmer.js +102 -0
  214. package/dist/s-text-truncation/index.d.ts +2 -0
  215. package/dist/s-text-truncation/index.d.ts.map +1 -0
  216. package/dist/s-text-truncation/index.js +1 -0
  217. package/dist/s-text-truncation/s-text-truncation.d.ts +42 -0
  218. package/dist/s-text-truncation/s-text-truncation.d.ts.map +1 -0
  219. package/dist/s-text-truncation/s-text-truncation.js +88 -0
  220. package/dist/s-tip/index.d.ts +3 -0
  221. package/dist/s-tip/index.d.ts.map +1 -0
  222. package/dist/s-tip/index.js +1 -0
  223. package/dist/s-tip/s-tip.d.ts +17 -0
  224. package/dist/s-tip/s-tip.d.ts.map +1 -0
  225. package/dist/s-tip/s-tip.js +25 -0
  226. package/dist/s-tooltip/index.d.ts +2 -0
  227. package/dist/s-tooltip/index.d.ts.map +1 -0
  228. package/dist/s-tooltip/index.js +1 -0
  229. package/dist/s-tooltip/s-tooltip.d.ts +23 -0
  230. package/dist/s-tooltip/s-tooltip.d.ts.map +1 -0
  231. package/dist/s-tooltip/s-tooltip.js +17 -0
  232. package/dist/s-zoom-image/index.d.ts +3 -0
  233. package/dist/s-zoom-image/index.d.ts.map +1 -0
  234. package/dist/s-zoom-image/index.js +1 -0
  235. package/dist/s-zoom-image/s-zoom-image.d.ts +38 -0
  236. package/dist/s-zoom-image/s-zoom-image.d.ts.map +1 -0
  237. package/dist/s-zoom-image/s-zoom-image.js +149 -0
  238. package/dist/theme/theme-primitives.d.ts +10 -0
  239. package/dist/theme/theme-primitives.d.ts.map +1 -1
  240. package/dist/theme/theme-primitives.js +11 -0
  241. package/dist/utils/bytes-to-size.d.ts +9 -0
  242. package/dist/utils/bytes-to-size.d.ts.map +1 -0
  243. package/dist/utils/bytes-to-size.js +17 -0
  244. package/dist/utils/index.d.ts +2 -0
  245. package/dist/utils/index.d.ts.map +1 -0
  246. package/dist/utils/index.js +1 -0
  247. package/package.json +175 -5
@@ -0,0 +1,149 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useMemo, useState } from 'react';
3
+ import { Animated, Pressable, View, } from 'react-native';
4
+ import { SLazyImage } from '../s-lazy-image';
5
+ /**
6
+ * An interactive image component with smooth zoom-on-press functionality and built-in lazy loading.
7
+ * Built with React Native Animated API for smooth interactions.
8
+ */
9
+ export const SZoomImage = ({ src, zoomScale = 1.2, borderRadius = 12, skeletonVariant = 'rounded', height = 200, width = '100%', containerStyle, imageStyle, onLoad, onError, }) => {
10
+ // Track whether lazy-loaded image has finished loading
11
+ // This enables zoom functionality only after the image is ready
12
+ const [imageLoaded, setImageLoaded] = useState(false);
13
+ const [containerDimensions, setContainerDimensions] = useState({ width: 0, height: 0 });
14
+ const [isPressed, setIsPressed] = useState(false);
15
+ // Animated values for scale and transform origin
16
+ // Using useMemo ensures these values are created only once during the component lifecycle
17
+ const scale = useMemo(() => new Animated.Value(1), []);
18
+ const translateX = useMemo(() => new Animated.Value(0), []);
19
+ const translateY = useMemo(() => new Animated.Value(0), []);
20
+ const handleLayout = (event) => {
21
+ const { width: layoutWidth, height: layoutHeight } = event.nativeEvent.layout;
22
+ setContainerDimensions({ width: layoutWidth, height: layoutHeight });
23
+ };
24
+ // Handle touch move to update zoom origin
25
+ const handleTouchMove = useCallback((event) => {
26
+ if (!imageLoaded || !isPressed)
27
+ return;
28
+ const { locationX, locationY } = event.nativeEvent;
29
+ // Calculate position as percentage (0 to 1)
30
+ const xPercent = containerDimensions.width > 0 ? locationX / containerDimensions.width : 0.5;
31
+ const yPercent = containerDimensions.height > 0 ? locationY / containerDimensions.height : 0.5;
32
+ // Clamp between 0 and 1
33
+ const clampedX = Math.max(0, Math.min(1, xPercent));
34
+ const clampedY = Math.max(0, Math.min(1, yPercent));
35
+ // Calculate translation to keep zoom centered on touch point
36
+ // When zoomed, we want to translate the image so the touch point stays in place
37
+ const maxTranslateX = (containerDimensions.width * (zoomScale - 1)) / 2;
38
+ const maxTranslateY = (containerDimensions.height * (zoomScale - 1)) / 2;
39
+ const targetTranslateX = maxTranslateX - maxTranslateX * 2 * clampedX;
40
+ const targetTranslateY = maxTranslateY - maxTranslateY * 2 * clampedY;
41
+ Animated.parallel([
42
+ Animated.spring(translateX, {
43
+ toValue: targetTranslateX,
44
+ useNativeDriver: true,
45
+ damping: 20,
46
+ stiffness: 150,
47
+ mass: 0.5,
48
+ }),
49
+ Animated.spring(translateY, {
50
+ toValue: targetTranslateY,
51
+ useNativeDriver: true,
52
+ damping: 20,
53
+ stiffness: 150,
54
+ mass: 0.5,
55
+ }),
56
+ ]).start();
57
+ }, [imageLoaded, isPressed, containerDimensions, zoomScale, translateX, translateY]);
58
+ // Handle press in - zoom in
59
+ const handlePressIn = useCallback((event) => {
60
+ if (!imageLoaded)
61
+ return;
62
+ setIsPressed(true);
63
+ const { locationX, locationY } = event.nativeEvent;
64
+ // Calculate initial position for zoom origin
65
+ const xPercent = containerDimensions.width > 0 ? locationX / containerDimensions.width : 0.5;
66
+ const yPercent = containerDimensions.height > 0 ? locationY / containerDimensions.height : 0.5;
67
+ const clampedX = Math.max(0, Math.min(1, xPercent));
68
+ const clampedY = Math.max(0, Math.min(1, yPercent));
69
+ const maxTranslateX = (containerDimensions.width * (zoomScale - 1)) / 2;
70
+ const maxTranslateY = (containerDimensions.height * (zoomScale - 1)) / 2;
71
+ const targetTranslateX = maxTranslateX - maxTranslateX * 2 * clampedX;
72
+ const targetTranslateY = maxTranslateY - maxTranslateY * 2 * clampedY;
73
+ Animated.parallel([
74
+ Animated.spring(scale, {
75
+ toValue: zoomScale,
76
+ useNativeDriver: true,
77
+ damping: 20,
78
+ stiffness: 150,
79
+ mass: 0.5,
80
+ }),
81
+ Animated.spring(translateX, {
82
+ toValue: targetTranslateX,
83
+ useNativeDriver: true,
84
+ damping: 20,
85
+ stiffness: 150,
86
+ mass: 0.5,
87
+ }),
88
+ Animated.spring(translateY, {
89
+ toValue: targetTranslateY,
90
+ useNativeDriver: true,
91
+ damping: 20,
92
+ stiffness: 150,
93
+ mass: 0.5,
94
+ }),
95
+ ]).start();
96
+ }, [imageLoaded, containerDimensions, scale, zoomScale, translateX, translateY]);
97
+ // Handle press out - zoom out and reset position
98
+ const handlePressOut = useCallback(() => {
99
+ setIsPressed(false);
100
+ Animated.parallel([
101
+ Animated.spring(scale, {
102
+ toValue: 1,
103
+ useNativeDriver: true,
104
+ damping: 20,
105
+ stiffness: 150,
106
+ mass: 0.5,
107
+ }),
108
+ Animated.spring(translateX, {
109
+ toValue: 0,
110
+ useNativeDriver: true,
111
+ damping: 20,
112
+ stiffness: 150,
113
+ mass: 0.5,
114
+ }),
115
+ Animated.spring(translateY, {
116
+ toValue: 0,
117
+ useNativeDriver: true,
118
+ damping: 20,
119
+ stiffness: 150,
120
+ mass: 0.5,
121
+ }),
122
+ ]).start();
123
+ }, [scale, translateX, translateY]);
124
+ const handleImageLoad = useCallback((event) => {
125
+ setImageLoaded(true);
126
+ onLoad?.(event);
127
+ }, [onLoad]);
128
+ return (_jsx(View, { style: [
129
+ {
130
+ position: 'relative',
131
+ width: typeof width === 'number' ? width : undefined,
132
+ height: typeof height === 'number' ? height : undefined,
133
+ overflow: 'hidden',
134
+ borderRadius,
135
+ },
136
+ containerStyle,
137
+ ], onLayout: handleLayout, children: _jsx(Pressable, { style: {
138
+ width: '100%',
139
+ height: '100%',
140
+ }, onPressIn: handlePressIn, onPressOut: handlePressOut, onTouchMove: handleTouchMove, disabled: !imageLoaded, children: _jsx(Animated.View, { style: [
141
+ {
142
+ width: '100%',
143
+ height: '100%',
144
+ transform: [{ translateX }, { translateY }, { scale }],
145
+ },
146
+ ], children: _jsx(SLazyImage, { src: src, variant: skeletonVariant, height: height, width: width, containerStyle: imageStyle, onLoad: handleImageLoad, onError: onError }) }) }) }));
147
+ };
148
+ SZoomImage.displayName = 'SZoomImage';
149
+ export default SZoomImage;
@@ -61,6 +61,16 @@ export interface NativeTheme {
61
61
  normal: number;
62
62
  relaxed: number;
63
63
  };
64
+ input: {
65
+ fontSize: {
66
+ small: number;
67
+ medium: number;
68
+ };
69
+ height: {
70
+ small: number;
71
+ medium: number;
72
+ };
73
+ };
64
74
  scale: {
65
75
  h1: {
66
76
  fontSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"theme-primitives.d.ts","sourceRoot":"","sources":["../../src/theme/theme-primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme-primitives.d.ts","sourceRoot":"","sources":["../../src/theme/theme-primitives.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,17 @@ const typography = {
26
26
  normal: 1.5,
27
27
  relaxed: 1.75,
28
28
  },
29
+ // Centralized input styling — matches web sizes: small = 36px (2.25rem), medium = 40px (2.5rem)
30
+ input: {
31
+ fontSize: {
32
+ small: 12, // theme.typography.fontSize.sm
33
+ medium: 14, // theme.typography.fontSize.md
34
+ },
35
+ height: {
36
+ small: 36,
37
+ medium: 40,
38
+ },
39
+ },
29
40
  // Web-compatible typography scale (matches MUI theme)
30
41
  scale: {
31
42
  h1: {
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Convert bytes to human-readable size format
3
+ *
4
+ * @param bytes - Number of bytes to convert
5
+ * @param decimals - Number of decimal places (default: 2)
6
+ * @returns Formatted string with size and unit (e.g., "1.5 MB")
7
+ */
8
+ export declare function bytesToSize(bytes: number, decimals?: number): string;
9
+ //# sourceMappingURL=bytes-to-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes-to-size.d.ts","sourceRoot":"","sources":["../../src/utils/bytes-to-size.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAW/D"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Convert bytes to human-readable size format
3
+ *
4
+ * @param bytes - Number of bytes to convert
5
+ * @param decimals - Number of decimal places (default: 2)
6
+ * @returns Formatted string with size and unit (e.g., "1.5 MB")
7
+ */
8
+ export function bytesToSize(bytes, decimals = 2) {
9
+ if (bytes === 0) {
10
+ return '0 Bytes';
11
+ }
12
+ const k = 1024;
13
+ const dm = decimals < 0 ? 0 : decimals;
14
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
15
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
16
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
17
+ }
@@ -0,0 +1,2 @@
1
+ export { bytesToSize } from './bytes-to-size';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export { bytesToSize } from './bytes-to-size';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solostylist/ui-kit-native",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "React Native UI components for SoloStylist - synced with web ui-kit",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -25,6 +25,11 @@
25
25
  "import": "./dist/theme/index.js",
26
26
  "default": "./dist/theme/index.js"
27
27
  },
28
+ "./s-button": {
29
+ "types": "./dist/s-button/index.d.ts",
30
+ "import": "./dist/s-button/index.js",
31
+ "default": "./dist/s-button/index.js"
32
+ },
28
33
  "./s-text-field": {
29
34
  "types": "./dist/s-text-field/index.d.ts",
30
35
  "import": "./dist/s-text-field/index.js",
@@ -34,14 +39,155 @@
34
39
  "types": "./dist/s-form/index.d.ts",
35
40
  "import": "./dist/s-form/index.js",
36
41
  "default": "./dist/s-form/index.js"
42
+ },
43
+ "./s-select": {
44
+ "types": "./dist/s-select/index.d.ts",
45
+ "import": "./dist/s-select/index.js",
46
+ "default": "./dist/s-select/index.js"
47
+ },
48
+ "./s-icon-button": {
49
+ "types": "./dist/s-icon-button/index.d.ts",
50
+ "import": "./dist/s-icon-button/index.js",
51
+ "default": "./dist/s-icon-button/index.js"
52
+ },
53
+ "./s-label": {
54
+ "types": "./dist/s-label/index.d.ts",
55
+ "import": "./dist/s-label/index.js",
56
+ "default": "./dist/s-label/index.js"
57
+ },
58
+ "./s-text": {
59
+ "types": "./dist/s-text/index.d.ts",
60
+ "import": "./dist/s-text/index.js",
61
+ "default": "./dist/s-text/index.js"
62
+ },
63
+ "./s-rating": {
64
+ "types": "./dist/s-rating/index.d.ts",
65
+ "import": "./dist/s-rating/index.js",
66
+ "default": "./dist/s-rating/index.js"
67
+ },
68
+ "./s-date-picker": {
69
+ "types": "./dist/s-date-picker/index.d.ts",
70
+ "import": "./dist/s-date-picker/index.js",
71
+ "default": "./dist/s-date-picker/index.js"
72
+ },
73
+ "./s-date-time-picker": {
74
+ "types": "./dist/s-date-time-picker/index.d.ts",
75
+ "import": "./dist/s-date-time-picker/index.js",
76
+ "default": "./dist/s-date-time-picker/index.js"
77
+ },
78
+ "./s-file-icon": {
79
+ "types": "./dist/s-file-icon/index.d.ts",
80
+ "import": "./dist/s-file-icon/index.js",
81
+ "default": "./dist/s-file-icon/index.js"
82
+ },
83
+ "./s-file-dropzone": {
84
+ "types": "./dist/s-file-dropzone/index.d.ts",
85
+ "import": "./dist/s-file-dropzone/index.js",
86
+ "default": "./dist/s-file-dropzone/index.js"
87
+ },
88
+ "./s-avatar": {
89
+ "types": "./dist/s-avatar/index.d.ts",
90
+ "import": "./dist/s-avatar/index.js",
91
+ "default": "./dist/s-avatar/index.js"
92
+ },
93
+ "./s-chat-input": {
94
+ "types": "./dist/s-chat-input/index.d.ts",
95
+ "import": "./dist/s-chat-input/index.js",
96
+ "default": "./dist/s-chat-input/index.js"
97
+ },
98
+ "./s-chat-message": {
99
+ "types": "./dist/s-chat-message/index.d.ts",
100
+ "import": "./dist/s-chat-message/index.js",
101
+ "default": "./dist/s-chat-message/index.js"
102
+ },
103
+ "./s-checkbox": {
104
+ "types": "./dist/s-checkbox/index.d.ts",
105
+ "import": "./dist/s-checkbox/index.js",
106
+ "default": "./dist/s-checkbox/index.js"
107
+ },
108
+ "./s-chip": {
109
+ "types": "./dist/s-chip/index.d.ts",
110
+ "import": "./dist/s-chip/index.js",
111
+ "default": "./dist/s-chip/index.js"
112
+ },
113
+ "./s-code-block": {
114
+ "types": "./dist/s-code-block/index.d.ts",
115
+ "import": "./dist/s-code-block/index.js",
116
+ "default": "./dist/s-code-block/index.js"
117
+ },
118
+ "./s-comment-message": {
119
+ "types": "./dist/s-comment-message/index.d.ts",
120
+ "import": "./dist/s-comment-message/index.js",
121
+ "default": "./dist/s-comment-message/index.js"
122
+ },
123
+ "./s-copyable-text": {
124
+ "types": "./dist/s-copyable-text/index.d.ts",
125
+ "import": "./dist/s-copyable-text/index.js",
126
+ "default": "./dist/s-copyable-text/index.js"
127
+ },
128
+ "./s-countdown": {
129
+ "types": "./dist/s-countdown/index.d.ts",
130
+ "import": "./dist/s-countdown/index.js",
131
+ "default": "./dist/s-countdown/index.js"
132
+ },
133
+ "./s-data-table": {
134
+ "types": "./dist/s-data-table/index.d.ts",
135
+ "import": "./dist/s-data-table/index.js",
136
+ "default": "./dist/s-data-table/index.js"
137
+ },
138
+ "./s-image-comparison": {
139
+ "types": "./dist/s-image-comparison/index.d.ts",
140
+ "import": "./dist/s-image-comparison/index.js",
141
+ "default": "./dist/s-image-comparison/index.js"
142
+ },
143
+ "./s-language-switcher": {
144
+ "types": "./dist/s-language-switcher/index.d.ts",
145
+ "import": "./dist/s-language-switcher/index.js",
146
+ "default": "./dist/s-language-switcher/index.js"
147
+ },
148
+ "./s-lazy-image": {
149
+ "types": "./dist/s-lazy-image/index.d.ts",
150
+ "import": "./dist/s-lazy-image/index.js",
151
+ "default": "./dist/s-lazy-image/index.js"
152
+ },
153
+ "./s-moving-border": {
154
+ "types": "./dist/s-moving-border/index.d.ts",
155
+ "import": "./dist/s-moving-border/index.js",
156
+ "default": "./dist/s-moving-border/index.js"
157
+ },
158
+ "./s-pagination": {
159
+ "types": "./dist/s-pagination/index.d.ts",
160
+ "import": "./dist/s-pagination/index.js",
161
+ "default": "./dist/s-pagination/index.js"
162
+ },
163
+ "./s-text-shimmer": {
164
+ "types": "./dist/s-text-shimmer/index.d.ts",
165
+ "import": "./dist/s-text-shimmer/index.js",
166
+ "default": "./dist/s-text-shimmer/index.js"
167
+ },
168
+ "./s-text-truncation": {
169
+ "types": "./dist/s-text-truncation/index.d.ts",
170
+ "import": "./dist/s-text-truncation/index.js",
171
+ "default": "./dist/s-text-truncation/index.js"
172
+ },
173
+ "./s-tip": {
174
+ "types": "./dist/s-tip/index.d.ts",
175
+ "import": "./dist/s-tip/index.js",
176
+ "default": "./dist/s-tip/index.js"
177
+ },
178
+ "./hooks": {
179
+ "types": "./dist/hooks/index.d.ts",
180
+ "import": "./dist/hooks/index.js",
181
+ "default": "./dist/hooks/index.js"
37
182
  }
38
183
  },
39
184
  "scripts": {
40
185
  "build": "tsc --p ./tsconfig.json",
41
186
  "dev": "tsc --p ./tsconfig.json --watch",
42
- "test": "echo \"No tests configured for @solostylist/ui-kit-native\"",
43
- "lint": "echo \"No linting configured for @solostylist/ui-kit-native\"",
44
- "lint:fix": "echo \"No linting configured for @solostylist/ui-kit-native\"",
187
+ "lint": "eslint . --report-unused-disable-directives --max-warnings 0",
188
+ "lint:fix": "eslint . --fix --report-unused-disable-directives --max-warnings 0",
189
+ "format": "prettier --write \"**/*.{js,jsx,mjs,ts,tsx,json,md}\" --cache",
190
+ "format:check": "prettier --check \"**/*.{js,jsx,mjs,ts,tsx,json,md}\" --cache",
45
191
  "typecheck": "tsc --noEmit",
46
192
  "clean": "rimraf dist",
47
193
  "app:publish": "yarn build && yarn npm publish --access public"
@@ -60,21 +206,45 @@
60
206
  "license": "ISC",
61
207
  "dependencies": {
62
208
  "@solostylist/core": "^1.0.0",
63
- "color": "^5.0.3"
209
+ "color": "^5.0.3",
210
+ "expo-clipboard": "^8.0.8",
211
+ "expo-document-picker": "^14.0.8",
212
+ "react-native-code-highlighter": "^1.3.0",
213
+ "react-native-country-flag": "^2.0.2",
214
+ "rn-emoji-keyboard": "^1.7.0"
64
215
  },
65
216
  "peerDependencies": {
217
+ "@expo/vector-icons": ">=15.0.3",
66
218
  "react": ">=18.0.0",
67
219
  "react-native": ">=0.70.0",
220
+ "react-native-gesture-handler": ">=2.30.0",
68
221
  "react-native-paper": ">=5.0.0"
69
222
  },
70
223
  "devDependencies": {
224
+ "@eslint/js": "^9.39.2",
71
225
  "@expo/vector-icons": "^15.0.3",
226
+ "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
72
227
  "@types/react": "~19.2.9",
228
+ "@typescript-eslint/eslint-plugin": "^8.53.1",
229
+ "@typescript-eslint/parser": "^8.53.1",
230
+ "eslint": "^9.39.2",
231
+ "eslint-plugin-react-hooks": "^7.0.1",
232
+ "globals": "^17.2.0",
233
+ "lint-staged": "^16.2.7",
234
+ "prettier": "^3.8.1",
73
235
  "react": "19.2.3",
74
236
  "react-native": "0.83.1",
75
237
  "react-native-paper": "^5.14.5",
76
238
  "react-native-safe-area-context": "5.6.2",
77
239
  "rimraf": "^6.1.2",
78
240
  "typescript": "^5.9.3"
241
+ },
242
+ "lint-staged": {
243
+ "*.{js,jsx,ts,tsx}": [
244
+ "prettier --write --cache"
245
+ ],
246
+ "*.{json,md}": [
247
+ "prettier --write --cache"
248
+ ]
79
249
  }
80
250
  }