@expokit/cli 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -2
  3. package/bin/expo-kit.js +1266 -0
  4. package/bin/lib.mjs +343 -0
  5. package/bin/mcp.mjs +345 -0
  6. package/package.json +49 -4
  7. package/registry/_docs/accordion.json +115 -0
  8. package/registry/_docs/action-sheet.json +138 -0
  9. package/registry/_docs/alert.json +155 -0
  10. package/registry/_docs/avatar.json +227 -0
  11. package/registry/_docs/badge.json +148 -0
  12. package/registry/_docs/bottom-nav.json +143 -0
  13. package/registry/_docs/bottom-sheet.json +186 -0
  14. package/registry/_docs/bullet.json +27 -0
  15. package/registry/_docs/button-3d.json +138 -0
  16. package/registry/_docs/button.json +131 -0
  17. package/registry/_docs/calendar.json +198 -0
  18. package/registry/_docs/card-stack.json +124 -0
  19. package/registry/_docs/card.json +131 -0
  20. package/registry/_docs/carousel.json +122 -0
  21. package/registry/_docs/chat.json +184 -0
  22. package/registry/_docs/checkbox.json +109 -0
  23. package/registry/_docs/checkout.json +105 -0
  24. package/registry/_docs/chip-group.json +132 -0
  25. package/registry/_docs/color-swatch.json +82 -0
  26. package/registry/_docs/confetti.json +102 -0
  27. package/registry/_docs/coupon.json +192 -0
  28. package/registry/_docs/cube-pager.json +100 -0
  29. package/registry/_docs/dashboard.json +123 -0
  30. package/registry/_docs/date-picker.json +269 -0
  31. package/registry/_docs/dialog.json +186 -0
  32. package/registry/_docs/drawer.json +199 -0
  33. package/registry/_docs/fab.json +144 -0
  34. package/registry/_docs/flip-card.json +127 -0
  35. package/registry/_docs/floating-input.json +211 -0
  36. package/registry/_docs/gift-card.json +124 -0
  37. package/registry/_docs/glass-button.json +142 -0
  38. package/registry/_docs/glass-nav-bar.json +102 -0
  39. package/registry/_docs/glass-search-bar.json +114 -0
  40. package/registry/_docs/glass-segmented.json +94 -0
  41. package/registry/_docs/glass-sheet.json +136 -0
  42. package/registry/_docs/glass-tab-bar.json +100 -0
  43. package/registry/_docs/glass.json +94 -0
  44. package/registry/_docs/inbox.json +75 -0
  45. package/registry/_docs/isometric-bar.json +75 -0
  46. package/registry/_docs/kit.json +14 -0
  47. package/registry/_docs/kpi-card.json +14 -0
  48. package/registry/_docs/like-button.json +92 -0
  49. package/registry/_docs/liquidglass-tab.json +30 -0
  50. package/registry/_docs/list-item.json +216 -0
  51. package/registry/_docs/loyalty-card.json +124 -0
  52. package/registry/_docs/morph-button.json +128 -0
  53. package/registry/_docs/number-ticker.json +112 -0
  54. package/registry/_docs/offers.json +81 -0
  55. package/registry/_docs/onboarding.json +69 -0
  56. package/registry/_docs/otp-input.json +158 -0
  57. package/registry/_docs/pagination-dots.json +108 -0
  58. package/registry/_docs/parallax-layers.json +104 -0
  59. package/registry/_docs/parallax-scroll.json +210 -0
  60. package/registry/_docs/password-input.json +112 -0
  61. package/registry/_docs/payment-card.json +169 -0
  62. package/registry/_docs/pixel-bar.json +69 -0
  63. package/registry/_docs/polar-area.json +81 -0
  64. package/registry/_docs/profile.json +87 -0
  65. package/registry/_docs/progress-steps.json +116 -0
  66. package/registry/_docs/progress.json +152 -0
  67. package/registry/_docs/radio-group.json +112 -0
  68. package/registry/_docs/rating.json +114 -0
  69. package/registry/_docs/ring-carousel.json +122 -0
  70. package/registry/_docs/scratch-card.json +110 -0
  71. package/registry/_docs/search-bar.json +160 -0
  72. package/registry/_docs/search-results.json +123 -0
  73. package/registry/_docs/segmented-control.json +123 -0
  74. package/registry/_docs/select.json +277 -0
  75. package/registry/_docs/settings.json +75 -0
  76. package/registry/_docs/shimmer-button.json +98 -0
  77. package/registry/_docs/sign-in.json +201 -0
  78. package/registry/_docs/skeleton.json +162 -0
  79. package/registry/_docs/slide-to-confirm.json +108 -0
  80. package/registry/_docs/slider.json +177 -0
  81. package/registry/_docs/spin-wheel.json +138 -0
  82. package/registry/_docs/spinner.json +121 -0
  83. package/registry/_docs/stateful-button.json +184 -0
  84. package/registry/_docs/stepper.json +184 -0
  85. package/registry/_docs/swipe-deck.json +118 -0
  86. package/registry/_docs/swipeable-row.json +95 -0
  87. package/registry/_docs/switch.json +124 -0
  88. package/registry/_docs/tabs.json +129 -0
  89. package/registry/_docs/tag-input.json +148 -0
  90. package/registry/_docs/text-animation.json +141 -0
  91. package/registry/_docs/textarea.json +191 -0
  92. package/registry/_docs/ticket-card.json +194 -0
  93. package/registry/_docs/ticket-shape.json +14 -0
  94. package/registry/_docs/tilt-card.json +157 -0
  95. package/registry/_docs/time-picker.json +269 -0
  96. package/registry/_docs/timeline-chart.json +33 -0
  97. package/registry/_docs/timeline.json +172 -0
  98. package/registry/_docs/toast.json +185 -0
  99. package/registry/_docs/treemap.json +33 -0
  100. package/registry/_docs/waterfall.json +39 -0
  101. package/registry/_docs/wheel-list.json +122 -0
  102. package/registry/accordion/files/src/components/ui/accordion.tsx +233 -0
  103. package/registry/accordion/files/src/lib/kit.tsx +219 -0
  104. package/registry/accordion.json +17 -0
  105. package/registry/action-sheet/files/src/components/ui/action-sheet.tsx +580 -0
  106. package/registry/action-sheet/files/src/lib/kit.tsx +219 -0
  107. package/registry/action-sheet.json +18 -0
  108. package/registry/alert/files/src/components/ui/alert.tsx +654 -0
  109. package/registry/alert/files/src/components/ui/button.tsx +274 -0
  110. package/registry/alert/files/src/lib/kit.tsx +219 -0
  111. package/registry/alert.json +20 -0
  112. package/registry/avatar/files/src/components/ui/avatar.tsx +790 -0
  113. package/registry/avatar/files/src/lib/kit.tsx +219 -0
  114. package/registry/avatar.json +18 -0
  115. package/registry/badge/files/src/components/ui/badge.tsx +626 -0
  116. package/registry/badge/files/src/lib/kit.tsx +219 -0
  117. package/registry/badge.json +17 -0
  118. package/registry/bottom-nav/files/src/components/ui/bottom-nav.tsx +1050 -0
  119. package/registry/bottom-nav/files/src/lib/kit.tsx +219 -0
  120. package/registry/bottom-nav.json +18 -0
  121. package/registry/bottom-sheet/files/src/components/ui/bottom-sheet.tsx +585 -0
  122. package/registry/bottom-sheet/files/src/lib/kit.tsx +219 -0
  123. package/registry/bottom-sheet.json +17 -0
  124. package/registry/bullet.json +14 -0
  125. package/registry/button/files/src/components/ui/button.tsx +274 -0
  126. package/registry/button/files/src/lib/kit.tsx +219 -0
  127. package/registry/button-3d/files/src/components/ui/button-3d.tsx +212 -0
  128. package/registry/button-3d/files/src/lib/kit.tsx +219 -0
  129. package/registry/button-3d.json +18 -0
  130. package/registry/button.json +18 -0
  131. package/registry/calendar/files/src/components/ui/calendar.tsx +822 -0
  132. package/registry/calendar/files/src/lib/kit.tsx +219 -0
  133. package/registry/calendar.json +17 -0
  134. package/registry/card/files/src/components/ui/card.tsx +300 -0
  135. package/registry/card/files/src/lib/kit.tsx +219 -0
  136. package/registry/card-stack.json +15 -0
  137. package/registry/card.json +17 -0
  138. package/registry/carousel.json +15 -0
  139. package/registry/chat.json +18 -0
  140. package/registry/checkbox/files/src/components/ui/checkbox.tsx +150 -0
  141. package/registry/checkbox/files/src/lib/kit.tsx +219 -0
  142. package/registry/checkbox.json +17 -0
  143. package/registry/checkout.json +26 -0
  144. package/registry/chip-group/files/src/components/ui/chip-group.tsx +269 -0
  145. package/registry/chip-group/files/src/lib/kit.tsx +219 -0
  146. package/registry/chip-group.json +17 -0
  147. package/registry/color-swatch.json +17 -0
  148. package/registry/confetti/files/src/components/ui/confetti.tsx +222 -0
  149. package/registry/confetti/files/src/lib/kit.tsx +219 -0
  150. package/registry/confetti.json +15 -0
  151. package/registry/coupon/files/src/components/ui/coupon.tsx +698 -0
  152. package/registry/coupon/files/src/components/ui/flip-card.tsx +205 -0
  153. package/registry/coupon/files/src/components/ui/tilt-card.tsx +635 -0
  154. package/registry/coupon/files/src/lib/kit.tsx +219 -0
  155. package/registry/coupon/files/src/lib/ticket-shape.tsx +543 -0
  156. package/registry/coupon.json +23 -0
  157. package/registry/cube-pager.json +15 -0
  158. package/registry/dashboard.json +32 -0
  159. package/registry/date-picker/files/src/components/ui/calendar.tsx +822 -0
  160. package/registry/date-picker/files/src/components/ui/date-picker.tsx +796 -0
  161. package/registry/date-picker/files/src/lib/kit.tsx +219 -0
  162. package/registry/date-picker.json +19 -0
  163. package/registry/dialog/files/src/components/ui/dialog.tsx +759 -0
  164. package/registry/dialog/files/src/lib/kit.tsx +219 -0
  165. package/registry/dialog.json +18 -0
  166. package/registry/drawer/files/src/components/ui/drawer.tsx +1135 -0
  167. package/registry/drawer/files/src/lib/kit.tsx +219 -0
  168. package/registry/drawer.json +18 -0
  169. package/registry/fab.json +18 -0
  170. package/registry/flip-card/files/src/components/ui/flip-card.tsx +205 -0
  171. package/registry/flip-card/files/src/lib/kit.tsx +219 -0
  172. package/registry/flip-card.json +15 -0
  173. package/registry/floating-input/files/src/components/ui/floating-input.tsx +528 -0
  174. package/registry/floating-input/files/src/lib/kit.tsx +219 -0
  175. package/registry/floating-input.json +17 -0
  176. package/registry/gift-card.json +21 -0
  177. package/registry/glass-button.json +22 -0
  178. package/registry/glass-nav-bar.json +21 -0
  179. package/registry/glass-search-bar.json +21 -0
  180. package/registry/glass-segmented.json +22 -0
  181. package/registry/glass-sheet.json +22 -0
  182. package/registry/glass-tab-bar.json +22 -0
  183. package/registry/glass.json +19 -0
  184. package/registry/inbox.json +30 -0
  185. package/registry/isometric-bar.json +14 -0
  186. package/registry/kit/files/src/lib/kit.tsx +219 -0
  187. package/registry/kit.json +11 -0
  188. package/registry/kpi-card/files/src/components/charts/kpi-card.tsx +45 -0
  189. package/registry/kpi-card.json +14 -0
  190. package/registry/like-button.json +18 -0
  191. package/registry/liquidglass-tab/files/src/app/(tabs)/_layout.tsx +97 -0
  192. package/registry/liquidglass-tab/files/src/app/(tabs)/alerts.tsx +5 -0
  193. package/registry/liquidglass-tab/files/src/app/(tabs)/explore.tsx +5 -0
  194. package/registry/liquidglass-tab/files/src/app/(tabs)/index.tsx +5 -0
  195. package/registry/liquidglass-tab/files/src/app/(tabs)/profile.tsx +5 -0
  196. package/registry/liquidglass-tab/files/src/app/_layout.tsx +33 -0
  197. package/registry/liquidglass-tab/files/src/components/GlassTabBar.tsx +259 -0
  198. package/registry/liquidglass-tab/files/src/components/TabScreen.tsx +122 -0
  199. package/registry/liquidglass-tab/files/src/lib/tab-bar.ts +61 -0
  200. package/registry/liquidglass-tab/files/src/lib/tab-icons.ts +130 -0
  201. package/registry/liquidglass-tab/files/src/lib/tabs.ts +108 -0
  202. package/registry/liquidglass-tab.json +23 -0
  203. package/registry/list-item/files/src/components/ui/list-item.tsx +508 -0
  204. package/registry/list-item/files/src/lib/kit.tsx +219 -0
  205. package/registry/list-item.json +17 -0
  206. package/registry/loyalty-card.json +23 -0
  207. package/registry/morph-button.json +18 -0
  208. package/registry/number-ticker.json +15 -0
  209. package/registry/offers.json +24 -0
  210. package/registry/onboarding.json +17 -0
  211. package/registry/otp-input/files/src/components/ui/otp-input.tsx +380 -0
  212. package/registry/otp-input/files/src/lib/kit.tsx +219 -0
  213. package/registry/otp-input.json +17 -0
  214. package/registry/pagination-dots/files/src/components/ui/pagination-dots.tsx +262 -0
  215. package/registry/pagination-dots/files/src/lib/kit.tsx +219 -0
  216. package/registry/pagination-dots.json +15 -0
  217. package/registry/parallax-layers.json +15 -0
  218. package/registry/parallax-scroll.json +17 -0
  219. package/registry/password-input/files/src/components/ui/floating-input.tsx +528 -0
  220. package/registry/password-input/files/src/components/ui/password-input.tsx +271 -0
  221. package/registry/password-input/files/src/lib/kit.tsx +219 -0
  222. package/registry/password-input.json +19 -0
  223. package/registry/payment-card/files/src/components/ui/flip-card.tsx +205 -0
  224. package/registry/payment-card/files/src/components/ui/payment-card.tsx +385 -0
  225. package/registry/payment-card/files/src/components/ui/tilt-card.tsx +635 -0
  226. package/registry/payment-card/files/src/lib/kit.tsx +219 -0
  227. package/registry/payment-card.json +21 -0
  228. package/registry/pixel-bar.json +14 -0
  229. package/registry/polar-area.json +14 -0
  230. package/registry/profile.json +17 -0
  231. package/registry/progress/files/src/components/ui/progress.tsx +883 -0
  232. package/registry/progress/files/src/lib/kit.tsx +219 -0
  233. package/registry/progress-steps/files/src/components/ui/progress-steps.tsx +559 -0
  234. package/registry/progress-steps/files/src/lib/kit.tsx +219 -0
  235. package/registry/progress-steps.json +18 -0
  236. package/registry/progress.json +17 -0
  237. package/registry/radio-group/files/src/components/ui/radio-group.tsx +327 -0
  238. package/registry/radio-group/files/src/lib/kit.tsx +219 -0
  239. package/registry/radio-group.json +18 -0
  240. package/registry/rating.json +18 -0
  241. package/registry/ring-carousel.json +15 -0
  242. package/registry/scratch-card.json +18 -0
  243. package/registry/search-bar/files/src/components/ui/search-bar.tsx +530 -0
  244. package/registry/search-bar/files/src/lib/kit.tsx +219 -0
  245. package/registry/search-bar.json +17 -0
  246. package/registry/search-results.json +30 -0
  247. package/registry/segmented-control/files/src/components/ui/segmented-control.tsx +341 -0
  248. package/registry/segmented-control/files/src/lib/kit.tsx +219 -0
  249. package/registry/segmented-control.json +18 -0
  250. package/registry/select/files/src/components/ui/select.tsx +1398 -0
  251. package/registry/select/files/src/lib/kit.tsx +219 -0
  252. package/registry/select.json +17 -0
  253. package/registry/settings.json +26 -0
  254. package/registry/shimmer-button.json +17 -0
  255. package/registry/sign-in.json +26 -0
  256. package/registry/skeleton/files/src/components/ui/skeleton.tsx +799 -0
  257. package/registry/skeleton/files/src/lib/kit.tsx +219 -0
  258. package/registry/skeleton.json +17 -0
  259. package/registry/slide-to-confirm.json +18 -0
  260. package/registry/slider/files/src/components/ui/slider.tsx +716 -0
  261. package/registry/slider/files/src/lib/kit.tsx +219 -0
  262. package/registry/slider.json +17 -0
  263. package/registry/spin-wheel.json +18 -0
  264. package/registry/spinner/files/src/components/ui/spinner.tsx +748 -0
  265. package/registry/spinner/files/src/lib/kit.tsx +219 -0
  266. package/registry/spinner.json +17 -0
  267. package/registry/stateful-button/files/src/components/ui/stateful-button.tsx +532 -0
  268. package/registry/stateful-button/files/src/lib/kit.tsx +219 -0
  269. package/registry/stateful-button.json +18 -0
  270. package/registry/stepper/files/src/components/ui/stepper.tsx +646 -0
  271. package/registry/stepper/files/src/lib/kit.tsx +219 -0
  272. package/registry/stepper.json +17 -0
  273. package/registry/swipe-deck.json +15 -0
  274. package/registry/swipeable-row.json +15 -0
  275. package/registry/switch/files/src/components/ui/switch.tsx +344 -0
  276. package/registry/switch/files/src/lib/kit.tsx +219 -0
  277. package/registry/switch.json +18 -0
  278. package/registry/tabs/files/src/components/ui/tabs.tsx +539 -0
  279. package/registry/tabs/files/src/lib/kit.tsx +219 -0
  280. package/registry/tabs.json +17 -0
  281. package/registry/tag-input/files/src/components/ui/tag-input.tsx +720 -0
  282. package/registry/tag-input/files/src/lib/kit.tsx +219 -0
  283. package/registry/tag-input.json +17 -0
  284. package/registry/text-animation/files/src/components/ui/text-animation.tsx +650 -0
  285. package/registry/text-animation/files/src/lib/kit.tsx +219 -0
  286. package/registry/text-animation.json +15 -0
  287. package/registry/textarea/files/src/components/ui/textarea.tsx +553 -0
  288. package/registry/textarea/files/src/lib/kit.tsx +219 -0
  289. package/registry/textarea.json +17 -0
  290. package/registry/ticket-card.json +24 -0
  291. package/registry/ticket-shape/files/src/lib/kit.tsx +219 -0
  292. package/registry/ticket-shape/files/src/lib/ticket-shape.tsx +543 -0
  293. package/registry/ticket-shape.json +17 -0
  294. package/registry/tilt-card/files/src/components/ui/tilt-card.tsx +635 -0
  295. package/registry/tilt-card/files/src/lib/kit.tsx +219 -0
  296. package/registry/tilt-card.json +17 -0
  297. package/registry/time-picker/files/src/components/ui/time-picker.tsx +1159 -0
  298. package/registry/time-picker/files/src/lib/kit.tsx +219 -0
  299. package/registry/time-picker.json +17 -0
  300. package/registry/timeline/files/src/components/ui/avatar.tsx +790 -0
  301. package/registry/timeline/files/src/components/ui/timeline.tsx +1059 -0
  302. package/registry/timeline/files/src/lib/kit.tsx +219 -0
  303. package/registry/timeline-chart.json +14 -0
  304. package/registry/timeline.json +20 -0
  305. package/registry/toast/files/src/components/ui/button.tsx +274 -0
  306. package/registry/toast/files/src/components/ui/toast.tsx +1284 -0
  307. package/registry/toast/files/src/lib/kit.tsx +219 -0
  308. package/registry/toast.json +20 -0
  309. package/registry/treemap.json +14 -0
  310. package/registry/waterfall.json +14 -0
  311. package/registry/wheel-list.json +17 -0
  312. package/schema/components.schema.json +13 -0
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "glass-search-bar",
3
+ "category": "Glass",
4
+ "aliases": [],
5
+ "exportName": "GlassSearchBar",
6
+ "files": [
7
+ "src/components/ui/glass-search-bar.tsx"
8
+ ],
9
+ "summary": "A floating glass search pill that swells on focus as a cancel button splits off.",
10
+ "props": [
11
+ [
12
+ "value / defaultValue / onChangeText",
13
+ "string",
14
+ "—",
15
+ "Controlled or uncontrolled query; clear and cancel report ''."
16
+ ],
17
+ [
18
+ "placeholder",
19
+ "string",
20
+ "\"Search\"",
21
+ "Placeholder, also the field's accessibility label."
22
+ ],
23
+ [
24
+ "onSubmit",
25
+ "(text: string) => void",
26
+ "—",
27
+ "Called with the query when the keyboard's search key is pressed."
28
+ ],
29
+ [
30
+ "showCancel",
31
+ "boolean",
32
+ "false",
33
+ "A glass cancel button springs in beside the pill while focused or holding text."
34
+ ],
35
+ [
36
+ "cancelLabel",
37
+ "string",
38
+ "— (round ✕)",
39
+ "Text for the cancel button, e.g. \"Cancel\"; without it the button is a round ✕."
40
+ ],
41
+ [
42
+ "onCancel",
43
+ "() => void",
44
+ "—",
45
+ "After cancel clears the query and dismisses the keyboard."
46
+ ],
47
+ [
48
+ "leading",
49
+ "ReactNode",
50
+ "magnifier",
51
+ "Replaces the magnifier at the start of the pill."
52
+ ],
53
+ [
54
+ "trailing",
55
+ "ReactNode",
56
+ "—",
57
+ "Inside the pill at the end, e.g. a mic button."
58
+ ],
59
+ [
60
+ "autoFocus",
61
+ "boolean",
62
+ "false",
63
+ "Focus the field on mount."
64
+ ],
65
+ [
66
+ "scheme",
67
+ "'light' | 'dark'",
68
+ "kit theme",
69
+ "Force light or dark glass and ink, e.g. 'dark' over a photo."
70
+ ],
71
+ [
72
+ "size",
73
+ "'md' | 'lg'",
74
+ "'md'",
75
+ "44 / 52pt tall; font, icons and padding scale too."
76
+ ],
77
+ [
78
+ "style",
79
+ "StyleProp<ViewStyle>",
80
+ "—",
81
+ "Row holding the pill and the cancel button."
82
+ ],
83
+ [
84
+ "…TextInputProps",
85
+ "",
86
+ "",
87
+ "editable, returnKeyType, onFocus, onBlur, onSubmitEditing, … (ref forwards to the TextInput)."
88
+ ]
89
+ ],
90
+ "behavior": [
91
+ [
92
+ "Motion",
93
+ "The pill swells a touch on focus and a clear button pops in once there is text. With showCancel, a glass cancel button springs in beside it while searching."
94
+ ],
95
+ [
96
+ "Reduced motion",
97
+ "The pill no longer swells, and the clear and cancel buttons fade in with a short timing instead of a spring."
98
+ ],
99
+ [
100
+ "Keyboard",
101
+ "The return key reads Search and calls onSubmit with the query. Cancel clears the text and dismisses the keyboard."
102
+ ],
103
+ [
104
+ "Screen readers",
105
+ "The field has the search role and is labelled by its placeholder. The clear and cancel buttons read \"Clear search\" and cancelLabel (or \"Cancel search\")."
106
+ ],
107
+ [
108
+ "Platforms",
109
+ "Real Liquid Glass on iOS 26, where the pill and cancel button melt together. Blur or frosted glass everywhere else."
110
+ ]
111
+ ],
112
+ "usage": null,
113
+ "examples": []
114
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "glass-segmented",
3
+ "category": "Glass",
4
+ "aliases": [],
5
+ "exportName": "GlassSegmentedControl",
6
+ "files": [
7
+ "src/components/ui/glass-segmented.tsx"
8
+ ],
9
+ "summary": "A glass segmented control whose thumb stretches toward the new segment like a drop.",
10
+ "props": [
11
+ [
12
+ "options",
13
+ "(string | { value, label, icon? })[]",
14
+ "—",
15
+ "Equal-width segments; icon is a node shown before the label."
16
+ ],
17
+ [
18
+ "value / onChange",
19
+ "string / (value) => void",
20
+ "—",
21
+ "Controlled selection (or use defaultValue). Fires on tap and on release after a drag."
22
+ ],
23
+ [
24
+ "defaultValue",
25
+ "string",
26
+ "first segment",
27
+ "Initial selection when uncontrolled."
28
+ ],
29
+ [
30
+ "size",
31
+ "'sm' | 'md'",
32
+ "'md'",
33
+ "32 / 40pt tall."
34
+ ],
35
+ [
36
+ "scheme",
37
+ "'light' | 'dark'",
38
+ "kit theme",
39
+ "Force light or dark glass and ink, e.g. over a photo."
40
+ ],
41
+ [
42
+ "accent",
43
+ "string",
44
+ "glass ink (black / white)",
45
+ "Selection colour: fills the thumb; the label switches to black or white to stay readable."
46
+ ],
47
+ [
48
+ "haptics",
49
+ "boolean",
50
+ "true",
51
+ "Selection tick on change and while dragging across segments."
52
+ ],
53
+ [
54
+ "accessibilityLabel",
55
+ "string",
56
+ "—",
57
+ "Label for the whole control (tablist; each segment is a tab with selected state)."
58
+ ],
59
+ [
60
+ "style",
61
+ "StyleProp<ViewStyle>",
62
+ "—",
63
+ "Style for the glass track."
64
+ ]
65
+ ],
66
+ "behavior": [
67
+ [
68
+ "Touch",
69
+ "Tap a segment, or press the thumb and drag it across. It follows your finger and snaps to the nearest segment on release."
70
+ ],
71
+ [
72
+ "Motion",
73
+ "The thumb springs to the new segment, stretching in the direction of travel before it settles. It lifts slightly while you drag it."
74
+ ],
75
+ [
76
+ "Reduced motion",
77
+ "The thumb slides over in a short timing with no stretch, and does not lift when dragged."
78
+ ],
79
+ [
80
+ "Haptics",
81
+ "A selection tick on change and each time a drag crosses into another segment."
82
+ ],
83
+ [
84
+ "Screen readers",
85
+ "The control is a tablist and each segment a tab with its label and selected state."
86
+ ],
87
+ [
88
+ "Platforms",
89
+ "Built on Glass: real Liquid Glass on iOS 26, blurred or frosted glass elsewhere."
90
+ ]
91
+ ],
92
+ "usage": null,
93
+ "examples": []
94
+ }
@@ -0,0 +1,136 @@
1
+ {
2
+ "name": "glass-sheet",
3
+ "category": "Glass",
4
+ "aliases": [],
5
+ "exportName": "GlassSheet",
6
+ "files": [
7
+ "src/components/ui/glass-sheet.tsx"
8
+ ],
9
+ "summary": "A floating glass bottom sheet that follows your finger and snaps with velocity.",
10
+ "props": [
11
+ [
12
+ "open",
13
+ "boolean",
14
+ "—",
15
+ "Show the sheet."
16
+ ],
17
+ [
18
+ "onClose",
19
+ "() => void",
20
+ "—",
21
+ "Called after it is dragged, flung, tapped or back-buttoned closed."
22
+ ],
23
+ [
24
+ "snapPoints",
25
+ "(number | \"NN%\")[]",
26
+ "fits content",
27
+ "Resting heights in points or % of the screen; without them one snap sized to the content (capped below the status bar)."
28
+ ],
29
+ [
30
+ "initialSnap",
31
+ "number",
32
+ "0",
33
+ "Snap index it opens at."
34
+ ],
35
+ [
36
+ "onSnapChange",
37
+ "(index: number) => void",
38
+ "—",
39
+ "Fires when it settles on another snap."
40
+ ],
41
+ [
42
+ "title",
43
+ "string",
44
+ "—",
45
+ "Centred heading under the grabber."
46
+ ],
47
+ [
48
+ "detached",
49
+ "boolean",
50
+ "true",
51
+ "Float inset from the screen edges with every corner rounded (iOS 26); false docks it edge-to-edge."
52
+ ],
53
+ [
54
+ "inset",
55
+ "number",
56
+ "10",
57
+ "Gap to the screen edges when detached."
58
+ ],
59
+ [
60
+ "radius",
61
+ "number",
62
+ "32",
63
+ "Corner radius."
64
+ ],
65
+ [
66
+ "scheme",
67
+ "'light' | 'dark'",
68
+ "kit theme",
69
+ "Force light or dark glass and ink."
70
+ ],
71
+ [
72
+ "dismissible",
73
+ "boolean",
74
+ "true",
75
+ "Allow drag-down / backdrop tap / back to close; otherwise it rubber-bands at the lowest snap."
76
+ ],
77
+ [
78
+ "haptics",
79
+ "boolean",
80
+ "true",
81
+ "Light tap on open, selection tick on each snap."
82
+ ],
83
+ [
84
+ "bottomInset",
85
+ "number",
86
+ "platform safe inset",
87
+ "Edge-to-edge: padding above the home indicator; pass useSafeAreaInsets().bottom for the device."
88
+ ],
89
+ [
90
+ "accessibilityLabel",
91
+ "string",
92
+ "title",
93
+ "Label for the modal sheet."
94
+ ],
95
+ [
96
+ "style / contentStyle",
97
+ "StyleProp<ViewStyle>",
98
+ "—",
99
+ "Sheet style (e.g. maxWidth) and the scrolling content container."
100
+ ],
101
+ [
102
+ "children",
103
+ "ReactNode",
104
+ "—",
105
+ "Sheet content; scrolls at the top snap when taller than the sheet."
106
+ ]
107
+ ],
108
+ "behavior": [
109
+ [
110
+ "Touch",
111
+ "Drag from the grabber or the content. Release velocity picks the snap point, and a fling down or a backdrop tap dismisses it."
112
+ ],
113
+ [
114
+ "Motion",
115
+ "It springs up over a fading dim and the grabber widens while held. Without snapPoints it sizes to its content, and taller content scrolls."
116
+ ],
117
+ [
118
+ "Reduced motion",
119
+ "Snapping, opening and closing use short timings instead of springs."
120
+ ],
121
+ [
122
+ "Haptics",
123
+ "A light tap on open and a selection tick each time it settles on a snap point."
124
+ ],
125
+ [
126
+ "Screen readers",
127
+ "The sheet is modal and the escape gesture closes it. The grabber is adjustable: increment and decrement step between snap points, and decrement from the lowest one closes it."
128
+ ],
129
+ [
130
+ "Platforms",
131
+ "Real Liquid Glass on iOS 26, material blur on older iOS and web, and a frosted surface on Android. Android back closes it."
132
+ ]
133
+ ],
134
+ "usage": null,
135
+ "examples": []
136
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "name": "glass-tab-bar",
3
+ "category": "Glass",
4
+ "aliases": [
5
+ "liquid-glass-tabs",
6
+ "floating-tab-bar",
7
+ "ios-26-tab-bar"
8
+ ],
9
+ "exportName": "GlassTabBar",
10
+ "files": [
11
+ "src/components/ui/glass-tab-bar.tsx"
12
+ ],
13
+ "summary": "A floating glass tab bar whose selection bubble stretches as it springs between tabs.",
14
+ "props": [
15
+ [
16
+ "tabs",
17
+ "{ key, label, icon, badge? }[]",
18
+ "—",
19
+ "Tabs, left to right. `icon` is a render function `({ color, size, focused }) => node`; `badge` (number | string) shows a red count bubble, hidden when 0 or ''."
20
+ ],
21
+ [
22
+ "value / defaultValue",
23
+ "string",
24
+ "first tab",
25
+ "Selected tab key (controlled / uncontrolled)."
26
+ ],
27
+ [
28
+ "onChange",
29
+ "(key: string) => void",
30
+ "—",
31
+ "Called when a different tab is pressed."
32
+ ],
33
+ [
34
+ "showLabels",
35
+ "boolean",
36
+ "true",
37
+ "Labels under the icons. Icons-only tabs get a slightly larger icon."
38
+ ],
39
+ [
40
+ "accent",
41
+ "string",
42
+ "kit accent (glass ink)",
43
+ "Selected icon and label colour — black on light glass, white on dark unless the kit accent is customised."
44
+ ],
45
+ [
46
+ "scheme",
47
+ "'light' | 'dark'",
48
+ "kit theme",
49
+ "Force light or dark glass, e.g. 'dark' over photos."
50
+ ],
51
+ [
52
+ "trailing",
53
+ "{ icon, onPress, label }",
54
+ "—",
55
+ "A separate circular glass button to the right (e.g. search), grouped with the bar so they melt together on iOS 26. `label` is its accessibility label."
56
+ ],
57
+ [
58
+ "haptics",
59
+ "boolean",
60
+ "true",
61
+ "Selection tick on tab change, light tap on the trailing button."
62
+ ],
63
+ [
64
+ "style",
65
+ "StyleProp<ViewStyle>",
66
+ "—",
67
+ "Style of the outer row. The bar does not position itself — place it (e.g. absolute, bottom: insets.bottom + 8)."
68
+ ],
69
+ [
70
+ "GLASS_TAB_BAR_HEIGHT",
71
+ "number",
72
+ "62",
73
+ "Exported height of the bar (and the trailing circle) — pad your scroll content by it."
74
+ ]
75
+ ],
76
+ "behavior": [
77
+ [
78
+ "Motion",
79
+ "The lighter bubble springs to the selected tab, stretching as it travels and settling when it lands. The selected icon lifts, and buttons spring down while pressed."
80
+ ],
81
+ [
82
+ "Reduced motion",
83
+ "The bubble jumps to the new tab without stretching, icons switch without a spring and press springs are off."
84
+ ],
85
+ [
86
+ "Haptics",
87
+ "A selection tick when the tab changes and a light tap on the trailing button."
88
+ ],
89
+ [
90
+ "Screen readers",
91
+ "The bar is a tablist; each tab is a tab with its selected state, and the badge count is read after the label."
92
+ ],
93
+ [
94
+ "Platforms",
95
+ "Real Liquid Glass on iOS 26, where the trailing button melts into the bar. Blur everywhere else."
96
+ ]
97
+ ],
98
+ "usage": null,
99
+ "examples": []
100
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "glass",
3
+ "category": "Glass",
4
+ "aliases": [],
5
+ "exportName": "GlassProvider",
6
+ "files": [
7
+ "src/components/ui/glass.tsx"
8
+ ],
9
+ "summary": "A Liquid Glass surface: native on iOS 26, emulated with blur and a rim elsewhere.",
10
+ "props": [
11
+ [
12
+ "variant",
13
+ "'regular' | 'clear'",
14
+ "'regular'",
15
+ "Frosted, or more see-through for media behind."
16
+ ],
17
+ [
18
+ "tint",
19
+ "string",
20
+ "—",
21
+ "Colour washed into the glass, e.g. your accent for a selected state."
22
+ ],
23
+ [
24
+ "interactive",
25
+ "boolean",
26
+ "false",
27
+ "iOS 26: the glass shimmers and bounces under touch."
28
+ ],
29
+ [
30
+ "radius",
31
+ "number | 'full'",
32
+ "kit lg radius",
33
+ "Corner radius, or 'full' for pills and circles."
34
+ ],
35
+ [
36
+ "intensity",
37
+ "number",
38
+ "60",
39
+ "Blur strength 1–100 where blur is emulated."
40
+ ],
41
+ [
42
+ "edge / shadow",
43
+ "boolean",
44
+ "true / true",
45
+ "Specular rim + hairline edge, and the soft drop shadow (emulated glass)."
46
+ ],
47
+ [
48
+ "scheme",
49
+ "'light' | 'dark'",
50
+ "kit theme",
51
+ "Force light or dark glass, e.g. over a photo."
52
+ ],
53
+ [
54
+ "GlassGroup",
55
+ "{ spacing }",
56
+ "12",
57
+ "Shapes inside melt together on iOS 26 when closer than spacing."
58
+ ],
59
+ [
60
+ "GlassProvider / GlassBackdrop / GlassIsolate",
61
+ "wrappers",
62
+ "—",
63
+ "Android real blur: put the content behind the glass in GlassBackdrop, glass UI as its siblings. GlassIsolate opts a subtree (e.g. a Modal) out."
64
+ ],
65
+ [
66
+ "liquidGlass / useGlassInk()",
67
+ "boolean / hook",
68
+ "—",
69
+ "Whether native Liquid Glass is on; text colours that read on glass."
70
+ ],
71
+ [
72
+ "style",
73
+ "StyleProp<ViewStyle>",
74
+ "—",
75
+ "Size, padding and layout."
76
+ ]
77
+ ],
78
+ "behavior": [
79
+ [
80
+ "Touch",
81
+ "With interactive, iOS 26 glass shimmers and bounces under the finger. Elsewhere the prop is ignored."
82
+ ],
83
+ [
84
+ "Platforms",
85
+ "iOS 26 renders real Liquid Glass that GlassGroup can merge; older iOS uses a system material blur. Android blurs inside GlassProvider + GlassBackdrop and falls back to a frosted fill."
86
+ ],
87
+ [
88
+ "Web",
89
+ "Blurs what is behind it with a CSS backdrop blur. Wherever glass is emulated it adds a specular rim, a hairline edge and a soft shadow."
90
+ ]
91
+ ],
92
+ "usage": null,
93
+ "examples": []
94
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "inbox",
3
+ "category": "Blocks",
4
+ "aliases": [],
5
+ "exportName": "Inbox",
6
+ "files": [
7
+ "src/components/blocks/inbox.tsx"
8
+ ],
9
+ "summary": null,
10
+ "props": [
11
+ [
12
+ "messages",
13
+ "{ id, from, avatar?, subject, preview, time, unread?, mentioned?, online? }[]",
14
+ "6 sample threads",
15
+ "Initial threads. Archive / delete / read state is kept locally."
16
+ ],
17
+ [
18
+ "title",
19
+ "string",
20
+ "'Inbox'",
21
+ "Screen heading."
22
+ ],
23
+ [
24
+ "defaultFilter",
25
+ "'all' | 'unread' | 'mentions'",
26
+ "'all'",
27
+ "Initially selected filter chip."
28
+ ],
29
+ [
30
+ "onOpen",
31
+ "(message) => void",
32
+ "—",
33
+ "A row was tapped (it is marked read)."
34
+ ],
35
+ [
36
+ "onArchive",
37
+ "(message) => void",
38
+ "—",
39
+ "Swiped / tapped Archive."
40
+ ],
41
+ [
42
+ "onDelete",
43
+ "(message) => void",
44
+ "—",
45
+ "Swiped / tapped Delete."
46
+ ],
47
+ [
48
+ "onToggleRead",
49
+ "(message, unread: boolean) => void",
50
+ "—",
51
+ "Marked read or unread."
52
+ ],
53
+ [
54
+ "onCompose",
55
+ "() => void",
56
+ "—",
57
+ "Shows a compose button in the header when set."
58
+ ],
59
+ [
60
+ "accent",
61
+ "string",
62
+ "theme accent",
63
+ "Chip, badge, search focus and time colour."
64
+ ],
65
+ [
66
+ "style",
67
+ "StyleProp<ViewStyle>",
68
+ "—",
69
+ "Root style."
70
+ ]
71
+ ],
72
+ "behavior": [],
73
+ "usage": null,
74
+ "examples": []
75
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "isometric-bar",
3
+ "category": "Charts",
4
+ "aliases": [],
5
+ "exportName": "IsometricBarChart",
6
+ "files": [
7
+ "src/components/charts/isometric-bar.tsx"
8
+ ],
9
+ "summary": null,
10
+ "props": [
11
+ [
12
+ "data",
13
+ "{ label, value, color? }[]",
14
+ "—",
15
+ "One block per category."
16
+ ],
17
+ [
18
+ "height",
19
+ "number",
20
+ "240",
21
+ "Chart height."
22
+ ],
23
+ [
24
+ "animate",
25
+ "boolean",
26
+ "true",
27
+ "Entrance animation."
28
+ ],
29
+ [
30
+ "isLoading",
31
+ "boolean",
32
+ "false",
33
+ "Skeleton state."
34
+ ],
35
+ [
36
+ "formatValue",
37
+ "(v) => string",
38
+ "compact",
39
+ "Value formatting."
40
+ ],
41
+ [
42
+ "onSelect",
43
+ "(item, index) => void",
44
+ "—",
45
+ "Tap callback."
46
+ ],
47
+ [
48
+ "depth",
49
+ "number",
50
+ "10",
51
+ "3D depth."
52
+ ],
53
+ [
54
+ "direction",
55
+ "\"left\" | \"right\"",
56
+ "\"right\"",
57
+ "Side the depth goes."
58
+ ],
59
+ [
60
+ "highlightMax",
61
+ "boolean | string",
62
+ "true",
63
+ "Colour for the tallest bar."
64
+ ],
65
+ [
66
+ "color",
67
+ "string",
68
+ "palette[0]",
69
+ "Bar colour."
70
+ ]
71
+ ],
72
+ "behavior": [],
73
+ "usage": null,
74
+ "examples": []
75
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "kit",
3
+ "category": null,
4
+ "aliases": [],
5
+ "exportName": "KitProvider",
6
+ "files": [
7
+ "src/lib/kit.tsx"
8
+ ],
9
+ "summary": null,
10
+ "props": [],
11
+ "behavior": [],
12
+ "usage": null,
13
+ "examples": []
14
+ }