@hanzo/ui 8.27.9 → 8.27.11

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 (474) hide show
  1. package/dist/backends/gui/3d-card.cjs +100 -0
  2. package/dist/backends/gui/3d-card.d.ts +59 -0
  3. package/dist/backends/gui/3d-card.d.ts.map +1 -0
  4. package/dist/backends/gui/3d-card.js +92 -0
  5. package/dist/backends/gui/3d-card.js.map +1 -0
  6. package/dist/backends/gui/3d-marquee.cjs +225 -0
  7. package/dist/backends/gui/3d-marquee.d.ts +114 -0
  8. package/dist/backends/gui/3d-marquee.d.ts.map +1 -0
  9. package/dist/backends/gui/3d-marquee.js +190 -0
  10. package/dist/backends/gui/3d-marquee.js.map +1 -0
  11. package/dist/backends/gui/3d-pin.cjs +51 -0
  12. package/dist/backends/gui/3d-pin.d.ts +14 -0
  13. package/dist/backends/gui/3d-pin.d.ts.map +1 -0
  14. package/dist/backends/gui/3d-pin.js +49 -0
  15. package/dist/backends/gui/3d-pin.js.map +1 -0
  16. package/dist/backends/gui/advanced-chart.cjs +61 -0
  17. package/dist/backends/gui/advanced-chart.d.ts +38 -0
  18. package/dist/backends/gui/advanced-chart.d.ts.map +1 -0
  19. package/dist/backends/gui/advanced-chart.js +59 -0
  20. package/dist/backends/gui/advanced-chart.js.map +1 -0
  21. package/dist/backends/gui/alert.cjs +106 -0
  22. package/dist/backends/gui/alert.d.ts +39 -0
  23. package/dist/backends/gui/alert.d.ts.map +1 -0
  24. package/dist/backends/gui/alert.js +102 -0
  25. package/dist/backends/gui/alert.js.map +1 -0
  26. package/dist/backends/gui/android.cjs +52 -0
  27. package/dist/backends/gui/android.d.ts +16 -0
  28. package/dist/backends/gui/android.d.ts.map +1 -0
  29. package/dist/backends/gui/android.js +50 -0
  30. package/dist/backends/gui/android.js.map +1 -0
  31. package/dist/backends/gui/animated-beam.cjs +97 -0
  32. package/dist/backends/gui/animated-beam.d.ts +57 -0
  33. package/dist/backends/gui/animated-beam.d.ts.map +1 -0
  34. package/dist/backends/gui/animated-beam.js +62 -0
  35. package/dist/backends/gui/animated-beam.js.map +1 -0
  36. package/dist/backends/gui/animated-cursor.cjs +183 -0
  37. package/dist/backends/gui/animated-cursor.d.ts +42 -0
  38. package/dist/backends/gui/animated-cursor.d.ts.map +1 -0
  39. package/dist/backends/gui/animated-cursor.js +181 -0
  40. package/dist/backends/gui/animated-cursor.js.map +1 -0
  41. package/dist/backends/gui/animated-testimonials.cjs +109 -0
  42. package/dist/backends/gui/animated-testimonials.d.ts +23 -0
  43. package/dist/backends/gui/animated-testimonials.d.ts.map +1 -0
  44. package/dist/backends/gui/animated-testimonials.js +74 -0
  45. package/dist/backends/gui/animated-testimonials.js.map +1 -0
  46. package/dist/backends/gui/animated-tooltip.cjs +100 -0
  47. package/dist/backends/gui/animated-tooltip.d.ts +15 -0
  48. package/dist/backends/gui/animated-tooltip.d.ts.map +1 -0
  49. package/dist/backends/gui/animated-tooltip.js +65 -0
  50. package/dist/backends/gui/animated-tooltip.js.map +1 -0
  51. package/dist/backends/gui/announcement.cjs +54 -0
  52. package/dist/backends/gui/announcement.d.ts +26 -0
  53. package/dist/backends/gui/announcement.d.ts.map +1 -0
  54. package/dist/backends/gui/announcement.js +52 -0
  55. package/dist/backends/gui/announcement.js.map +1 -0
  56. package/dist/backends/gui/apple-cards-carousel.cjs +198 -0
  57. package/dist/backends/gui/apple-cards-carousel.d.ts +45 -0
  58. package/dist/backends/gui/apple-cards-carousel.d.ts.map +1 -0
  59. package/dist/backends/gui/apple-cards-carousel.js +162 -0
  60. package/dist/backends/gui/apple-cards-carousel.js.map +1 -0
  61. package/dist/backends/gui/apple-hello-effect.cjs +38 -0
  62. package/dist/backends/gui/apple-hello-effect.d.ts +9 -0
  63. package/dist/backends/gui/apple-hello-effect.d.ts.map +1 -0
  64. package/dist/backends/gui/apple-hello-effect.js +36 -0
  65. package/dist/backends/gui/apple-hello-effect.js.map +1 -0
  66. package/dist/backends/gui/banner.cjs +108 -0
  67. package/dist/backends/gui/banner.d.ts +33 -0
  68. package/dist/backends/gui/banner.d.ts.map +1 -0
  69. package/dist/backends/gui/banner.js +106 -0
  70. package/dist/backends/gui/banner.js.map +1 -0
  71. package/dist/backends/gui/calendar.cjs +152 -0
  72. package/dist/backends/gui/calendar.d.ts +41 -0
  73. package/dist/backends/gui/calendar.d.ts.map +1 -0
  74. package/dist/backends/gui/calendar.js +151 -0
  75. package/dist/backends/gui/calendar.js.map +1 -0
  76. package/dist/backends/gui/choicebox.cjs +50 -0
  77. package/dist/backends/gui/choicebox.d.ts +33 -0
  78. package/dist/backends/gui/choicebox.d.ts.map +1 -0
  79. package/dist/backends/gui/choicebox.js +49 -0
  80. package/dist/backends/gui/choicebox.js.map +1 -0
  81. package/dist/backends/gui/code-block.cjs +120 -0
  82. package/dist/backends/gui/code-block.d.ts +22 -0
  83. package/dist/backends/gui/code-block.d.ts.map +1 -0
  84. package/dist/backends/gui/code-block.js +118 -0
  85. package/dist/backends/gui/code-block.js.map +1 -0
  86. package/dist/backends/gui/code-editor.cjs +195 -0
  87. package/dist/backends/gui/code-editor.d.ts +43 -0
  88. package/dist/backends/gui/code-editor.d.ts.map +1 -0
  89. package/dist/backends/gui/code-editor.js +160 -0
  90. package/dist/backends/gui/code-editor.js.map +1 -0
  91. package/dist/backends/gui/code-tabs.cjs +21 -0
  92. package/dist/backends/gui/code-tabs.d.ts +22 -0
  93. package/dist/backends/gui/code-tabs.d.ts.map +1 -0
  94. package/dist/backends/gui/code-tabs.js +19 -0
  95. package/dist/backends/gui/code-tabs.js.map +1 -0
  96. package/dist/backends/gui/color-picker.cjs +141 -0
  97. package/dist/backends/gui/color-picker.d.ts +25 -0
  98. package/dist/backends/gui/color-picker.d.ts.map +1 -0
  99. package/dist/backends/gui/color-picker.js +139 -0
  100. package/dist/backends/gui/color-picker.js.map +1 -0
  101. package/dist/backends/gui/combobox.cjs +42 -0
  102. package/dist/backends/gui/combobox.d.ts +39 -0
  103. package/dist/backends/gui/combobox.d.ts.map +1 -0
  104. package/dist/backends/gui/combobox.js +40 -0
  105. package/dist/backends/gui/combobox.js.map +1 -0
  106. package/dist/backends/gui/company-profile.cjs +43 -0
  107. package/dist/backends/gui/company-profile.d.ts +33 -0
  108. package/dist/backends/gui/company-profile.d.ts.map +1 -0
  109. package/dist/backends/gui/company-profile.js +41 -0
  110. package/dist/backends/gui/company-profile.js.map +1 -0
  111. package/dist/backends/gui/comparison.cjs +39 -0
  112. package/dist/backends/gui/comparison.d.ts +15 -0
  113. package/dist/backends/gui/comparison.d.ts.map +1 -0
  114. package/dist/backends/gui/comparison.js +37 -0
  115. package/dist/backends/gui/comparison.js.map +1 -0
  116. package/dist/backends/gui/credit-card.cjs +80 -0
  117. package/dist/backends/gui/credit-card.d.ts +21 -0
  118. package/dist/backends/gui/credit-card.d.ts.map +1 -0
  119. package/dist/backends/gui/credit-card.js +78 -0
  120. package/dist/backends/gui/credit-card.js.map +1 -0
  121. package/dist/backends/gui/crypto-market.cjs +128 -0
  122. package/dist/backends/gui/crypto-market.d.ts +52 -0
  123. package/dist/backends/gui/crypto-market.d.ts.map +1 -0
  124. package/dist/backends/gui/crypto-market.js +126 -0
  125. package/dist/backends/gui/crypto-market.js.map +1 -0
  126. package/dist/backends/gui/crypto-screener.cjs +45 -0
  127. package/dist/backends/gui/crypto-screener.d.ts +38 -0
  128. package/dist/backends/gui/crypto-screener.d.ts.map +1 -0
  129. package/dist/backends/gui/crypto-screener.js +43 -0
  130. package/dist/backends/gui/crypto-screener.js.map +1 -0
  131. package/dist/backends/gui/cursor.cjs +37 -0
  132. package/dist/backends/gui/cursor.d.ts +17 -0
  133. package/dist/backends/gui/cursor.d.ts.map +1 -0
  134. package/dist/backends/gui/cursor.js +35 -0
  135. package/dist/backends/gui/cursor.js.map +1 -0
  136. package/dist/backends/gui/data-table.cjs +171 -0
  137. package/dist/backends/gui/data-table.d.ts +91 -0
  138. package/dist/backends/gui/data-table.d.ts.map +1 -0
  139. package/dist/backends/gui/data-table.js +169 -0
  140. package/dist/backends/gui/data-table.js.map +1 -0
  141. package/dist/backends/gui/date-picker.cjs +66 -0
  142. package/dist/backends/gui/date-picker.d.ts +29 -0
  143. package/dist/backends/gui/date-picker.d.ts.map +1 -0
  144. package/dist/backends/gui/date-picker.js +64 -0
  145. package/dist/backends/gui/date-picker.js.map +1 -0
  146. package/dist/backends/gui/desktop-spotlight.cjs +46 -0
  147. package/dist/backends/gui/desktop-spotlight.d.ts +34 -0
  148. package/dist/backends/gui/desktop-spotlight.d.ts.map +1 -0
  149. package/dist/backends/gui/desktop-spotlight.js +44 -0
  150. package/dist/backends/gui/desktop-spotlight.js.map +1 -0
  151. package/dist/backends/gui/desktop-window.cjs +180 -0
  152. package/dist/backends/gui/desktop-window.d.ts +51 -0
  153. package/dist/backends/gui/desktop-window.d.ts.map +1 -0
  154. package/dist/backends/gui/desktop-window.js +177 -0
  155. package/dist/backends/gui/desktop-window.js.map +1 -0
  156. package/dist/backends/gui/desktop.cjs +238 -0
  157. package/dist/backends/gui/desktop.d.ts +109 -0
  158. package/dist/backends/gui/desktop.d.ts.map +1 -0
  159. package/dist/backends/gui/desktop.js +199 -0
  160. package/dist/backends/gui/desktop.js.map +1 -0
  161. package/dist/backends/gui/dialog-stack.cjs +26 -0
  162. package/dist/backends/gui/dialog-stack.d.ts +23 -0
  163. package/dist/backends/gui/dialog-stack.d.ts.map +1 -0
  164. package/dist/backends/gui/dialog-stack.js +24 -0
  165. package/dist/backends/gui/dialog-stack.js.map +1 -0
  166. package/dist/backends/gui/dock.cjs +99 -0
  167. package/dist/backends/gui/dock.d.ts +41 -0
  168. package/dist/backends/gui/dock.d.ts.map +1 -0
  169. package/dist/backends/gui/dock.js +96 -0
  170. package/dist/backends/gui/dock.js.map +1 -0
  171. package/dist/backends/gui/dropzone.cjs +142 -0
  172. package/dist/backends/gui/dropzone.d.ts +12 -0
  173. package/dist/backends/gui/dropzone.d.ts.map +1 -0
  174. package/dist/backends/gui/dropzone.js +140 -0
  175. package/dist/backends/gui/dropzone.js.map +1 -0
  176. package/dist/backends/gui/editor.cjs +84 -0
  177. package/dist/backends/gui/editor.d.ts +23 -0
  178. package/dist/backends/gui/editor.d.ts.map +1 -0
  179. package/dist/backends/gui/editor.js +49 -0
  180. package/dist/backends/gui/editor.js.map +1 -0
  181. package/dist/backends/gui/empty.cjs +71 -0
  182. package/dist/backends/gui/empty.d.ts +43 -0
  183. package/dist/backends/gui/empty.d.ts.map +1 -0
  184. package/dist/backends/gui/empty.js +63 -0
  185. package/dist/backends/gui/empty.js.map +1 -0
  186. package/dist/backends/gui/field.cjs +132 -0
  187. package/dist/backends/gui/field.d.ts +74 -0
  188. package/dist/backends/gui/field.d.ts.map +1 -0
  189. package/dist/backends/gui/field.js +121 -0
  190. package/dist/backends/gui/field.js.map +1 -0
  191. package/dist/backends/gui/financials.cjs +45 -0
  192. package/dist/backends/gui/financials.d.ts +36 -0
  193. package/dist/backends/gui/financials.d.ts.map +1 -0
  194. package/dist/backends/gui/financials.js +43 -0
  195. package/dist/backends/gui/financials.js.map +1 -0
  196. package/dist/backends/gui/forex-market.cjs +21 -0
  197. package/dist/backends/gui/forex-market.d.ts +17 -0
  198. package/dist/backends/gui/forex-market.d.ts.map +1 -0
  199. package/dist/backends/gui/forex-market.js +19 -0
  200. package/dist/backends/gui/forex-market.js.map +1 -0
  201. package/dist/backends/gui/forex-screener.cjs +57 -0
  202. package/dist/backends/gui/forex-screener.d.ts +45 -0
  203. package/dist/backends/gui/forex-screener.d.ts.map +1 -0
  204. package/dist/backends/gui/forex-screener.js +55 -0
  205. package/dist/backends/gui/forex-screener.js.map +1 -0
  206. package/dist/backends/gui/gantt.cjs +48 -0
  207. package/dist/backends/gui/gantt.d.ts +18 -0
  208. package/dist/backends/gui/gantt.d.ts.map +1 -0
  209. package/dist/backends/gui/gantt.js +46 -0
  210. package/dist/backends/gui/gantt.js.map +1 -0
  211. package/dist/backends/gui/glimpse.cjs +88 -0
  212. package/dist/backends/gui/glimpse.d.ts +57 -0
  213. package/dist/backends/gui/glimpse.d.ts.map +1 -0
  214. package/dist/backends/gui/glimpse.js +81 -0
  215. package/dist/backends/gui/glimpse.js.map +1 -0
  216. package/dist/backends/gui/grid-pattern.cjs +119 -0
  217. package/dist/backends/gui/grid-pattern.d.ts +96 -0
  218. package/dist/backends/gui/grid-pattern.d.ts.map +1 -0
  219. package/dist/backends/gui/grid-pattern.js +84 -0
  220. package/dist/backends/gui/grid-pattern.js.map +1 -0
  221. package/dist/backends/gui/image-crop.cjs +35 -0
  222. package/dist/backends/gui/image-crop.d.ts +20 -0
  223. package/dist/backends/gui/image-crop.d.ts.map +1 -0
  224. package/dist/backends/gui/image-crop.js +33 -0
  225. package/dist/backends/gui/image-crop.js.map +1 -0
  226. package/dist/backends/gui/image-zoom.cjs +58 -0
  227. package/dist/backends/gui/image-zoom.d.ts +16 -0
  228. package/dist/backends/gui/image-zoom.d.ts.map +1 -0
  229. package/dist/backends/gui/image-zoom.js +56 -0
  230. package/dist/backends/gui/image-zoom.js.map +1 -0
  231. package/dist/backends/gui/index.cjs +266 -1
  232. package/dist/backends/gui/index.d.ts +90 -0
  233. package/dist/backends/gui/index.d.ts.map +1 -1
  234. package/dist/backends/gui/index.js +90 -0
  235. package/dist/backends/gui/index.js.map +1 -1
  236. package/dist/backends/gui/interactive-grid-pattern.cjs +61 -0
  237. package/dist/backends/gui/interactive-grid-pattern.d.ts +28 -0
  238. package/dist/backends/gui/interactive-grid-pattern.d.ts.map +1 -0
  239. package/dist/backends/gui/interactive-grid-pattern.js +26 -0
  240. package/dist/backends/gui/interactive-grid-pattern.js.map +1 -0
  241. package/dist/backends/gui/iphone-15-pro.cjs +83 -0
  242. package/dist/backends/gui/iphone-15-pro.d.ts +16 -0
  243. package/dist/backends/gui/iphone-15-pro.d.ts.map +1 -0
  244. package/dist/backends/gui/iphone-15-pro.js +81 -0
  245. package/dist/backends/gui/iphone-15-pro.js.map +1 -0
  246. package/dist/backends/gui/item.cjs +154 -0
  247. package/dist/backends/gui/item.d.ts +72 -0
  248. package/dist/backends/gui/item.d.ts.map +1 -0
  249. package/dist/backends/gui/item.js +143 -0
  250. package/dist/backends/gui/item.js.map +1 -0
  251. package/dist/backends/gui/kanban.cjs +247 -0
  252. package/dist/backends/gui/kanban.d.ts +37 -0
  253. package/dist/backends/gui/kanban.d.ts.map +1 -0
  254. package/dist/backends/gui/kanban.js +212 -0
  255. package/dist/backends/gui/kanban.js.map +1 -0
  256. package/dist/backends/gui/kbd.cjs +45 -0
  257. package/dist/backends/gui/kbd.d.ts +8 -0
  258. package/dist/backends/gui/kbd.d.ts.map +1 -0
  259. package/dist/backends/gui/kbd.js +42 -0
  260. package/dist/backends/gui/kbd.js.map +1 -0
  261. package/dist/backends/gui/limelight-nav.cjs +201 -0
  262. package/dist/backends/gui/limelight-nav.d.ts +20 -0
  263. package/dist/backends/gui/limelight-nav.d.ts.map +1 -0
  264. package/dist/backends/gui/limelight-nav.js +166 -0
  265. package/dist/backends/gui/limelight-nav.js.map +1 -0
  266. package/dist/backends/gui/list.cjs +26 -0
  267. package/dist/backends/gui/list.d.ts +15 -0
  268. package/dist/backends/gui/list.d.ts.map +1 -0
  269. package/dist/backends/gui/list.js +23 -0
  270. package/dist/backends/gui/list.js.map +1 -0
  271. package/dist/backends/gui/macos-dock.cjs +84 -0
  272. package/dist/backends/gui/macos-dock.d.ts +30 -0
  273. package/dist/backends/gui/macos-dock.d.ts.map +1 -0
  274. package/dist/backends/gui/macos-dock.js +82 -0
  275. package/dist/backends/gui/macos-dock.js.map +1 -0
  276. package/dist/backends/gui/magnetic.cjs +40 -0
  277. package/dist/backends/gui/magnetic.d.ts +12 -0
  278. package/dist/backends/gui/magnetic.d.ts.map +1 -0
  279. package/dist/backends/gui/magnetic.js +38 -0
  280. package/dist/backends/gui/magnetic.js.map +1 -0
  281. package/dist/backends/gui/marquee.cjs +110 -0
  282. package/dist/backends/gui/marquee.d.ts +44 -0
  283. package/dist/backends/gui/marquee.d.ts.map +1 -0
  284. package/dist/backends/gui/marquee.js +75 -0
  285. package/dist/backends/gui/marquee.js.map +1 -0
  286. package/dist/backends/gui/menu-dock.cjs +64 -0
  287. package/dist/backends/gui/menu-dock.d.ts +21 -0
  288. package/dist/backends/gui/menu-dock.d.ts.map +1 -0
  289. package/dist/backends/gui/menu-dock.js +62 -0
  290. package/dist/backends/gui/menu-dock.js.map +1 -0
  291. package/dist/backends/gui/menubar.cjs +227 -0
  292. package/dist/backends/gui/menubar.d.ts +106 -0
  293. package/dist/backends/gui/menubar.d.ts.map +1 -0
  294. package/dist/backends/gui/menubar.js +177 -0
  295. package/dist/backends/gui/menubar.js.map +1 -0
  296. package/dist/backends/gui/message-dock.cjs +111 -0
  297. package/dist/backends/gui/message-dock.d.ts +22 -0
  298. package/dist/backends/gui/message-dock.d.ts.map +1 -0
  299. package/dist/backends/gui/message-dock.js +110 -0
  300. package/dist/backends/gui/message-dock.js.map +1 -0
  301. package/dist/backends/gui/mini-calendar.cjs +25 -0
  302. package/dist/backends/gui/mini-calendar.d.ts +22 -0
  303. package/dist/backends/gui/mini-calendar.d.ts.map +1 -0
  304. package/dist/backends/gui/mini-calendar.js +24 -0
  305. package/dist/backends/gui/mini-calendar.js.map +1 -0
  306. package/dist/backends/gui/minimal-tiptap.cjs +56 -0
  307. package/dist/backends/gui/minimal-tiptap.d.ts +20 -0
  308. package/dist/backends/gui/minimal-tiptap.d.ts.map +1 -0
  309. package/dist/backends/gui/minimal-tiptap.js +21 -0
  310. package/dist/backends/gui/minimal-tiptap.js.map +1 -0
  311. package/dist/backends/gui/motion-highlight.cjs +83 -0
  312. package/dist/backends/gui/motion-highlight.d.ts +27 -0
  313. package/dist/backends/gui/motion-highlight.d.ts.map +1 -0
  314. package/dist/backends/gui/motion-highlight.js +48 -0
  315. package/dist/backends/gui/motion-highlight.js.map +1 -0
  316. package/dist/backends/gui/navigation-bar.cjs +47 -0
  317. package/dist/backends/gui/navigation-bar.d.ts +48 -0
  318. package/dist/backends/gui/navigation-bar.d.ts.map +1 -0
  319. package/dist/backends/gui/navigation-bar.js +45 -0
  320. package/dist/backends/gui/navigation-bar.js.map +1 -0
  321. package/dist/backends/gui/news-timeline.cjs +47 -0
  322. package/dist/backends/gui/news-timeline.d.ts +39 -0
  323. package/dist/backends/gui/news-timeline.d.ts.map +1 -0
  324. package/dist/backends/gui/news-timeline.js +45 -0
  325. package/dist/backends/gui/news-timeline.js.map +1 -0
  326. package/dist/backends/gui/order-entry.cjs +53 -0
  327. package/dist/backends/gui/order-entry.d.ts +21 -0
  328. package/dist/backends/gui/order-entry.d.ts.map +1 -0
  329. package/dist/backends/gui/order-entry.js +52 -0
  330. package/dist/backends/gui/order-entry.js.map +1 -0
  331. package/dist/backends/gui/orders-history.cjs +102 -0
  332. package/dist/backends/gui/orders-history.d.ts +24 -0
  333. package/dist/backends/gui/orders-history.d.ts.map +1 -0
  334. package/dist/backends/gui/orders-history.js +67 -0
  335. package/dist/backends/gui/orders-history.js.map +1 -0
  336. package/dist/backends/gui/pagination.cjs +51 -0
  337. package/dist/backends/gui/pagination.d.ts +52 -0
  338. package/dist/backends/gui/pagination.d.ts.map +1 -0
  339. package/dist/backends/gui/pagination.js +42 -0
  340. package/dist/backends/gui/pagination.js.map +1 -0
  341. package/dist/backends/gui/particles-background.cjs +135 -0
  342. package/dist/backends/gui/particles-background.d.ts +24 -0
  343. package/dist/backends/gui/particles-background.d.ts.map +1 -0
  344. package/dist/backends/gui/particles-background.js +133 -0
  345. package/dist/backends/gui/particles-background.js.map +1 -0
  346. package/dist/backends/gui/particles.cjs +145 -0
  347. package/dist/backends/gui/particles.d.ts +25 -0
  348. package/dist/backends/gui/particles.d.ts.map +1 -0
  349. package/dist/backends/gui/particles.js +143 -0
  350. package/dist/backends/gui/particles.js.map +1 -0
  351. package/dist/backends/gui/pill.cjs +82 -0
  352. package/dist/backends/gui/pill.d.ts +12 -0
  353. package/dist/backends/gui/pill.d.ts.map +1 -0
  354. package/dist/backends/gui/pill.js +78 -0
  355. package/dist/backends/gui/pill.js.map +1 -0
  356. package/dist/backends/gui/pin-list.cjs +82 -0
  357. package/dist/backends/gui/pin-list.d.ts +42 -0
  358. package/dist/backends/gui/pin-list.d.ts.map +1 -0
  359. package/dist/backends/gui/pin-list.js +80 -0
  360. package/dist/backends/gui/pin-list.js.map +1 -0
  361. package/dist/backends/gui/pixel-image.cjs +63 -0
  362. package/dist/backends/gui/pixel-image.d.ts +21 -0
  363. package/dist/backends/gui/pixel-image.d.ts.map +1 -0
  364. package/dist/backends/gui/pixel-image.js +61 -0
  365. package/dist/backends/gui/pixel-image.js.map +1 -0
  366. package/dist/backends/gui/positions-list.cjs +60 -0
  367. package/dist/backends/gui/positions-list.d.ts +14 -0
  368. package/dist/backends/gui/positions-list.d.ts.map +1 -0
  369. package/dist/backends/gui/positions-list.js +58 -0
  370. package/dist/backends/gui/positions-list.js.map +1 -0
  371. package/dist/backends/gui/qr-code.cjs +438 -0
  372. package/dist/backends/gui/qr-code.d.ts +42 -0
  373. package/dist/backends/gui/qr-code.d.ts.map +1 -0
  374. package/dist/backends/gui/qr-code.js +402 -0
  375. package/dist/backends/gui/qr-code.js.map +1 -0
  376. package/dist/backends/gui/relative-time.cjs +167 -0
  377. package/dist/backends/gui/relative-time.d.ts +10 -0
  378. package/dist/backends/gui/relative-time.d.ts.map +1 -0
  379. package/dist/backends/gui/relative-time.js +132 -0
  380. package/dist/backends/gui/relative-time.js.map +1 -0
  381. package/dist/backends/gui/safari.cjs +65 -0
  382. package/dist/backends/gui/safari.d.ts +23 -0
  383. package/dist/backends/gui/safari.d.ts.map +1 -0
  384. package/dist/backends/gui/safari.js +63 -0
  385. package/dist/backends/gui/safari.js.map +1 -0
  386. package/dist/backends/gui/snippet.cjs +144 -0
  387. package/dist/backends/gui/snippet.d.ts +38 -0
  388. package/dist/backends/gui/snippet.d.ts.map +1 -0
  389. package/dist/backends/gui/snippet.js +141 -0
  390. package/dist/backends/gui/snippet.js.map +1 -0
  391. package/dist/backends/gui/stars-scrolling-wheel.cjs +106 -0
  392. package/dist/backends/gui/stars-scrolling-wheel.d.ts +24 -0
  393. package/dist/backends/gui/stars-scrolling-wheel.d.ts.map +1 -0
  394. package/dist/backends/gui/stars-scrolling-wheel.js +104 -0
  395. package/dist/backends/gui/stars-scrolling-wheel.js.map +1 -0
  396. package/dist/backends/gui/status.cjs +79 -0
  397. package/dist/backends/gui/status.d.ts +15 -0
  398. package/dist/backends/gui/status.d.ts.map +1 -0
  399. package/dist/backends/gui/status.js +77 -0
  400. package/dist/backends/gui/status.js.map +1 -0
  401. package/dist/backends/gui/stock-market.cjs +21 -0
  402. package/dist/backends/gui/stock-market.d.ts +17 -0
  403. package/dist/backends/gui/stock-market.d.ts.map +1 -0
  404. package/dist/backends/gui/stock-market.js +19 -0
  405. package/dist/backends/gui/stock-market.js.map +1 -0
  406. package/dist/backends/gui/stock-screener.cjs +55 -0
  407. package/dist/backends/gui/stock-screener.d.ts +41 -0
  408. package/dist/backends/gui/stock-screener.d.ts.map +1 -0
  409. package/dist/backends/gui/stock-screener.js +53 -0
  410. package/dist/backends/gui/stock-screener.js.map +1 -0
  411. package/dist/backends/gui/symbol-info.cjs +46 -0
  412. package/dist/backends/gui/symbol-info.d.ts +36 -0
  413. package/dist/backends/gui/symbol-info.d.ts.map +1 -0
  414. package/dist/backends/gui/symbol-info.js +44 -0
  415. package/dist/backends/gui/symbol-info.js.map +1 -0
  416. package/dist/backends/gui/table.cjs +104 -0
  417. package/dist/backends/gui/table.d.ts +57 -0
  418. package/dist/backends/gui/table.d.ts.map +1 -0
  419. package/dist/backends/gui/table.js +95 -0
  420. package/dist/backends/gui/table.js.map +1 -0
  421. package/dist/backends/gui/tags.cjs +22 -0
  422. package/dist/backends/gui/tags.d.ts +22 -0
  423. package/dist/backends/gui/tags.d.ts.map +1 -0
  424. package/dist/backends/gui/tags.js +20 -0
  425. package/dist/backends/gui/tags.js.map +1 -0
  426. package/dist/backends/gui/technical-analysis.cjs +58 -0
  427. package/dist/backends/gui/technical-analysis.d.ts +41 -0
  428. package/dist/backends/gui/technical-analysis.d.ts.map +1 -0
  429. package/dist/backends/gui/technical-analysis.js +56 -0
  430. package/dist/backends/gui/technical-analysis.js.map +1 -0
  431. package/dist/backends/gui/terminal.cjs +266 -0
  432. package/dist/backends/gui/terminal.d.ts +38 -0
  433. package/dist/backends/gui/terminal.d.ts.map +1 -0
  434. package/dist/backends/gui/terminal.js +231 -0
  435. package/dist/backends/gui/terminal.js.map +1 -0
  436. package/dist/backends/gui/ticker.cjs +79 -0
  437. package/dist/backends/gui/ticker.d.ts +19 -0
  438. package/dist/backends/gui/ticker.d.ts.map +1 -0
  439. package/dist/backends/gui/ticker.js +44 -0
  440. package/dist/backends/gui/ticker.js.map +1 -0
  441. package/dist/backends/gui/timeline.cjs +154 -0
  442. package/dist/backends/gui/timeline.d.ts +42 -0
  443. package/dist/backends/gui/timeline.d.ts.map +1 -0
  444. package/dist/backends/gui/timeline.js +118 -0
  445. package/dist/backends/gui/timeline.js.map +1 -0
  446. package/dist/backends/gui/toggle.cjs +96 -0
  447. package/dist/backends/gui/toggle.d.ts +29 -0
  448. package/dist/backends/gui/toggle.d.ts.map +1 -0
  449. package/dist/backends/gui/toggle.js +95 -0
  450. package/dist/backends/gui/toggle.js.map +1 -0
  451. package/dist/backends/gui/video-player.cjs +383 -0
  452. package/dist/backends/gui/video-player.d.ts +54 -0
  453. package/dist/backends/gui/video-player.d.ts.map +1 -0
  454. package/dist/backends/gui/video-player.js +348 -0
  455. package/dist/backends/gui/video-player.js.map +1 -0
  456. package/dist/chat/Composer.cjs +10 -10
  457. package/dist/chat/Composer.d.ts +16 -17
  458. package/dist/chat/Composer.d.ts.map +1 -1
  459. package/dist/chat/Composer.js +11 -11
  460. package/dist/chat/Composer.js.map +1 -1
  461. package/dist/gallery.cjs +180 -1
  462. package/dist/gallery.d.ts.map +1 -1
  463. package/dist/gallery.html +391 -3
  464. package/dist/gallery.js +181 -2
  465. package/dist/gallery.js.map +1 -1
  466. package/dist/index.cjs +179 -1
  467. package/dist/index.d.ts +1 -0
  468. package/dist/index.d.ts.map +1 -1
  469. package/dist/index.js +3 -0
  470. package/dist/index.js.map +1 -1
  471. package/dist/index.node.cjs +179 -1
  472. package/dist/index.node.js +3 -0
  473. package/dist/styles.css +356 -0
  474. package/package.json +1 -1
@@ -0,0 +1,84 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.Editor = Editor;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ /**
40
+ * Editor — a minimal rich-text field: a toolbar of formatting buttons above a
41
+ * `contentEditable` surface.
42
+ *
43
+ * Bold, italic and the two list commands run through the browser's own
44
+ * `document.execCommand`, the one API that turns a toolbar click into a real
45
+ * selection edit inside a `contentEditable` region — there is no gui primitive
46
+ * for rich-text editing, so this wraps that platform primitive in a gui frame
47
+ * the way `CodeEditor` wraps a plain field. The surface is HTML: `value` and
48
+ * `onChange` carry the region's `innerHTML`, matching what the toolbar
49
+ * commands actually produce.
50
+ */
51
+ const gui_1 = require("@hanzo/gui");
52
+ const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
53
+ const React = __importStar(require("react"));
54
+ const button_1 = require("./button.cjs");
55
+ const slot_1 = require("./slot.cjs");
56
+ function Editor({ value, onChange, placeholder = 'Start typing...', ...props }) {
57
+ const field = React.useRef(null);
58
+ const shown = React.useRef(value);
59
+ const run = (command) => {
60
+ document.execCommand(command, false);
61
+ field.current?.focus();
62
+ };
63
+ const input = () => {
64
+ if (field.current)
65
+ onChange?.(field.current.innerHTML);
66
+ };
67
+ // A controlled `value` is only ever WRITTEN into the region when it changed
68
+ // out from under the caller — writing it on every render would reset the
69
+ // caret to the start on each keystroke, because `innerHTML` replaces the
70
+ // whole subtree rather than patching it.
71
+ React.useEffect(() => {
72
+ if (field.current && value !== undefined && value !== shown.current) {
73
+ field.current.innerHTML = value;
74
+ }
75
+ shown.current = value;
76
+ }, [value]);
77
+ return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('editor'), gap: "$2", ...props, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('editor-toolbar'), items: "center", gap: "$1", borderBottomWidth: 1, borderColor: "$borderColor", pb: "$2", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { ...(0, slot_1.slot)('editor-bold'), variant: "ghost", size: "sm", type: "button", onClick: () => run('bold'), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Bold, { size: 16 }) }), (0, jsx_runtime_1.jsx)(button_1.Button, { ...(0, slot_1.slot)('editor-italic'), variant: "ghost", size: "sm", type: "button", onClick: () => run('italic'), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Italic, { size: 16 }) }), (0, jsx_runtime_1.jsx)(button_1.Button, { ...(0, slot_1.slot)('editor-bullet-list'), variant: "ghost", size: "sm", type: "button", onClick: () => run('insertUnorderedList'), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.List, { size: 16 }) }), (0, jsx_runtime_1.jsx)(button_1.Button, { ...(0, slot_1.slot)('editor-ordered-list'), variant: "ghost", size: "sm", type: "button", onClick: () => run('insertOrderedList'), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ListOrdered, { size: 16 }) })] }), (0, jsx_runtime_1.jsx)("div", { ref: field, ...(0, slot_1.slot)('editor-content'), contentEditable: true, onInput: input, "data-placeholder": placeholder, suppressContentEditableWarning: true, dangerouslySetInnerHTML: value === undefined ? undefined : { __html: value }, style: {
78
+ minHeight: 200,
79
+ borderRadius: 8,
80
+ border: '1px solid var(--borderColor)',
81
+ padding: 16,
82
+ outline: 'none',
83
+ } })] }));
84
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Editor — a minimal rich-text field: a toolbar of formatting buttons above a
3
+ * `contentEditable` surface.
4
+ *
5
+ * Bold, italic and the two list commands run through the browser's own
6
+ * `document.execCommand`, the one API that turns a toolbar click into a real
7
+ * selection edit inside a `contentEditable` region — there is no gui primitive
8
+ * for rich-text editing, so this wraps that platform primitive in a gui frame
9
+ * the way `CodeEditor` wraps a plain field. The surface is HTML: `value` and
10
+ * `onChange` carry the region's `innerHTML`, matching what the toolbar
11
+ * commands actually produce.
12
+ */
13
+ import { type YStackProps } from '@hanzo/gui';
14
+ import * as React from 'react';
15
+ export type EditorCommand = 'bold' | 'italic' | 'insertUnorderedList' | 'insertOrderedList';
16
+ export interface EditorProps extends Omit<YStackProps, 'children' | 'onChange'> {
17
+ /** The region's HTML. Omit it and the region keeps its own content. */
18
+ value?: string;
19
+ onChange?: (value: string) => void;
20
+ placeholder?: string;
21
+ }
22
+ export declare function Editor({ value, onChange, placeholder, ...props }: EditorProps): React.JSX.Element;
23
+ //# sourceMappingURL=editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/editor.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,qBAAqB,GAAG,mBAAmB,CAAA;AAE3F,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,UAAU,CAAC;IAC7E,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAA+B,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,qBA6EjG"}
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Editor — a minimal rich-text field: a toolbar of formatting buttons above a
5
+ * `contentEditable` surface.
6
+ *
7
+ * Bold, italic and the two list commands run through the browser's own
8
+ * `document.execCommand`, the one API that turns a toolbar click into a real
9
+ * selection edit inside a `contentEditable` region — there is no gui primitive
10
+ * for rich-text editing, so this wraps that platform primitive in a gui frame
11
+ * the way `CodeEditor` wraps a plain field. The surface is HTML: `value` and
12
+ * `onChange` carry the region's `innerHTML`, matching what the toolbar
13
+ * commands actually produce.
14
+ */
15
+ import { XStack, YStack } from '@hanzo/gui';
16
+ import { Bold, Italic, List, ListOrdered } from '@hanzogui/lucide-icons-2';
17
+ import * as React from 'react';
18
+ import { Button } from './button.js';
19
+ import { slot } from './slot.js';
20
+ export function Editor({ value, onChange, placeholder = 'Start typing...', ...props }) {
21
+ const field = React.useRef(null);
22
+ const shown = React.useRef(value);
23
+ const run = (command) => {
24
+ document.execCommand(command, false);
25
+ field.current?.focus();
26
+ };
27
+ const input = () => {
28
+ if (field.current)
29
+ onChange?.(field.current.innerHTML);
30
+ };
31
+ // A controlled `value` is only ever WRITTEN into the region when it changed
32
+ // out from under the caller — writing it on every render would reset the
33
+ // caret to the start on each keystroke, because `innerHTML` replaces the
34
+ // whole subtree rather than patching it.
35
+ React.useEffect(() => {
36
+ if (field.current && value !== undefined && value !== shown.current) {
37
+ field.current.innerHTML = value;
38
+ }
39
+ shown.current = value;
40
+ }, [value]);
41
+ return (_jsxs(YStack, { ...slot('editor'), gap: "$2", ...props, children: [_jsxs(XStack, { ...slot('editor-toolbar'), items: "center", gap: "$1", borderBottomWidth: 1, borderColor: "$borderColor", pb: "$2", children: [_jsx(Button, { ...slot('editor-bold'), variant: "ghost", size: "sm", type: "button", onClick: () => run('bold'), children: _jsx(Bold, { size: 16 }) }), _jsx(Button, { ...slot('editor-italic'), variant: "ghost", size: "sm", type: "button", onClick: () => run('italic'), children: _jsx(Italic, { size: 16 }) }), _jsx(Button, { ...slot('editor-bullet-list'), variant: "ghost", size: "sm", type: "button", onClick: () => run('insertUnorderedList'), children: _jsx(List, { size: 16 }) }), _jsx(Button, { ...slot('editor-ordered-list'), variant: "ghost", size: "sm", type: "button", onClick: () => run('insertOrderedList'), children: _jsx(ListOrdered, { size: 16 }) })] }), _jsx("div", { ref: field, ...slot('editor-content'), contentEditable: true, onInput: input, "data-placeholder": placeholder, suppressContentEditableWarning: true, dangerouslySetInnerHTML: value === undefined ? undefined : { __html: value }, style: {
42
+ minHeight: 200,
43
+ borderRadius: 8,
44
+ border: '1px solid var(--borderColor)',
45
+ padding: 16,
46
+ outline: 'none',
47
+ } })] }));
48
+ }
49
+ //# sourceMappingURL=editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../src/backends/gui/editor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAoB,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAW7B,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAG,iBAAiB,EAAE,GAAG,KAAK,EAAe;IAChG,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEjC,MAAM,GAAG,GAAG,CAAC,OAAsB,EAAE,EAAE;QACrC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACpC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,KAAK,CAAC,OAAO;YAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC,CAAA;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,yEAAyE;IACzE,yCAAyC;IACzC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACpE,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAA;QACjC,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAA;IACvB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CACL,MAAC,MAAM,OAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAC,IAAI,KAAK,KAAK,aAC5C,MAAC,MAAM,OACD,IAAI,CAAC,gBAAgB,CAAC,EAC1B,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,IAAI,EACR,iBAAiB,EAAE,CAAC,EACpB,WAAW,EAAC,cAAc,EAC1B,EAAE,EAAC,IAAI,aAEP,KAAC,MAAM,OAAK,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YACjG,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,EACT,KAAC,MAAM,OAAK,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YACrG,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACb,EACT,KAAC,MAAM,OACD,IAAI,CAAC,oBAAoB,CAAC,EAC9B,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,YAEzC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,EACT,KAAC,MAAM,OACD,IAAI,CAAC,qBAAqB,CAAC,EAC/B,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,YAEvC,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,IACF,EACT,cACE,GAAG,EAAE,KAAK,KACN,IAAI,CAAC,gBAAgB,CAAC,EAC1B,eAAe,QACf,OAAO,EAAE,KAAK,sBACI,WAAW,EAC7B,8BAA8B,QAC9B,uBAAuB,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAC5E,KAAK,EAAE;oBACL,SAAS,EAAE,GAAG;oBACd,YAAY,EAAE,CAAC;oBACf,MAAM,EAAE,8BAA8B;oBACtC,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,MAAM;iBAChB,GACD,IACK,CACV,CAAA;AACH,CAAC"}
@@ -0,0 +1,71 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EmptyContent = exports.EmptyDescription = exports.EmptyTitle = exports.EmptyMedia = exports.EmptyHeader = exports.Empty = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * Empty — a placeholder for the absence of data: a header (media, title,
8
+ * description) above a content slot for a call to action.
9
+ *
10
+ * `EmptyMedia` carries the one variant that matters here — a bare icon versus
11
+ * one boxed into a rounded tile — through a styled context, the same split
12
+ * Badge uses for its frame/text pair.
13
+ */
14
+ const gui_1 = require("@hanzo/gui");
15
+ const ink_1 = require("./ink.cjs");
16
+ const slot_1 = require("./slot.cjs");
17
+ const EmptyFrame = (0, gui_1.styled)(gui_1.YStack, {
18
+ name: 'Empty',
19
+ flex: 1,
20
+ minW: 0,
21
+ items: 'center',
22
+ justify: 'center',
23
+ gap: '$6',
24
+ p: '$6',
25
+ rounded: '$6',
26
+ borderStyle: 'dashed',
27
+ });
28
+ const HeaderFrame = (0, gui_1.styled)(gui_1.YStack, {
29
+ name: 'EmptyHeader',
30
+ maxW: 384,
31
+ items: 'center',
32
+ gap: '$2',
33
+ });
34
+ const MediaContext = /* @__PURE__ */ (0, gui_1.createStyledContext)({ variant: 'default' });
35
+ const MediaFrame = (0, gui_1.styled)(gui_1.YStack, {
36
+ name: 'EmptyMedia',
37
+ context: MediaContext,
38
+ shrink: 0,
39
+ items: 'center',
40
+ justify: 'center',
41
+ mb: '$2',
42
+ variants: {
43
+ variant: {
44
+ default: { bg: 'transparent' },
45
+ icon: { bg: '$hover', width: 40, height: 40, rounded: '$3' },
46
+ },
47
+ },
48
+ defaultVariants: { variant: 'default' },
49
+ });
50
+ const TitleFrame = (0, gui_1.styled)(gui_1.SizableText, { name: 'EmptyTitle', size: '$4', fontWeight: '500' });
51
+ const DescriptionFrame = (0, gui_1.styled)(gui_1.SizableText, { name: 'EmptyDescription', size: '$2', color: '$quiet' });
52
+ const ContentFrame = (0, gui_1.styled)(gui_1.YStack, {
53
+ name: 'EmptyContent',
54
+ width: '100%',
55
+ minW: 0,
56
+ maxW: 384,
57
+ items: 'center',
58
+ gap: '$4',
59
+ });
60
+ const Empty = (p) => (0, jsx_runtime_1.jsx)(EmptyFrame, { ...(0, slot_1.slot)('empty'), ...p });
61
+ exports.Empty = Empty;
62
+ const EmptyHeader = (p) => (0, jsx_runtime_1.jsx)(HeaderFrame, { ...(0, slot_1.slot)('empty-header'), ...p });
63
+ exports.EmptyHeader = EmptyHeader;
64
+ const EmptyMedia = ({ variant = 'default', ...p }) => ((0, jsx_runtime_1.jsx)(MediaFrame, { ...(0, slot_1.slot)('empty-icon'), "data-variant": variant, variant: variant, ...p }));
65
+ exports.EmptyMedia = EmptyMedia;
66
+ const EmptyTitle = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(TitleFrame, { ...(0, slot_1.slot)('empty-title'), ...p, children: (0, ink_1.ink)(children) }));
67
+ exports.EmptyTitle = EmptyTitle;
68
+ const EmptyDescription = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(DescriptionFrame, { ...(0, slot_1.slot)('empty-description'), ...p, children: (0, ink_1.ink)(children) }));
69
+ exports.EmptyDescription = EmptyDescription;
70
+ const EmptyContent = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(ContentFrame, { ...(0, slot_1.slot)('empty-content'), ...p, children: (0, ink_1.ink)(children) }));
71
+ exports.EmptyContent = EmptyContent;
@@ -0,0 +1,43 @@
1
+ import type { ComponentProps } from 'react';
2
+ declare const EmptyFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
3
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
4
+ fullscreen?: boolean | undefined;
5
+ }, import("@hanzogui/web").StaticConfigPublic>;
6
+ declare const HeaderFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
7
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
8
+ fullscreen?: boolean | undefined;
9
+ }, import("@hanzogui/web").StaticConfigPublic>;
10
+ export type EmptyMediaVariant = 'default' | 'icon';
11
+ declare const MediaFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
12
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
13
+ fullscreen?: boolean | undefined;
14
+ variant?: "default" | "icon" | undefined;
15
+ }, import("@hanzogui/web").StaticConfigPublic>;
16
+ declare const TitleFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
17
+ unstyled?: boolean | undefined;
18
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
19
+ }, import("@hanzogui/web").StaticConfigPublic>;
20
+ declare const DescriptionFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
21
+ unstyled?: boolean | undefined;
22
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
23
+ }, import("@hanzogui/web").StaticConfigPublic>;
24
+ declare const ContentFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
25
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
26
+ fullscreen?: boolean | undefined;
27
+ }, import("@hanzogui/web").StaticConfigPublic>;
28
+ export type EmptyProps = ComponentProps<typeof EmptyFrame>;
29
+ export type EmptyHeaderProps = ComponentProps<typeof HeaderFrame>;
30
+ export type EmptyMediaProps = ComponentProps<typeof MediaFrame> & {
31
+ variant?: EmptyMediaVariant;
32
+ };
33
+ export type EmptyTitleProps = ComponentProps<typeof TitleFrame>;
34
+ export type EmptyDescriptionProps = ComponentProps<typeof DescriptionFrame>;
35
+ export type EmptyContentProps = ComponentProps<typeof ContentFrame>;
36
+ export declare const Empty: (p: EmptyProps) => import("react").JSX.Element;
37
+ export declare const EmptyHeader: (p: EmptyHeaderProps) => import("react").JSX.Element;
38
+ export declare const EmptyMedia: ({ variant, ...p }: EmptyMediaProps) => import("react").JSX.Element;
39
+ export declare const EmptyTitle: ({ children, ...p }: EmptyTitleProps) => import("react").JSX.Element;
40
+ export declare const EmptyDescription: ({ children, ...p }: EmptyDescriptionProps) => import("react").JSX.Element;
41
+ export declare const EmptyContent: ({ children, ...p }: EmptyContentProps) => import("react").JSX.Element;
42
+ export {};
43
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/empty.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C,QAAA,MAAM,UAAU;;;8CAUd,CAAA;AAEF,QAAA,MAAM,WAAW;;;8CAKf,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAA;AAIlD,QAAA,MAAM,UAAU;;;;8CAgBd,CAAA;AAEF,QAAA,MAAM,UAAU;;;8CAA6E,CAAA;AAC7F,QAAA,MAAM,gBAAgB;;;8CAAiF,CAAA;AAEvG,QAAA,MAAM,YAAY;;;8CAOhB,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAA;AAC1D,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AACjE,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAAA;AACjG,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAA;AAC/D,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAA;AAEnE,eAAO,MAAM,KAAK,MAAO,UAAU,gCAA6C,CAAA;AAEhF,eAAO,MAAM,WAAW,MAAO,gBAAgB,gCAAqD,CAAA;AAEpG,eAAO,MAAM,UAAU,sBAAmC,eAAe,gCAExE,CAAA;AAED,eAAO,MAAM,UAAU,uBAAwB,eAAe,gCAE7D,CAAA;AAED,eAAO,MAAM,gBAAgB,uBAAwB,qBAAqB,gCAEzE,CAAA;AAED,eAAO,MAAM,YAAY,uBAAwB,iBAAiB,gCAEjE,CAAA"}
@@ -0,0 +1,63 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * Empty — a placeholder for the absence of data: a header (media, title,
5
+ * description) above a content slot for a call to action.
6
+ *
7
+ * `EmptyMedia` carries the one variant that matters here — a bare icon versus
8
+ * one boxed into a rounded tile — through a styled context, the same split
9
+ * Badge uses for its frame/text pair.
10
+ */
11
+ import { SizableText, YStack, createStyledContext, styled } from '@hanzo/gui';
12
+ import { ink } from './ink.js';
13
+ import { slot } from './slot.js';
14
+ const EmptyFrame = styled(YStack, {
15
+ name: 'Empty',
16
+ flex: 1,
17
+ minW: 0,
18
+ items: 'center',
19
+ justify: 'center',
20
+ gap: '$6',
21
+ p: '$6',
22
+ rounded: '$6',
23
+ borderStyle: 'dashed',
24
+ });
25
+ const HeaderFrame = styled(YStack, {
26
+ name: 'EmptyHeader',
27
+ maxW: 384,
28
+ items: 'center',
29
+ gap: '$2',
30
+ });
31
+ const MediaContext = /* @__PURE__ */ createStyledContext({ variant: 'default' });
32
+ const MediaFrame = styled(YStack, {
33
+ name: 'EmptyMedia',
34
+ context: MediaContext,
35
+ shrink: 0,
36
+ items: 'center',
37
+ justify: 'center',
38
+ mb: '$2',
39
+ variants: {
40
+ variant: {
41
+ default: { bg: 'transparent' },
42
+ icon: { bg: '$hover', width: 40, height: 40, rounded: '$3' },
43
+ },
44
+ },
45
+ defaultVariants: { variant: 'default' },
46
+ });
47
+ const TitleFrame = styled(SizableText, { name: 'EmptyTitle', size: '$4', fontWeight: '500' });
48
+ const DescriptionFrame = styled(SizableText, { name: 'EmptyDescription', size: '$2', color: '$quiet' });
49
+ const ContentFrame = styled(YStack, {
50
+ name: 'EmptyContent',
51
+ width: '100%',
52
+ minW: 0,
53
+ maxW: 384,
54
+ items: 'center',
55
+ gap: '$4',
56
+ });
57
+ export const Empty = (p) => _jsx(EmptyFrame, { ...slot('empty'), ...p });
58
+ export const EmptyHeader = (p) => _jsx(HeaderFrame, { ...slot('empty-header'), ...p });
59
+ export const EmptyMedia = ({ variant = 'default', ...p }) => (_jsx(MediaFrame, { ...slot('empty-icon'), "data-variant": variant, variant: variant, ...p }));
60
+ export const EmptyTitle = ({ children, ...p }) => (_jsx(TitleFrame, { ...slot('empty-title'), ...p, children: ink(children) }));
61
+ export const EmptyDescription = ({ children, ...p }) => (_jsx(DescriptionFrame, { ...slot('empty-description'), ...p, children: ink(children) }));
62
+ export const EmptyContent = ({ children, ...p }) => (_jsx(ContentFrame, { ...slot('empty-content'), ...p, children: ink(children) }));
63
+ //# sourceMappingURL=empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../src/backends/gui/empty.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FieldGroup = exports.FieldContent = void 0;
5
+ exports.Field = Field;
6
+ exports.FieldDescription = FieldDescription;
7
+ exports.FieldError = FieldError;
8
+ exports.FieldLabel = FieldLabel;
9
+ exports.FieldLegend = FieldLegend;
10
+ exports.FieldSeparator = FieldSeparator;
11
+ exports.FieldSet = FieldSet;
12
+ exports.FieldTitle = FieldTitle;
13
+ const jsx_runtime_1 = require("react/jsx-runtime");
14
+ /**
15
+ * Field — the parts a form composes a labeled control from.
16
+ *
17
+ * `FieldSet`/`FieldLegend` group related fields inside a real `<fieldset>` so
18
+ * keyboard and screen-reader users get the grouping for free. `FieldGroup`
19
+ * stacks `Field`s with one rhythm. `Field` is the per-control wrapper —
20
+ * `role="group"`, an `orientation` (vertical / horizontal / responsive), and a
21
+ * `data-invalid` switch that turns the whole block destructive-colored so a
22
+ * sighted user and a screen reader see the same boundary. `FieldContent` keeps
23
+ * a label and its description together when the label sits beside the control.
24
+ * `FieldLabel` also doubles as a selectable "choice card" when its only child
25
+ * is a `Field` — border, radius and padding appear around it.
26
+ * `FieldTitle`/`FieldDescription`/`FieldError` are the text leaves;
27
+ * `FieldSeparator` divides a `FieldGroup`.
28
+ *
29
+ * `responsive` is mobile-first like `vertical` already is: a column below
30
+ * `$md`, a row from `$md` up — this config's media props are min-width (see
31
+ * the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
32
+ * container queries to reach for and none are needed: the same direction every
33
+ * other responsive prop in this codebase is written in.
34
+ */
35
+ const gui_1 = require("@hanzo/gui");
36
+ const react_1 = require("react");
37
+ const box_1 = require("../../box.cjs");
38
+ const label_1 = require("./label.cjs");
39
+ const layout_1 = require("./layout.cjs");
40
+ const ink_1 = require("./ink.cjs");
41
+ const slot_1 = require("./slot.cjs");
42
+ function FieldSet({ children, ...props }) {
43
+ return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "fieldset", className: "flex flex-col gap-6", ...(0, slot_1.slot)('field-set'), ...props, children: children }));
44
+ }
45
+ function FieldLegend({ variant = 'legend', children, ...props }) {
46
+ return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "legend", className: variant === 'label' ? 'mb-3 text-sm font-medium' : 'mb-3 text-base font-medium', ...(0, slot_1.slot)('field-legend'), "data-variant": variant, ...props, children: children }));
47
+ }
48
+ const FieldGroup = (0, gui_1.styled)(gui_1.YStack, {
49
+ name: 'FieldGroup',
50
+ width: '100%',
51
+ gap: '$7',
52
+ });
53
+ exports.FieldGroup = FieldGroup;
54
+ const FieldContext = /* @__PURE__ */ (0, gui_1.createStyledContext)({
55
+ orientation: 'vertical',
56
+ });
57
+ const FieldFrame = (0, gui_1.styled)(gui_1.XStack, {
58
+ name: 'Field',
59
+ context: FieldContext,
60
+ width: '100%',
61
+ gap: '$3',
62
+ variants: {
63
+ orientation: {
64
+ vertical: { flexDirection: 'column' },
65
+ horizontal: { flexDirection: 'row', items: 'center' },
66
+ // Mobile-first, the way `vertical` already is: a column below `$md`,
67
+ // a row from `$md` up — this config's media props are min-width, so the
68
+ // base case is the narrow one and `$md` is where it widens.
69
+ responsive: {
70
+ flexDirection: 'column',
71
+ $md: { flexDirection: 'row', items: 'center' },
72
+ },
73
+ },
74
+ invalid: {
75
+ true: { color: '$red9' },
76
+ },
77
+ },
78
+ defaultVariants: { orientation: 'vertical' },
79
+ });
80
+ function Field({ orientation = 'vertical', ...props }) {
81
+ const invalid = props['data-invalid'];
82
+ return ((0, jsx_runtime_1.jsx)(FieldFrame, { role: "group", ...(0, slot_1.slot)('field'), "data-orientation": orientation, orientation: orientation, invalid: invalid, ...props }));
83
+ }
84
+ const FieldContent = (0, gui_1.styled)(gui_1.YStack, {
85
+ name: 'FieldContent',
86
+ flex: 1,
87
+ gap: '$1.5',
88
+ });
89
+ exports.FieldContent = FieldContent;
90
+ /** A `Field` nested directly inside a `FieldLabel` reads as a choice card. */
91
+ const isFieldChild = (children) => (0, react_1.isValidElement)(children) && children.type === Field;
92
+ function FieldLabel({ className, children, ...props }) {
93
+ const card = isFieldChild(children);
94
+ return ((0, jsx_runtime_1.jsx)(label_1.Label, { ...(0, slot_1.slot)('field-label'), gap: "$2", ...(card
95
+ ? {
96
+ width: '100%',
97
+ flexDirection: 'column',
98
+ rounded: '$3',
99
+ borderWidth: 1,
100
+ borderColor: '$borderColor',
101
+ p: '$4',
102
+ }
103
+ : { self: 'flex-start' }), className: className, ...props, children: children }));
104
+ }
105
+ function FieldTitle({ children, ...props }) {
106
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: (0, ink_1.ink)(children, gui_1.SizableText, { fontSize: '$2', fontWeight: '500' }) }));
107
+ }
108
+ function FieldDescription({ children, ...props }) {
109
+ return ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-description'), fontSize: "$2", fontWeight: "400", color: "$quiet", ...props, children: children }));
110
+ }
111
+ function FieldSeparator({ children, ...props }) {
112
+ return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('field-separator'), "data-content": !!children, items: "center", gap: "$2", ...props, children: [(0, jsx_runtime_1.jsx)(layout_1.Separator, { flex: 1 }), children && ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-separator-content'), color: "$quiet", fontSize: "$2", children: children })), children && (0, jsx_runtime_1.jsx)(layout_1.Separator, { flex: 1 })] }));
113
+ }
114
+ function fieldErrorContent(children, errors, issues) {
115
+ if (children)
116
+ return children;
117
+ const list = errors ?? issues;
118
+ if (!list)
119
+ return null;
120
+ const messages = list.filter((e) => !!e?.message);
121
+ if (messages.length === 0)
122
+ return null;
123
+ if (messages.length === 1)
124
+ return messages[0].message;
125
+ return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "ul", className: "ml-4 flex flex-col gap-1", style: { listStyleType: 'disc' }, ...(0, slot_1.slot)('field-error-list'), children: messages.map((error, index) => ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "li", className: "text-sm text-red9", children: error.message }, index))) }));
126
+ }
127
+ function FieldError({ children, errors, issues, ...props }) {
128
+ const content = fieldErrorContent(children, errors, issues);
129
+ if (!content)
130
+ return null;
131
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { role: "alert", ...(0, slot_1.slot)('field-error'), ...props, children: (0, ink_1.ink)(content, gui_1.SizableText, { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
132
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Field — the parts a form composes a labeled control from.
3
+ *
4
+ * `FieldSet`/`FieldLegend` group related fields inside a real `<fieldset>` so
5
+ * keyboard and screen-reader users get the grouping for free. `FieldGroup`
6
+ * stacks `Field`s with one rhythm. `Field` is the per-control wrapper —
7
+ * `role="group"`, an `orientation` (vertical / horizontal / responsive), and a
8
+ * `data-invalid` switch that turns the whole block destructive-colored so a
9
+ * sighted user and a screen reader see the same boundary. `FieldContent` keeps
10
+ * a label and its description together when the label sits beside the control.
11
+ * `FieldLabel` also doubles as a selectable "choice card" when its only child
12
+ * is a `Field` — border, radius and padding appear around it.
13
+ * `FieldTitle`/`FieldDescription`/`FieldError` are the text leaves;
14
+ * `FieldSeparator` divides a `FieldGroup`.
15
+ *
16
+ * `responsive` is mobile-first like `vertical` already is: a column below
17
+ * `$md`, a row from `$md` up — this config's media props are min-width (see
18
+ * the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
19
+ * container queries to reach for and none are needed: the same direction every
20
+ * other responsive prop in this codebase is written in.
21
+ */
22
+ import { SizableText, XStack } from '@hanzo/gui';
23
+ import { type ComponentProps, type ReactNode } from 'react';
24
+ import { Label } from './label.js';
25
+ export type FieldOrientation = 'vertical' | 'horizontal' | 'responsive';
26
+ export type FieldLegendVariant = 'legend' | 'label';
27
+ declare function FieldSet({ children, ...props }: ComponentProps<'fieldset'>): import("react").JSX.Element;
28
+ export type FieldSetProps = ComponentProps<typeof FieldSet>;
29
+ declare function FieldLegend({ variant, children, ...props }: ComponentProps<'legend'> & {
30
+ variant?: FieldLegendVariant;
31
+ }): import("react").JSX.Element;
32
+ export type FieldLegendProps = ComponentProps<typeof FieldLegend>;
33
+ declare const FieldGroup: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
34
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
35
+ fullscreen?: boolean | undefined;
36
+ }, import("@hanzogui/web").StaticConfigPublic>;
37
+ export type FieldGroupProps = ComponentProps<typeof FieldGroup>;
38
+ declare const FieldFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
39
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
40
+ fullscreen?: boolean | undefined;
41
+ invalid?: boolean | undefined;
42
+ orientation?: "horizontal" | "responsive" | "vertical" | undefined;
43
+ }, import("@hanzogui/web").StaticConfigPublic>;
44
+ export type FieldProps = Omit<ComponentProps<typeof FieldFrame>, 'orientation'> & {
45
+ orientation?: FieldOrientation;
46
+ 'data-invalid'?: boolean;
47
+ };
48
+ declare function Field({ orientation, ...props }: FieldProps): import("react").JSX.Element;
49
+ declare const FieldContent: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
50
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
51
+ fullscreen?: boolean | undefined;
52
+ }, import("@hanzogui/web").StaticConfigPublic>;
53
+ export type FieldContentProps = ComponentProps<typeof FieldContent>;
54
+ declare function FieldLabel({ className, children, ...props }: ComponentProps<typeof Label>): import("react").JSX.Element;
55
+ export type FieldLabelProps = ComponentProps<typeof FieldLabel>;
56
+ declare function FieldTitle({ children, ...props }: ComponentProps<typeof XStack>): import("react").JSX.Element;
57
+ export type FieldTitleProps = ComponentProps<typeof FieldTitle>;
58
+ declare function FieldDescription({ children, ...props }: ComponentProps<typeof SizableText>): import("react").JSX.Element;
59
+ export type FieldDescriptionProps = ComponentProps<typeof FieldDescription>;
60
+ declare function FieldSeparator({ children, ...props }: ComponentProps<typeof XStack> & {
61
+ children?: ReactNode;
62
+ }): import("react").JSX.Element;
63
+ export type FieldSeparatorProps = ComponentProps<typeof FieldSeparator>;
64
+ export type FieldErrorIssue = {
65
+ message?: string;
66
+ };
67
+ export type FieldErrorProps = ComponentProps<typeof XStack> & {
68
+ errors?: Array<FieldErrorIssue | undefined>;
69
+ /** Issues from any [Standard Schema](https://standardschema.dev/) validator. */
70
+ issues?: Array<FieldErrorIssue | undefined>;
71
+ };
72
+ declare function FieldError({ children, errors, issues, ...props }: FieldErrorProps): import("react").JSX.Element | null;
73
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, };
74
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"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"}