@ankhorage/zora 0.0.1

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 (284) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +21 -0
  3. package/README.md +198 -0
  4. package/dist/components/badge/Badge.d.ts +4 -0
  5. package/dist/components/badge/Badge.d.ts.map +1 -0
  6. package/dist/components/badge/Badge.js +8 -0
  7. package/dist/components/badge/Badge.js.map +1 -0
  8. package/dist/components/badge/index.d.ts +3 -0
  9. package/dist/components/badge/index.d.ts.map +1 -0
  10. package/dist/components/badge/index.js +2 -0
  11. package/dist/components/badge/index.js.map +1 -0
  12. package/dist/components/badge/types.d.ts +10 -0
  13. package/dist/components/badge/types.d.ts.map +1 -0
  14. package/dist/components/badge/types.js +2 -0
  15. package/dist/components/badge/types.js.map +1 -0
  16. package/dist/components/button/Button.d.ts +4 -0
  17. package/dist/components/button/Button.d.ts.map +1 -0
  18. package/dist/components/button/Button.js +8 -0
  19. package/dist/components/button/Button.js.map +1 -0
  20. package/dist/components/button/index.d.ts +3 -0
  21. package/dist/components/button/index.d.ts.map +1 -0
  22. package/dist/components/button/index.js +2 -0
  23. package/dist/components/button/index.js.map +1 -0
  24. package/dist/components/button/types.d.ts +12 -0
  25. package/dist/components/button/types.d.ts.map +1 -0
  26. package/dist/components/button/types.js +2 -0
  27. package/dist/components/button/types.js.map +1 -0
  28. package/dist/components/card/Card.d.ts +4 -0
  29. package/dist/components/card/Card.d.ts.map +1 -0
  30. package/dist/components/card/Card.js +31 -0
  31. package/dist/components/card/Card.js.map +1 -0
  32. package/dist/components/card/index.d.ts +3 -0
  33. package/dist/components/card/index.d.ts.map +1 -0
  34. package/dist/components/card/index.js +2 -0
  35. package/dist/components/card/index.js.map +1 -0
  36. package/dist/components/card/types.d.ts +14 -0
  37. package/dist/components/card/types.d.ts.map +1 -0
  38. package/dist/components/card/types.js +2 -0
  39. package/dist/components/card/types.js.map +1 -0
  40. package/dist/components/drawer/Drawer.d.ts +4 -0
  41. package/dist/components/drawer/Drawer.d.ts.map +1 -0
  42. package/dist/components/drawer/Drawer.js +18 -0
  43. package/dist/components/drawer/Drawer.js.map +1 -0
  44. package/dist/components/drawer/index.d.ts +3 -0
  45. package/dist/components/drawer/index.d.ts.map +1 -0
  46. package/dist/components/drawer/index.js +2 -0
  47. package/dist/components/drawer/index.js.map +1 -0
  48. package/dist/components/drawer/types.d.ts +9 -0
  49. package/dist/components/drawer/types.d.ts.map +1 -0
  50. package/dist/components/drawer/types.js +2 -0
  51. package/dist/components/drawer/types.js.map +1 -0
  52. package/dist/components/input/Input.d.ts +4 -0
  53. package/dist/components/input/Input.d.ts.map +1 -0
  54. package/dist/components/input/Input.js +10 -0
  55. package/dist/components/input/Input.js.map +1 -0
  56. package/dist/components/input/index.d.ts +3 -0
  57. package/dist/components/input/index.d.ts.map +1 -0
  58. package/dist/components/input/index.js +2 -0
  59. package/dist/components/input/index.js.map +1 -0
  60. package/dist/components/input/types.d.ts +8 -0
  61. package/dist/components/input/types.d.ts.map +1 -0
  62. package/dist/components/input/types.js +2 -0
  63. package/dist/components/input/types.js.map +1 -0
  64. package/dist/components/modal/Modal.d.ts +4 -0
  65. package/dist/components/modal/Modal.d.ts.map +1 -0
  66. package/dist/components/modal/Modal.js +21 -0
  67. package/dist/components/modal/Modal.js.map +1 -0
  68. package/dist/components/modal/index.d.ts +3 -0
  69. package/dist/components/modal/index.d.ts.map +1 -0
  70. package/dist/components/modal/index.js +2 -0
  71. package/dist/components/modal/index.js.map +1 -0
  72. package/dist/components/modal/types.d.ts +11 -0
  73. package/dist/components/modal/types.d.ts.map +1 -0
  74. package/dist/components/modal/types.js +2 -0
  75. package/dist/components/modal/types.js.map +1 -0
  76. package/dist/components/textarea/Textarea.d.ts +4 -0
  77. package/dist/components/textarea/Textarea.d.ts.map +1 -0
  78. package/dist/components/textarea/Textarea.js +10 -0
  79. package/dist/components/textarea/Textarea.js.map +1 -0
  80. package/dist/components/textarea/index.d.ts +3 -0
  81. package/dist/components/textarea/index.d.ts.map +1 -0
  82. package/dist/components/textarea/index.js +2 -0
  83. package/dist/components/textarea/index.js.map +1 -0
  84. package/dist/components/textarea/types.d.ts +8 -0
  85. package/dist/components/textarea/types.d.ts.map +1 -0
  86. package/dist/components/textarea/types.js +2 -0
  87. package/dist/components/textarea/types.js.map +1 -0
  88. package/dist/index.d.ts +44 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +23 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/internal/deepMerge.d.ts +2 -0
  93. package/dist/internal/deepMerge.d.ts.map +1 -0
  94. package/dist/internal/deepMerge.js +20 -0
  95. package/dist/internal/deepMerge.js.map +1 -0
  96. package/dist/internal/recipes.d.ts +22 -0
  97. package/dist/internal/recipes.d.ts.map +1 -0
  98. package/dist/internal/recipes.js +59 -0
  99. package/dist/internal/recipes.js.map +1 -0
  100. package/dist/layout/auth-layout/AuthLayout.d.ts +4 -0
  101. package/dist/layout/auth-layout/AuthLayout.d.ts.map +1 -0
  102. package/dist/layout/auth-layout/AuthLayout.js +11 -0
  103. package/dist/layout/auth-layout/AuthLayout.js.map +1 -0
  104. package/dist/layout/auth-layout/index.d.ts +3 -0
  105. package/dist/layout/auth-layout/index.d.ts.map +1 -0
  106. package/dist/layout/auth-layout/index.js +2 -0
  107. package/dist/layout/auth-layout/index.js.map +1 -0
  108. package/dist/layout/auth-layout/types.d.ts +10 -0
  109. package/dist/layout/auth-layout/types.d.ts.map +1 -0
  110. package/dist/layout/auth-layout/types.js +2 -0
  111. package/dist/layout/auth-layout/types.js.map +1 -0
  112. package/dist/layout/page/Page.d.ts +4 -0
  113. package/dist/layout/page/Page.d.ts.map +1 -0
  114. package/dist/layout/page/Page.js +13 -0
  115. package/dist/layout/page/Page.js.map +1 -0
  116. package/dist/layout/page/index.d.ts +3 -0
  117. package/dist/layout/page/index.d.ts.map +1 -0
  118. package/dist/layout/page/index.js +2 -0
  119. package/dist/layout/page/index.js.map +1 -0
  120. package/dist/layout/page/types.d.ts +10 -0
  121. package/dist/layout/page/types.d.ts.map +1 -0
  122. package/dist/layout/page/types.js +2 -0
  123. package/dist/layout/page/types.js.map +1 -0
  124. package/dist/layout/page-header/PageHeader.d.ts +4 -0
  125. package/dist/layout/page-header/PageHeader.d.ts.map +1 -0
  126. package/dist/layout/page-header/PageHeader.js +20 -0
  127. package/dist/layout/page-header/PageHeader.js.map +1 -0
  128. package/dist/layout/page-header/index.d.ts +3 -0
  129. package/dist/layout/page-header/index.d.ts.map +1 -0
  130. package/dist/layout/page-header/index.js +2 -0
  131. package/dist/layout/page-header/index.js.map +1 -0
  132. package/dist/layout/page-header/types.d.ts +10 -0
  133. package/dist/layout/page-header/types.d.ts.map +1 -0
  134. package/dist/layout/page-header/types.js +2 -0
  135. package/dist/layout/page-header/types.js.map +1 -0
  136. package/dist/layout/page-section/PageSection.d.ts +4 -0
  137. package/dist/layout/page-section/PageSection.d.ts.map +1 -0
  138. package/dist/layout/page-section/PageSection.js +10 -0
  139. package/dist/layout/page-section/PageSection.js.map +1 -0
  140. package/dist/layout/page-section/index.d.ts +3 -0
  141. package/dist/layout/page-section/index.d.ts.map +1 -0
  142. package/dist/layout/page-section/index.js +2 -0
  143. package/dist/layout/page-section/index.js.map +1 -0
  144. package/dist/layout/page-section/types.d.ts +9 -0
  145. package/dist/layout/page-section/types.d.ts.map +1 -0
  146. package/dist/layout/page-section/types.js +2 -0
  147. package/dist/layout/page-section/types.js.map +1 -0
  148. package/dist/layout/settings-layout/SettingsLayout.d.ts +4 -0
  149. package/dist/layout/settings-layout/SettingsLayout.d.ts.map +1 -0
  150. package/dist/layout/settings-layout/SettingsLayout.js +10 -0
  151. package/dist/layout/settings-layout/SettingsLayout.js.map +1 -0
  152. package/dist/layout/settings-layout/index.d.ts +3 -0
  153. package/dist/layout/settings-layout/index.d.ts.map +1 -0
  154. package/dist/layout/settings-layout/index.js +2 -0
  155. package/dist/layout/settings-layout/index.js.map +1 -0
  156. package/dist/layout/settings-layout/types.d.ts +10 -0
  157. package/dist/layout/settings-layout/types.d.ts.map +1 -0
  158. package/dist/layout/settings-layout/types.js +2 -0
  159. package/dist/layout/settings-layout/types.js.map +1 -0
  160. package/dist/layout/sidebar-layout/SidebarLayout.d.ts +4 -0
  161. package/dist/layout/sidebar-layout/SidebarLayout.d.ts.map +1 -0
  162. package/dist/layout/sidebar-layout/SidebarLayout.js +12 -0
  163. package/dist/layout/sidebar-layout/SidebarLayout.js.map +1 -0
  164. package/dist/layout/sidebar-layout/index.d.ts +3 -0
  165. package/dist/layout/sidebar-layout/index.d.ts.map +1 -0
  166. package/dist/layout/sidebar-layout/index.js +2 -0
  167. package/dist/layout/sidebar-layout/index.js.map +1 -0
  168. package/dist/layout/sidebar-layout/types.d.ts +10 -0
  169. package/dist/layout/sidebar-layout/types.d.ts.map +1 -0
  170. package/dist/layout/sidebar-layout/types.js +2 -0
  171. package/dist/layout/sidebar-layout/types.js.map +1 -0
  172. package/dist/layout/topbar-layout/TopbarLayout.d.ts +4 -0
  173. package/dist/layout/topbar-layout/TopbarLayout.d.ts.map +1 -0
  174. package/dist/layout/topbar-layout/TopbarLayout.js +10 -0
  175. package/dist/layout/topbar-layout/TopbarLayout.js.map +1 -0
  176. package/dist/layout/topbar-layout/index.d.ts +3 -0
  177. package/dist/layout/topbar-layout/index.d.ts.map +1 -0
  178. package/dist/layout/topbar-layout/index.js +2 -0
  179. package/dist/layout/topbar-layout/index.js.map +1 -0
  180. package/dist/layout/topbar-layout/types.d.ts +8 -0
  181. package/dist/layout/topbar-layout/types.d.ts.map +1 -0
  182. package/dist/layout/topbar-layout/types.js +2 -0
  183. package/dist/layout/topbar-layout/types.js.map +1 -0
  184. package/dist/patterns/confirm-dialog/ConfirmDialog.d.ts +4 -0
  185. package/dist/patterns/confirm-dialog/ConfirmDialog.d.ts.map +1 -0
  186. package/dist/patterns/confirm-dialog/ConfirmDialog.js +17 -0
  187. package/dist/patterns/confirm-dialog/ConfirmDialog.js.map +1 -0
  188. package/dist/patterns/confirm-dialog/index.d.ts +3 -0
  189. package/dist/patterns/confirm-dialog/index.d.ts.map +1 -0
  190. package/dist/patterns/confirm-dialog/index.js +2 -0
  191. package/dist/patterns/confirm-dialog/index.js.map +1 -0
  192. package/dist/patterns/confirm-dialog/types.d.ts +18 -0
  193. package/dist/patterns/confirm-dialog/types.d.ts.map +1 -0
  194. package/dist/patterns/confirm-dialog/types.js +2 -0
  195. package/dist/patterns/confirm-dialog/types.js.map +1 -0
  196. package/dist/patterns/empty-state/EmptyState.d.ts +4 -0
  197. package/dist/patterns/empty-state/EmptyState.d.ts.map +1 -0
  198. package/dist/patterns/empty-state/EmptyState.js +20 -0
  199. package/dist/patterns/empty-state/EmptyState.js.map +1 -0
  200. package/dist/patterns/empty-state/index.d.ts +3 -0
  201. package/dist/patterns/empty-state/index.d.ts.map +1 -0
  202. package/dist/patterns/empty-state/index.js +2 -0
  203. package/dist/patterns/empty-state/index.js.map +1 -0
  204. package/dist/patterns/empty-state/types.d.ts +18 -0
  205. package/dist/patterns/empty-state/types.d.ts.map +1 -0
  206. package/dist/patterns/empty-state/types.js +2 -0
  207. package/dist/patterns/empty-state/types.js.map +1 -0
  208. package/dist/patterns/form-field/FormField.d.ts +4 -0
  209. package/dist/patterns/form-field/FormField.d.ts.map +1 -0
  210. package/dist/patterns/form-field/FormField.js +15 -0
  211. package/dist/patterns/form-field/FormField.js.map +1 -0
  212. package/dist/patterns/form-field/index.d.ts +3 -0
  213. package/dist/patterns/form-field/index.d.ts.map +1 -0
  214. package/dist/patterns/form-field/index.js +2 -0
  215. package/dist/patterns/form-field/index.js.map +1 -0
  216. package/dist/patterns/form-field/types.d.ts +8 -0
  217. package/dist/patterns/form-field/types.d.ts.map +1 -0
  218. package/dist/patterns/form-field/types.js +2 -0
  219. package/dist/patterns/form-field/types.js.map +1 -0
  220. package/dist/patterns/notice/Notice.d.ts +4 -0
  221. package/dist/patterns/notice/Notice.d.ts.map +1 -0
  222. package/dist/patterns/notice/Notice.js +13 -0
  223. package/dist/patterns/notice/Notice.js.map +1 -0
  224. package/dist/patterns/notice/index.d.ts +3 -0
  225. package/dist/patterns/notice/index.d.ts.map +1 -0
  226. package/dist/patterns/notice/index.js +2 -0
  227. package/dist/patterns/notice/index.js.map +1 -0
  228. package/dist/patterns/notice/types.d.ts +11 -0
  229. package/dist/patterns/notice/types.d.ts.map +1 -0
  230. package/dist/patterns/notice/types.js +2 -0
  231. package/dist/patterns/notice/types.js.map +1 -0
  232. package/dist/patterns/panel/Panel.d.ts +4 -0
  233. package/dist/patterns/panel/Panel.d.ts.map +1 -0
  234. package/dist/patterns/panel/Panel.js +6 -0
  235. package/dist/patterns/panel/Panel.js.map +1 -0
  236. package/dist/patterns/panel/index.d.ts +3 -0
  237. package/dist/patterns/panel/index.d.ts.map +1 -0
  238. package/dist/patterns/panel/index.js +2 -0
  239. package/dist/patterns/panel/index.js.map +1 -0
  240. package/dist/patterns/panel/types.d.ts +14 -0
  241. package/dist/patterns/panel/types.d.ts.map +1 -0
  242. package/dist/patterns/panel/types.js +2 -0
  243. package/dist/patterns/panel/types.js.map +1 -0
  244. package/dist/patterns/section-header/SectionHeader.d.ts +4 -0
  245. package/dist/patterns/section-header/SectionHeader.d.ts.map +1 -0
  246. package/dist/patterns/section-header/SectionHeader.js +19 -0
  247. package/dist/patterns/section-header/SectionHeader.js.map +1 -0
  248. package/dist/patterns/section-header/index.d.ts +3 -0
  249. package/dist/patterns/section-header/index.d.ts.map +1 -0
  250. package/dist/patterns/section-header/index.js +2 -0
  251. package/dist/patterns/section-header/index.js.map +1 -0
  252. package/dist/patterns/section-header/types.d.ts +9 -0
  253. package/dist/patterns/section-header/types.d.ts.map +1 -0
  254. package/dist/patterns/section-header/types.js +2 -0
  255. package/dist/patterns/section-header/types.js.map +1 -0
  256. package/dist/patterns/settings-row/SettingsRow.d.ts +4 -0
  257. package/dist/patterns/settings-row/SettingsRow.d.ts.map +1 -0
  258. package/dist/patterns/settings-row/SettingsRow.js +13 -0
  259. package/dist/patterns/settings-row/SettingsRow.js.map +1 -0
  260. package/dist/patterns/settings-row/index.d.ts +3 -0
  261. package/dist/patterns/settings-row/index.d.ts.map +1 -0
  262. package/dist/patterns/settings-row/index.js +2 -0
  263. package/dist/patterns/settings-row/index.js.map +1 -0
  264. package/dist/patterns/settings-row/types.d.ts +11 -0
  265. package/dist/patterns/settings-row/types.d.ts.map +1 -0
  266. package/dist/patterns/settings-row/types.js +2 -0
  267. package/dist/patterns/settings-row/types.js.map +1 -0
  268. package/dist/theme/ZoraProvider.d.ts +9 -0
  269. package/dist/theme/ZoraProvider.d.ts.map +1 -0
  270. package/dist/theme/ZoraProvider.js +9 -0
  271. package/dist/theme/ZoraProvider.js.map +1 -0
  272. package/dist/theme/createZoraTheme.d.ts +4 -0
  273. package/dist/theme/createZoraTheme.d.ts.map +1 -0
  274. package/dist/theme/createZoraTheme.js +6 -0
  275. package/dist/theme/createZoraTheme.js.map +1 -0
  276. package/dist/theme/index.d.ts +6 -0
  277. package/dist/theme/index.d.ts.map +1 -0
  278. package/dist/theme/index.js +4 -0
  279. package/dist/theme/index.js.map +1 -0
  280. package/dist/theme/zoraTheme.d.ts +3 -0
  281. package/dist/theme/zoraTheme.d.ts.map +1 -0
  282. package/dist/theme/zoraTheme.js +15 -0
  283. package/dist/theme/zoraTheme.js.map +1 -0
  284. package/package.json +87 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+
3
+ ## 0.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Bootstrap the initial ZORA package with theme preset, opinionated Surface wrappers, composition patterns, and app-shell layouts.
8
+
9
+ All notable changes to this project will be documented in this file.
10
+
11
+ The format is based on Changesets and the package changelog generated during release.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ankhorage
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,198 @@
1
+ # ZORA
2
+
3
+ **ZORA** = **ZerO-config React-native design system Architecture**
4
+
5
+ An opinionated UI kit for **React Native + Web**, built on top of `@ankhorage/surface`.
6
+
7
+ ZORA gives you ready-to-use, production-grade UI patterns with a consistent design language — without forcing a complex setup.
8
+
9
+ ---
10
+
11
+ ## What is ZORA?
12
+
13
+ ZORA is the **design system layer** on top of Surface.
14
+
15
+ - **Surface** → foundation (primitives, tokens, interactions)
16
+ - **ZORA** → UI kit (patterns, layouts, polished components)
17
+
18
+ Think:
19
+
20
+ - Surface = engine
21
+ - ZORA = car
22
+
23
+ ---
24
+
25
+ ## Why the name "Zora"?
26
+
27
+ **Zora** is a Slavic name meaning **dawn**, **sunrise**, or **aurora**.
28
+
29
+ That fits the package well: Surface is the foundation, while ZORA is the layer where that foundation becomes visible, expressive, and product-ready.
30
+
31
+ ---
32
+
33
+ ## Why use it?
34
+
35
+ Surface gives you flexibility.
36
+ ZORA gives you **speed and consistency**.
37
+
38
+ With ZORA you get:
39
+
40
+ - prebuilt UI patterns
41
+ - opinionated defaults
42
+ - consistent spacing, colors, and typography
43
+ - ready-to-use layouts
44
+ - production-ready components
45
+
46
+ ---
47
+
48
+ ## Quick example
49
+
50
+ ```tsx
51
+ import { Page, PageHeader, FormField, Input, Button } from '@ankhorage/zora'
52
+
53
+ export function Login() {
54
+ return (
55
+ <Page>
56
+ <PageHeader title="Sign in" />
57
+
58
+ <FormField label="Email">
59
+ <Input placeholder="you@example.com" />
60
+ </FormField>
61
+
62
+ <FormField label="Password">
63
+ <Input secureTextEntry />
64
+ </FormField>
65
+
66
+ <Button tone="primary">Sign in</Button>
67
+ </Page>
68
+ )
69
+ }
70
+ ```
71
+
72
+ ---
73
+
74
+ ## What you get
75
+
76
+ ### Core components
77
+
78
+ - Button
79
+ - Input / Textarea
80
+ - Card
81
+ - Modal / Drawer
82
+ - Badge
83
+
84
+ ### Patterns
85
+
86
+ - FormField
87
+ - Panel
88
+ - Notice
89
+ - EmptyState
90
+ - ConfirmDialog
91
+ - SettingsRow
92
+
93
+ ### Layouts
94
+
95
+ - Page
96
+ - PageHeader
97
+ - PageSection
98
+ - SidebarLayout
99
+ - TopbarLayout
100
+ - SettingsLayout
101
+ - AuthLayout
102
+
103
+ ---
104
+
105
+ ## Philosophy
106
+
107
+ ### 1. Opinionated by default
108
+
109
+ ZORA reduces decision fatigue with strong defaults.
110
+
111
+ ### 2. Built on Surface
112
+
113
+ No duplicated logic — everything composes on `@ankhorage/surface`.
114
+
115
+ ### 3. Cross-platform first
116
+
117
+ Works with:
118
+
119
+ - React Native
120
+ - Expo
121
+ - React Native Web
122
+
123
+ ### 4. Composable
124
+
125
+ You can always drop down to Surface if needed.
126
+
127
+ ---
128
+
129
+ ## What ZORA is NOT
130
+
131
+ - ❌ Not a low-code system
132
+ - ❌ Not a backend framework
133
+ - ❌ Not a navigation/router solution
134
+ - ❌ Not tied to a specific product
135
+
136
+ ---
137
+
138
+ ## Relationship to Studio
139
+
140
+ ZORA is designed to be used by Studio as a **design-system preset**, not as a hard dependency.
141
+
142
+ Studio can:
143
+
144
+ - render Surface-based apps
145
+ - render ZORA-based apps
146
+ - switch between design systems
147
+
148
+ ---
149
+
150
+ ## Installation
151
+
152
+ ```bash
153
+ bun add @ankhorage/zora @ankhorage/surface
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Expo example
159
+
160
+ There is a runnable Expo showcase app in [`examples/expo-showcase`](./examples/expo-showcase).
161
+
162
+ Because the example uses the local repo package via `file:../..`, build ZORA first so the package `dist/` exists, then install and start the Expo app:
163
+
164
+ ```bash
165
+ bun install
166
+ bun run build
167
+
168
+ cd examples/expo-showcase
169
+ npm install
170
+ npm run start
171
+ ```
172
+
173
+ Useful variants:
174
+
175
+ ```bash
176
+ npm run ios
177
+ npm run android
178
+ npm run web
179
+ ```
180
+
181
+ The showcase uses all current ZORA exports:
182
+
183
+ - core components
184
+ - patterns
185
+ - layouts
186
+ - `ZoraProvider` with `createZoraTheme(...)`
187
+
188
+ ---
189
+
190
+ ## Status
191
+
192
+ - v0.0.1 – Bootstrap phase
193
+
194
+ ---
195
+
196
+ ## License
197
+
198
+ MIT
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { BadgeProps } from './types';
3
+ export declare function Badge({ children, tone, emphasis, size, ...props }: BadgeProps): React.JSX.Element;
4
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/badge/Badge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBAY7E"}
@@ -0,0 +1,8 @@
1
+ import { Badge as SurfaceBadge } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { resolveBadgeRecipe } from '../../internal/recipes';
4
+ export function Badge({ children, tone, emphasis, size, ...props }) {
5
+ const recipe = resolveBadgeRecipe({ tone, emphasis, size });
6
+ return (<SurfaceBadge {...props} content={children} size={recipe.size} tone={recipe.tone} variant={recipe.variant}/>);
7
+ }
8
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/components/badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAc;IAC5E,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5D,OAAO,CACL,CAAC,YAAY,CACX,IAAI,KAAK,CAAC,CACV,OAAO,CAAC,CAAC,QAAQ,CAAC,CAClB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACxB,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Badge } from './Badge';
2
+ export type { BadgeProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Badge } from './Badge';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { BadgeProps as SurfaceBadgeProps } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+ import type { ZoraBadgeEmphasis, ZoraControlSize, ZoraTone } from '../../internal/recipes';
4
+ export interface BadgeProps extends Omit<SurfaceBadgeProps, 'content' | 'size' | 'tone' | 'variant'> {
5
+ children?: React.ReactNode;
6
+ tone?: ZoraTone;
7
+ emphasis?: ZoraBadgeEmphasis;
8
+ size?: ZoraControlSize;
9
+ }
10
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/badge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3F,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,iBAAiB,EACjB,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CACxC;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/badge/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { ButtonProps } from './types';
3
+ export declare function Button({ tone, emphasis, size, ...props }: ButtonProps): React.JSX.Element;
4
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,qBAMrE"}
@@ -0,0 +1,8 @@
1
+ import { Button as SurfaceButton } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { resolveButtonRecipe } from '../../internal/recipes';
4
+ export function Button({ tone, emphasis, size, ...props }) {
5
+ const recipe = resolveButtonRecipe({ tone, emphasis, size });
6
+ return (<SurfaceButton {...props} size={recipe.size} tone={recipe.tone} variant={recipe.variant}/>);
7
+ }
8
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAe;IACpE,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,OAAO,CACL,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAG,CAC5F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Button } from './Button';
2
+ export type { ButtonProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Button } from './Button';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ButtonIconSpec, ButtonProps as SurfaceButtonProps } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+ import type { ZoraControlSize, ZoraEmphasis, ZoraTone } from '../../internal/recipes';
4
+ export interface ButtonProps extends Omit<SurfaceButtonProps, 'children' | 'size' | 'tone' | 'variant'> {
5
+ children?: React.ReactNode;
6
+ tone?: ZoraTone;
7
+ emphasis?: ZoraEmphasis;
8
+ size?: ZoraControlSize;
9
+ leadingIcon?: ButtonIconSpec;
10
+ trailingIcon?: ButtonIconSpec;
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/button/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEtF,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,kBAAkB,EAClB,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CACzC;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/button/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { CardProps } from './types';
3
+ export declare function Card({ children, title, description, eyebrow, actions, footer, tone, compact, ...props }: CardProps): React.JSX.Element;
4
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/card/Card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,MAAM,EACN,IAAgB,EAChB,OAAe,EACf,GAAG,KAAK,EACT,EAAE,SAAS,qBAwCX"}
@@ -0,0 +1,31 @@
1
+ import { Box, Card as SurfaceCard, Heading, Stack, Text } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { resolveCardVariant } from '../../internal/recipes';
4
+ export function Card({ children, title, description, eyebrow, actions, footer, tone = 'default', compact = false, ...props }) {
5
+ const hasHeader = [eyebrow, title, description, actions].some((item) => item != null);
6
+ const hasFooter = footer !== undefined;
7
+ const gap = compact ? 's' : 'm';
8
+ return (<SurfaceCard {...props} p={compact ? 'm' : 'l'} radius="l" variant={resolveCardVariant(tone)}>
9
+ <Stack gap={gap}>
10
+ {hasHeader ? (<Stack align={{ base: 'flex-start', md: 'center' }} direction={{ base: 'column', md: 'row' }} gap="m" justify="space-between">
11
+ <Box flex={1}>
12
+ <Stack gap="xs">
13
+ {eyebrow ? (<Text tone="muted" variant="caption" weight="semiBold">
14
+ {eyebrow}
15
+ </Text>) : null}
16
+ {title ? <Heading level={compact ? 4 : 3}>{title}</Heading> : null}
17
+ {description ? (<Text tone="muted" variant="bodySmall">
18
+ {description}
19
+ </Text>) : null}
20
+ </Stack>
21
+ </Box>
22
+ {actions ? <Box>{actions}</Box> : null}
23
+ </Stack>) : null}
24
+
25
+ {children ? <Box>{children}</Box> : null}
26
+
27
+ {hasFooter ? <Box pt="xs">{footer}</Box> : null}
28
+ </Stack>
29
+ </SurfaceCard>);
30
+ }
31
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/card/Card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Card } from './Card';
2
+ export type { CardProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Card } from './Card';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CardProps as SurfaceCardProps } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+ import type { ZoraCardTone } from '../../internal/recipes';
4
+ export interface CardProps extends Omit<SurfaceCardProps, 'children' | 'p' | 'radius' | 'style' | 'variant'> {
5
+ children?: React.ReactNode;
6
+ title?: React.ReactNode;
7
+ description?: React.ReactNode;
8
+ eyebrow?: React.ReactNode;
9
+ actions?: React.ReactNode;
10
+ footer?: React.ReactNode;
11
+ tone?: ZoraCardTone;
12
+ compact?: boolean;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/card/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,gBAAgB,EAChB,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAClD;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/card/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { DrawerProps } from './types';
3
+ export declare function Drawer({ children, title, description, footer, ...props }: DrawerProps): React.JSX.Element;
4
+ //# sourceMappingURL=Drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,qBAqBrF"}
@@ -0,0 +1,18 @@
1
+ import { Box, Drawer as SurfaceDrawer, Heading, Stack, Text } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ export function Drawer({ children, title, description, footer, ...props }) {
4
+ const hasHeader = title != null || description != null;
5
+ return (<SurfaceDrawer {...props}>
6
+ <Stack gap="m">
7
+ {hasHeader ? (<Stack gap="xs">
8
+ {title ? <Heading level={3}>{title}</Heading> : null}
9
+ {description ? (<Text tone="muted" variant="bodySmall">
10
+ {description}
11
+ </Text>) : null}
12
+ </Stack>) : null}
13
+ {children ? <Box flex={1}>{children}</Box> : null}
14
+ {footer ? <Box pt="xs">{footer}</Box> : null}
15
+ </Stack>
16
+ </SurfaceDrawer>);
17
+ }
18
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAe;IACpF,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC;IAEvD,OAAO,CACL,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,CACvB;MAAA,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CACZ;QAAA,CAAC,SAAS,CAAC,CAAC,CAAC,CACX,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CACb;YAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CACpD;YAAA,CAAC,WAAW,CAAC,CAAC,CAAC,CACb,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CACpC;gBAAA,CAAC,WAAW,CACd;cAAA,EAAE,IAAI,CAAC,CACR,CAAC,CAAC,CAAC,IAAI,CACV;UAAA,EAAE,KAAK,CAAC,CACT,CAAC,CAAC,CAAC,IAAI,CACR;QAAA,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CACjD;QAAA,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9C;MAAA,EAAE,KAAK,CACT;IAAA,EAAE,aAAa,CAAC,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Drawer } from './Drawer';
2
+ export type { DrawerProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Drawer } from './Drawer';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/drawer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DrawerProps as SurfaceDrawerProps } from '@ankhorage/surface';
2
+ import type React from 'react';
3
+ export interface DrawerProps extends Pick<SurfaceDrawerProps, 'closeOnBackdrop' | 'onDismiss' | 'position' | 'testID' | 'visible'> {
4
+ children?: React.ReactNode;
5
+ title?: React.ReactNode;
6
+ description?: React.ReactNode;
7
+ footer?: React.ReactNode;
8
+ }
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,kBAAkB,EAClB,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CACpE;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/drawer/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { InputProps } from './types';
3
+ export declare function Input({ size, leadingIcon, trailingIcon, ...props }: InputProps): React.JSX.Element;
4
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/input/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,KAAK,CAAC,EAAE,IAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBA+BpF"}
@@ -0,0 +1,10 @@
1
+ import { Icon, TextInput as SurfaceTextInput, useTheme } from '@ankhorage/surface';
2
+ import React from 'react';
3
+ import { resolveIconSize } from '../../internal/recipes';
4
+ export function Input({ size = 'l', leadingIcon, trailingIcon, ...props }) {
5
+ const { theme } = useTheme();
6
+ const iconSize = resolveIconSize(size);
7
+ const iconColor = theme.semantics.content.muted;
8
+ return (<SurfaceTextInput {...props} leadingAccessory={leadingIcon ? (<Icon color={iconColor} name={leadingIcon.name} provider={leadingIcon.provider} size={iconSize}/>) : undefined} size={size} trailingAccessory={trailingIcon ? (<Icon color={iconColor} name={trailingIcon.name} provider={trailingIcon.provider} size={iconSize}/>) : undefined}/>);
9
+ }
10
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/components/input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,IAAI,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,UAAU,KAAK,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,EAAc;IACnF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhD,OAAO,CACL,CAAC,gBAAgB,CACf,IAAI,KAAK,CAAC,CACV,gBAAgB,CAAC,CACf,WAAW,CAAC,CAAC,CAAC,CACZ,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CACvB,QAAQ,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC/B,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,SACN,CAAC,CACD,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,iBAAiB,CAAC,CAChB,YAAY,CAAC,CAAC,CAAC,CACb,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CACxB,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAChC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,SACN,CAAC,EACD,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Input } from './Input';
2
+ export type { InputProps } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Input } from './Input';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ButtonIconSpec, TextInputProps as SurfaceTextInputProps } from '@ankhorage/surface';
2
+ import type { ZoraControlSize } from '../../internal/recipes';
3
+ export interface InputProps extends Omit<SurfaceTextInputProps, 'leadingAccessory' | 'size' | 'trailingAccessory'> {
4
+ size?: ZoraControlSize;
5
+ leadingIcon?: ButtonIconSpec;
6
+ trailingIcon?: ButtonIconSpec;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/input/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAElG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,qBAAqB,EACrB,kBAAkB,GAAG,MAAM,GAAG,mBAAmB,CAClD;IACC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/input/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { ModalProps } from './types';
3
+ export declare function Modal({ children, title, description, footer, width, ...props }: ModalProps): React.JSX.Element;
4
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,MAAM,EACN,KAAiB,EACjB,GAAG,KAAK,EACT,EAAE,UAAU,qBAuBZ"}