@hanzo/ui 8.27.10 → 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 (303) hide show
  1. package/dist/backends/gui/comparison.cjs +17 -21
  2. package/dist/backends/gui/comparison.d.ts +4 -5
  3. package/dist/backends/gui/comparison.d.ts.map +1 -1
  4. package/dist/backends/gui/comparison.js +18 -22
  5. package/dist/backends/gui/comparison.js.map +1 -1
  6. package/dist/backends/gui/crypto-screener.cjs +21 -31
  7. package/dist/backends/gui/crypto-screener.d.ts +20 -24
  8. package/dist/backends/gui/crypto-screener.d.ts.map +1 -1
  9. package/dist/backends/gui/crypto-screener.js +21 -31
  10. package/dist/backends/gui/crypto-screener.js.map +1 -1
  11. package/dist/backends/gui/cursor.cjs +15 -18
  12. package/dist/backends/gui/cursor.d.ts +4 -3
  13. package/dist/backends/gui/cursor.d.ts.map +1 -1
  14. package/dist/backends/gui/cursor.js +15 -18
  15. package/dist/backends/gui/cursor.js.map +1 -1
  16. package/dist/backends/gui/data-table.cjs +144 -184
  17. package/dist/backends/gui/data-table.d.ts +64 -44
  18. package/dist/backends/gui/data-table.d.ts.map +1 -1
  19. package/dist/backends/gui/data-table.js +146 -152
  20. package/dist/backends/gui/data-table.js.map +1 -1
  21. package/dist/backends/gui/dock.cjs +1 -1
  22. package/dist/backends/gui/dock.d.ts.map +1 -1
  23. package/dist/backends/gui/dock.js +1 -1
  24. package/dist/backends/gui/dock.js.map +1 -1
  25. package/dist/backends/gui/editor.cjs +35 -31
  26. package/dist/backends/gui/editor.d.ts +11 -11
  27. package/dist/backends/gui/editor.d.ts.map +1 -1
  28. package/dist/backends/gui/editor.js +35 -31
  29. package/dist/backends/gui/editor.js.map +1 -1
  30. package/dist/backends/gui/field.cjs +132 -0
  31. package/dist/backends/gui/field.d.ts +74 -0
  32. package/dist/backends/gui/field.d.ts.map +1 -0
  33. package/dist/backends/gui/field.js +121 -0
  34. package/dist/backends/gui/field.js.map +1 -0
  35. package/dist/backends/gui/gantt.cjs +17 -19
  36. package/dist/backends/gui/gantt.d.ts +4 -5
  37. package/dist/backends/gui/gantt.d.ts.map +1 -1
  38. package/dist/backends/gui/gantt.js +18 -21
  39. package/dist/backends/gui/gantt.js.map +1 -1
  40. package/dist/backends/gui/glimpse.cjs +88 -0
  41. package/dist/backends/gui/glimpse.d.ts +57 -0
  42. package/dist/backends/gui/glimpse.d.ts.map +1 -0
  43. package/dist/backends/gui/glimpse.js +81 -0
  44. package/dist/backends/gui/glimpse.js.map +1 -0
  45. package/dist/backends/gui/grid-pattern.cjs +119 -0
  46. package/dist/backends/gui/grid-pattern.d.ts +96 -0
  47. package/dist/backends/gui/grid-pattern.d.ts.map +1 -0
  48. package/dist/backends/gui/grid-pattern.js +84 -0
  49. package/dist/backends/gui/grid-pattern.js.map +1 -0
  50. package/dist/backends/gui/image-crop.cjs +35 -0
  51. package/dist/backends/gui/image-crop.d.ts +20 -0
  52. package/dist/backends/gui/image-crop.d.ts.map +1 -0
  53. package/dist/backends/gui/image-crop.js +33 -0
  54. package/dist/backends/gui/image-crop.js.map +1 -0
  55. package/dist/backends/gui/image-zoom.cjs +58 -0
  56. package/dist/backends/gui/image-zoom.d.ts +16 -0
  57. package/dist/backends/gui/image-zoom.d.ts.map +1 -0
  58. package/dist/backends/gui/image-zoom.js +56 -0
  59. package/dist/backends/gui/image-zoom.js.map +1 -0
  60. package/dist/backends/gui/index.cjs +159 -1
  61. package/dist/backends/gui/index.d.ts +49 -0
  62. package/dist/backends/gui/index.d.ts.map +1 -1
  63. package/dist/backends/gui/index.js +49 -0
  64. package/dist/backends/gui/index.js.map +1 -1
  65. package/dist/backends/gui/interactive-grid-pattern.cjs +61 -0
  66. package/dist/backends/gui/interactive-grid-pattern.d.ts +28 -0
  67. package/dist/backends/gui/interactive-grid-pattern.d.ts.map +1 -0
  68. package/dist/backends/gui/interactive-grid-pattern.js +26 -0
  69. package/dist/backends/gui/interactive-grid-pattern.js.map +1 -0
  70. package/dist/backends/gui/iphone-15-pro.cjs +83 -0
  71. package/dist/backends/gui/iphone-15-pro.d.ts +16 -0
  72. package/dist/backends/gui/iphone-15-pro.d.ts.map +1 -0
  73. package/dist/backends/gui/iphone-15-pro.js +81 -0
  74. package/dist/backends/gui/iphone-15-pro.js.map +1 -0
  75. package/dist/backends/gui/item.cjs +154 -0
  76. package/dist/backends/gui/item.d.ts +72 -0
  77. package/dist/backends/gui/item.d.ts.map +1 -0
  78. package/dist/backends/gui/item.js +143 -0
  79. package/dist/backends/gui/item.js.map +1 -0
  80. package/dist/backends/gui/kanban.cjs +247 -0
  81. package/dist/backends/gui/kanban.d.ts +37 -0
  82. package/dist/backends/gui/kanban.d.ts.map +1 -0
  83. package/dist/backends/gui/kanban.js +212 -0
  84. package/dist/backends/gui/kanban.js.map +1 -0
  85. package/dist/backends/gui/kbd.cjs +45 -0
  86. package/dist/backends/gui/kbd.d.ts +8 -0
  87. package/dist/backends/gui/kbd.d.ts.map +1 -0
  88. package/dist/backends/gui/kbd.js +42 -0
  89. package/dist/backends/gui/kbd.js.map +1 -0
  90. package/dist/backends/gui/limelight-nav.cjs +201 -0
  91. package/dist/backends/gui/limelight-nav.d.ts +20 -0
  92. package/dist/backends/gui/limelight-nav.d.ts.map +1 -0
  93. package/dist/backends/gui/limelight-nav.js +166 -0
  94. package/dist/backends/gui/limelight-nav.js.map +1 -0
  95. package/dist/backends/gui/list.cjs +26 -0
  96. package/dist/backends/gui/list.d.ts +15 -0
  97. package/dist/backends/gui/list.d.ts.map +1 -0
  98. package/dist/backends/gui/list.js +23 -0
  99. package/dist/backends/gui/list.js.map +1 -0
  100. package/dist/backends/gui/macos-dock.cjs +84 -0
  101. package/dist/backends/gui/macos-dock.d.ts +30 -0
  102. package/dist/backends/gui/macos-dock.d.ts.map +1 -0
  103. package/dist/backends/gui/macos-dock.js +82 -0
  104. package/dist/backends/gui/macos-dock.js.map +1 -0
  105. package/dist/backends/gui/magnetic.cjs +40 -0
  106. package/dist/backends/gui/magnetic.d.ts +12 -0
  107. package/dist/backends/gui/magnetic.d.ts.map +1 -0
  108. package/dist/backends/gui/magnetic.js +38 -0
  109. package/dist/backends/gui/magnetic.js.map +1 -0
  110. package/dist/backends/gui/marquee.cjs +110 -0
  111. package/dist/backends/gui/marquee.d.ts +44 -0
  112. package/dist/backends/gui/marquee.d.ts.map +1 -0
  113. package/dist/backends/gui/marquee.js +75 -0
  114. package/dist/backends/gui/marquee.js.map +1 -0
  115. package/dist/backends/gui/menu-dock.cjs +64 -0
  116. package/dist/backends/gui/menu-dock.d.ts +21 -0
  117. package/dist/backends/gui/menu-dock.d.ts.map +1 -0
  118. package/dist/backends/gui/menu-dock.js +62 -0
  119. package/dist/backends/gui/menu-dock.js.map +1 -0
  120. package/dist/backends/gui/menubar.cjs +227 -0
  121. package/dist/backends/gui/menubar.d.ts +106 -0
  122. package/dist/backends/gui/menubar.d.ts.map +1 -0
  123. package/dist/backends/gui/menubar.js +177 -0
  124. package/dist/backends/gui/menubar.js.map +1 -0
  125. package/dist/backends/gui/message-dock.cjs +111 -0
  126. package/dist/backends/gui/message-dock.d.ts +22 -0
  127. package/dist/backends/gui/message-dock.d.ts.map +1 -0
  128. package/dist/backends/gui/message-dock.js +110 -0
  129. package/dist/backends/gui/message-dock.js.map +1 -0
  130. package/dist/backends/gui/mini-calendar.cjs +25 -0
  131. package/dist/backends/gui/mini-calendar.d.ts +22 -0
  132. package/dist/backends/gui/mini-calendar.d.ts.map +1 -0
  133. package/dist/backends/gui/mini-calendar.js +24 -0
  134. package/dist/backends/gui/mini-calendar.js.map +1 -0
  135. package/dist/backends/gui/minimal-tiptap.cjs +56 -0
  136. package/dist/backends/gui/minimal-tiptap.d.ts +20 -0
  137. package/dist/backends/gui/minimal-tiptap.d.ts.map +1 -0
  138. package/dist/backends/gui/minimal-tiptap.js +21 -0
  139. package/dist/backends/gui/minimal-tiptap.js.map +1 -0
  140. package/dist/backends/gui/motion-highlight.cjs +83 -0
  141. package/dist/backends/gui/motion-highlight.d.ts +27 -0
  142. package/dist/backends/gui/motion-highlight.d.ts.map +1 -0
  143. package/dist/backends/gui/motion-highlight.js +48 -0
  144. package/dist/backends/gui/motion-highlight.js.map +1 -0
  145. package/dist/backends/gui/navigation-bar.cjs +47 -0
  146. package/dist/backends/gui/navigation-bar.d.ts +48 -0
  147. package/dist/backends/gui/navigation-bar.d.ts.map +1 -0
  148. package/dist/backends/gui/navigation-bar.js +45 -0
  149. package/dist/backends/gui/navigation-bar.js.map +1 -0
  150. package/dist/backends/gui/news-timeline.cjs +47 -0
  151. package/dist/backends/gui/news-timeline.d.ts +39 -0
  152. package/dist/backends/gui/news-timeline.d.ts.map +1 -0
  153. package/dist/backends/gui/news-timeline.js +45 -0
  154. package/dist/backends/gui/news-timeline.js.map +1 -0
  155. package/dist/backends/gui/order-entry.cjs +53 -0
  156. package/dist/backends/gui/order-entry.d.ts +21 -0
  157. package/dist/backends/gui/order-entry.d.ts.map +1 -0
  158. package/dist/backends/gui/order-entry.js +52 -0
  159. package/dist/backends/gui/order-entry.js.map +1 -0
  160. package/dist/backends/gui/orders-history.cjs +102 -0
  161. package/dist/backends/gui/orders-history.d.ts +24 -0
  162. package/dist/backends/gui/orders-history.d.ts.map +1 -0
  163. package/dist/backends/gui/orders-history.js +67 -0
  164. package/dist/backends/gui/orders-history.js.map +1 -0
  165. package/dist/backends/gui/pagination.cjs +51 -0
  166. package/dist/backends/gui/pagination.d.ts +52 -0
  167. package/dist/backends/gui/pagination.d.ts.map +1 -0
  168. package/dist/backends/gui/pagination.js +42 -0
  169. package/dist/backends/gui/pagination.js.map +1 -0
  170. package/dist/backends/gui/particles-background.cjs +135 -0
  171. package/dist/backends/gui/particles-background.d.ts +24 -0
  172. package/dist/backends/gui/particles-background.d.ts.map +1 -0
  173. package/dist/backends/gui/particles-background.js +133 -0
  174. package/dist/backends/gui/particles-background.js.map +1 -0
  175. package/dist/backends/gui/particles.cjs +145 -0
  176. package/dist/backends/gui/particles.d.ts +25 -0
  177. package/dist/backends/gui/particles.d.ts.map +1 -0
  178. package/dist/backends/gui/particles.js +143 -0
  179. package/dist/backends/gui/particles.js.map +1 -0
  180. package/dist/backends/gui/pill.cjs +82 -0
  181. package/dist/backends/gui/pill.d.ts +12 -0
  182. package/dist/backends/gui/pill.d.ts.map +1 -0
  183. package/dist/backends/gui/pill.js +78 -0
  184. package/dist/backends/gui/pill.js.map +1 -0
  185. package/dist/backends/gui/pin-list.cjs +82 -0
  186. package/dist/backends/gui/pin-list.d.ts +42 -0
  187. package/dist/backends/gui/pin-list.d.ts.map +1 -0
  188. package/dist/backends/gui/pin-list.js +80 -0
  189. package/dist/backends/gui/pin-list.js.map +1 -0
  190. package/dist/backends/gui/pixel-image.cjs +63 -0
  191. package/dist/backends/gui/pixel-image.d.ts +21 -0
  192. package/dist/backends/gui/pixel-image.d.ts.map +1 -0
  193. package/dist/backends/gui/pixel-image.js +61 -0
  194. package/dist/backends/gui/pixel-image.js.map +1 -0
  195. package/dist/backends/gui/positions-list.cjs +60 -0
  196. package/dist/backends/gui/positions-list.d.ts +14 -0
  197. package/dist/backends/gui/positions-list.d.ts.map +1 -0
  198. package/dist/backends/gui/positions-list.js +58 -0
  199. package/dist/backends/gui/positions-list.js.map +1 -0
  200. package/dist/backends/gui/qr-code.cjs +438 -0
  201. package/dist/backends/gui/qr-code.d.ts +42 -0
  202. package/dist/backends/gui/qr-code.d.ts.map +1 -0
  203. package/dist/backends/gui/qr-code.js +402 -0
  204. package/dist/backends/gui/qr-code.js.map +1 -0
  205. package/dist/backends/gui/relative-time.cjs +167 -0
  206. package/dist/backends/gui/relative-time.d.ts +10 -0
  207. package/dist/backends/gui/relative-time.d.ts.map +1 -0
  208. package/dist/backends/gui/relative-time.js +132 -0
  209. package/dist/backends/gui/relative-time.js.map +1 -0
  210. package/dist/backends/gui/safari.cjs +65 -0
  211. package/dist/backends/gui/safari.d.ts +23 -0
  212. package/dist/backends/gui/safari.d.ts.map +1 -0
  213. package/dist/backends/gui/safari.js +63 -0
  214. package/dist/backends/gui/safari.js.map +1 -0
  215. package/dist/backends/gui/snippet.cjs +144 -0
  216. package/dist/backends/gui/snippet.d.ts +38 -0
  217. package/dist/backends/gui/snippet.d.ts.map +1 -0
  218. package/dist/backends/gui/snippet.js +141 -0
  219. package/dist/backends/gui/snippet.js.map +1 -0
  220. package/dist/backends/gui/stars-scrolling-wheel.cjs +106 -0
  221. package/dist/backends/gui/stars-scrolling-wheel.d.ts +24 -0
  222. package/dist/backends/gui/stars-scrolling-wheel.d.ts.map +1 -0
  223. package/dist/backends/gui/stars-scrolling-wheel.js +104 -0
  224. package/dist/backends/gui/stars-scrolling-wheel.js.map +1 -0
  225. package/dist/backends/gui/status.cjs +79 -0
  226. package/dist/backends/gui/status.d.ts +15 -0
  227. package/dist/backends/gui/status.d.ts.map +1 -0
  228. package/dist/backends/gui/status.js +77 -0
  229. package/dist/backends/gui/status.js.map +1 -0
  230. package/dist/backends/gui/stock-market.cjs +21 -0
  231. package/dist/backends/gui/stock-market.d.ts +17 -0
  232. package/dist/backends/gui/stock-market.d.ts.map +1 -0
  233. package/dist/backends/gui/stock-market.js +19 -0
  234. package/dist/backends/gui/stock-market.js.map +1 -0
  235. package/dist/backends/gui/stock-screener.cjs +55 -0
  236. package/dist/backends/gui/stock-screener.d.ts +41 -0
  237. package/dist/backends/gui/stock-screener.d.ts.map +1 -0
  238. package/dist/backends/gui/stock-screener.js +53 -0
  239. package/dist/backends/gui/stock-screener.js.map +1 -0
  240. package/dist/backends/gui/symbol-info.cjs +46 -0
  241. package/dist/backends/gui/symbol-info.d.ts +36 -0
  242. package/dist/backends/gui/symbol-info.d.ts.map +1 -0
  243. package/dist/backends/gui/symbol-info.js +44 -0
  244. package/dist/backends/gui/symbol-info.js.map +1 -0
  245. package/dist/backends/gui/table.cjs +104 -0
  246. package/dist/backends/gui/table.d.ts +57 -0
  247. package/dist/backends/gui/table.d.ts.map +1 -0
  248. package/dist/backends/gui/table.js +95 -0
  249. package/dist/backends/gui/table.js.map +1 -0
  250. package/dist/backends/gui/tags.cjs +22 -0
  251. package/dist/backends/gui/tags.d.ts +22 -0
  252. package/dist/backends/gui/tags.d.ts.map +1 -0
  253. package/dist/backends/gui/tags.js +20 -0
  254. package/dist/backends/gui/tags.js.map +1 -0
  255. package/dist/backends/gui/technical-analysis.cjs +58 -0
  256. package/dist/backends/gui/technical-analysis.d.ts +41 -0
  257. package/dist/backends/gui/technical-analysis.d.ts.map +1 -0
  258. package/dist/backends/gui/technical-analysis.js +56 -0
  259. package/dist/backends/gui/technical-analysis.js.map +1 -0
  260. package/dist/backends/gui/terminal.cjs +266 -0
  261. package/dist/backends/gui/terminal.d.ts +38 -0
  262. package/dist/backends/gui/terminal.d.ts.map +1 -0
  263. package/dist/backends/gui/terminal.js +231 -0
  264. package/dist/backends/gui/terminal.js.map +1 -0
  265. package/dist/backends/gui/ticker.cjs +79 -0
  266. package/dist/backends/gui/ticker.d.ts +19 -0
  267. package/dist/backends/gui/ticker.d.ts.map +1 -0
  268. package/dist/backends/gui/ticker.js +44 -0
  269. package/dist/backends/gui/ticker.js.map +1 -0
  270. package/dist/backends/gui/timeline.cjs +154 -0
  271. package/dist/backends/gui/timeline.d.ts +42 -0
  272. package/dist/backends/gui/timeline.d.ts.map +1 -0
  273. package/dist/backends/gui/timeline.js +118 -0
  274. package/dist/backends/gui/timeline.js.map +1 -0
  275. package/dist/backends/gui/toggle.cjs +96 -0
  276. package/dist/backends/gui/toggle.d.ts +29 -0
  277. package/dist/backends/gui/toggle.d.ts.map +1 -0
  278. package/dist/backends/gui/toggle.js +95 -0
  279. package/dist/backends/gui/toggle.js.map +1 -0
  280. package/dist/backends/gui/video-player.cjs +383 -0
  281. package/dist/backends/gui/video-player.d.ts +54 -0
  282. package/dist/backends/gui/video-player.d.ts.map +1 -0
  283. package/dist/backends/gui/video-player.js +348 -0
  284. package/dist/backends/gui/video-player.js.map +1 -0
  285. package/dist/chat/Composer.cjs +10 -10
  286. package/dist/chat/Composer.d.ts +16 -17
  287. package/dist/chat/Composer.d.ts.map +1 -1
  288. package/dist/chat/Composer.js +11 -11
  289. package/dist/chat/Composer.js.map +1 -1
  290. package/dist/gallery.cjs +180 -1
  291. package/dist/gallery.d.ts.map +1 -1
  292. package/dist/gallery.html +391 -3
  293. package/dist/gallery.js +181 -2
  294. package/dist/gallery.js.map +1 -1
  295. package/dist/index.cjs +110 -1
  296. package/dist/index.d.ts +1 -1
  297. package/dist/index.d.ts.map +1 -1
  298. package/dist/index.js +1 -1
  299. package/dist/index.js.map +1 -1
  300. package/dist/index.node.cjs +110 -1
  301. package/dist/index.node.js +1 -1
  302. package/dist/styles.css +356 -0
  303. package/package.json +1 -1
@@ -1,175 +1,169 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /**
4
- * DataTable — a table over an array, with sorting, a text filter, column
5
- * visibility, row selection and pagination composed from one column list.
4
+ * DataTable — a sortable, filterable, paginated grid over an array of rows,
5
+ * driven by a column-definition array exactly the way the upstream guide's
6
+ * `ColumnDef[]` is: a column names an `accessorKey`, an optional `header` and
7
+ * `cell` renderer, and whether it can be sorted or hidden. Two ids carry
8
+ * meaning by convention, matched by the reference implementation's own demo —
9
+ * a column `id: 'select'` gets its checkbox for free, everything else (an
10
+ * `id: 'actions'` column included) is rendered by whatever `cell` you give it.
6
11
  *
7
- * A column names an `accessorKey` and, only where the default text rendering
8
- * is not enough, a `header`/`cell` render function; the render functions get a
9
- * `column`/`table` handle shaped like the one a caller already knows from
10
- * TanStack Table (`getIsSorted`, `toggleSorting`, `getIsSelected`, …), so a
11
- * column list ports over by keeping its shape and dropping only the
12
- * `ColumnDef` import. Rows keep the identity of their position in `data`, so
13
- * selection survives a sort or a filter.
12
+ * There is no TanStack Table here: the workspace does not carry it, and a
13
+ * generic column model over a plain array needs none of what a headless
14
+ * library buys a real backend — grouping, virtualization, server-side
15
+ * pagination. Sorting, filtering, visibility, selection and pagination are
16
+ * ~120 lines of arithmetic over arrays, kept in one `useState` each, matching
17
+ * the guide's own `SortingState`/`ColumnFiltersState`/`VisibilityState` split.
14
18
  *
15
- * The grid is ONE `Grid` (`../../grid`), header and body cells alike, so every
16
- * column shares one set of tracks; each row is a `display: contents` wrapper
17
- * carrying `role="row"` so the cells inside stay direct grid children (Grid's
18
- * own note: `grid-column` only reaches a direct child) while still grouping
19
- * into a real accessible row.
19
+ * The grid is `@hanzo/ui`'s own `Grid`/`Cell` — a real CSS grid, which is the
20
+ * one correct host for a two-dimensional layout — with the WAI-ARIA
21
+ * `table`/`row`/`columnheader`/`cell` roles standing in for the semantics a
22
+ * native `<table>` would otherwise carry.
20
23
  */
21
24
  import { SizableText, XStack, YStack } from '@hanzo/gui';
22
- import { ChevronDown, ChevronUp, ChevronsUpDown } from '@hanzogui/lucide-icons-2';
23
- import * as React from 'react';
25
+ import { ArrowDown, ArrowUp, ArrowUpDown, ChevronDown } from '@hanzogui/lucide-icons-2';
26
+ import { useMemo, useState } from 'react';
24
27
  import { Cell, Grid } from '../../grid.js';
25
28
  import { Button } from './button.js';
26
29
  import { Checkbox } from './checkbox.js';
27
30
  import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger, } from './dropdown-menu.js';
31
+ import { ink } from './ink.js';
28
32
  import { Input } from './input.js';
29
33
  import { slot } from './slot.js';
30
- const resolve = (def) => ({
31
- id: def.id ?? (def.accessorKey != null ? String(def.accessorKey) : ''),
32
- def,
33
- });
34
- const cycle = (current, id, desc) => {
35
- if (typeof desc === 'boolean')
36
- return { id, desc };
37
- if (!current || current.id !== id)
38
- return { id, desc: false };
39
- return current.desc ? null : { id, desc: true };
34
+ /**
35
+ * A column's header cell: plain text when the column cannot sort, otherwise a
36
+ * button that toggles ascending/descending and shows which way it is set —
37
+ * the same affordance the reference `data-table-demo.tsx` wires up by hand.
38
+ */
39
+ function DataTableColumnHeader({ column, title, className }) {
40
+ if (!column.getCanSort())
41
+ return (_jsx(SizableText, { size: "$2", fontWeight: "600", color: "$quiet", className: className, children: title }));
42
+ const sorted = column.getIsSorted();
43
+ return (_jsxs(Button, { ...slot('data-table-column-header'), variant: "ghost", size: "sm", className: className, onClick: () => column.toggleSorting(sorted === 'asc'), children: [title, sorted === 'desc' ? _jsx(ArrowDown, { size: 14 }) : sorted === 'asc' ? _jsx(ArrowUp, { size: 14 }) : _jsx(ArrowUpDown, { size: 14 })] }));
44
+ }
45
+ const cellValue = (column, row) => column.accessorKey !== undefined ? row[column.accessorKey] : undefined;
46
+ const sortKey = (column, row) => {
47
+ if (column.sortingValue)
48
+ return column.sortingValue(row);
49
+ const v = cellValue(column, row);
50
+ return typeof v === 'number' ? v : String(v ?? '');
40
51
  };
41
- export function DataTable({ columns, data, filterColumnId, filterPlaceholder = 'Filter…', pageSize = 10, emptyMessage = 'No results.', }) {
42
- const resolved = React.useMemo(() => columns.map(resolve), [columns]);
43
- const [sorting, setSorting] = React.useState(null);
44
- const [filterValue, setFilterValue] = React.useState('');
45
- const [hidden, setHidden] = React.useState({});
46
- const [selected, setSelected] = React.useState({});
47
- const [pageIndex, setPageIndex] = React.useState(0);
48
- const withIndex = React.useMemo(() => data.map((original, index) => ({ original, index })), [data]);
49
- const filtered = React.useMemo(() => {
50
- if (!filterColumnId || filterValue === '')
51
- return withIndex;
52
- const needle = filterValue.toLowerCase();
53
- return withIndex.filter(({ original }) => {
54
- const value = original[filterColumnId];
55
- return String(value ?? '').toLowerCase().includes(needle);
56
- });
57
- }, [withIndex, filterColumnId, filterValue]);
58
- const sorted = React.useMemo(() => {
52
+ const filterText = (column, row) => column.filterValue ? column.filterValue(row) : String(cellValue(column, row) ?? '');
53
+ const track = (width) => width === undefined ? '1fr' : typeof width === 'number' ? `${width}px` : width;
54
+ const justify = (a) => a === 'right' ? 'flex-end' : a === 'center' ? 'center' : 'flex-start';
55
+ function DataTable({ columns, data, getRowId, filterColumnId, filterPlaceholder = 'Filter…', pageSize = 0, emptyMessage = 'No results.', onRowSelectionChange, }) {
56
+ const [sorting, setSorting] = useState(null);
57
+ const [filter, setFilter] = useState('');
58
+ const [hidden, setHidden] = useState({});
59
+ const [selected, setSelected] = useState({});
60
+ const [pageIndex, setPageIndex] = useState(0);
61
+ const withIds = useMemo(() => data.map((row, i) => ({ row, id: getRowId ? getRowId(row, i) : String(i) })), [data, getRowId]);
62
+ const filterColumn = filterColumnId ? columns.find((c) => c.id === filterColumnId) : undefined;
63
+ const filtered = useMemo(() => {
64
+ if (!filterColumn || filter.trim() === '')
65
+ return withIds;
66
+ const needle = filter.toLowerCase();
67
+ return withIds.filter(({ row }) => filterText(filterColumn, row).toLowerCase().includes(needle));
68
+ }, [withIds, filterColumn, filter]);
69
+ const sorted = useMemo(() => {
59
70
  if (!sorting)
60
71
  return filtered;
61
- const col = resolved.find((c) => c.id === sorting.id);
62
- if (!col?.def.accessorKey)
72
+ const column = columns.find((c) => c.id === sorting.id);
73
+ if (!column)
63
74
  return filtered;
64
- const key = col.def.accessorKey;
65
- const dir = sorting.desc ? -1 : 1;
66
- return [...filtered].sort((a, b) => {
67
- const av = a.original[key];
68
- const bv = b.original[key];
69
- if (av == null && bv == null)
70
- return 0;
71
- if (av == null)
72
- return -1 * dir;
73
- if (bv == null)
74
- return 1 * dir;
75
- return av > bv ? dir : av < bv ? -dir : 0;
76
- });
77
- }, [filtered, sorting, resolved]);
78
- const paginate = pageSize > 0;
79
- const pageCount = paginate ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1;
80
- const clampedPageIndex = Math.min(pageIndex, pageCount - 1);
81
- const pageRows = paginate
82
- ? sorted.slice(clampedPageIndex * pageSize, clampedPageIndex * pageSize + pageSize)
83
- : sorted;
84
- const makeColumn = React.useCallback((col) => ({
85
- id: col.id,
86
- getIsSorted: () => (sorting && sorting.id === col.id ? (sorting.desc ? 'desc' : 'asc') : false),
87
- toggleSorting: (desc) => setSorting((prev) => cycle(prev, col.id, desc)),
88
- getCanHide: () => col.def.enableHiding !== false,
89
- getIsVisible: () => hidden[col.id] !== true,
90
- toggleVisibility: (visible) => setHidden((prev) => {
91
- const isHidden = prev[col.id] === true;
92
- const nextHidden = visible === undefined ? !isHidden : !visible;
93
- return { ...prev, [col.id]: nextHidden };
94
- }),
95
- }), [sorting, hidden]);
96
- const makeRow = React.useCallback((index, original) => {
97
- const id = String(index);
98
- return {
99
- id,
100
- original,
101
- getValue: (columnId) => {
102
- const col = resolved.find((c) => c.id === columnId);
103
- return col?.def.accessorKey ? original[col.def.accessorKey] : undefined;
104
- },
105
- getIsSelected: () => selected[id] === true,
106
- toggleSelected: (value) => setSelected((prev) => ({ ...prev, [id]: value === undefined ? !prev[id] : value })),
107
- };
108
- }, [resolved, selected]);
109
- const instance = React.useMemo(() => ({
110
- getAllColumns: () => resolved.map(makeColumn),
75
+ const keyed = filtered.map((entry) => ({ entry, key: sortKey(column, entry.row) }));
76
+ keyed.sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
77
+ if (sorting.desc)
78
+ keyed.reverse();
79
+ return keyed.map((k) => k.entry);
80
+ }, [filtered, columns, sorting]);
81
+ const pageCount = pageSize > 0 ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1;
82
+ const paged = pageSize > 0 ? sorted.slice(pageIndex * pageSize, pageIndex * pageSize + pageSize) : sorted;
83
+ const visibleColumns = columns.filter((c) => hidden[c.id] !== true);
84
+ const hideable = columns.filter((c) => c.enableHiding !== false);
85
+ const setSelectedFor = (id, value) => {
86
+ const next = { ...selected, [id]: value };
87
+ setSelected(next);
88
+ onRowSelectionChange?.(withIds.filter((e) => next[e.id]).map((e) => e.row));
89
+ };
90
+ const toggleAllPage = (value) => {
91
+ const next = { ...selected };
92
+ for (const entry of paged)
93
+ next[entry.id] = value;
94
+ setSelected(next);
95
+ onRowSelectionChange?.(withIds.filter((e) => next[e.id]).map((e) => e.row));
96
+ };
97
+ const rowApi = (entry) => ({
98
+ id: entry.id,
99
+ original: entry.row,
100
+ getValue: (columnId) => {
101
+ const column = columns.find((c) => c.id === columnId);
102
+ return column ? cellValue(column, entry.row) : undefined;
103
+ },
104
+ getIsSelected: () => selected[entry.id] === true,
105
+ toggleSelected: (value) => setSelectedFor(entry.id, value ?? !selected[entry.id]),
106
+ });
107
+ const columnApi = (column) => ({
108
+ id: column.id,
109
+ getCanSort: () => column.enableSorting !== false,
110
+ getIsSorted: () => (sorting?.id === column.id ? (sorting.desc ? 'desc' : 'asc') : false),
111
+ toggleSorting: (desc = false) => {
112
+ if (column.enableSorting === false)
113
+ return;
114
+ setSorting({ id: column.id, desc });
115
+ },
116
+ getCanHide: () => column.enableHiding !== false,
117
+ getIsVisible: () => hidden[column.id] !== true,
118
+ toggleVisibility: (visible) => setHidden((h) => ({ ...h, [column.id]: visible === undefined ? h[column.id] !== true : !visible })),
119
+ });
120
+ const pageIds = paged.map((e) => e.id);
121
+ const allPageSelected = pageIds.length > 0 && pageIds.every((id) => selected[id]);
122
+ const somePageSelected = pageIds.some((id) => selected[id]);
123
+ const table = {
111
124
  getColumn: (id) => {
112
- const col = resolved.find((c) => c.id === id);
113
- return col ? makeColumn(col) : undefined;
125
+ const column = columns.find((c) => c.id === id);
126
+ return column ? columnApi(column) : undefined;
114
127
  },
115
- getIsAllPageRowsSelected: () => pageRows.length > 0 && pageRows.every(({ index }) => selected[String(index)] === true),
116
- getIsSomePageRowsSelected: () => pageRows.some(({ index }) => selected[String(index)] === true) &&
117
- !pageRows.every(({ index }) => selected[String(index)] === true),
118
- toggleAllPageRowsSelected: (value) => setSelected((prev) => {
119
- const allSelected = pageRows.every(({ index }) => prev[String(index)] === true);
120
- const next = value === undefined ? !allSelected : value;
121
- const out = { ...prev };
122
- for (const { index } of pageRows)
123
- out[String(index)] = next;
124
- return out;
125
- }),
126
- getFilteredRowModel: () => ({ rows: sorted.map(({ original, index }) => makeRow(index, original)) }),
127
- getFilteredSelectedRowModel: () => ({
128
- rows: sorted.filter(({ index }) => selected[String(index)] === true).map(({ original, index }) => makeRow(index, original)),
129
- }),
128
+ getAllColumns: () => columns.map(columnApi),
129
+ getRowModel: () => ({ rows: paged.map(rowApi) }),
130
+ getFilteredRowModel: () => ({ rows: filtered.map(rowApi) }),
131
+ getFilteredSelectedRowModel: () => ({ rows: filtered.filter((e) => selected[e.id]).map(rowApi) }),
132
+ getIsAllPageRowsSelected: () => allPageSelected,
133
+ getIsSomePageRowsSelected: () => somePageSelected,
134
+ toggleAllPageRowsSelected: (value) => toggleAllPage(value ?? !allPageSelected),
135
+ getCanPreviousPage: () => pageIndex > 0,
136
+ getCanNextPage: () => pageIndex < pageCount - 1,
130
137
  previousPage: () => setPageIndex((p) => Math.max(0, p - 1)),
131
138
  nextPage: () => setPageIndex((p) => Math.min(pageCount - 1, p + 1)),
132
- getCanPreviousPage: () => clampedPageIndex > 0,
133
- getCanNextPage: () => clampedPageIndex < pageCount - 1,
134
- }), [resolved, makeColumn, makeRow, pageRows, sorted, selected, pageCount, clampedPageIndex]);
135
- const visible = resolved.filter((c) => hidden[c.id] !== true);
136
- const hideable = resolved.filter((c) => c.def.enableHiding !== false);
137
- const hasSelectColumn = resolved.some((c) => c.id === 'select');
138
- const selectedCount = instance.getFilteredSelectedRowModel().rows.length;
139
- const totalCount = instance.getFilteredRowModel().rows.length;
140
- const align = (a) => a === 'right' ? 'right' : a === 'center' ? 'center' : 'left';
141
- return (_jsxs(YStack, { gap: "$3", width: "100%", ...slot('data-table'), children: [(filterColumnId || hideable.length > 0) && (_jsxs(XStack, { items: "center", justify: "space-between", gap: "$3", ...slot('data-table-toolbar'), children: [filterColumnId ? (_jsx(Input, { placeholder: filterPlaceholder, value: filterValue, onChangeText: setFilterValue, maxW: 360, flex: 1, ...slot('data-table-filter') })) : (_jsx(XStack, { flex: 1 })), hideable.length > 0 && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", size: "sm", ...slot('data-table-view-options'), children: ["Columns ", _jsx(ChevronDown, { size: 14 })] }) }), _jsx(DropdownMenuContent, { align: "end", children: hideable.map((col) => {
142
- const api = makeColumn(col);
143
- return (_jsx(DropdownMenuCheckboxItem, { checked: api.getIsVisible(), onCheckedChange: (value) => api.toggleVisibility(!!value), children: col.id }, col.id));
144
- }) })] }))] })), _jsx(YStack, { borderWidth: 1, borderColor: "$borderColor", rounded: "$4", overflow: "hidden", children: _jsxs(Grid, { columns: visible.length || 1, gap: 0, role: "table", ...slot('data-table-grid'), children: [_jsx("div", { role: "row", style: { display: 'contents' }, ...slot('data-table-header-row'), children: visible.map((col) => {
145
- const api = makeColumn(col);
146
- const isSelectCol = col.id === 'select' && !col.def.header;
147
- const content = isSelectCol ? (_jsx(Checkbox, { "aria-label": "Select all", checked: instance.getIsAllPageRowsSelected() ? true : instance.getIsSomePageRowsSelected() ? 'indeterminate' : false, onCheckedChange: (value) => instance.toggleAllPageRowsSelected(!!value) })) : typeof col.def.header === 'function' ? (col.def.header({ column: api, table: instance })) : col.def.header !== undefined ? (col.def.header) : (_jsx(SizableText, { fontWeight: "600", color: "$quiet", children: col.id }));
148
- return (_jsx(Cell, { role: "columnheader", "aria-sort": api.getIsSorted() === 'asc' ? 'ascending' : api.getIsSorted() === 'desc' ? 'descending' : 'none', style: {
149
- padding: 12,
150
- borderBottom: '1px solid var(--edge)',
151
- textAlign: align(col.def.align),
152
- }, ...slot('data-table-head'), children: content }, col.id));
153
- }) }), pageRows.length ? (pageRows.map(({ original, index }, position) => {
154
- const row = makeRow(index, original);
155
- const isSelected = row.getIsSelected();
156
- const isLastRow = position === pageRows.length - 1;
157
- return (_jsx("div", { role: "row", "data-state": isSelected ? 'selected' : undefined, style: { display: 'contents' }, ...slot('data-table-row'), children: visible.map((col) => {
158
- const isSelectCol = col.id === 'select' && !col.def.cell;
159
- const content = isSelectCol ? (_jsx(Checkbox, { "aria-label": "Select row", checked: isSelected, onCheckedChange: (value) => row.toggleSelected(!!value) })) : col.def.cell ? (col.def.cell({ row, table: instance })) : (_jsx(SizableText, { children: String(row.getValue(col.id) ?? '') }));
160
- return (_jsx(Cell, { role: "cell", style: {
161
- padding: 12,
162
- borderBottom: isLastRow ? undefined : '1px solid var(--edge)',
163
- textAlign: align(col.def.align),
164
- background: isSelected ? 'var(--hover)' : undefined,
165
- }, ...slot('data-table-cell'), children: content }, col.id));
166
- }) }, row.id));
167
- })) : (_jsx("div", { role: "row", style: { display: 'contents' }, children: _jsx(Cell, { col: visible.length || 1, role: "cell", style: { padding: 24, textAlign: 'center' }, ...slot('data-table-empty'), children: _jsx(SizableText, { color: "$quiet", children: emptyMessage }) }) }))] }) }), (hasSelectColumn || paginate) && (_jsxs(XStack, { items: "center", justify: "space-between", gap: "$3", ...slot('data-table-pagination'), children: [_jsx(SizableText, { fontSize: "$1", color: "$quiet", children: hasSelectColumn ? `${selectedCount} of ${totalCount} row(s) selected.` : '' }), paginate && (_jsxs(XStack, { gap: "$2", children: [_jsx(Button, { variant: "outline", size: "sm", disabled: !instance.getCanPreviousPage(), onPress: instance.previousPage, children: "Previous" }), _jsx(Button, { variant: "outline", size: "sm", disabled: !instance.getCanNextPage(), onPress: instance.nextPage, children: "Next" })] }))] }))] }));
168
- }
169
- /** A sortable header cell: a ghost button whose icon shows the active direction. */
170
- export function DataTableColumnHeader({ column, title }) {
171
- const direction = column.getIsSorted();
172
- const Icon = direction === 'asc' ? ChevronUp : direction === 'desc' ? ChevronDown : ChevronsUpDown;
173
- return (_jsxs(Button, { variant: "ghost", size: "sm", onPress: () => column.toggleSorting(direction === 'asc'), ...slot('data-table-column-header'), children: [title, _jsx(Icon, { size: 14 })] }));
139
+ getPageCount: () => pageCount,
140
+ };
141
+ const selectedCount = table.getFilteredSelectedRowModel().rows.length;
142
+ const filteredCount = table.getFilteredRowModel().rows.length;
143
+ const trackList = visibleColumns.map((c) => track(c.width)).join(' ');
144
+ const headerContent = (column) => {
145
+ if (column.id === 'select')
146
+ return (_jsx(Checkbox, { "aria-label": "Select all", checked: allPageSelected ? true : somePageSelected ? 'indeterminate' : false, onCheckedChange: (value) => toggleAllPage(!!value) }));
147
+ if (typeof column.header === 'function')
148
+ return column.header({ column: columnApi(column) });
149
+ return ink(column.header ?? column.id, SizableText, { size: '$2', fontWeight: '600', color: '$quiet' });
150
+ };
151
+ const cellContent = (column, entry) => {
152
+ if (column.id === 'select')
153
+ return (_jsx(Checkbox, { "aria-label": "Select row", checked: selected[entry.id] === true, onCheckedChange: (value) => setSelectedFor(entry.id, !!value) }));
154
+ if (column.cell)
155
+ return column.cell({ row: rowApi(entry) });
156
+ return ink(String(cellValue(column, entry.row) ?? ''), SizableText, { size: '$2' });
157
+ };
158
+ const ariaSort = (column) => {
159
+ if (sorting?.id !== column.id)
160
+ return 'none';
161
+ return sorting.desc ? 'descending' : 'ascending';
162
+ };
163
+ return (_jsxs(YStack, { ...slot('data-table'), width: "100%", gap: "$3", children: [(filterColumnId || hideable.length > 0) && (_jsxs(XStack, { ...slot('data-table-toolbar'), items: "center", gap: "$2", children: [filterColumnId && (_jsx(Input, { ...slot('data-table-filter'), placeholder: filterPlaceholder, value: filter, onChangeText: setFilter, maxW: 360, width: "100%" })), hideable.length > 0 && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { ...slot('data-table-view-options'), variant: "outline", size: "sm", ml: "auto", children: ["Columns", _jsx(ChevronDown, { size: 14 })] }) }), _jsx(DropdownMenuContent, { align: "end", children: hideable.map((column) => (_jsx(DropdownMenuCheckboxItem, { checked: hidden[column.id] !== true, onCheckedChange: (value) => setHidden((h) => ({ ...h, [column.id]: !value })), children: column.id }, column.id))) })] }))] })), _jsxs(YStack, { ...slot('data-table-grid'), role: "table", rounded: "$3", borderWidth: 1, borderColor: "$borderColor", overflow: "hidden", children: [_jsx(YStack, { borderBottomWidth: 1, borderBottomColor: "$borderColor", bg: "$panel", children: _jsx(Grid, { role: "row", ...slot('data-table-header-row'), columns: trackList, gap: 0, children: visibleColumns.map((column) => (_jsx(Cell, { role: "columnheader", "aria-sort": ariaSort(column), ...slot('data-table-head'), style: { display: 'flex', alignItems: 'center', padding: 12, justifyContent: justify(column.align) }, children: headerContent(column) }, column.id))) }) }), paged.length === 0 ? (_jsx(YStack, { ...slot('data-table-empty'), height: 96, items: "center", justify: "center", children: _jsx(SizableText, { size: "$2", color: "$quiet", children: emptyMessage }) })) : (paged.map((entry) => {
164
+ const isSelected = selected[entry.id] === true;
165
+ return (_jsx(YStack, { "data-state": isSelected ? 'selected' : undefined, borderBottomWidth: 1, borderBottomColor: "$borderColor", bg: isSelected ? '$hover' : undefined, children: _jsx(Grid, { role: "row", ...slot('data-table-row'), "data-state": isSelected ? 'selected' : undefined, columns: trackList, gap: 0, children: visibleColumns.map((column) => (_jsx(Cell, { role: "cell", ...slot('data-table-cell'), style: { display: 'flex', alignItems: 'center', padding: 12, justifyContent: justify(column.align) }, children: cellContent(column, entry) }, column.id))) }) }, entry.id));
166
+ }))] }), _jsxs(XStack, { ...slot('data-table-footer'), items: "center", justify: "space-between", children: [_jsxs(SizableText, { size: "$2", color: "$quiet", children: [selectedCount, " of ", filteredCount, " row(s) selected."] }), pageSize > 0 && (_jsxs(XStack, { ...slot('data-table-pagination'), gap: "$2", children: [_jsx(Button, { variant: "outline", size: "sm", disabled: !table.getCanPreviousPage(), "aria-disabled": !table.getCanPreviousPage(), onClick: () => table.previousPage(), children: "Previous" }), _jsx(Button, { variant: "outline", size: "sm", disabled: !table.getCanNextPage(), "aria-disabled": !table.getCanNextPage(), onClick: () => table.nextPage(), children: "Next" })] }))] })] }));
174
167
  }
168
+ export { DataTable, DataTableColumnHeader };
175
169
  //# sourceMappingURL=data-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../src/backends/gui/data-table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../src/backends/gui/data-table.tsx"],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ function DockItem({ className, children, onClick, tooltip, magnification: itemMa
84
84
  setSize(BASE_SIZE);
85
85
  setHovered(false);
86
86
  };
87
- return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('dock-item-wrap'), position: "relative", items: "center", children: [tooltip && hovered ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('dock-tooltip'), position: "absolute", b: "100%", mb: "$2", self: "center", px: "$2", py: "$1", rounded: "$3", bg: "$ink", style: { whiteSpace: 'nowrap' }, children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$sunken", children: tooltip }) })) : null, (0, jsx_runtime_1.jsx)(ItemFrame, { ...(0, slot_1.slot)('dock-item'), render: "button", onClick: onClick, onPointerEnter: () => setHovered(true), onPointerMove: handleMove, onPointerLeave: handleLeave, ...(tooltip ? (0, slot_1.tip)(tooltip) : null), ...(0, gesture_1.touch)(BASE_SIZE, 44), style: { width: size, height: size, transition: 'width 150ms ease-out, height 150ms ease-out' }, ...(0, sx_1.sx)(className), ...props, children: (0, ink_1.ink)(children) })] }));
87
+ return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('dock-item-wrap'), position: "relative", items: "center", children: [tooltip && hovered ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('dock-tooltip'), position: "absolute", b: "100%", mb: "$2", self: "center", px: "$2", py: "$1", rounded: "$3", bg: "$ink", style: { whiteSpace: 'nowrap' }, children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$sunken", children: tooltip }) })) : null, (0, jsx_runtime_1.jsx)(ItemFrame, { ...(0, slot_1.slot)('dock-item'), render: "button", ...{ type: 'button' }, onClick: onClick, onPointerEnter: () => setHovered(true), onPointerMove: handleMove, onPointerLeave: handleLeave, ...(tooltip ? (0, slot_1.tip)(tooltip) : null), ...(0, gesture_1.touch)(BASE_SIZE, 44), style: { width: size, height: size, transition: 'width 150ms ease-out, height 150ms ease-out' }, ...(0, sx_1.sx)(className), ...props, children: (0, ink_1.ink)(children) })] }));
88
88
  }
89
89
  const SeparatorFrame = (0, gui_1.styled)(gui_1.YStack, {
90
90
  name: 'DockSeparator',
@@ -1 +1 @@
1
- {"version":3,"file":"dock.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/dock.tsx"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,cAAc,EAEnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAMd,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAatD,QAAA,MAAM,KAAK;;;;8CAyBT,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,QAAmB,EACnB,aAAkB,EAClB,QAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,SAAS,+BAcX;AAED,QAAA,MAAM,SAAS;;;8CAQb,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,GAAG;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,YAAY,EACtB,GAAG,KAAK,EACT,EAAE,aAAa,+BA2Df;AAED,QAAA,MAAM,cAAc;;;8CAIlB,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,cAAc,CAAC,CAAA;AAEtE,8EAA8E;AAC9E,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAa/C;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"dock.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/dock.tsx"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,cAAc,EAEnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAMd,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;AAatD,QAAA,MAAM,KAAK;;;;8CAyBT,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC,GAAG;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,QAAmB,EACnB,aAAkB,EAClB,QAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,SAAS,+BAcX;AAED,QAAA,MAAM,SAAS;;;8CAQb,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,GAAG;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,YAAY,EACtB,GAAG,KAAK,EACT,EAAE,aAAa,+BA4Df;AAED,QAAA,MAAM,cAAc;;;8CAIlB,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,cAAc,CAAC,CAAA;AAEtE,8EAA8E;AAC9E,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAa/C;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA"}
@@ -79,7 +79,7 @@ function DockItem({ className, children, onClick, tooltip, magnification: itemMa
79
79
  setSize(BASE_SIZE);
80
80
  setHovered(false);
81
81
  };
82
- return (_jsxs(YStack, { ...slot('dock-item-wrap'), position: "relative", items: "center", children: [tooltip && hovered ? (_jsx(XStack, { ...slot('dock-tooltip'), position: "absolute", b: "100%", mb: "$2", self: "center", px: "$2", py: "$1", rounded: "$3", bg: "$ink", style: { whiteSpace: 'nowrap' }, children: _jsx(SizableText, { size: "$1", color: "$sunken", children: tooltip }) })) : null, _jsx(ItemFrame, { ...slot('dock-item'), render: "button", onClick: onClick, onPointerEnter: () => setHovered(true), onPointerMove: handleMove, onPointerLeave: handleLeave, ...(tooltip ? tip(tooltip) : null), ...touch(BASE_SIZE, 44), style: { width: size, height: size, transition: 'width 150ms ease-out, height 150ms ease-out' }, ...sx(className), ...props, children: ink(children) })] }));
82
+ return (_jsxs(YStack, { ...slot('dock-item-wrap'), position: "relative", items: "center", children: [tooltip && hovered ? (_jsx(XStack, { ...slot('dock-tooltip'), position: "absolute", b: "100%", mb: "$2", self: "center", px: "$2", py: "$1", rounded: "$3", bg: "$ink", style: { whiteSpace: 'nowrap' }, children: _jsx(SizableText, { size: "$1", color: "$sunken", children: tooltip }) })) : null, _jsx(ItemFrame, { ...slot('dock-item'), render: "button", ...{ type: 'button' }, onClick: onClick, onPointerEnter: () => setHovered(true), onPointerMove: handleMove, onPointerLeave: handleLeave, ...(tooltip ? tip(tooltip) : null), ...touch(BASE_SIZE, 44), style: { width: size, height: size, transition: 'width 150ms ease-out, height 150ms ease-out' }, ...sx(className), ...props, children: ink(children) })] }));
83
83
  }
84
84
  const SeparatorFrame = styled(YStack, {
85
85
  name: 'DockSeparator',
@@ -1 +1 @@
1
- {"version":3,"file":"dock.js","sourceRoot":"","sources":["../../../src/backends/gui/dock.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dock.js","sourceRoot":"","sources":["../../../src/backends/gui/dock.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,GAIT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAIjC,2EAA2E;AAC3E,MAAM,SAAS,GAAG,EAAE,CAAA;AAIpB,MAAM,iBAAiB,GAAG,eAAe,CAAC,aAAa,CAAa;IAClE,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE;IAC3B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,MAAM;IACX,CAAC,EAAE,IAAI;IACP,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,cAAc;IAC3B,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,EAAE;IAChB,aAAa,EAAE,IAAI;IAEnB,QAAQ,EAAE;QACR,qEAAqE;QACrE,sEAAsE;QACtE,8CAA8C;QAC9C,IAAI,EAAE;YACJ,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;YACnD,IAAI,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;YACpD,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE;SACxD;KACO;IAEV,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CACpC,CAAC,CAAA;AAYF,SAAS,IAAI,CAAC,EACZ,SAAS,EACT,QAAQ,GAAG,QAAQ,EACnB,aAAa,GAAG,EAAE,EAClB,QAAQ,GAAG,GAAG,EACd,QAAQ,EACR,GAAG,KAAK,EACE;IACV,OAAO,CACL,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACtE,KAAC,KAAK,OACA,IAAI,CAAC,MAAM,CAAC,mBACD,QAAQ,EACvB,IAAI,EAAE,QAAQ,KACV,EAAE,CAAC,SAAS,CAAC,KACZ,KAAgB,YAEpB,QAAQ,GACH,GACmB,CAC9B,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE;IAC/B,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,IAAI;IACb,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;CAC5B,CAAC,CAAA;AAaF,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,YAAY,EACtB,GAAG,KAAK,EACM;IACd,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,GACtE,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC/B,MAAM,aAAa,GAAG,iBAAiB,IAAI,oBAAoB,CAAA;IAC/D,MAAM,QAAQ,GAAG,YAAY,IAAI,eAAe,CAAA;IAEhD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,UAAU,GAAG,CAAC,CAAoC,EAAE,EAAE;QAC1D,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAA;QACpD,IAAI,QAAQ,IAAI,CAAC;YAAE,OAAM;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;QAChE,OAAO,CAAC,SAAS,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAA;IAC9D,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,OAAO,CAAC,SAAS,CAAC,CAAA;QAClB,UAAU,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,CACL,MAAC,MAAM,OAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,QAAQ,aACnE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CACpB,KAAC,MAAM,OACD,IAAI,CAAC,cAAc,CAAC,EACxB,QAAQ,EAAC,UAAU,EACnB,CAAC,EAAC,MAAM,EACR,EAAE,EAAC,IAAI,EACP,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,OAAO,EAAC,IAAI,EACZ,EAAE,EAAC,MAAM,EACT,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAE/B,KAAC,WAAW,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,YACnC,OAAO,GACI,GACP,CACV,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,SAAS,OACJ,IAAI,CAAC,WAAW,CAAC,EACrB,MAAM,EAAC,QAAQ,KACV,EAAE,IAAI,EAAE,QAAQ,EAAa,EAClC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EACtC,aAAa,EAAE,UAAU,EACzB,cAAc,EAAE,WAAW,KACvB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAC/B,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,EACxB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,6CAA6C,EAAE,KAC3F,EAAE,CAAC,SAAS,CAAC,KACZ,KAAgB,YAEpB,GAAG,CAAC,QAAQ,CAAC,GACJ,IACL,CACV,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE;IACpC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,cAAc;CACnB,CAAC,CAAA;AAIF,8EAA8E;AAC9E,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,QAAQ,KAAK,QAAQ,CAAA;IACtC,OAAO,CACL,KAAC,cAAc,OACT,IAAI,CAAC,gBAAgB,CAAC,EAC1B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EACzB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACvB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KACnB,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA"}
@@ -37,44 +37,48 @@ Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.Editor = Editor;
38
38
  const jsx_runtime_1 = require("react/jsx-runtime");
39
39
  /**
40
- * Editor — a rich-text surface: a toolbar of bold/italic/bulleted-list/numbered-list
41
- * toggles above a contentEditable region, reporting its HTML back on every edit.
40
+ * Editor — a minimal rich-text field: a toolbar of formatting buttons above a
41
+ * `contentEditable` surface.
42
42
  *
43
- * Formatting a live selection is a browser primitive with no cross-platform
44
- * equivalent in gui, so this wraps the two platform primitives directly —
45
- * `contentEditable` for the surface, `document.execCommand` for the commands —
46
- * inside a gui frame for layout and theming. It is web-only for that reason;
47
- * native has no selection to format.
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.
48
50
  */
49
51
  const gui_1 = require("@hanzo/gui");
50
52
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
51
53
  const React = __importStar(require("react"));
52
54
  const button_1 = require("./button.cjs");
53
55
  const slot_1 = require("./slot.cjs");
54
- function Editor({ value, onChange, placeholder = 'Start typing...', readOnly = false, ...props }) {
55
- const surface = React.useRef(null);
56
- const [empty, setEmpty] = React.useState(!value);
57
- // A controlled value is written into the surface only when it changes out
58
- // from under the caller (e.g. a reset button) — writing it on every render
59
- // would fight the surface's own DOM as the user types and jump the caret.
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.
60
71
  React.useEffect(() => {
61
- const el = surface.current;
62
- if (el && value !== undefined && value !== el.innerHTML)
63
- el.innerHTML = value;
72
+ if (field.current && value !== undefined && value !== shown.current) {
73
+ field.current.innerHTML = value;
74
+ }
75
+ shown.current = value;
64
76
  }, [value]);
65
- const report = React.useCallback(() => {
66
- const el = surface.current;
67
- if (!el)
68
- return;
69
- setEmpty(el.textContent === '');
70
- onChange?.(el.innerHTML);
71
- }, [onChange]);
72
- const command = (name) => () => {
73
- document.execCommand(name);
74
- surface.current?.focus();
75
- report();
76
- };
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'), 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: "icon-sm", type: "button", onClick: command('bold'), "aria-label": "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: "icon-sm", type: "button", onClick: command('italic'), "aria-label": "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: "icon-sm", type: "button", onClick: command('insertUnorderedList'), "aria-label": "Bulleted list", 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: "icon-sm", type: "button", onClick: command('insertOrderedList'), "aria-label": "Numbered list", children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ListOrdered, { size: 16 }) })] }), (0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('editor-surface'), ref: surface,
78
- // @ts-expect-error — contentEditable is a DOM attribute gui does not type; it forwards unknown props on web and drops them on native
79
- contentEditable: !readOnly, suppressContentEditableWarning: true, "data-placeholder": placeholder, "data-empty": empty || undefined, minH: 200, borderWidth: 1, borderColor: "$borderColor", rounded: "$3", p: "$4", onInput: report, dangerouslySetInnerHTML: value === undefined ? { __html: '' } : undefined, style: { outline: 'none' } })] }));
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
+ } })] }));
80
84
  }