create-pixi-vn 2.0.12 → 2.0.14

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 (256) hide show
  1. package/dist/index.mjs +36 -35
  2. package/package.json +1 -1
  3. package/template-react-vite-muijoy/components.json +1 -1
  4. package/template-react-vite-muijoy/package-lock.json +663 -967
  5. package/template-react-vite-muijoy/package.json +10 -11
  6. package/template-react-vite-muijoy/src/components/dev-devtools.tsx +25 -0
  7. package/template-react-vite-muijoy/src/components/menus/settings/menus/history.tsx +78 -62
  8. package/template-react-vite-muijoy/src/components/screens/narration/index.tsx +5 -2
  9. package/template-react-vite-muijoy/src/components/ui/alert-dialog.tsx +3 -2
  10. package/template-react-vite-muijoy/src/components/ui/avatar.tsx +2 -2
  11. package/template-react-vite-muijoy/src/components/ui/breadcrumb.tsx +5 -4
  12. package/template-react-vite-muijoy/src/components/ui/button-group.tsx +3 -2
  13. package/template-react-vite-muijoy/src/components/ui/button.tsx +2 -2
  14. package/template-react-vite-muijoy/src/components/ui/card.tsx +6 -10
  15. package/template-react-vite-muijoy/src/components/ui/carousel.tsx +10 -7
  16. package/template-react-vite-muijoy/src/components/ui/drawer.tsx +2 -0
  17. package/template-react-vite-muijoy/src/components/ui/field.tsx +8 -5
  18. package/template-react-vite-muijoy/src/components/ui/input-group.tsx +4 -3
  19. package/template-react-vite-muijoy/src/components/ui/input.tsx +1 -1
  20. package/template-react-vite-muijoy/src/components/ui/item.tsx +9 -8
  21. package/template-react-vite-muijoy/src/components/ui/label.tsx +1 -1
  22. package/template-react-vite-muijoy/src/components/ui/radio-group.tsx +4 -1
  23. package/template-react-vite-muijoy/src/components/ui/scroll-area.tsx +5 -2
  24. package/template-react-vite-muijoy/src/components/ui/select.tsx +3 -2
  25. package/template-react-vite-muijoy/src/components/ui/separator.tsx +2 -0
  26. package/template-react-vite-muijoy/src/components/ui/sonner.tsx +4 -4
  27. package/template-react-vite-muijoy/src/components/ui/spinner.tsx +2 -1
  28. package/template-react-vite-muijoy/src/components/ui/switch.tsx +3 -0
  29. package/template-react-vite-muijoy/src/components/ui/textarea.tsx +2 -1
  30. package/template-react-vite-muijoy/src/components/ui/tooltip.tsx +2 -0
  31. package/template-react-vite-muijoy/src/lib/hooks/hotkeys-hooks.ts +2 -0
  32. package/template-react-vite-muijoy/src/lib/hooks/narration-hooks.ts +24 -9
  33. package/template-react-vite-muijoy/src/lib/hooks/navigation-hooks.ts +29 -10
  34. package/template-react-vite-muijoy/src/main.tsx +0 -1
  35. package/{template-react-vite-muijoy-tauri/src/pixi-vn-keys.gen.d.ts → template-react-vite-muijoy/src/pixi-vn.keys.gen.ts} +4 -2
  36. package/template-react-vite-muijoy/src/routeTree.gen.ts +3 -21
  37. package/template-react-vite-muijoy/src/routes/__root.tsx +10 -20
  38. package/template-react-vite-muijoy/src/styles.css +43 -43
  39. package/template-react-vite-muijoy/vite.config.ts +1 -1
  40. package/template-react-vite-muijoy-ink/.vscode/extensions.json +2 -1
  41. package/template-react-vite-muijoy-ink/.vscode/settings.json +6 -1
  42. package/template-react-vite-muijoy-ink/_gitignore +1 -0
  43. package/template-react-vite-muijoy-ink/components.json +1 -1
  44. package/template-react-vite-muijoy-ink/ink/second_part.ink +571 -0
  45. package/template-react-vite-muijoy-ink/ink/start.ink +214 -0
  46. package/template-react-vite-muijoy-ink/package-lock.json +847 -963
  47. package/template-react-vite-muijoy-ink/package.json +13 -12
  48. package/template-react-vite-muijoy-ink/src/App.tsx +25 -25
  49. package/template-react-vite-muijoy-ink/src/assets/index.ts +2 -4
  50. package/template-react-vite-muijoy-ink/src/assets/ink-manifest.gen.json +4 -1
  51. package/template-react-vite-muijoy-ink/src/components/dev-devtools.tsx +25 -0
  52. package/template-react-vite-muijoy-ink/src/components/menus/settings/menus/history.tsx +78 -62
  53. package/template-react-vite-muijoy-ink/src/components/screens/narration/index.tsx +5 -2
  54. package/template-react-vite-muijoy-ink/src/components/ui/alert-dialog.tsx +3 -2
  55. package/template-react-vite-muijoy-ink/src/components/ui/avatar.tsx +2 -2
  56. package/template-react-vite-muijoy-ink/src/components/ui/breadcrumb.tsx +5 -4
  57. package/template-react-vite-muijoy-ink/src/components/ui/button-group.tsx +3 -2
  58. package/template-react-vite-muijoy-ink/src/components/ui/button.tsx +2 -2
  59. package/template-react-vite-muijoy-ink/src/components/ui/card.tsx +6 -10
  60. package/template-react-vite-muijoy-ink/src/components/ui/carousel.tsx +10 -7
  61. package/template-react-vite-muijoy-ink/src/components/ui/drawer.tsx +2 -0
  62. package/template-react-vite-muijoy-ink/src/components/ui/field.tsx +8 -5
  63. package/template-react-vite-muijoy-ink/src/components/ui/input-group.tsx +4 -3
  64. package/template-react-vite-muijoy-ink/src/components/ui/input.tsx +1 -1
  65. package/template-react-vite-muijoy-ink/src/components/ui/item.tsx +9 -8
  66. package/template-react-vite-muijoy-ink/src/components/ui/label.tsx +1 -1
  67. package/template-react-vite-muijoy-ink/src/components/ui/radio-group.tsx +4 -1
  68. package/template-react-vite-muijoy-ink/src/components/ui/scroll-area.tsx +5 -2
  69. package/template-react-vite-muijoy-ink/src/components/ui/select.tsx +3 -2
  70. package/template-react-vite-muijoy-ink/src/components/ui/separator.tsx +2 -0
  71. package/template-react-vite-muijoy-ink/src/components/ui/sonner.tsx +4 -4
  72. package/template-react-vite-muijoy-ink/src/components/ui/spinner.tsx +2 -1
  73. package/template-react-vite-muijoy-ink/src/components/ui/switch.tsx +3 -0
  74. package/template-react-vite-muijoy-ink/src/components/ui/textarea.tsx +2 -1
  75. package/template-react-vite-muijoy-ink/src/components/ui/tooltip.tsx +2 -0
  76. package/template-react-vite-muijoy-ink/src/content/ink/hashtag-commands.ts +39 -0
  77. package/template-react-vite-muijoy-ink/src/content/ink/text-replaces.ts +19 -0
  78. package/template-react-vite-muijoy-ink/src/lib/hooks/hotkeys-hooks.ts +2 -0
  79. package/template-react-vite-muijoy-ink/src/lib/hooks/ink-hooks.tsx +12 -0
  80. package/template-react-vite-muijoy-ink/src/lib/hooks/narration-hooks.ts +24 -9
  81. package/template-react-vite-muijoy-ink/src/lib/hooks/navigation-hooks.ts +29 -10
  82. package/template-react-vite-muijoy-ink/src/lib/i18n.ts +22 -1
  83. package/template-react-vite-muijoy-ink/src/main.tsx +0 -1
  84. package/template-react-vite-muijoy-ink/src/pixi-vn.keys.gen.ts +24 -0
  85. package/template-react-vite-muijoy-ink/src/routeTree.gen.ts +3 -21
  86. package/template-react-vite-muijoy-ink/src/routes/__root.tsx +14 -20
  87. package/template-react-vite-muijoy-ink/src/styles.css +43 -43
  88. package/template-react-vite-muijoy-ink/vite.config.ts +7 -1
  89. package/template-react-vite-muijoy-ink-tauri/.assetpack.ts +9 -0
  90. package/template-react-vite-muijoy-ink-tauri/.vscode/extensions.json +5 -1
  91. package/template-react-vite-muijoy-ink-tauri/.vscode/launch.json +11 -0
  92. package/template-react-vite-muijoy-ink-tauri/.vscode/settings.json +6 -1
  93. package/template-react-vite-muijoy-ink-tauri/.vscode/tasks.json +47 -0
  94. package/template-react-vite-muijoy-ink-tauri/README.md +3 -3
  95. package/template-react-vite-muijoy-ink-tauri/_github/workflows/desktop.yml +188 -0
  96. package/template-react-vite-muijoy-ink-tauri/_github/workflows/mobile.yml +270 -0
  97. package/template-react-vite-muijoy-ink-tauri/_gitignore +11 -0
  98. package/template-react-vite-muijoy-ink-tauri/components.json +1 -1
  99. package/template-react-vite-muijoy-ink-tauri/ink/second_part.ink +571 -0
  100. package/template-react-vite-muijoy-ink-tauri/ink/start.ink +214 -0
  101. package/template-react-vite-muijoy-ink-tauri/package-lock.json +1145 -1011
  102. package/template-react-vite-muijoy-ink-tauri/package.json +23 -13
  103. package/template-react-vite-muijoy-ink-tauri/src/App.tsx +25 -25
  104. package/template-react-vite-muijoy-ink-tauri/src/assets/index.ts +2 -4
  105. package/template-react-vite-muijoy-ink-tauri/src/assets/ink-manifest.gen.json +4 -1
  106. package/template-react-vite-muijoy-ink-tauri/src/components/dev-devtools.tsx +25 -0
  107. package/template-react-vite-muijoy-ink-tauri/src/components/menus/main-menu.tsx +16 -1
  108. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/menus/history.tsx +78 -62
  109. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/quick-menus.tsx +17 -1
  110. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/system-controls.tsx +11 -1
  111. package/template-react-vite-muijoy-ink-tauri/src/components/screens/narration/index.tsx +5 -2
  112. package/template-react-vite-muijoy-ink-tauri/src/components/ui/alert-dialog.tsx +3 -2
  113. package/template-react-vite-muijoy-ink-tauri/src/components/ui/avatar.tsx +2 -2
  114. package/template-react-vite-muijoy-ink-tauri/src/components/ui/breadcrumb.tsx +5 -4
  115. package/template-react-vite-muijoy-ink-tauri/src/components/ui/button-group.tsx +3 -2
  116. package/template-react-vite-muijoy-ink-tauri/src/components/ui/button.tsx +2 -2
  117. package/template-react-vite-muijoy-ink-tauri/src/components/ui/card.tsx +6 -10
  118. package/template-react-vite-muijoy-ink-tauri/src/components/ui/carousel.tsx +10 -7
  119. package/template-react-vite-muijoy-ink-tauri/src/components/ui/drawer.tsx +2 -0
  120. package/template-react-vite-muijoy-ink-tauri/src/components/ui/field.tsx +8 -5
  121. package/template-react-vite-muijoy-ink-tauri/src/components/ui/input-group.tsx +4 -3
  122. package/template-react-vite-muijoy-ink-tauri/src/components/ui/input.tsx +1 -1
  123. package/template-react-vite-muijoy-ink-tauri/src/components/ui/item.tsx +9 -8
  124. package/template-react-vite-muijoy-ink-tauri/src/components/ui/label.tsx +1 -1
  125. package/template-react-vite-muijoy-ink-tauri/src/components/ui/radio-group.tsx +4 -1
  126. package/template-react-vite-muijoy-ink-tauri/src/components/ui/scroll-area.tsx +5 -2
  127. package/template-react-vite-muijoy-ink-tauri/src/components/ui/select.tsx +3 -2
  128. package/template-react-vite-muijoy-ink-tauri/src/components/ui/separator.tsx +2 -0
  129. package/template-react-vite-muijoy-ink-tauri/src/components/ui/sonner.tsx +4 -4
  130. package/template-react-vite-muijoy-ink-tauri/src/components/ui/spinner.tsx +2 -1
  131. package/template-react-vite-muijoy-ink-tauri/src/components/ui/switch.tsx +3 -0
  132. package/template-react-vite-muijoy-ink-tauri/src/components/ui/textarea.tsx +2 -1
  133. package/template-react-vite-muijoy-ink-tauri/src/components/ui/tooltip.tsx +2 -0
  134. package/template-react-vite-muijoy-ink-tauri/src/content/ink/hashtag-commands.ts +56 -0
  135. package/template-react-vite-muijoy-ink-tauri/src/content/ink/text-replaces.ts +19 -0
  136. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/hotkeys-hooks.ts +2 -0
  137. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/ink-hooks.tsx +12 -0
  138. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/narration-hooks.ts +24 -9
  139. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/navigation-hooks.ts +29 -10
  140. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/quit-hooks.ts +24 -0
  141. package/template-react-vite-muijoy-ink-tauri/src/lib/i18n.ts +22 -1
  142. package/template-react-vite-muijoy-ink-tauri/src/lib/query/settings-query.ts +7 -1
  143. package/template-react-vite-muijoy-ink-tauri/src/lib/steam.ts +143 -0
  144. package/template-react-vite-muijoy-ink-tauri/src/main.tsx +0 -1
  145. package/template-react-vite-muijoy-ink-tauri/src/pixi-vn.keys.gen.ts +24 -0
  146. package/template-react-vite-muijoy-ink-tauri/src/routeTree.gen.ts +3 -21
  147. package/template-react-vite-muijoy-ink-tauri/src/routes/__root.tsx +14 -20
  148. package/template-react-vite-muijoy-ink-tauri/src/styles.css +43 -43
  149. package/template-react-vite-muijoy-ink-tauri/src-tauri/Cargo.toml +50 -0
  150. package/template-react-vite-muijoy-ink-tauri/src-tauri/build.rs +46 -0
  151. package/template-react-vite-muijoy-ink-tauri/src-tauri/capabilities/default.json +21 -0
  152. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/128x128.png +0 -0
  153. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/128x128@2x.png +0 -0
  154. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/32x32.png +0 -0
  155. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square107x107Logo.png +0 -0
  156. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square142x142Logo.png +0 -0
  157. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square150x150Logo.png +0 -0
  158. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square284x284Logo.png +0 -0
  159. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square30x30Logo.png +0 -0
  160. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square310x310Logo.png +0 -0
  161. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square44x44Logo.png +0 -0
  162. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square71x71Logo.png +0 -0
  163. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/Square89x89Logo.png +0 -0
  164. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/StoreLogo.png +0 -0
  165. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/icon.icns +0 -0
  166. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/icon.ico +0 -0
  167. package/template-react-vite-muijoy-ink-tauri/src-tauri/icons/icon.png +0 -0
  168. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/lib.rs +64 -0
  169. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/main.rs +6 -0
  170. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/steam.rs +238 -0
  171. package/template-react-vite-muijoy-ink-tauri/src-tauri/tauri.conf.json +50 -0
  172. package/template-react-vite-muijoy-ink-tauri/vite.config.ts +31 -1
  173. package/template-react-vite-muijoy-tauri/.assetpack.ts +9 -0
  174. package/template-react-vite-muijoy-tauri/.vscode/extensions.json +4 -1
  175. package/template-react-vite-muijoy-tauri/.vscode/launch.json +11 -0
  176. package/template-react-vite-muijoy-tauri/.vscode/tasks.json +47 -0
  177. package/template-react-vite-muijoy-tauri/README.md +3 -3
  178. package/template-react-vite-muijoy-tauri/_github/workflows/desktop.yml +188 -0
  179. package/template-react-vite-muijoy-tauri/_github/workflows/mobile.yml +270 -0
  180. package/template-react-vite-muijoy-tauri/_gitignore +10 -0
  181. package/template-react-vite-muijoy-tauri/components.json +1 -1
  182. package/template-react-vite-muijoy-tauri/package-lock.json +1052 -1106
  183. package/template-react-vite-muijoy-tauri/package.json +20 -12
  184. package/template-react-vite-muijoy-tauri/src/components/dev-devtools.tsx +25 -0
  185. package/template-react-vite-muijoy-tauri/src/components/menus/main-menu.tsx +16 -1
  186. package/template-react-vite-muijoy-tauri/src/components/menus/settings/menus/history.tsx +78 -62
  187. package/template-react-vite-muijoy-tauri/src/components/menus/settings/quick-menus.tsx +17 -1
  188. package/template-react-vite-muijoy-tauri/src/components/menus/settings/system-controls.tsx +11 -1
  189. package/template-react-vite-muijoy-tauri/src/components/screens/narration/index.tsx +5 -2
  190. package/template-react-vite-muijoy-tauri/src/components/ui/alert-dialog.tsx +3 -2
  191. package/template-react-vite-muijoy-tauri/src/components/ui/avatar.tsx +2 -2
  192. package/template-react-vite-muijoy-tauri/src/components/ui/breadcrumb.tsx +5 -4
  193. package/template-react-vite-muijoy-tauri/src/components/ui/button-group.tsx +3 -2
  194. package/template-react-vite-muijoy-tauri/src/components/ui/button.tsx +2 -2
  195. package/template-react-vite-muijoy-tauri/src/components/ui/card.tsx +6 -10
  196. package/template-react-vite-muijoy-tauri/src/components/ui/carousel.tsx +10 -7
  197. package/template-react-vite-muijoy-tauri/src/components/ui/drawer.tsx +2 -0
  198. package/template-react-vite-muijoy-tauri/src/components/ui/field.tsx +8 -5
  199. package/template-react-vite-muijoy-tauri/src/components/ui/input-group.tsx +4 -3
  200. package/template-react-vite-muijoy-tauri/src/components/ui/input.tsx +1 -1
  201. package/template-react-vite-muijoy-tauri/src/components/ui/item.tsx +9 -8
  202. package/template-react-vite-muijoy-tauri/src/components/ui/label.tsx +1 -1
  203. package/template-react-vite-muijoy-tauri/src/components/ui/radio-group.tsx +4 -1
  204. package/template-react-vite-muijoy-tauri/src/components/ui/scroll-area.tsx +5 -2
  205. package/template-react-vite-muijoy-tauri/src/components/ui/select.tsx +3 -2
  206. package/template-react-vite-muijoy-tauri/src/components/ui/separator.tsx +2 -0
  207. package/template-react-vite-muijoy-tauri/src/components/ui/sonner.tsx +4 -4
  208. package/template-react-vite-muijoy-tauri/src/components/ui/spinner.tsx +2 -1
  209. package/template-react-vite-muijoy-tauri/src/components/ui/switch.tsx +3 -0
  210. package/template-react-vite-muijoy-tauri/src/components/ui/textarea.tsx +2 -1
  211. package/template-react-vite-muijoy-tauri/src/components/ui/tooltip.tsx +2 -0
  212. package/template-react-vite-muijoy-tauri/src/lib/hooks/hotkeys-hooks.ts +2 -0
  213. package/template-react-vite-muijoy-tauri/src/lib/hooks/narration-hooks.ts +24 -9
  214. package/template-react-vite-muijoy-tauri/src/lib/hooks/navigation-hooks.ts +29 -10
  215. package/template-react-vite-muijoy-tauri/src/lib/hooks/quit-hooks.ts +24 -0
  216. package/template-react-vite-muijoy-tauri/src/lib/query/settings-query.ts +7 -1
  217. package/template-react-vite-muijoy-tauri/src/lib/steam.ts +143 -0
  218. package/template-react-vite-muijoy-tauri/src/main.tsx +0 -1
  219. package/{template-react-vite-muijoy-ink/src/pixi-vn-keys.gen.d.ts → template-react-vite-muijoy-tauri/src/pixi-vn.keys.gen.ts} +4 -2
  220. package/template-react-vite-muijoy-tauri/src/routeTree.gen.ts +3 -21
  221. package/template-react-vite-muijoy-tauri/src/routes/__root.tsx +10 -20
  222. package/template-react-vite-muijoy-tauri/src/styles.css +43 -43
  223. package/template-react-vite-muijoy-tauri/src-tauri/Cargo.toml +50 -0
  224. package/template-react-vite-muijoy-tauri/src-tauri/build.rs +46 -0
  225. package/template-react-vite-muijoy-tauri/src-tauri/capabilities/default.json +21 -0
  226. package/template-react-vite-muijoy-tauri/src-tauri/icons/128x128.png +0 -0
  227. package/template-react-vite-muijoy-tauri/src-tauri/icons/128x128@2x.png +0 -0
  228. package/template-react-vite-muijoy-tauri/src-tauri/icons/32x32.png +0 -0
  229. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square107x107Logo.png +0 -0
  230. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square142x142Logo.png +0 -0
  231. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square150x150Logo.png +0 -0
  232. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square284x284Logo.png +0 -0
  233. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square30x30Logo.png +0 -0
  234. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square310x310Logo.png +0 -0
  235. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square44x44Logo.png +0 -0
  236. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square71x71Logo.png +0 -0
  237. package/template-react-vite-muijoy-tauri/src-tauri/icons/Square89x89Logo.png +0 -0
  238. package/template-react-vite-muijoy-tauri/src-tauri/icons/StoreLogo.png +0 -0
  239. package/template-react-vite-muijoy-tauri/src-tauri/icons/icon.icns +0 -0
  240. package/template-react-vite-muijoy-tauri/src-tauri/icons/icon.ico +0 -0
  241. package/template-react-vite-muijoy-tauri/src-tauri/icons/icon.png +0 -0
  242. package/template-react-vite-muijoy-tauri/src-tauri/src/lib.rs +64 -0
  243. package/template-react-vite-muijoy-tauri/src-tauri/src/main.rs +6 -0
  244. package/template-react-vite-muijoy-tauri/src-tauri/src/steam.rs +238 -0
  245. package/template-react-vite-muijoy-tauri/src-tauri/tauri.conf.json +50 -0
  246. package/template-react-vite-muijoy-tauri/vite.config.ts +25 -1
  247. package/template-react-vite-muijoy/src/pixi-vn-keys.gen.d.ts +0 -20
  248. package/template-react-vite-muijoy/src/routes/narration.tsx +0 -9
  249. package/template-react-vite-muijoy-ink/src/content/labels/second.label.ts +0 -1207
  250. package/template-react-vite-muijoy-ink/src/content/labels/start.label.ts +0 -566
  251. package/template-react-vite-muijoy-ink/src/routes/narration.tsx +0 -9
  252. package/template-react-vite-muijoy-ink-tauri/src/content/labels/second.label.ts +0 -1207
  253. package/template-react-vite-muijoy-ink-tauri/src/content/labels/start.label.ts +0 -566
  254. package/template-react-vite-muijoy-ink-tauri/src/pixi-vn-keys.gen.d.ts +0 -20
  255. package/template-react-vite-muijoy-ink-tauri/src/routes/narration.tsx +0 -9
  256. package/template-react-vite-muijoy-tauri/src/routes/narration.tsx +0 -9
@@ -18,22 +18,16 @@
18
18
  "ui:reinit": "npx shadcn@latest init -f -b base --reinstall && npm run format"
19
19
  },
20
20
  "dependencies": {
21
- "@base-ui/react": "^1.5.0",
22
- "@drincs/pixi-vn": "^1.8.13",
23
- "@drincs/pixi-vn-spine": "^0.2.1",
21
+ "@base-ui/react": "^1.6.0",
22
+ "@drincs/pixi-vn": "^1.8.16",
23
+ "@drincs/pixi-vn-ink": "^1.0.6",
24
24
  "@tailwindcss/vite": "^4.3.0",
25
25
  "@tanstack/hotkeys": "^0.8.0",
26
- "@tanstack/react-devtools": "^0.10.5",
27
26
  "@tanstack/react-hotkeys": "^0.10.0",
28
- "@tanstack/react-hotkeys-devtools": "^0.7.0",
29
27
  "@tanstack/react-pacer": "^0.22.1",
30
- "@tanstack/react-pacer-devtools": "^0.7.1",
31
28
  "@tanstack/react-query": "latest",
32
- "@tanstack/react-query-devtools": "latest",
33
29
  "@tanstack/react-router": "latest",
34
- "@tanstack/react-router-devtools": "latest",
35
30
  "@tanstack/react-store": "latest",
36
- "@tanstack/router-plugin": "latest",
37
31
  "@tanstack/store": "latest",
38
32
  "@unpic/react": "^1.0.2",
39
33
  "class-variance-authority": "^0.7.1",
@@ -43,7 +37,7 @@
43
37
  "i18next-browser-languagedetector": "^8.2.1",
44
38
  "i18next-chained-backend": "^5.0.4",
45
39
  "i18next-resources-to-backend": "^1.2.1",
46
- "lucide-react": "^1.17.0",
40
+ "lucide-react": "^1.21.0",
47
41
  "next-themes": "^0.4.6",
48
42
  "react": "^19.2.6",
49
43
  "react-color-palette": "^7.3.1",
@@ -54,20 +48,27 @@
54
48
  "react-resizable-panels": "^4.11.2",
55
49
  "rehype-raw": "^7.0.0",
56
50
  "remark-gfm": "^4.0.1",
57
- "shadcn": "^4.10.0",
51
+ "shadcn": "^4.11.0",
58
52
  "shade-generator": "^1.2.7",
59
53
  "sonner": "^2.0.7",
60
54
  "tailwind-animations": "^1.0.1",
61
55
  "tailwind-merge": "^3.6.0",
62
56
  "tailwindcss": "^4.3.0",
63
57
  "tw-animate-css": "^1.4.0",
64
- "vaul": "^1.1.2"
58
+ "vaul": "^1.1.2",
59
+ "zod": "^4.4.3"
65
60
  },
66
61
  "devDependencies": {
67
62
  "@assetpack/core": "^1.7.0",
68
63
  "@biomejs/biome": "latest",
69
64
  "@tailwindcss/typography": "^0.5.19",
70
65
  "@tanstack/devtools-vite": "latest",
66
+ "@tanstack/react-devtools": "^0.10.7",
67
+ "@tanstack/react-hotkeys-devtools": "^0.7.0",
68
+ "@tanstack/react-pacer-devtools": "^0.7.1",
69
+ "@tanstack/react-query-devtools": "latest",
70
+ "@tanstack/react-router-devtools": "latest",
71
+ "@tanstack/router-plugin": "latest",
71
72
  "@types/node": "^25.9.1",
72
73
  "@types/react": "^19.2.15",
73
74
  "@types/react-dom": "^19.2.3",
@@ -1,25 +1,25 @@
1
- import { routeTree } from "@/routeTree.gen";
2
- import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
- import { createRouter, RouterProvider } from "@tanstack/react-router";
4
-
5
- const queryClient = new QueryClient();
6
- const router = createRouter({
7
- routeTree,
8
- defaultPreload: "intent",
9
- scrollRestoration: true,
10
- context: { queryClient },
11
- });
12
-
13
- declare module "@tanstack/react-router" {
14
- interface Register {
15
- router: typeof router;
16
- }
17
- }
18
-
19
- export default function App() {
20
- return (
21
- <QueryClientProvider client={queryClient}>
22
- <RouterProvider router={router} />
23
- </QueryClientProvider>
24
- );
25
- }
1
+ import { routeTree } from "@/routeTree.gen";
2
+ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
+ import { createRouter, RouterProvider } from "@tanstack/react-router";
4
+
5
+ const queryClient = new QueryClient();
6
+ const router = createRouter({
7
+ routeTree,
8
+ defaultPreload: "intent",
9
+ scrollRestoration: true,
10
+ context: { queryClient },
11
+ });
12
+
13
+ declare module "@tanstack/react-router" {
14
+ interface Register {
15
+ router: typeof router;
16
+ }
17
+ }
18
+
19
+ export default function App() {
20
+ return (
21
+ <QueryClientProvider client={queryClient}>
22
+ <RouterProvider router={router} />
23
+ </QueryClientProvider>
24
+ );
25
+ }
@@ -1,7 +1,5 @@
1
1
  import generatedManifestJson from "@/assets/manifest.gen.json";
2
2
  import { AUDIO_BUNDLE_NAME } from "@/constants";
3
- import { secondPart } from "@/content/labels/second.label";
4
- import { startLabel } from "@/content/labels/start.label";
5
3
  import type { FileRouteTypes } from "@/routeTree.gen";
6
4
  import type { AssetsManifest } from "@drincs/pixi-vn";
7
5
 
@@ -37,7 +35,7 @@ export const manifest: AssetsManifest = {
37
35
  },
38
36
  // labels
39
37
  {
40
- name: startLabel.id,
38
+ name: "start",
41
39
  assets: [
42
40
  {
43
41
  alias: "bg01-hallway",
@@ -46,7 +44,7 @@ export const manifest: AssetsManifest = {
46
44
  ],
47
45
  },
48
46
  {
49
- name: secondPart.id,
47
+ name: "second_part",
50
48
  assets: [
51
49
  {
52
50
  alias: "bg02-dorm",
@@ -1 +1,4 @@
1
- []
1
+ [
2
+ "/ink-json/second_part.gen.json",
3
+ "/ink-json/start.gen.json"
4
+ ]
@@ -0,0 +1,25 @@
1
+ import { TanStackDevtools } from "@tanstack/react-devtools";
2
+ import { hotkeysDevtoolsPlugin } from "@tanstack/react-hotkeys-devtools";
3
+ import { ReactQueryDevtoolsPanel } from "@tanstack/react-query-devtools";
4
+ import { TanStackRouterDevtoolsPanel } from "@tanstack/react-router-devtools";
5
+
6
+ export default function DevDevtools() {
7
+ return (
8
+ <TanStackDevtools
9
+ config={{
10
+ position: "bottom-right",
11
+ }}
12
+ plugins={[
13
+ {
14
+ name: "UI screens",
15
+ render: <TanStackRouterDevtoolsPanel />,
16
+ },
17
+ { ...hotkeysDevtoolsPlugin(), name: "Hotkeys" },
18
+ {
19
+ name: "UI cache",
20
+ render: <ReactQueryDevtoolsPanel />,
21
+ },
22
+ ]}
23
+ />
24
+ );
25
+ }
@@ -15,7 +15,7 @@ import { useQueryNarrativeHistory } from "@/lib/query/narration-query";
15
15
  import { cn } from "@/lib/utils";
16
16
  import { useDebouncedValue } from "@tanstack/react-pacer";
17
17
  import { Check, Search } from "lucide-react";
18
- import { useState } from "react";
18
+ import { useEffect, useRef, useState } from "react";
19
19
  import { useTranslation } from "react-i18next";
20
20
  import Markdown from "react-markdown";
21
21
  import rehypeRaw from "rehype-raw";
@@ -33,80 +33,96 @@ function HistoryItemAvatar({ icon, character }: { icon?: string; character: stri
33
33
 
34
34
  export function HistoryList({ searchString }: { searchString?: string }) {
35
35
  const { data = [] } = useQueryNarrativeHistory({ searchString });
36
+ const bottomRef = useRef<HTMLDivElement>(null);
37
+
38
+ useEffect(() => {
39
+ if (data.length > 0) {
40
+ bottomRef.current?.scrollIntoView();
41
+ }
42
+ }, [data]);
36
43
 
37
44
  return (
38
- <ItemGroup>
39
- {data.map((item, index) => {
40
- const key = `${item.character ?? "unknown"}-${item.text}-${index}`;
41
- return (
42
- <Item key={key} variant="outline">
43
- {item.character && (
44
- <ItemMedia variant="image">
45
- <HistoryItemAvatar icon={item.icon} character={item.character} />
46
- </ItemMedia>
47
- )}
48
- <ItemContent
49
- className={!item.character ? "items-center text-center" : undefined}
50
- >
51
- {item.character && <ItemTitle>{item.character}</ItemTitle>}
52
- <Markdown
53
- remarkPlugins={[remarkGfm]}
54
- rehypePlugins={[rehypeRaw]}
55
- components={{
56
- p: ({ children, id }) => (
57
- <p key={id} className="m-0 text-sm text-muted-foreground">
58
- {children}
59
- </p>
60
- ),
61
- }}
45
+ <>
46
+ <ItemGroup>
47
+ {data.map((item, index) => {
48
+ const key = `${item.character ?? "unknown"}-${item.text}-${index}`;
49
+ return (
50
+ <Item key={key} variant="outline">
51
+ {item.character && (
52
+ <ItemMedia variant="image">
53
+ <HistoryItemAvatar
54
+ icon={item.icon}
55
+ character={item.character}
56
+ />
57
+ </ItemMedia>
58
+ )}
59
+ <ItemContent
60
+ className={!item.character ? "items-center text-center" : undefined}
62
61
  >
63
- {item.text}
64
- </Markdown>
65
- </ItemContent>
66
- {(item.choices?.some((c) => !c.hidden) || item.inputValue) && (
67
- <ItemFooter className="flex-wrap justify-start gap-1.5">
68
- {item.choices?.map((choice) => {
69
- const choiceKey = `${choice.text}-${choice.isResponse ? "1" : "0"}-${choice.hidden ? "1" : "0"}`;
70
- if (choice.hidden) {
71
- return null;
72
- }
73
- if (choice.isResponse) {
62
+ {item.character && <ItemTitle>{item.character}</ItemTitle>}
63
+ <Markdown
64
+ remarkPlugins={[remarkGfm]}
65
+ rehypePlugins={[rehypeRaw]}
66
+ components={{
67
+ p: ({ children, id }) => (
68
+ <p
69
+ key={id}
70
+ className="m-0 text-sm text-muted-foreground"
71
+ >
72
+ {children}
73
+ </p>
74
+ ),
75
+ }}
76
+ >
77
+ {item.text}
78
+ </Markdown>
79
+ </ItemContent>
80
+ {(item.choices?.some((c) => !c.hidden) || item.inputValue) && (
81
+ <ItemFooter className="flex-wrap justify-center gap-1.5">
82
+ {item.choices?.map((choice) => {
83
+ const choiceKey = `${choice.text}-${choice.isResponse ? "1" : "0"}-${choice.hidden ? "1" : "0"}`;
84
+ if (choice.hidden) {
85
+ return null;
86
+ }
87
+ if (choice.isResponse) {
88
+ return (
89
+ <Kbd
90
+ key={`choices-success-${choiceKey}`}
91
+ className={cn(
92
+ "h-auto border px-2 py-1",
93
+ "border-green-500/30 bg-green-500/10 text-green-700 dark:text-green-400",
94
+ )}
95
+ >
96
+ {choice.text}
97
+ <Check className="size-3" />
98
+ </Kbd>
99
+ );
100
+ }
74
101
  return (
75
102
  <Kbd
76
- key={`choices-success-${choiceKey}`}
103
+ key={`choices-${choiceKey}`}
77
104
  className={cn(
78
105
  "h-auto border px-2 py-1",
79
- "border-green-500/30 bg-green-500/10 text-green-700 dark:text-green-400",
106
+ "border-primary/30 bg-primary/10 text-primary",
80
107
  )}
81
108
  >
82
109
  {choice.text}
83
- <Check className="size-3" />
84
110
  </Kbd>
85
111
  );
86
- }
87
- return (
88
- <Kbd
89
- key={`choices-${choiceKey}`}
90
- className={cn(
91
- "h-auto border px-2 py-1",
92
- "border-primary/30 bg-primary/10 text-primary",
93
- )}
94
- >
95
- {choice.text}
112
+ })}
113
+ {item.inputValue && (
114
+ <Kbd className="h-auto px-2 py-1">
115
+ {item.inputValue.toString()}
96
116
  </Kbd>
97
- );
98
- })}
99
- {item.inputValue && (
100
- <Kbd className="h-auto px-2 py-1">
101
- {item.inputValue.toString()}
102
- </Kbd>
103
- )}
104
- </ItemFooter>
105
- )}
106
- </Item>
107
- );
108
- })}
109
- </ItemGroup>
117
+ )}
118
+ </ItemFooter>
119
+ )}
120
+ </Item>
121
+ );
122
+ })}
123
+ </ItemGroup>
124
+ <div ref={bottomRef} />
125
+ </>
110
126
  );
111
127
  }
112
128
 
@@ -1,10 +1,12 @@
1
1
  import { ChoiceMenu } from "@/components/menus/choice-menus";
2
2
  import { NarrationCards } from "@/components/screens/narration/narration-cards";
3
3
  import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/components/ui/resizable";
4
+ import { QuickTools } from "@/components/quick-tools";
4
5
  import { useQueryDialogue } from "@/lib/query/narration-query";
5
6
 
6
7
  export function NarrationScreen() {
7
8
  const { data: { animatedText, text } = {} } = useQueryDialogue();
9
+ const hasText = !!(animatedText || text);
8
10
 
9
11
  return (
10
12
  <div className="absolute flex h-full w-full flex-col">
@@ -13,17 +15,18 @@ export function NarrationScreen() {
13
15
  <ResizablePanel>
14
16
  <ChoiceMenu />
15
17
  </ResizablePanel>
16
- {(animatedText || text) && (
18
+ {hasText && (
17
19
  <div className="mx-4">
18
20
  <ResizableHandle />
19
21
  </div>
20
22
  )}
21
- {(animatedText || text) && (
23
+ {hasText && (
22
24
  <ResizablePanel defaultSize={"40%"}>
23
25
  <NarrationCards />
24
26
  </ResizablePanel>
25
27
  )}
26
28
  </ResizablePanelGroup>
29
+ {!hasText && <QuickTools />}
27
30
  </div>
28
31
  </div>
29
32
  );
@@ -1,7 +1,8 @@
1
+ import * as React from "react";
1
2
  import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
2
- import type * as React from "react";
3
- import { Button } from "@/components/ui/button";
3
+
4
4
  import { cn } from "@/lib/utils";
5
+ import { Button } from "@/components/ui/button";
5
6
 
6
7
  function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {
7
8
  return <AlertDialogPrimitive.Root data-slot="alert-dialog" {...props} />;
@@ -1,5 +1,5 @@
1
+ import * as React from "react";
1
2
  import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar";
2
- import type * as React from "react";
3
3
 
4
4
  import { cn } from "@/lib/utils";
5
5
 
@@ -88,4 +88,4 @@ function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">)
88
88
  );
89
89
  }
90
90
 
91
- export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
91
+ export { Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge };
@@ -1,8 +1,9 @@
1
- import { cn } from "@/lib/utils";
1
+ import * as React from "react";
2
2
  import { mergeProps } from "@base-ui/react/merge-props";
3
3
  import { useRender } from "@base-ui/react/use-render";
4
+
5
+ import { cn } from "@/lib/utils";
4
6
  import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
5
- import type * as React from "react";
6
7
 
7
8
  function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
8
9
  return (
@@ -93,10 +94,10 @@ function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span"
93
94
 
94
95
  export {
95
96
  Breadcrumb,
96
- BreadcrumbEllipsis,
97
+ BreadcrumbList,
97
98
  BreadcrumbItem,
98
99
  BreadcrumbLink,
99
- BreadcrumbList,
100
100
  BreadcrumbPage,
101
101
  BreadcrumbSeparator,
102
+ BreadcrumbEllipsis,
102
103
  };
@@ -1,9 +1,10 @@
1
- import { Separator } from "@/components/ui/separator";
2
- import { cn } from "@/lib/utils";
3
1
  import { mergeProps } from "@base-ui/react/merge-props";
4
2
  import { useRender } from "@base-ui/react/use-render";
5
3
  import { cva, type VariantProps } from "class-variance-authority";
6
4
 
5
+ import { cn } from "@/lib/utils";
6
+ import { Separator } from "@/components/ui/separator";
7
+
7
8
  const buttonGroupVariants = cva(
8
9
  "flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
9
10
  {
@@ -8,11 +8,11 @@ const buttonVariants = cva(
8
8
  {
9
9
  variants: {
10
10
  variant: {
11
- default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
11
+ default: "bg-primary text-primary-foreground hover:bg-primary/80",
12
12
  outline:
13
13
  "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
14
14
  secondary:
15
- "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
15
+ "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
16
16
  ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
17
17
  destructive:
18
18
  "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
@@ -1,4 +1,4 @@
1
- import type * as React from "react";
1
+ import * as React from "react";
2
2
 
3
3
  import { cn } from "@/lib/utils";
4
4
 
@@ -12,7 +12,7 @@ function Card({
12
12
  data-slot="card"
13
13
  data-size={size}
14
14
  className={cn(
15
- "group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
15
+ "group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
16
16
  className,
17
17
  )}
18
18
  {...props}
@@ -25,7 +25,7 @@ function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
25
25
  <div
26
26
  data-slot="card-header"
27
27
  className={cn(
28
- "group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",
28
+ "group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",
29
29
  className,
30
30
  )}
31
31
  {...props}
@@ -71,11 +71,7 @@ function CardAction({ className, ...props }: React.ComponentProps<"div">) {
71
71
 
72
72
  function CardContent({ className, ...props }: React.ComponentProps<"div">) {
73
73
  return (
74
- <div
75
- data-slot="card-content"
76
- className={cn("px-4 group-data-[size=sm]/card:px-3", className)}
77
- {...props}
78
- />
74
+ <div data-slot="card-content" className={cn("px-(--card-spacing)", className)} {...props} />
79
75
  );
80
76
  }
81
77
 
@@ -84,7 +80,7 @@ function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
84
80
  <div
85
81
  data-slot="card-footer"
86
82
  className={cn(
87
- "flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3",
83
+ "flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)",
88
84
  className,
89
85
  )}
90
86
  {...props}
@@ -92,4 +88,4 @@ function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
92
88
  );
93
89
  }
94
90
 
95
- export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
91
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };
@@ -1,8 +1,11 @@
1
- import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
2
- import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
1
+ "use client";
2
+
3
3
  import * as React from "react";
4
- import { Button } from "@/components/ui/button";
4
+ import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
5
+
5
6
  import { cn } from "@/lib/utils";
7
+ import { Button } from "@/components/ui/button";
8
+ import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
6
9
 
7
10
  type CarouselApi = UseEmblaCarouselType[1];
8
11
  type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
@@ -177,7 +180,7 @@ function CarouselPrevious({
177
180
  className={cn(
178
181
  "absolute touch-manipulation rounded-full",
179
182
  orientation === "horizontal"
180
- ? "top-1/2 -left-12 -translate-y-1/2"
183
+ ? "inset-y-0 -left-12 my-auto"
181
184
  : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
182
185
  className,
183
186
  )}
@@ -207,7 +210,7 @@ function CarouselNext({
207
210
  className={cn(
208
211
  "absolute touch-manipulation rounded-full",
209
212
  orientation === "horizontal"
210
- ? "top-1/2 -right-12 -translate-y-1/2"
213
+ ? "inset-y-0 -right-12 my-auto"
211
214
  : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
212
215
  className,
213
216
  )}
@@ -222,11 +225,11 @@ function CarouselNext({
222
225
  }
223
226
 
224
227
  export {
225
- Carousel,
226
228
  type CarouselApi,
229
+ Carousel,
227
230
  CarouselContent,
228
231
  CarouselItem,
229
- CarouselNext,
230
232
  CarouselPrevious,
233
+ CarouselNext,
231
234
  useCarousel,
232
235
  };
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import * as React from "react";
2
4
  import { Drawer as DrawerPrimitive } from "vaul";
3
5
 
@@ -1,8 +1,11 @@
1
- import { cva, type VariantProps } from "class-variance-authority";
1
+ "use client";
2
+
2
3
  import { useMemo } from "react";
4
+ import { cva, type VariantProps } from "class-variance-authority";
5
+
6
+ import { cn } from "@/lib/utils";
3
7
  import { Label } from "@/components/ui/label";
4
8
  import { Separator } from "@/components/ui/separator";
5
- import { cn } from "@/lib/utils";
6
9
 
7
10
  function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
8
11
  return (
@@ -111,7 +114,7 @@ function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
111
114
  <div
112
115
  data-slot="field-label"
113
116
  className={cn(
114
- "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
117
+ "flex w-fit items-center gap-2 text-sm font-medium group-data-[disabled=true]/field:opacity-50",
115
118
  className,
116
119
  )}
117
120
  {...props}
@@ -214,13 +217,13 @@ function FieldError({
214
217
 
215
218
  export {
216
219
  Field,
217
- FieldContent,
220
+ FieldLabel,
218
221
  FieldDescription,
219
222
  FieldError,
220
223
  FieldGroup,
221
- FieldLabel,
222
224
  FieldLegend,
223
225
  FieldSeparator,
224
226
  FieldSet,
227
+ FieldContent,
225
228
  FieldTitle,
226
229
  };
@@ -1,9 +1,10 @@
1
+ import * as React from "react";
1
2
  import { cva, type VariantProps } from "class-variance-authority";
2
- import type * as React from "react";
3
+
4
+ import { cn } from "@/lib/utils";
3
5
  import { Button } from "@/components/ui/button";
4
6
  import { Input } from "@/components/ui/input";
5
7
  import { Textarea } from "@/components/ui/textarea";
6
- import { cn } from "@/lib/utils";
7
8
 
8
9
  function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
9
10
  return (
@@ -138,7 +139,7 @@ export {
138
139
  InputGroup,
139
140
  InputGroupAddon,
140
141
  InputGroupButton,
141
- InputGroupInput,
142
142
  InputGroupText,
143
+ InputGroupInput,
143
144
  InputGroupTextarea,
144
145
  };
@@ -1,5 +1,5 @@
1
+ import * as React from "react";
1
2
  import { Input as InputPrimitive } from "@base-ui/react/input";
2
- import type * as React from "react";
3
3
 
4
4
  import { cn } from "@/lib/utils";
5
5