tuiuiu.js 0.1.1 → 0.1.4-next.64ff654

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 (402) hide show
  1. package/README.md +67 -36
  2. package/dist/atoms/button.d.ts.map +1 -1
  3. package/dist/atoms/button.js +17 -9
  4. package/dist/atoms/button.js.map +1 -1
  5. package/dist/atoms/text-input.d.ts +2 -0
  6. package/dist/atoms/text-input.d.ts.map +1 -1
  7. package/dist/atoms/text-input.js +13 -7
  8. package/dist/atoms/text-input.js.map +1 -1
  9. package/dist/atoms/tooltip.d.ts.map +1 -1
  10. package/dist/atoms/tooltip.js +2 -1
  11. package/dist/atoms/tooltip.js.map +1 -1
  12. package/dist/cli/commands/help.d.ts +5 -0
  13. package/dist/cli/commands/help.d.ts.map +1 -0
  14. package/dist/cli/commands/help.js +31 -0
  15. package/dist/cli/commands/help.js.map +1 -0
  16. package/dist/cli/commands/mcp.d.ts +11 -0
  17. package/dist/cli/commands/mcp.d.ts.map +1 -0
  18. package/dist/cli/commands/mcp.js +21 -0
  19. package/dist/cli/commands/mcp.js.map +1 -0
  20. package/dist/cli/commands/storybook.d.ts +5 -0
  21. package/dist/cli/commands/storybook.d.ts.map +1 -0
  22. package/dist/cli/commands/storybook.js +9 -0
  23. package/dist/cli/commands/storybook.js.map +1 -0
  24. package/dist/cli/index.d.ts +14 -0
  25. package/dist/cli/index.d.ts.map +1 -0
  26. package/dist/cli/index.js +50 -0
  27. package/dist/cli/index.js.map +1 -0
  28. package/dist/core/error-boundary.d.ts.map +1 -1
  29. package/dist/core/error-boundary.js +2 -1
  30. package/dist/core/error-boundary.js.map +1 -1
  31. package/dist/core/hotkeys.d.ts +62 -0
  32. package/dist/core/hotkeys.d.ts.map +1 -0
  33. package/dist/core/hotkeys.js +0 -0
  34. package/dist/core/hotkeys.js.map +1 -0
  35. package/dist/core/index.d.ts +3 -1
  36. package/dist/core/index.d.ts.map +1 -1
  37. package/dist/core/index.js +9 -1
  38. package/dist/core/index.js.map +1 -1
  39. package/dist/core/screen.d.ts.map +1 -1
  40. package/dist/core/screen.js +2 -0
  41. package/dist/core/screen.js.map +1 -1
  42. package/dist/core/theme.d.ts +79 -0
  43. package/dist/core/theme.d.ts.map +1 -1
  44. package/dist/core/theme.js +358 -0
  45. package/dist/core/theme.js.map +1 -1
  46. package/dist/design-system/data-display/index.d.ts +9 -6
  47. package/dist/design-system/data-display/index.d.ts.map +1 -1
  48. package/dist/design-system/data-display/index.js +16 -7
  49. package/dist/design-system/data-display/index.js.map +1 -1
  50. package/dist/design-system/feedback/badge.d.ts +21 -4
  51. package/dist/design-system/feedback/badge.d.ts.map +1 -1
  52. package/dist/design-system/feedback/badge.js +15 -2
  53. package/dist/design-system/feedback/badge.js.map +1 -1
  54. package/dist/design-system/forms/index.d.ts +11 -8
  55. package/dist/design-system/forms/index.d.ts.map +1 -1
  56. package/dist/design-system/forms/index.js +19 -10
  57. package/dist/design-system/forms/index.js.map +1 -1
  58. package/dist/design-system/layout/index.d.ts +7 -4
  59. package/dist/design-system/layout/index.d.ts.map +1 -1
  60. package/dist/design-system/layout/index.js +18 -6
  61. package/dist/design-system/layout/index.js.map +1 -1
  62. package/dist/design-system/media/picture.d.ts.map +1 -1
  63. package/dist/design-system/media/picture.js +2 -1
  64. package/dist/design-system/media/picture.js.map +1 -1
  65. package/dist/design-system/overlays/index.d.ts +6 -3
  66. package/dist/design-system/overlays/index.d.ts.map +1 -1
  67. package/dist/design-system/overlays/index.js +9 -3
  68. package/dist/design-system/overlays/index.js.map +1 -1
  69. package/dist/design-system/visual/splash-screen.d.ts.map +1 -1
  70. package/dist/design-system/visual/splash-screen.js +38 -18
  71. package/dist/design-system/visual/splash-screen.js.map +1 -1
  72. package/dist/hooks/index.d.ts +2 -0
  73. package/dist/hooks/index.d.ts.map +1 -1
  74. package/dist/hooks/index.js +2 -0
  75. package/dist/hooks/index.js.map +1 -1
  76. package/dist/hooks/use-hotkeys.d.ts +153 -0
  77. package/dist/hooks/use-hotkeys.d.ts.map +1 -0
  78. package/dist/hooks/use-hotkeys.js +379 -0
  79. package/dist/hooks/use-hotkeys.js.map +1 -0
  80. package/dist/hooks/use-input.d.ts +2 -10
  81. package/dist/hooks/use-input.d.ts.map +1 -1
  82. package/dist/hooks/use-input.js +2 -287
  83. package/dist/hooks/use-input.js.map +1 -1
  84. package/dist/hooks/use-mouse.d.ts +5 -0
  85. package/dist/hooks/use-mouse.d.ts.map +1 -1
  86. package/dist/hooks/use-mouse.js +29 -11
  87. package/dist/hooks/use-mouse.js.map +1 -1
  88. package/dist/index.d.ts +6 -4
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +15 -3
  91. package/dist/index.js.map +1 -1
  92. package/dist/mcp/docs-data.d.ts +31 -0
  93. package/dist/mcp/docs-data.d.ts.map +1 -0
  94. package/dist/mcp/docs-data.js +637 -0
  95. package/dist/mcp/docs-data.js.map +1 -0
  96. package/dist/mcp/index.d.ts +14 -0
  97. package/dist/mcp/index.d.ts.map +1 -0
  98. package/dist/mcp/index.js +12 -0
  99. package/dist/mcp/index.js.map +1 -0
  100. package/dist/mcp/server.d.ts +31 -0
  101. package/dist/mcp/server.d.ts.map +1 -0
  102. package/dist/mcp/server.js +597 -0
  103. package/dist/mcp/server.js.map +1 -0
  104. package/dist/mcp/types.d.ts +114 -0
  105. package/dist/mcp/types.d.ts.map +1 -0
  106. package/dist/mcp/types.js +16 -0
  107. package/dist/mcp/types.js.map +1 -0
  108. package/dist/molecules/autocomplete.d.ts.map +1 -1
  109. package/dist/molecules/autocomplete.js +2 -1
  110. package/dist/molecules/autocomplete.js.map +1 -1
  111. package/dist/molecules/calendar.d.ts.map +1 -1
  112. package/dist/molecules/calendar.js +5 -3
  113. package/dist/molecules/calendar.js.map +1 -1
  114. package/dist/molecules/data-viz/annotations.d.ts +75 -0
  115. package/dist/molecules/data-viz/annotations.d.ts.map +1 -0
  116. package/dist/molecules/data-viz/annotations.js +40 -0
  117. package/dist/molecules/data-viz/annotations.js.map +1 -0
  118. package/dist/molecules/data-viz/gantt-chart.d.ts +66 -0
  119. package/dist/molecules/data-viz/gantt-chart.d.ts.map +1 -0
  120. package/dist/molecules/data-viz/gantt-chart.js +134 -0
  121. package/dist/molecules/data-viz/gantt-chart.js.map +1 -0
  122. package/dist/molecules/data-viz/gauge.d.ts +2 -2
  123. package/dist/molecules/data-viz/gauge.d.ts.map +1 -1
  124. package/dist/molecules/data-viz/gauge.js +24 -8
  125. package/dist/molecules/data-viz/gauge.js.map +1 -1
  126. package/dist/molecules/data-viz/heatmap.d.ts +8 -2
  127. package/dist/molecules/data-viz/heatmap.d.ts.map +1 -1
  128. package/dist/molecules/data-viz/heatmap.js +41 -9
  129. package/dist/molecules/data-viz/heatmap.js.map +1 -1
  130. package/dist/molecules/data-viz/hooks.d.ts +264 -0
  131. package/dist/molecules/data-viz/hooks.d.ts.map +1 -0
  132. package/dist/molecules/data-viz/hooks.js +373 -0
  133. package/dist/molecules/data-viz/hooks.js.map +1 -0
  134. package/dist/molecules/data-viz/index.d.ts +14 -0
  135. package/dist/molecules/data-viz/index.d.ts.map +1 -1
  136. package/dist/molecules/data-viz/index.js +14 -0
  137. package/dist/molecules/data-viz/index.js.map +1 -1
  138. package/dist/molecules/data-viz/legend.d.ts +82 -0
  139. package/dist/molecules/data-viz/legend.d.ts.map +1 -0
  140. package/dist/molecules/data-viz/legend.js +146 -0
  141. package/dist/molecules/data-viz/legend.js.map +1 -0
  142. package/dist/molecules/data-viz/line-chart.d.ts.map +1 -1
  143. package/dist/molecules/data-viz/line-chart.js +48 -12
  144. package/dist/molecules/data-viz/line-chart.js.map +1 -1
  145. package/dist/molecules/data-viz/radar-chart.d.ts +61 -0
  146. package/dist/molecules/data-viz/radar-chart.d.ts.map +1 -0
  147. package/dist/molecules/data-viz/radar-chart.js +86 -0
  148. package/dist/molecules/data-viz/radar-chart.js.map +1 -0
  149. package/dist/molecules/data-viz/scatter-plot.d.ts +97 -0
  150. package/dist/molecules/data-viz/scatter-plot.d.ts.map +1 -0
  151. package/dist/molecules/data-viz/scatter-plot.js +205 -0
  152. package/dist/molecules/data-viz/scatter-plot.js.map +1 -0
  153. package/dist/molecules/data-viz/time-heatmap.d.ts +48 -0
  154. package/dist/molecules/data-viz/time-heatmap.d.ts.map +1 -0
  155. package/dist/molecules/data-viz/time-heatmap.js +145 -0
  156. package/dist/molecules/data-viz/time-heatmap.js.map +1 -0
  157. package/dist/molecules/select.d.ts +2 -0
  158. package/dist/molecules/select.d.ts.map +1 -1
  159. package/dist/molecules/select.js +4 -3
  160. package/dist/molecules/select.js.map +1 -1
  161. package/dist/molecules/tabs.d.ts.map +1 -1
  162. package/dist/molecules/tabs.js +14 -2
  163. package/dist/molecules/tabs.js.map +1 -1
  164. package/dist/organisms/command-palette.d.ts.map +1 -1
  165. package/dist/organisms/command-palette.js +2 -1
  166. package/dist/organisms/command-palette.js.map +1 -1
  167. package/dist/storybook/app.d.ts.map +1 -1
  168. package/dist/storybook/app.js +53 -44
  169. package/dist/storybook/app.js.map +1 -1
  170. package/dist/storybook/components/compare-view.d.ts.map +1 -1
  171. package/dist/storybook/components/compare-view.js +19 -18
  172. package/dist/storybook/components/compare-view.js.map +1 -1
  173. package/dist/storybook/components/log-viewer.d.ts.map +1 -1
  174. package/dist/storybook/components/log-viewer.js +9 -8
  175. package/dist/storybook/components/log-viewer.js.map +1 -1
  176. package/dist/storybook/components/preview.d.ts.map +1 -1
  177. package/dist/storybook/components/preview.js +34 -33
  178. package/dist/storybook/components/preview.js.map +1 -1
  179. package/dist/storybook/components/sidebar.d.ts.map +1 -1
  180. package/dist/storybook/components/sidebar.js +21 -20
  181. package/dist/storybook/components/sidebar.js.map +1 -1
  182. package/dist/storybook/stories/apps/index.d.ts.map +1 -1
  183. package/dist/storybook/stories/apps/index.js +306 -209
  184. package/dist/storybook/stories/apps/index.js.map +1 -1
  185. package/dist/storybook/stories/atoms/index.d.ts.map +1 -1
  186. package/dist/storybook/stories/atoms/index.js.map +1 -1
  187. package/dist/storybook/stories/molecules/index.d.ts +25 -0
  188. package/dist/storybook/stories/molecules/index.d.ts.map +1 -1
  189. package/dist/storybook/stories/molecules/index.js +402 -20
  190. package/dist/storybook/stories/molecules/index.js.map +1 -1
  191. package/dist/storybook/stories/organisms/index.d.ts.map +1 -1
  192. package/dist/storybook/stories/organisms/index.js +1 -1
  193. package/dist/storybook/stories/organisms/index.js.map +1 -1
  194. package/dist/utils/index.d.ts +2 -0
  195. package/dist/utils/index.d.ts.map +1 -1
  196. package/dist/utils/index.js +2 -0
  197. package/dist/utils/index.js.map +1 -1
  198. package/dist/utils/system-data.d.ts +73 -0
  199. package/dist/utils/system-data.d.ts.map +1 -0
  200. package/dist/utils/system-data.js +367 -0
  201. package/dist/utils/system-data.js.map +1 -0
  202. package/dist/version.d.ts +43 -0
  203. package/dist/version.d.ts.map +1 -0
  204. package/dist/version.js +82 -0
  205. package/dist/version.js.map +1 -0
  206. package/package.json +22 -22
  207. package/dist/components/canvas.d.ts +0 -322
  208. package/dist/components/canvas.d.ts.map +0 -1
  209. package/dist/components/canvas.js +0 -833
  210. package/dist/components/canvas.js.map +0 -1
  211. package/dist/components/code-block.d.ts +0 -75
  212. package/dist/components/code-block.d.ts.map +0 -1
  213. package/dist/components/code-block.js +0 -322
  214. package/dist/components/code-block.js.map +0 -1
  215. package/dist/components/components.d.ts +0 -122
  216. package/dist/components/components.d.ts.map +0 -1
  217. package/dist/components/components.js +0 -151
  218. package/dist/components/components.js.map +0 -1
  219. package/dist/components/data-viz/bar-chart.d.ts +0 -167
  220. package/dist/components/data-viz/bar-chart.d.ts.map +0 -1
  221. package/dist/components/data-viz/bar-chart.js +0 -375
  222. package/dist/components/data-viz/bar-chart.js.map +0 -1
  223. package/dist/components/data-viz/gauge.d.ts +0 -163
  224. package/dist/components/data-viz/gauge.d.ts.map +0 -1
  225. package/dist/components/data-viz/gauge.js +0 -451
  226. package/dist/components/data-viz/gauge.js.map +0 -1
  227. package/dist/components/data-viz/heatmap.d.ts +0 -154
  228. package/dist/components/data-viz/heatmap.d.ts.map +0 -1
  229. package/dist/components/data-viz/heatmap.js +0 -458
  230. package/dist/components/data-viz/heatmap.js.map +0 -1
  231. package/dist/components/data-viz/index.d.ts +0 -16
  232. package/dist/components/data-viz/index.d.ts.map +0 -1
  233. package/dist/components/data-viz/index.js +0 -16
  234. package/dist/components/data-viz/index.js.map +0 -1
  235. package/dist/components/data-viz/line-chart.d.ts +0 -157
  236. package/dist/components/data-viz/line-chart.d.ts.map +0 -1
  237. package/dist/components/data-viz/line-chart.js +0 -578
  238. package/dist/components/data-viz/line-chart.js.map +0 -1
  239. package/dist/components/data-viz/sparkline.d.ts +0 -156
  240. package/dist/components/data-viz/sparkline.d.ts.map +0 -1
  241. package/dist/components/data-viz/sparkline.js +0 -325
  242. package/dist/components/data-viz/sparkline.js.map +0 -1
  243. package/dist/components/grid.d.ts +0 -234
  244. package/dist/components/grid.d.ts.map +0 -1
  245. package/dist/components/grid.js +0 -719
  246. package/dist/components/grid.js.map +0 -1
  247. package/dist/components/index.d.ts +0 -33
  248. package/dist/components/index.d.ts.map +0 -1
  249. package/dist/components/index.js +0 -69
  250. package/dist/components/index.js.map +0 -1
  251. package/dist/components/markdown.d.ts +0 -52
  252. package/dist/components/markdown.d.ts.map +0 -1
  253. package/dist/components/markdown.js +0 -341
  254. package/dist/components/markdown.js.map +0 -1
  255. package/dist/components/modal.d.ts +0 -237
  256. package/dist/components/modal.d.ts.map +0 -1
  257. package/dist/components/modal.js +0 -396
  258. package/dist/components/modal.js.map +0 -1
  259. package/dist/components/progress-bar.d.ts +0 -89
  260. package/dist/components/progress-bar.d.ts.map +0 -1
  261. package/dist/components/progress-bar.js +0 -288
  262. package/dist/components/progress-bar.js.map +0 -1
  263. package/dist/components/select.d.ts +0 -114
  264. package/dist/components/select.d.ts.map +0 -1
  265. package/dist/components/select.js +0 -415
  266. package/dist/components/select.js.map +0 -1
  267. package/dist/components/spinner.d.ts +0 -71
  268. package/dist/components/spinner.d.ts.map +0 -1
  269. package/dist/components/spinner.js +0 -300
  270. package/dist/components/spinner.js.map +0 -1
  271. package/dist/components/split-panel.d.ts +0 -175
  272. package/dist/components/split-panel.d.ts.map +0 -1
  273. package/dist/components/split-panel.js +0 -322
  274. package/dist/components/split-panel.js.map +0 -1
  275. package/dist/components/table.d.ts +0 -103
  276. package/dist/components/table.d.ts.map +0 -1
  277. package/dist/components/table.js +0 -359
  278. package/dist/components/table.js.map +0 -1
  279. package/dist/components/text-input.d.ts +0 -79
  280. package/dist/components/text-input.d.ts.map +0 -1
  281. package/dist/components/text-input.js +0 -332
  282. package/dist/components/text-input.js.map +0 -1
  283. package/dist/design-system/data-display/calendar.d.ts +0 -141
  284. package/dist/design-system/data-display/calendar.d.ts.map +0 -1
  285. package/dist/design-system/data-display/calendar.js +0 -524
  286. package/dist/design-system/data-display/calendar.js.map +0 -1
  287. package/dist/design-system/data-display/code-block.d.ts +0 -75
  288. package/dist/design-system/data-display/code-block.d.ts.map +0 -1
  289. package/dist/design-system/data-display/code-block.js +0 -311
  290. package/dist/design-system/data-display/code-block.js.map +0 -1
  291. package/dist/design-system/data-display/data-table.d.ts +0 -173
  292. package/dist/design-system/data-display/data-table.d.ts.map +0 -1
  293. package/dist/design-system/data-display/data-table.js +0 -428
  294. package/dist/design-system/data-display/data-table.js.map +0 -1
  295. package/dist/design-system/data-display/markdown.d.ts +0 -52
  296. package/dist/design-system/data-display/markdown.d.ts.map +0 -1
  297. package/dist/design-system/data-display/markdown.js +0 -341
  298. package/dist/design-system/data-display/markdown.js.map +0 -1
  299. package/dist/design-system/data-display/table.d.ts +0 -103
  300. package/dist/design-system/data-display/table.d.ts.map +0 -1
  301. package/dist/design-system/data-display/table.js +0 -342
  302. package/dist/design-system/data-display/table.js.map +0 -1
  303. package/dist/design-system/data-display/tree.d.ts +0 -166
  304. package/dist/design-system/data-display/tree.d.ts.map +0 -1
  305. package/dist/design-system/data-display/tree.js +0 -428
  306. package/dist/design-system/data-display/tree.js.map +0 -1
  307. package/dist/design-system/forms/autocomplete.d.ts +0 -163
  308. package/dist/design-system/forms/autocomplete.d.ts.map +0 -1
  309. package/dist/design-system/forms/autocomplete.js +0 -455
  310. package/dist/design-system/forms/autocomplete.js.map +0 -1
  311. package/dist/design-system/forms/button.d.ts +0 -106
  312. package/dist/design-system/forms/button.d.ts.map +0 -1
  313. package/dist/design-system/forms/button.js +0 -170
  314. package/dist/design-system/forms/button.js.map +0 -1
  315. package/dist/design-system/forms/multi-select.d.ts +0 -102
  316. package/dist/design-system/forms/multi-select.d.ts.map +0 -1
  317. package/dist/design-system/forms/multi-select.js +0 -309
  318. package/dist/design-system/forms/multi-select.js.map +0 -1
  319. package/dist/design-system/forms/radio-group.d.ts +0 -88
  320. package/dist/design-system/forms/radio-group.d.ts.map +0 -1
  321. package/dist/design-system/forms/radio-group.js +0 -145
  322. package/dist/design-system/forms/radio-group.js.map +0 -1
  323. package/dist/design-system/forms/select.d.ts +0 -116
  324. package/dist/design-system/forms/select.d.ts.map +0 -1
  325. package/dist/design-system/forms/select.js +0 -441
  326. package/dist/design-system/forms/select.js.map +0 -1
  327. package/dist/design-system/forms/slider.d.ts +0 -134
  328. package/dist/design-system/forms/slider.d.ts.map +0 -1
  329. package/dist/design-system/forms/slider.js +0 -314
  330. package/dist/design-system/forms/slider.js.map +0 -1
  331. package/dist/design-system/forms/switch.d.ts +0 -99
  332. package/dist/design-system/forms/switch.d.ts.map +0 -1
  333. package/dist/design-system/forms/switch.js +0 -173
  334. package/dist/design-system/forms/switch.js.map +0 -1
  335. package/dist/design-system/forms/text-input.d.ts +0 -79
  336. package/dist/design-system/forms/text-input.d.ts.map +0 -1
  337. package/dist/design-system/forms/text-input.js +0 -344
  338. package/dist/design-system/forms/text-input.js.map +0 -1
  339. package/dist/design-system/layout/collapsible.d.ts +0 -166
  340. package/dist/design-system/layout/collapsible.d.ts.map +0 -1
  341. package/dist/design-system/layout/collapsible.js +0 -286
  342. package/dist/design-system/layout/collapsible.js.map +0 -1
  343. package/dist/design-system/layout/scroll-area.d.ts +0 -188
  344. package/dist/design-system/layout/scroll-area.d.ts.map +0 -1
  345. package/dist/design-system/layout/scroll-area.js +0 -348
  346. package/dist/design-system/layout/scroll-area.js.map +0 -1
  347. package/dist/design-system/layout/split-panel.d.ts +0 -183
  348. package/dist/design-system/layout/split-panel.d.ts.map +0 -1
  349. package/dist/design-system/layout/split-panel.js +0 -323
  350. package/dist/design-system/layout/split-panel.js.map +0 -1
  351. package/dist/design-system/layout/tabs.d.ts +0 -129
  352. package/dist/design-system/layout/tabs.d.ts.map +0 -1
  353. package/dist/design-system/layout/tabs.js +0 -373
  354. package/dist/design-system/layout/tabs.js.map +0 -1
  355. package/dist/design-system/overlays/command-palette.d.ts +0 -217
  356. package/dist/design-system/overlays/command-palette.d.ts.map +0 -1
  357. package/dist/design-system/overlays/command-palette.js +0 -443
  358. package/dist/design-system/overlays/command-palette.js.map +0 -1
  359. package/dist/design-system/overlays/modal.d.ts +0 -251
  360. package/dist/design-system/overlays/modal.d.ts.map +0 -1
  361. package/dist/design-system/overlays/modal.js +0 -461
  362. package/dist/design-system/overlays/modal.js.map +0 -1
  363. package/dist/design-system/overlays/overlay-stack.d.ts +0 -200
  364. package/dist/design-system/overlays/overlay-stack.d.ts.map +0 -1
  365. package/dist/design-system/overlays/overlay-stack.js +0 -341
  366. package/dist/design-system/overlays/overlay-stack.js.map +0 -1
  367. package/dist/design-system/primitives/box.d.ts +0 -16
  368. package/dist/design-system/primitives/box.d.ts.map +0 -1
  369. package/dist/design-system/primitives/box.js +0 -23
  370. package/dist/design-system/primitives/box.js.map +0 -1
  371. package/dist/design-system/primitives/divider.d.ts +0 -52
  372. package/dist/design-system/primitives/divider.d.ts.map +0 -1
  373. package/dist/design-system/primitives/divider.js +0 -72
  374. package/dist/design-system/primitives/divider.js.map +0 -1
  375. package/dist/design-system/primitives/helpers.d.ts +0 -10
  376. package/dist/design-system/primitives/helpers.d.ts.map +0 -1
  377. package/dist/design-system/primitives/helpers.js +0 -27
  378. package/dist/design-system/primitives/helpers.js.map +0 -1
  379. package/dist/design-system/primitives/index.d.ts +0 -11
  380. package/dist/design-system/primitives/index.d.ts.map +0 -1
  381. package/dist/design-system/primitives/index.js +0 -14
  382. package/dist/design-system/primitives/index.js.map +0 -1
  383. package/dist/design-system/primitives/slot.d.ts +0 -35
  384. package/dist/design-system/primitives/slot.d.ts.map +0 -1
  385. package/dist/design-system/primitives/slot.js +0 -17
  386. package/dist/design-system/primitives/slot.js.map +0 -1
  387. package/dist/design-system/primitives/spacer.d.ts +0 -34
  388. package/dist/design-system/primitives/spacer.d.ts.map +0 -1
  389. package/dist/design-system/primitives/spacer.js +0 -53
  390. package/dist/design-system/primitives/spacer.js.map +0 -1
  391. package/dist/design-system/primitives/text.d.ts +0 -12
  392. package/dist/design-system/primitives/text.d.ts.map +0 -1
  393. package/dist/design-system/primitives/text.js +0 -25
  394. package/dist/design-system/primitives/text.js.map +0 -1
  395. package/dist/design-system/primitives/utilities.d.ts +0 -70
  396. package/dist/design-system/primitives/utilities.d.ts.map +0 -1
  397. package/dist/design-system/primitives/utilities.js +0 -56
  398. package/dist/design-system/primitives/utilities.js.map +0 -1
  399. package/dist/storybook/cli.d.ts +0 -10
  400. package/dist/storybook/cli.d.ts.map +0 -1
  401. package/dist/storybook/cli.js +0 -14
  402. package/dist/storybook/cli.js.map +0 -1
@@ -1,443 +0,0 @@
1
- /**
2
- * Command Palette Component
3
- *
4
- * A searchable command palette for quick navigation and actions.
5
- *
6
- * Features:
7
- * - Fuzzy search
8
- * - Keyboard navigation
9
- * - Categorized items
10
- * - Keyboard shortcuts display
11
- * - Focus trap
12
- *
13
- * @example
14
- * ```typescript
15
- * import { CommandPalette, createCommandPalette } from 'tuiuiu.js';
16
- *
17
- * const palette = createCommandPalette({
18
- * items: [
19
- * { id: 'save', label: 'Save File', shortcut: 'Ctrl+S', action: () => save() },
20
- * { id: 'open', label: 'Open File', shortcut: 'Ctrl+O', category: 'File' },
21
- * ],
22
- * onSelect: (item) => item.action?.(),
23
- * onClose: () => setShowPalette(false),
24
- * });
25
- *
26
- * // In your component
27
- * When(showPalette(),
28
- * CommandPalette({
29
- * ...palette.props,
30
- * query: palette.query(),
31
- * selectedIndex: palette.selectedIndex(),
32
- * })
33
- * )
34
- *
35
- * // Handle input
36
- * useInput((input, key) => {
37
- * if (key.upArrow) palette.selectPrev();
38
- * if (key.downArrow) palette.selectNext();
39
- * if (key.return) palette.confirm();
40
- * if (key.escape) palette.close();
41
- * if (key.backspace) palette.backspace();
42
- * if (input && !key.ctrl) palette.type(input);
43
- * });
44
- * ```
45
- */
46
- import { Box, Text } from '../../primitives/nodes.js';
47
- import { stringWidth } from '../../utils/text-utils.js';
48
- // =============================================================================
49
- // Fuzzy Search
50
- // =============================================================================
51
- /**
52
- * Simple fuzzy match - returns score (higher = better match) or -1 for no match
53
- */
54
- function fuzzyMatch(query, text) {
55
- if (!query)
56
- return 0;
57
- const queryLower = query.toLowerCase();
58
- const textLower = text.toLowerCase();
59
- // Exact match gets highest score
60
- if (textLower === queryLower)
61
- return 1000;
62
- // Starts with query gets high score
63
- if (textLower.startsWith(queryLower))
64
- return 500 + (queryLower.length / textLower.length) * 100;
65
- // Contains query gets medium score
66
- if (textLower.includes(queryLower))
67
- return 200 + (queryLower.length / textLower.length) * 100;
68
- // Fuzzy character match
69
- let queryIndex = 0;
70
- let score = 0;
71
- let consecutive = 0;
72
- for (let i = 0; i < textLower.length && queryIndex < queryLower.length; i++) {
73
- if (textLower[i] === queryLower[queryIndex]) {
74
- score += 10 + consecutive * 5;
75
- consecutive++;
76
- queryIndex++;
77
- }
78
- else {
79
- consecutive = 0;
80
- }
81
- }
82
- // All query characters must be found
83
- if (queryIndex < queryLower.length)
84
- return -1;
85
- return score;
86
- }
87
- /**
88
- * Highlight matched characters in text
89
- */
90
- function highlightMatches(text, query, highlightColor) {
91
- if (!query)
92
- return [Text({}, text)];
93
- const queryLower = query.toLowerCase();
94
- const textLower = text.toLowerCase();
95
- const result = [];
96
- let lastIndex = 0;
97
- // Find character positions to highlight
98
- const matchPositions = new Set();
99
- let queryIndex = 0;
100
- for (let i = 0; i < textLower.length && queryIndex < queryLower.length; i++) {
101
- if (textLower[i] === queryLower[queryIndex]) {
102
- matchPositions.add(i);
103
- queryIndex++;
104
- }
105
- }
106
- // Build highlighted text
107
- let currentRun = '';
108
- let isHighlight = false;
109
- for (let i = 0; i < text.length; i++) {
110
- const shouldHighlight = matchPositions.has(i);
111
- if (shouldHighlight !== isHighlight) {
112
- if (currentRun) {
113
- result.push(isHighlight
114
- ? Text({ color: highlightColor, bold: true }, currentRun)
115
- : Text({}, currentRun));
116
- }
117
- currentRun = text[i];
118
- isHighlight = shouldHighlight;
119
- }
120
- else {
121
- currentRun += text[i];
122
- }
123
- }
124
- if (currentRun) {
125
- result.push(isHighlight
126
- ? Text({ color: highlightColor, bold: true }, currentRun)
127
- : Text({}, currentRun));
128
- }
129
- return result;
130
- }
131
- // =============================================================================
132
- // Border Characters
133
- // =============================================================================
134
- const BORDER_CHARS = {
135
- single: {
136
- topLeft: '┌',
137
- topRight: '┐',
138
- bottomLeft: '└',
139
- bottomRight: '┘',
140
- horizontal: '─',
141
- vertical: '│',
142
- },
143
- double: {
144
- topLeft: '╔',
145
- topRight: '╗',
146
- bottomLeft: '╚',
147
- bottomRight: '╝',
148
- horizontal: '═',
149
- vertical: '║',
150
- },
151
- round: {
152
- topLeft: '╭',
153
- topRight: '╮',
154
- bottomLeft: '╰',
155
- bottomRight: '╯',
156
- horizontal: '─',
157
- vertical: '│',
158
- },
159
- heavy: {
160
- topLeft: '┏',
161
- topRight: '┓',
162
- bottomLeft: '┗',
163
- bottomRight: '┛',
164
- horizontal: '━',
165
- vertical: '┃',
166
- },
167
- none: null,
168
- };
169
- // =============================================================================
170
- // Component
171
- // =============================================================================
172
- /**
173
- * CommandPalette Component
174
- *
175
- * Renders a searchable command palette overlay.
176
- */
177
- export function CommandPalette(props) {
178
- const { query, items, filteredItems, selectedIndex, placeholder = 'Type to search...', title = 'Command Palette', maxVisible = 10, showCategories = true, showShortcuts = true, width = 60, borderStyle = 'round', borderColor = 'cyan', highlightColor = 'yellow', selectedBg = 'blue', noResultsMessage = 'No results found', onItemClick, } = props;
179
- const chars = borderStyle !== 'none' ? BORDER_CHARS[borderStyle] : null;
180
- const innerWidth = width - 2;
181
- const rows = [];
182
- // Top border with title
183
- if (chars) {
184
- const titleText = ` ${title} `;
185
- const titleLen = stringWidth(titleText);
186
- const remaining = innerWidth - titleLen;
187
- const left = Math.floor(remaining / 2);
188
- const right = remaining - left;
189
- rows.push(Box({ flexDirection: 'row' }, Text({ color: borderColor }, chars.topLeft), Text({ color: borderColor }, chars.horizontal.repeat(left)), Text({ color: 'cyan', bold: true }, titleText), Text({ color: borderColor }, chars.horizontal.repeat(right)), Text({ color: borderColor }, chars.topRight)));
190
- }
191
- // Search input
192
- const inputDisplay = query || placeholder;
193
- const inputColor = query ? 'white' : 'gray';
194
- const cursor = query ? '▌' : '';
195
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'cyan' }, '❯ '), Text({ color: inputColor, dim: !query }, inputDisplay), Text({ color: 'cyan' }, cursor), Text({}, ' '.repeat(Math.max(0, innerWidth - 4 - stringWidth(inputDisplay) - 1))), chars ? Text({ color: borderColor }, chars.vertical) : null));
196
- // Separator
197
- if (chars) {
198
- rows.push(Box({ flexDirection: 'row' }, Text({ color: borderColor }, chars.vertical), Text({ color: 'gray', dim: true }, '─'.repeat(innerWidth)), Text({ color: borderColor }, chars.vertical)));
199
- }
200
- // Items or no results
201
- if (filteredItems.length === 0) {
202
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'gray', dim: true, italic: true }, noResultsMessage), Text({}, ' '.repeat(Math.max(0, innerWidth - 2 - stringWidth(noResultsMessage)))), chars ? Text({ color: borderColor }, chars.vertical) : null));
203
- }
204
- else {
205
- // Calculate visible range (scroll if needed)
206
- const visibleCount = Math.min(maxVisible, filteredItems.length);
207
- let startIndex = 0;
208
- if (selectedIndex >= visibleCount) {
209
- startIndex = selectedIndex - visibleCount + 1;
210
- }
211
- // Group by category if enabled
212
- let currentCategory = '';
213
- for (let i = startIndex; i < startIndex + visibleCount && i < filteredItems.length; i++) {
214
- const item = filteredItems[i];
215
- const isSelected = i === selectedIndex;
216
- // Category header
217
- if (showCategories && item.category && item.category !== currentCategory) {
218
- currentCategory = item.category;
219
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'gray', dim: true, bold: true }, currentCategory.toUpperCase()), Text({}, ' '.repeat(Math.max(0, innerWidth - 2 - stringWidth(currentCategory)))), chars ? Text({ color: borderColor }, chars.vertical) : null));
220
- }
221
- // Item row
222
- const icon = item.icon ? `${item.icon} ` : '';
223
- const shortcut = showShortcuts && item.shortcut ? item.shortcut : '';
224
- const labelWidth = innerWidth - 4 - stringWidth(icon) - stringWidth(shortcut);
225
- const labelNodes = highlightMatches(item.label, query, highlightColor);
226
- const labelText = item.label.slice(0, labelWidth);
227
- const padding = Math.max(0, labelWidth - stringWidth(item.label));
228
- rows.push(Box({
229
- flexDirection: 'row',
230
- onClick: item.disabled ? undefined : () => onItemClick?.(item, i),
231
- }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({ backgroundColor: isSelected ? selectedBg : undefined }, ' '), Text({ color: isSelected ? 'white' : 'cyan' }, icon), Box({
232
- flexDirection: 'row',
233
- backgroundColor: isSelected ? selectedBg : undefined,
234
- }, ...highlightMatches(labelText, query, highlightColor)), Text({ backgroundColor: isSelected ? selectedBg : undefined }, ' '.repeat(padding)), Text({
235
- color: 'gray',
236
- dim: true,
237
- backgroundColor: isSelected ? selectedBg : undefined
238
- }, shortcut), Text({ backgroundColor: isSelected ? selectedBg : undefined }, ' '), chars ? Text({ color: borderColor }, chars.vertical) : null));
239
- // Description if present and selected
240
- if (isSelected && item.description) {
241
- const descText = item.description.slice(0, innerWidth - 4);
242
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'gray', dim: true, italic: true }, descText), Text({}, ' '.repeat(Math.max(0, innerWidth - 4 - stringWidth(descText)))), chars ? Text({ color: borderColor }, chars.vertical) : null));
243
- }
244
- }
245
- // Scroll indicator
246
- if (filteredItems.length > visibleCount) {
247
- const scrollInfo = `${selectedIndex + 1}/${filteredItems.length}`;
248
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '.repeat(innerWidth - stringWidth(scrollInfo) - 1)), Text({ color: 'gray', dim: true }, scrollInfo), Text({}, ' '), chars ? Text({ color: borderColor }, chars.vertical) : null));
249
- }
250
- }
251
- // Help hint
252
- const helpText = '↑↓ navigate ⏎ select esc close';
253
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'gray', dim: true }, helpText), Text({}, ' '.repeat(Math.max(0, innerWidth - 2 - stringWidth(helpText)))), chars ? Text({ color: borderColor }, chars.vertical) : null));
254
- // Bottom border
255
- if (chars) {
256
- rows.push(Text({ color: borderColor }, chars.bottomLeft + chars.horizontal.repeat(innerWidth) + chars.bottomRight));
257
- }
258
- return Box({ flexDirection: 'column' }, ...rows);
259
- }
260
- /**
261
- * Create command palette state manager
262
- *
263
- * @example
264
- * ```typescript
265
- * const palette = createCommandPalette({
266
- * items: [
267
- * { id: 'save', label: 'Save', shortcut: 'Ctrl+S' },
268
- * { id: 'open', label: 'Open', shortcut: 'Ctrl+O' },
269
- * ],
270
- * onSelect: (item) => console.log('Selected:', item.label),
271
- * });
272
- *
273
- * // Use in render
274
- * CommandPalette({
275
- * ...palette.props,
276
- * query: palette.query(),
277
- * filteredItems: palette.filteredItems(),
278
- * selectedIndex: palette.selectedIndex(),
279
- * })
280
- * ```
281
- */
282
- export function createCommandPalette(options) {
283
- const { onSelect, onClose, filter = (item, query) => fuzzyMatch(query, item.label) } = options;
284
- let items = [...options.items];
285
- let query = '';
286
- let selectedIndex = 0;
287
- let filteredItems = items;
288
- const updateFiltered = () => {
289
- if (!query) {
290
- filteredItems = items.filter(i => !i.disabled);
291
- }
292
- else {
293
- filteredItems = items
294
- .filter(i => !i.disabled)
295
- .map(item => ({
296
- item,
297
- score: Math.max(filter(item, query), item.description ? filter({ ...item, label: item.description }, query) * 0.5 : -1, item.category ? filter({ ...item, label: item.category }, query) * 0.3 : -1),
298
- }))
299
- .filter(({ score }) => score >= 0)
300
- .sort((a, b) => b.score - a.score)
301
- .map(({ item }) => item);
302
- }
303
- // Reset selection if out of bounds
304
- if (selectedIndex >= filteredItems.length) {
305
- selectedIndex = Math.max(0, filteredItems.length - 1);
306
- }
307
- };
308
- updateFiltered();
309
- return {
310
- query: () => query,
311
- filteredItems: () => filteredItems,
312
- selectedIndex: () => selectedIndex,
313
- props: {
314
- items,
315
- placeholder: options.props?.placeholder,
316
- title: options.props?.title,
317
- maxVisible: options.props?.maxVisible,
318
- showCategories: options.props?.showCategories,
319
- showShortcuts: options.props?.showShortcuts,
320
- width: options.props?.width,
321
- borderStyle: options.props?.borderStyle,
322
- borderColor: options.props?.borderColor,
323
- highlightColor: options.props?.highlightColor,
324
- selectedBg: options.props?.selectedBg,
325
- noResultsMessage: options.props?.noResultsMessage,
326
- },
327
- type: (char) => {
328
- query += char;
329
- updateFiltered();
330
- },
331
- backspace: () => {
332
- query = query.slice(0, -1);
333
- updateFiltered();
334
- },
335
- clear: () => {
336
- query = '';
337
- updateFiltered();
338
- },
339
- selectPrev: () => {
340
- if (filteredItems.length > 0) {
341
- selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : filteredItems.length - 1;
342
- }
343
- },
344
- selectNext: () => {
345
- if (filteredItems.length > 0) {
346
- selectedIndex = selectedIndex < filteredItems.length - 1 ? selectedIndex + 1 : 0;
347
- }
348
- },
349
- selectIndex: (index) => {
350
- if (index >= 0 && index < filteredItems.length) {
351
- selectedIndex = index;
352
- }
353
- },
354
- confirm: () => {
355
- const selected = filteredItems[selectedIndex];
356
- if (selected) {
357
- selected.action?.();
358
- onSelect?.(selected);
359
- }
360
- },
361
- close: () => {
362
- onClose?.();
363
- },
364
- getSelected: () => filteredItems[selectedIndex],
365
- setItems: (newItems) => {
366
- items = [...newItems];
367
- updateFiltered();
368
- },
369
- };
370
- }
371
- /**
372
- * GoTo Dialog - Simple number input dialog for jumping to slides
373
- */
374
- export function GoToDialog(props) {
375
- const { value, max, title = 'Go To', prompt = 'Enter number:', width = 30, borderStyle = 'round', borderColor = 'cyan', } = props;
376
- const chars = borderStyle !== 'none' ? BORDER_CHARS[borderStyle] : null;
377
- const innerWidth = width - 2;
378
- const rows = [];
379
- // Top border with title
380
- if (chars) {
381
- const titleText = ` ${title} `;
382
- const titleLen = stringWidth(titleText);
383
- const remaining = innerWidth - titleLen;
384
- const left = Math.floor(remaining / 2);
385
- const right = remaining - left;
386
- rows.push(Box({ flexDirection: 'row' }, Text({ color: borderColor }, chars.topLeft), Text({ color: borderColor }, chars.horizontal.repeat(left)), Text({ color: 'cyan', bold: true }, titleText), Text({ color: borderColor }, chars.horizontal.repeat(right)), Text({ color: borderColor }, chars.topRight)));
387
- }
388
- // Prompt and input
389
- const display = value || '_';
390
- const rangeText = `(1-${max})`;
391
- const inputLine = `${prompt} ${display}`;
392
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'white' }, prompt), Text({}, ' '), Text({ color: 'cyan', bold: true }, display), Text({}, ' '), Text({ color: 'gray', dim: true }, rangeText), Text({}, ' '.repeat(Math.max(0, innerWidth - 2 - stringWidth(inputLine) - stringWidth(rangeText) - 1))), chars ? Text({ color: borderColor }, chars.vertical) : null));
393
- // Help
394
- const helpText = '⏎ confirm esc cancel';
395
- rows.push(Box({ flexDirection: 'row' }, chars ? Text({ color: borderColor }, chars.vertical) : null, Text({}, ' '), Text({ color: 'gray', dim: true }, helpText), Text({}, ' '.repeat(Math.max(0, innerWidth - 2 - stringWidth(helpText)))), chars ? Text({ color: borderColor }, chars.vertical) : null));
396
- // Bottom border
397
- if (chars) {
398
- rows.push(Text({ color: borderColor }, chars.bottomLeft + chars.horizontal.repeat(innerWidth) + chars.bottomRight));
399
- }
400
- return Box({ flexDirection: 'column' }, ...rows);
401
- }
402
- /**
403
- * Create GoTo dialog state
404
- */
405
- export function createGoToDialog(options) {
406
- let value = '';
407
- return {
408
- value: () => value,
409
- props: {
410
- max: options.max,
411
- ...options.props,
412
- },
413
- type: (char) => {
414
- if (/^\d$/.test(char)) {
415
- const newValue = value + char;
416
- const num = parseInt(newValue, 10);
417
- if (num <= options.max) {
418
- value = newValue;
419
- }
420
- }
421
- },
422
- backspace: () => {
423
- value = value.slice(0, -1);
424
- },
425
- clear: () => {
426
- value = '';
427
- },
428
- confirm: () => {
429
- const num = parseInt(value, 10);
430
- if (!isNaN(num) && num >= 1 && num <= options.max) {
431
- options.onConfirm?.(num);
432
- }
433
- },
434
- close: () => {
435
- options.onClose?.();
436
- },
437
- getValue: () => {
438
- const num = parseInt(value, 10);
439
- return isNaN(num) ? null : num;
440
- },
441
- };
442
- }
443
- //# sourceMappingURL=command-palette.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-palette.js","sourceRoot":"","sources":["../../../src/design-system/overlays/command-palette.ts"],"names":[],"mappings":"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"}