@opencode-ai/ui 0.0.0-dev-202608201855 → 0.0.0-dev-17750

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 (285) hide show
  1. package/dist/actions/button/button.d.ts +10 -0
  2. package/dist/actions/icon-button/icon-button.d.ts +11 -0
  3. package/dist/actions/split-button/split-button.d.ts +5 -0
  4. package/dist/components/card.d.ts +1 -1
  5. package/dist/components/list.d.ts +1 -1
  6. package/dist/components/scroll-view.d.ts +3 -3
  7. package/dist/context/i18n.d.ts +10 -7
  8. package/dist/{components → data-display/accordion}/accordion.d.ts +6 -6
  9. package/dist/{v2/components/avatar-v2.d.ts → data-display/avatar/avatar.d.ts} +1 -1
  10. package/dist/data-display/badge/badge.d.ts +7 -0
  11. package/dist/{components → data-display/diff-changes}/diff-changes.d.ts +2 -1
  12. package/dist/data-display/keybind/keybind.d.ts +7 -0
  13. package/dist/{v2/components/line-comment-v2.d.ts → data-display/line-comment/line-comment.d.ts} +9 -9
  14. package/dist/{v2/components/project-avatar-v2.d.ts → data-display/project-avatar/project-avatar.d.ts} +1 -1
  15. package/dist/feedback/loader/loader.d.ts +3 -0
  16. package/dist/{components → feedback/progress-circle}/progress-circle.d.ts +2 -0
  17. package/dist/feedback/toast/toast.d.ts +57 -0
  18. package/dist/{components → forms/checkbox}/checkbox.d.ts +2 -2
  19. package/dist/{v2/components/field-v2.d.ts → forms/field/field.d.ts} +4 -10
  20. package/dist/forms/radio/radio.d.ts +16 -0
  21. package/dist/{v2/components/select-v2.d.ts → forms/select/select.d.ts} +4 -6
  22. package/dist/{components → forms/switch}/switch.d.ts +4 -2
  23. package/dist/{v2/components/text-input-v2.d.ts → forms/text-input/text-input.d.ts} +3 -3
  24. package/dist/forms/textarea/textarea.d.ts +7 -0
  25. package/dist/i18n/ar.d.ts +0 -2
  26. package/dist/i18n/bg.d.ts +0 -2
  27. package/dist/i18n/br.d.ts +0 -2
  28. package/dist/i18n/bs.d.ts +0 -2
  29. package/dist/i18n/da.d.ts +0 -2
  30. package/dist/i18n/de.d.ts +0 -2
  31. package/dist/i18n/en.d.ts +209 -1
  32. package/dist/i18n/es.d.ts +0 -2
  33. package/dist/i18n/fr.d.ts +0 -2
  34. package/dist/i18n/he.d.ts +197 -0
  35. package/dist/i18n/ja.d.ts +0 -2
  36. package/dist/i18n/km.d.ts +0 -2
  37. package/dist/i18n/ko.d.ts +0 -2
  38. package/dist/i18n/lo.d.ts +0 -2
  39. package/dist/i18n/mk.d.ts +0 -2
  40. package/dist/i18n/mn.d.ts +0 -2
  41. package/dist/i18n/my.d.ts +0 -2
  42. package/dist/i18n/pl.d.ts +0 -2
  43. package/dist/i18n/ru.d.ts +0 -2
  44. package/dist/i18n/sr.d.ts +0 -2
  45. package/dist/i18n/tg.d.ts +0 -2
  46. package/dist/i18n/th.d.ts +0 -2
  47. package/dist/i18n/tr.d.ts +0 -2
  48. package/dist/i18n/zh.d.ts +0 -2
  49. package/dist/i18n/zht.d.ts +0 -2
  50. package/dist/{components/icon.d.ts → icons/icon/additional-icons.d.ts} +8 -8
  51. package/dist/{v2/components → icons/icon}/icon.d.ts +16 -1
  52. package/dist/layout/divider/divider.d.ts +5 -0
  53. package/dist/navigation/menu/menu.d.ts +59 -0
  54. package/dist/{v2/components/segmented-control-v2.d.ts → navigation/segmented-control/segmented-control.d.ts} +5 -5
  55. package/dist/{components → navigation/tabs}/tabs.d.ts +15 -8
  56. package/dist/{v2/components/dialog-v2.d.ts → overlays/dialog/dialog.d.ts} +1 -2
  57. package/dist/overlays/tooltip/tooltip.d.ts +14 -0
  58. package/dist/{components → typography/text-shimmer}/text-shimmer.d.ts +1 -0
  59. package/dist/typography/wordmark/wordmark.d.ts +2 -0
  60. package/package.json +131 -13
  61. package/src/{v2/components/button-v2.tsx → actions/button/button.tsx} +8 -8
  62. package/src/actions/icon-button/icon-button.tsx +32 -0
  63. package/src/{v2/components/split-button-v2.css → actions/split-button/split-button.css} +1 -6
  64. package/src/{v2/components/split-button-v2.tsx → actions/split-button/split-button.tsx} +4 -4
  65. package/src/components/animated-number.css +29 -11
  66. package/src/components/animated-number.tsx +2 -2
  67. package/src/components/card.css +2 -23
  68. package/src/components/card.tsx +4 -4
  69. package/src/components/collapsible.tsx +1 -1
  70. package/src/components/image-preview.tsx +3 -2
  71. package/src/components/list.css +5 -5
  72. package/src/components/list.tsx +7 -5
  73. package/src/components/popover.tsx +3 -2
  74. package/src/components/provider-icon.tsx +1 -1
  75. package/src/components/scroll-view.tsx +5 -20
  76. package/src/components/sticky-accordion-header.tsx +1 -1
  77. package/src/components/text-field.tsx +12 -4
  78. package/src/context/i18n.tsx +17 -14
  79. package/src/{components → data-display/accordion}/accordion.css +1 -26
  80. package/src/{components → data-display/accordion}/accordion.tsx +14 -14
  81. package/src/{v2/components/avatar-v2.tsx → data-display/avatar/avatar.tsx} +1 -1
  82. package/src/{v2/components/badge-v2.css → data-display/badge/badge.css} +19 -0
  83. package/src/{v2/components/badge-v2.tsx → data-display/badge/badge.tsx} +6 -4
  84. package/src/{components → data-display/diff-changes}/diff-changes.css +22 -19
  85. package/src/{v2/components/diff-changes-v2.tsx → data-display/diff-changes/diff-changes.tsx} +7 -2
  86. package/src/{v2/components/keybind-v2.css → data-display/keybind/keybind.css} +1 -1
  87. package/src/{v2/components/keybind-v2.tsx → data-display/keybind/keybind.tsx} +3 -3
  88. package/src/{v2/components/line-comment-v2.tsx → data-display/line-comment/line-comment.tsx} +17 -15
  89. package/src/{v2/components/project-avatar-v2.tsx → data-display/project-avatar/project-avatar.tsx} +1 -1
  90. package/src/{v2/components/loader-v2.tsx → feedback/loader/loader.tsx} +2 -2
  91. package/src/feedback/progress-circle/progress-circle.css +28 -0
  92. package/src/feedback/progress-circle/progress-circle.tsx +64 -0
  93. package/src/{v2/components/toast-v2.tsx → feedback/toast/toast.tsx} +60 -58
  94. package/src/{components → forms/checkbox}/checkbox.css +1 -7
  95. package/src/{components → forms/checkbox}/checkbox.tsx +13 -13
  96. package/src/{v2/components/field-v2.tsx → forms/field/field.tsx} +9 -11
  97. package/src/{v2/components/radio-v2.tsx → forms/radio/radio.tsx} +30 -20
  98. package/src/{v2/components/select-v2.css → forms/select/select.css} +2 -8
  99. package/src/{v2/components/select-v2.tsx → forms/select/select.tsx} +38 -32
  100. package/src/{v2/components/switch-v2.css → forms/switch/switch.css} +110 -0
  101. package/src/forms/switch/switch.tsx +34 -0
  102. package/src/{v2/components/text-input-v2.tsx → forms/text-input/text-input.tsx} +4 -4
  103. package/src/{v2/components/textarea-v2.tsx → forms/textarea/textarea.tsx} +3 -3
  104. package/src/hooks/create-auto-scroll.tsx +20 -0
  105. package/src/i18n/am.ts +0 -2
  106. package/src/i18n/ar.ts +0 -2
  107. package/src/i18n/az.ts +0 -2
  108. package/src/i18n/bg.ts +0 -2
  109. package/src/i18n/bn.ts +0 -2
  110. package/src/i18n/br.ts +0 -2
  111. package/src/i18n/bs.ts +0 -2
  112. package/src/i18n/ca.ts +0 -2
  113. package/src/i18n/cs.ts +0 -2
  114. package/src/i18n/da.ts +0 -2
  115. package/src/i18n/de.ts +0 -2
  116. package/src/i18n/dv.ts +0 -2
  117. package/src/i18n/dz.ts +0 -2
  118. package/src/i18n/el.ts +0 -2
  119. package/src/i18n/en.ts +18 -4
  120. package/src/i18n/es.ts +0 -2
  121. package/src/i18n/et.ts +0 -2
  122. package/src/i18n/fa.ts +0 -2
  123. package/src/i18n/fi.ts +0 -2
  124. package/src/i18n/fo.ts +0 -2
  125. package/src/i18n/fr.ts +0 -2
  126. package/src/i18n/he.ts +199 -0
  127. package/src/i18n/hi.ts +0 -2
  128. package/src/i18n/hr.ts +0 -2
  129. package/src/i18n/hu.ts +0 -2
  130. package/src/i18n/hy.ts +0 -2
  131. package/src/i18n/id.ts +0 -2
  132. package/src/i18n/is.ts +0 -2
  133. package/src/i18n/it.ts +0 -2
  134. package/src/i18n/ja.ts +0 -2
  135. package/src/i18n/ka.ts +0 -2
  136. package/src/i18n/km.ts +0 -2
  137. package/src/i18n/ko.ts +0 -2
  138. package/src/i18n/lo.ts +0 -2
  139. package/src/i18n/lt.ts +0 -2
  140. package/src/i18n/lv.ts +0 -2
  141. package/src/i18n/mk.ts +0 -2
  142. package/src/i18n/mn.ts +0 -2
  143. package/src/i18n/ms.ts +0 -2
  144. package/src/i18n/my.ts +0 -2
  145. package/src/i18n/ne.ts +0 -2
  146. package/src/i18n/nl.ts +0 -2
  147. package/src/i18n/no.ts +0 -2
  148. package/src/i18n/pa.ts +0 -2
  149. package/src/i18n/pl.ts +0 -2
  150. package/src/i18n/ro.ts +0 -2
  151. package/src/i18n/ru.ts +0 -2
  152. package/src/i18n/si.ts +0 -2
  153. package/src/i18n/sk.ts +0 -2
  154. package/src/i18n/sl.ts +0 -2
  155. package/src/i18n/sq.ts +0 -2
  156. package/src/i18n/sr.ts +0 -2
  157. package/src/i18n/sv.ts +0 -2
  158. package/src/i18n/tg.ts +0 -2
  159. package/src/i18n/th.ts +0 -2
  160. package/src/i18n/tk.ts +0 -2
  161. package/src/i18n/tr.ts +0 -2
  162. package/src/i18n/uk.ts +0 -2
  163. package/src/i18n/ur.ts +0 -2
  164. package/src/i18n/uz.ts +0 -2
  165. package/src/i18n/vi.ts +0 -2
  166. package/src/i18n/zh.ts +0 -2
  167. package/src/i18n/zht.ts +0 -2
  168. package/src/{components/icon.tsx → icons/icon/additional-icons.ts} +8 -74
  169. package/src/icons/icon/icon.css +3 -0
  170. package/src/{v2/components → icons/icon}/icon.tsx +42 -9
  171. package/src/{v2/components/divider-v2.tsx → layout/divider/divider.tsx} +3 -3
  172. package/src/{v2/components/menu-v2.css → navigation/menu/menu.css} +121 -0
  173. package/src/{v2/components/menu-v2.tsx → navigation/menu/menu.tsx} +96 -32
  174. package/src/{v2/components/segmented-control-v2.tsx → navigation/segmented-control/segmented-control.tsx} +9 -8
  175. package/src/{v2/components/tabs-v2.css → navigation/tabs/tabs-current.css} +24 -9
  176. package/src/{components → navigation/tabs}/tabs.css +39 -229
  177. package/src/navigation/tabs/tabs.tsx +194 -0
  178. package/src/{v2/components/dialog-v2.css → overlays/dialog/dialog.css} +3 -0
  179. package/src/{v2/components/dialog-v2.tsx → overlays/dialog/dialog.tsx} +11 -13
  180. package/src/{v2/components/tooltip-v2.css → overlays/tooltip/tooltip.css} +26 -0
  181. package/src/{v2/components/tooltip-v2.tsx → overlays/tooltip/tooltip.tsx} +18 -14
  182. package/src/styles/index.css +4 -20
  183. package/src/styles/tailwind/index.css +15 -1
  184. package/src/{v2/styles → styles/tokens}/theme.css +0 -12
  185. package/src/theme/context.tsx +19 -11
  186. package/src/theme/themes/oc-2.json +1 -1
  187. package/src/{components → typography/text-shimmer}/text-shimmer.css +2 -1
  188. package/src/{components → typography/text-shimmer}/text-shimmer.tsx +1 -0
  189. package/src/{v2/components/wordmark-v2.tsx → typography/wordmark/wordmark.tsx} +1 -1
  190. package/dist/components/avatar.d.ts +0 -9
  191. package/dist/components/button.d.ts +0 -9
  192. package/dist/components/dialog.d.ts +0 -12
  193. package/dist/components/dropdown-menu.d.ts +0 -80
  194. package/dist/components/icon-button.d.ts +0 -10
  195. package/dist/components/keybind.d.ts +0 -6
  196. package/dist/components/radio-group.d.ts +0 -16
  197. package/dist/components/select.d.ts +0 -21
  198. package/dist/components/tag.d.ts +0 -5
  199. package/dist/components/toast.d.ts +0 -56
  200. package/dist/components/tooltip.d.ts +0 -17
  201. package/dist/v2/components/accordion-v2.d.ts +0 -26
  202. package/dist/v2/components/badge-v2.d.ts +0 -6
  203. package/dist/v2/components/button-v2.d.ts +0 -10
  204. package/dist/v2/components/checkbox-v2.d.ts +0 -10
  205. package/dist/v2/components/diff-changes-v2.d.ts +0 -11
  206. package/dist/v2/components/divider-v2.d.ts +0 -5
  207. package/dist/v2/components/icon-button-v2.d.ts +0 -11
  208. package/dist/v2/components/inline-input-v2.d.ts +0 -21
  209. package/dist/v2/components/keybind-v2.d.ts +0 -7
  210. package/dist/v2/components/loader-v2.d.ts +0 -3
  211. package/dist/v2/components/menu-v2.d.ts +0 -52
  212. package/dist/v2/components/progress-circle-v2.d.ts +0 -8
  213. package/dist/v2/components/radio-v2.d.ts +0 -16
  214. package/dist/v2/components/split-button-v2.d.ts +0 -5
  215. package/dist/v2/components/switch-v2.d.ts +0 -7
  216. package/dist/v2/components/tabs-v2.d.ts +0 -34
  217. package/dist/v2/components/text-shimmer-v2.d.ts +0 -9
  218. package/dist/v2/components/textarea-v2.d.ts +0 -7
  219. package/dist/v2/components/toast-v2.d.ts +0 -57
  220. package/dist/v2/components/tooltip-v2.d.ts +0 -13
  221. package/dist/v2/components/wordmark-v2.d.ts +0 -2
  222. package/src/components/avatar.css +0 -49
  223. package/src/components/avatar.tsx +0 -55
  224. package/src/components/button.css +0 -194
  225. package/src/components/button.tsx +0 -33
  226. package/src/components/dialog.css +0 -181
  227. package/src/components/dialog.tsx +0 -72
  228. package/src/components/diff-changes.tsx +0 -115
  229. package/src/components/dropdown-menu.css +0 -135
  230. package/src/components/dropdown-menu.tsx +0 -308
  231. package/src/components/icon-button.css +0 -181
  232. package/src/components/icon-button.tsx +0 -29
  233. package/src/components/icon.css +0 -39
  234. package/src/components/keybind.css +0 -18
  235. package/src/components/keybind.tsx +0 -20
  236. package/src/components/progress-circle.css +0 -16
  237. package/src/components/progress-circle.tsx +0 -64
  238. package/src/components/radio-group.css +0 -187
  239. package/src/components/radio-group.tsx +0 -83
  240. package/src/components/select.css +0 -201
  241. package/src/components/select.tsx +0 -174
  242. package/src/components/switch.css +0 -136
  243. package/src/components/switch.tsx +0 -29
  244. package/src/components/tabs.tsx +0 -126
  245. package/src/components/tag.css +0 -37
  246. package/src/components/tag.tsx +0 -22
  247. package/src/components/toast.css +0 -236
  248. package/src/components/toast.tsx +0 -185
  249. package/src/components/tooltip.css +0 -74
  250. package/src/components/tooltip.tsx +0 -163
  251. package/src/v2/components/accordion-v2.css +0 -139
  252. package/src/v2/components/accordion-v2.tsx +0 -86
  253. package/src/v2/components/checkbox-v2.css +0 -184
  254. package/src/v2/components/checkbox-v2.tsx +0 -65
  255. package/src/v2/components/diff-changes-v2.css +0 -26
  256. package/src/v2/components/icon-button-v2.tsx +0 -37
  257. package/src/v2/components/inline-input-v2.css +0 -225
  258. package/src/v2/components/inline-input-v2.tsx +0 -107
  259. package/src/v2/components/progress-circle-v2.css +0 -13
  260. package/src/v2/components/progress-circle-v2.tsx +0 -52
  261. package/src/v2/components/switch-v2.tsx +0 -28
  262. package/src/v2/components/tabs-v2.tsx +0 -149
  263. package/src/v2/components/text-shimmer-v2.css +0 -125
  264. package/src/v2/components/text-shimmer-v2.tsx +0 -63
  265. /package/dist/{components → forms/inline-input}/inline-input.d.ts +0 -0
  266. /package/dist/{v2/components → navigation}/tab-state-indicator.d.ts +0 -0
  267. /package/src/{v2/components/button-v2.css → actions/button/button.css} +0 -0
  268. /package/src/{v2/components/icon-button-v2.css → actions/icon-button/icon-button.css} +0 -0
  269. /package/src/{v2/components/avatar-v2.css → data-display/avatar/avatar.css} +0 -0
  270. /package/src/{v2/components/line-comment-v2.css → data-display/line-comment/line-comment.css} +0 -0
  271. /package/src/{v2/components/project-avatar-v2.css → data-display/project-avatar/project-avatar.css} +0 -0
  272. /package/src/{v2/components/loader-v2.css → feedback/loader/loader.css} +0 -0
  273. /package/src/{v2/components/toast-v2.css → feedback/toast/toast.css} +0 -0
  274. /package/src/{v2/components/field-v2.css → forms/field/field.css} +0 -0
  275. /package/src/{components → forms/inline-input}/inline-input.css +0 -0
  276. /package/src/{components → forms/inline-input}/inline-input.tsx +0 -0
  277. /package/src/{v2/components/radio-v2.css → forms/radio/radio.css} +0 -0
  278. /package/src/{v2/components/text-input-v2.css → forms/text-input/text-input.css} +0 -0
  279. /package/src/{v2/components/textarea-v2.css → forms/textarea/textarea.css} +0 -0
  280. /package/src/{v2/components/divider-v2.css → layout/divider/divider.css} +0 -0
  281. /package/src/{v2/components/segmented-control-v2.css → navigation/segmented-control/segmented-control.css} +0 -0
  282. /package/src/{v2/components → navigation}/tab-state-indicator.tsx +0 -0
  283. /package/src/{v2/components/file-tree-v2.css → styles/file-tree.css} +0 -0
  284. /package/src/{v2/styles → styles/tokens}/colors.css +0 -0
  285. /package/src/{v2/styles/tailwind.css → styles/tokens/index.css} +0 -0
@@ -0,0 +1,10 @@
1
+ import { Root } from "@kobalte/core/button";
2
+ import { type ComponentProps } from "solid-js";
3
+ import { type IconProps } from "@opencode-ai/ui/icon";
4
+ import "./button.css";
5
+ export interface ButtonProps extends ComponentProps<typeof Root>, Pick<ComponentProps<"button">, "class" | "classList" | "children"> {
6
+ size?: "small" | "normal" | "large";
7
+ variant?: "neutral" | "danger" | "warning" | "outline" | "contrast" | "ghost" | "ghost-muted" | "loading";
8
+ icon?: IconProps["name"];
9
+ }
10
+ export declare function Button(props: ButtonProps): import("solid-js").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { Root } from "@kobalte/core/button";
2
+ import { type ComponentProps } from "solid-js";
3
+ import { JSX } from "solid-js";
4
+ import "./icon-button.css";
5
+ export interface IconButtonProps extends ComponentProps<typeof Root>, Pick<ComponentProps<"button">, "class" | "classList"> {
6
+ icon?: JSX.Element;
7
+ size?: "small" | "normal" | "large";
8
+ variant?: "neutral" | "contrast" | "ghost" | "ghost-muted";
9
+ state?: "rest" | "hover" | "pressed";
10
+ }
11
+ export declare function IconButton(props: ComponentProps<"button"> & IconButtonProps): JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { type ComponentProps, type ParentProps } from "solid-js";
2
+ import "./split-button.css";
3
+ export declare function SplitButton(props: ParentProps<ComponentProps<"div">>): import("solid-js").JSX.Element;
4
+ export declare function SplitButtonAction(props: ComponentProps<"button">): import("solid-js").JSX.Element;
5
+ export declare function SplitButtonMenuTrigger(props: ComponentProps<"button">): import("solid-js").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { type ComponentProps } from "solid-js";
2
- import { type IconProps } from "./icon";
2
+ import { type IconProps } from "@opencode-ai/ui/icon";
3
3
  type Variant = "normal" | "error" | "warning" | "success" | "info";
4
4
  export interface CardProps extends ComponentProps<"div"> {
5
5
  variant?: Variant;
@@ -1,6 +1,6 @@
1
1
  import { type FilteredListProps } from "@opencode-ai/ui/hooks";
2
2
  import { type JSX } from "solid-js";
3
- import { type IconProps } from "./icon";
3
+ import { type IconProps } from "@opencode-ai/ui/icon";
4
4
  export interface ListSearchProps {
5
5
  placeholder?: string;
6
6
  autofocus?: boolean;
@@ -1,4 +1,4 @@
1
- import { type Accessor, type ComponentProps } from "solid-js";
1
+ import { type ComponentProps } from "solid-js";
2
2
  export type ScrollViewThumbVisibility = "hover" | "scroll";
3
3
  export interface ScrollViewProps extends ComponentProps<"div"> {
4
4
  viewportRef?: (el: HTMLDivElement) => void;
@@ -11,9 +11,9 @@ export interface ScrollViewProps extends ComponentProps<"div"> {
11
11
  * */
12
12
  thumbVisibility?: ScrollViewThumbVisibility;
13
13
  /** Mount the thumb into an external track. Scroll metrics still come from this ScrollView. */
14
- thumbContainer?: HTMLElement | Accessor<HTMLElement | undefined>;
14
+ thumbContainer?: HTMLElement;
15
15
  /** Element whose hover reveals the thumb. Defaults to the ScrollView root when unset. */
16
- thumbHoverTarget?: HTMLElement | Accessor<HTMLElement | undefined>;
16
+ thumbHoverTarget?: HTMLElement;
17
17
  }
18
18
  export declare const scrollKey: (event: Pick<KeyboardEvent, "key" | "altKey" | "ctrlKey" | "metaKey" | "shiftKey">) => "end" | "home" | "page-down" | "page-up" | "up" | "down" | undefined;
19
19
  export declare function canScrollKey(element: HTMLElement, key: NonNullable<ReturnType<typeof scrollKey>>): boolean;
@@ -1,16 +1,19 @@
1
1
  import { type Accessor, type ParentProps } from "solid-js";
2
- import { dict as en } from "../i18n/en";
3
- export type UiI18nKey = keyof typeof en;
4
- export declare const UI_PLURAL_KEYS: readonly ["ui.sessionTurn.diffs.changed", "ui.messagePart.context.read", "ui.messagePart.context.search", "ui.messagePart.context.list"];
5
- export type UiI18nPluralKey = (typeof UI_PLURAL_KEYS)[number];
6
- export type UiPluralCategory = "zero" | "one" | "two" | "few" | "many" | "other";
7
- export type UiI18nPluralLookupKey = `${UiI18nPluralKey}.${UiPluralCategory}`;
2
+ import type { Key, LocaleKey, PluralCategory, PluralKey, PluralLookupKey } from "../i18n/en";
3
+ export type UiI18nKey = Key;
4
+ export type UiI18nPluralKey = PluralKey;
5
+ export type UiPluralCategory = PluralCategory;
6
+ export type UiI18nPluralLookupKey = PluralLookupKey;
7
+ export type UiI18nLocaleKey = LocaleKey;
8
+ type UiTranslationKey<Value extends string> = Value extends UiI18nPluralLookupKey ? never : Value;
8
9
  export type UiI18nParams = Record<string, string | number | boolean>;
10
+ export type UiTranslate = <Value extends string>(key: UiTranslationKey<Value>, params?: UiI18nParams) => string;
9
11
  export type UiI18n = {
10
12
  locale: Accessor<string>;
11
13
  layoutLocale?: Accessor<string>;
12
- t: (key: UiI18nKey, params?: UiI18nParams) => string;
14
+ t: UiTranslate;
13
15
  plural: (key: UiI18nPluralKey, count: number, params?: UiI18nParams) => string;
16
+ pluralForm?: (key: UiI18nPluralKey, category: UiPluralCategory, params?: UiI18nParams) => string;
14
17
  };
15
18
  export declare function pluralCategory(locale: string, count: number): UiPluralCategory;
16
19
  export declare function pluralKey(key: UiI18nPluralKey, category: UiPluralCategory): UiI18nPluralLookupKey;
@@ -1,14 +1,14 @@
1
- import { Accordion as Kobalte } from "@kobalte/core/accordion";
1
+ import { Content, Header, Item, Root, Trigger } from "@kobalte/core/accordion";
2
2
  import type { ComponentProps, ParentProps } from "solid-js";
3
- export interface AccordionProps extends ComponentProps<typeof Kobalte> {
3
+ export interface AccordionProps extends ComponentProps<typeof Root> {
4
4
  }
5
- export interface AccordionItemProps extends ComponentProps<typeof Kobalte.Item> {
5
+ export interface AccordionItemProps extends ComponentProps<typeof Item> {
6
6
  }
7
- export interface AccordionHeaderProps extends ComponentProps<typeof Kobalte.Header> {
7
+ export interface AccordionHeaderProps extends ComponentProps<typeof Header> {
8
8
  }
9
- export interface AccordionTriggerProps extends ComponentProps<typeof Kobalte.Trigger> {
9
+ export interface AccordionTriggerProps extends ComponentProps<typeof Trigger> {
10
10
  }
11
- export interface AccordionContentProps extends ComponentProps<typeof Kobalte.Content> {
11
+ export interface AccordionContentProps extends ComponentProps<typeof Content> {
12
12
  }
13
13
  declare function AccordionRoot(props: AccordionProps): import("solid-js").JSX.Element;
14
14
  declare function AccordionItem(props: AccordionItemProps): import("solid-js").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { type ComponentProps } from "solid-js";
2
- import "./avatar-v2.css";
2
+ import "./avatar.css";
3
3
  export interface AvatarProps extends ComponentProps<"div"> {
4
4
  fallback: string;
5
5
  src?: string;
@@ -0,0 +1,7 @@
1
+ import { type ComponentProps } from "solid-js";
2
+ import "./badge.css";
3
+ export interface BadgeProps extends ComponentProps<"span"> {
4
+ appearance?: "standard" | "compact";
5
+ variant?: "neutral" | "accent";
6
+ }
7
+ export declare function Badge(props: BadgeProps): import("solid-js").JSX.Element;
@@ -1,5 +1,7 @@
1
+ import "./diff-changes.css";
1
2
  export declare function DiffChanges(props: {
2
3
  class?: string;
4
+ appearance?: "standard" | "compact";
3
5
  changes: {
4
6
  additions: number;
5
7
  deletions: number;
@@ -7,5 +9,4 @@ export declare function DiffChanges(props: {
7
9
  additions: number;
8
10
  deletions: number;
9
11
  }[];
10
- variant?: "default" | "bars";
11
12
  }): import("solid-js").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { type ComponentProps } from "solid-js";
2
+ import "./keybind.css";
3
+ export interface KeybindProps extends ComponentProps<"div"> {
4
+ keys: string[];
5
+ variant?: "neutral" | "ghost";
6
+ }
7
+ export declare function Keybind(props: KeybindProps): import("solid-js").JSX.Element;
@@ -1,20 +1,20 @@
1
1
  import { type ComponentProps, type JSX } from "solid-js";
2
- import "./line-comment-v2.css";
2
+ import "./line-comment.css";
3
3
  /** Horizontal “more” glyph for the display-card overflow control (Figma outline-dots). */
4
- export declare function LineCommentV2OverflowIcon(props: ComponentProps<"svg">): JSX.Element;
5
- export interface LineCommentV2Props extends ComponentProps<"div"> {
4
+ export declare function LineCommentOverflowIcon(props: ComponentProps<"svg">): JSX.Element;
5
+ export interface LineCommentProps extends ComponentProps<"div"> {
6
6
  /** Main comment body (text or rich content). */
7
7
  comment: JSX.Element;
8
8
  /** Line / selection context (e.g. “Comment on line 40”). */
9
9
  selection: JSX.Element;
10
- /** Typically an overflow menu trigger; use `LineCommentV2OverflowIcon` inside `line-comment-v2-overflow`. */
10
+ /** Typically an overflow menu trigger; use `LineCommentOverflowIcon` inside `line-comment-v2-overflow`. */
11
11
  actions?: JSX.Element;
12
12
  }
13
- export declare function LineCommentV2(props: LineCommentV2Props): JSX.Element;
14
- export type LineCommentEditorV2Mention = {
13
+ export declare function LineComment(props: LineCommentProps): JSX.Element;
14
+ export type LineCommentEditorMention = {
15
15
  items: (query: string) => string[] | Promise<string[]>;
16
16
  };
17
- export interface LineCommentEditorV2Props extends Omit<ComponentProps<"div">, "children" | "onInput" | "onSubmit"> {
17
+ export interface LineCommentEditorProps extends Omit<ComponentProps<"div">, "children" | "onInput" | "onSubmit"> {
18
18
  /** Visible field label above the textarea (default: “Comment”). */
19
19
  heading?: JSX.Element | string;
20
20
  value: string;
@@ -27,6 +27,6 @@ export interface LineCommentEditorV2Props extends Omit<ComponentProps<"div">, "c
27
27
  cancelLabel?: string;
28
28
  submitLabel?: string;
29
29
  autofocus?: boolean;
30
- mention?: LineCommentEditorV2Mention;
30
+ mention?: LineCommentEditorMention;
31
31
  }
32
- export declare function LineCommentEditorV2(props: LineCommentEditorV2Props): JSX.Element;
32
+ export declare function LineCommentEditor(props: LineCommentEditorProps): JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { type ComponentProps } from "solid-js";
2
- import "./project-avatar-v2.css";
2
+ import "./project-avatar.css";
3
3
  export declare const PROJECT_AVATAR_VARIANTS: readonly ["orange", "yellow", "cyan", "green", "red", "pink", "blue", "purple", "gray"];
4
4
  export type ProjectAvatarVariant = (typeof PROJECT_AVATAR_VARIANTS)[number];
5
5
  export type ProjectAvatarStyle = ProjectAvatarVariant | "outline";
@@ -0,0 +1,3 @@
1
+ import { type ComponentProps } from "solid-js";
2
+ import "./loader.css";
3
+ export declare function Loader(props: ComponentProps<"svg">): import("solid-js").JSX.Element;
@@ -1,6 +1,8 @@
1
1
  import { type ComponentProps } from "solid-js";
2
+ import "./progress-circle.css";
2
3
  export interface ProgressCircleProps extends Pick<ComponentProps<"svg">, "class" | "classList" | "style"> {
3
4
  percentage: number;
5
+ appearance?: "compact" | "indicator";
4
6
  size?: number;
5
7
  strokeWidth?: number;
6
8
  }
@@ -0,0 +1,57 @@
1
+ import { type ToasterProps } from "solid-sonner";
2
+ import type { ComponentProps, JSX } from "solid-js";
3
+ import "../../actions/button/button.css";
4
+ import "./toast.css";
5
+ export interface ToastRegionProps extends ToasterProps {
6
+ }
7
+ declare function ToastRegion(props: ToastRegionProps): JSX.Element;
8
+ export interface ToastRootComponentProps {
9
+ toastId: number;
10
+ children?: JSX.Element;
11
+ }
12
+ declare function ToastRoot(props: ToastRootComponentProps): JSX.Element;
13
+ declare function ToastIcon(props: ComponentProps<"div">): JSX.Element;
14
+ declare function ToastContent(props: ComponentProps<"div">): JSX.Element;
15
+ declare function ToastTitle(props: ComponentProps<"div">): JSX.Element;
16
+ declare function ToastDescription(props: ComponentProps<"div">): JSX.Element;
17
+ declare function ToastActions(props: ComponentProps<"div">): JSX.Element;
18
+ declare function ToastCloseButton(props: ComponentProps<"button">): JSX.Element;
19
+ export declare const Toast: typeof ToastRoot & {
20
+ Region: typeof ToastRegion;
21
+ Icon: typeof ToastIcon;
22
+ Content: typeof ToastContent;
23
+ Title: typeof ToastTitle;
24
+ Description: typeof ToastDescription;
25
+ Actions: typeof ToastActions;
26
+ CloseButton: typeof ToastCloseButton;
27
+ };
28
+ export declare const toaster: {
29
+ show(render: (props: {
30
+ toastId: number;
31
+ }) => JSX.Element, options?: {
32
+ duration?: number;
33
+ persistent?: boolean;
34
+ }): number;
35
+ dismiss(toastId?: number): string | number | undefined;
36
+ };
37
+ export interface ToastAction {
38
+ label: string;
39
+ variant?: "primary" | "secondary";
40
+ onClick: "dismiss" | (() => void);
41
+ }
42
+ export interface ToastOptions {
43
+ title?: string;
44
+ description?: string;
45
+ icon?: JSX.Element;
46
+ variant?: "default" | "success" | "error" | "loading";
47
+ duration?: number;
48
+ persistent?: boolean;
49
+ actions?: ToastAction[];
50
+ }
51
+ export declare function showToast(options: ToastOptions | string): number;
52
+ export interface ToastPromiseOptions<T, U = unknown> {
53
+ loading?: JSX.Element;
54
+ success?: (data: T) => JSX.Element;
55
+ error?: (error: U) => JSX.Element;
56
+ }
57
+ export {};
@@ -1,6 +1,6 @@
1
- import { Checkbox as Kobalte } from "@kobalte/core/checkbox";
1
+ import { Root } from "@kobalte/core/checkbox";
2
2
  import type { ComponentProps, JSX, ParentProps } from "solid-js";
3
- export interface CheckboxProps extends ParentProps<ComponentProps<typeof Kobalte>> {
3
+ export interface CheckboxProps extends ParentProps<ComponentProps<typeof Root>> {
4
4
  hideLabel?: boolean;
5
5
  description?: string;
6
6
  icon?: JSX.Element;
@@ -1,9 +1,9 @@
1
1
  import { type ComponentProps, type ParentProps } from "solid-js";
2
- import "./field-v2.css";
3
- export interface FieldV2Props extends ComponentProps<"div"> {
2
+ import "./field.css";
3
+ export interface FieldProps extends ComponentProps<"div"> {
4
4
  invalid?: boolean;
5
5
  }
6
- declare function FieldV2Root(props: ParentProps<FieldV2Props>): import("solid-js").JSX.Element;
6
+ declare function FieldRoot(props: ParentProps<FieldProps>): import("solid-js").JSX.Element;
7
7
  export interface FieldLabelProps extends ComponentProps<"label"> {
8
8
  /** When set, shows the info icon with a tooltip containing this text. */
9
9
  tooltip?: string;
@@ -13,13 +13,7 @@ declare function FieldPrefix(props: ParentProps<ComponentProps<"div">>): import(
13
13
  declare function FieldSuffix(props: ParentProps<ComponentProps<"div">>): import("solid-js").JSX.Element;
14
14
  /** Optional layout wrapper around the control. */
15
15
  declare function FieldControl(props: ParentProps<ComponentProps<"div">>): import("solid-js").JSX.Element;
16
- export declare const FieldV2: typeof FieldV2Root & {
17
- Label: typeof FieldLabel;
18
- Prefix: typeof FieldPrefix;
19
- Suffix: typeof FieldSuffix;
20
- Control: typeof FieldControl;
21
- };
22
- export declare const Field: typeof FieldV2Root & {
16
+ export declare const Field: typeof FieldRoot & {
23
17
  Label: typeof FieldLabel;
24
18
  Prefix: typeof FieldPrefix;
25
19
  Suffix: typeof FieldSuffix;
@@ -0,0 +1,16 @@
1
+ import { Item, Root } from "@kobalte/core/radio-group";
2
+ import { type JSX } from "solid-js";
3
+ import type { ComponentProps, ParentProps } from "solid-js";
4
+ import "./radio.css";
5
+ export interface RadioGroupProps extends ParentProps<ComponentProps<typeof Root>> {
6
+ label?: JSX.Element;
7
+ description?: JSX.Element;
8
+ hideLabel?: boolean;
9
+ }
10
+ export declare function RadioGroup(props: RadioGroupProps): JSX.Element;
11
+ export interface RadioItemProps extends ComponentProps<typeof Item> {
12
+ label: JSX.Element;
13
+ description?: JSX.Element;
14
+ hideLabel?: boolean;
15
+ }
16
+ export declare function RadioItem(props: RadioItemProps): JSX.Element;
@@ -1,7 +1,7 @@
1
- import { Select as Kobalte } from "@kobalte/core/select";
1
+ import { Root } from "@kobalte/core/select";
2
2
  import { type ComponentProps, type JSX } from "solid-js";
3
- import "./select-v2.css";
4
- export type SelectV2Props<T> = Omit<ComponentProps<typeof Kobalte<T, {
3
+ import "./select.css";
4
+ export type SelectProps<T> = Omit<ComponentProps<typeof Root<T, {
5
5
  category: string;
6
6
  options: T[];
7
7
  }>>, "value" | "onSelect" | "children" | "options" | "itemComponent" | "sectionComponent" | "defaultValue" | "multiple"> & {
@@ -14,11 +14,9 @@ export type SelectV2Props<T> = Omit<ComponentProps<typeof Kobalte<T, {
14
14
  groupBy?: (x: T) => string;
15
15
  onSelect?: (value: T | null) => void;
16
16
  onHighlight?: (value: T | undefined) => void | (() => void);
17
- /** `base` / `large` match text-input-v2; `inline` is a compact settings-row trigger. */
18
- appearance?: "base" | "large" | "inline";
19
17
  invalid?: boolean;
20
18
  numeric?: boolean;
21
19
  children?: (item: T) => JSX.Element;
22
20
  valueClass?: string;
23
21
  };
24
- export declare function SelectV2<T>(props: SelectV2Props<T>): JSX.Element;
22
+ export declare function Select<T>(props: SelectProps<T>): JSX.Element;
@@ -1,6 +1,8 @@
1
- import { Switch as Kobalte } from "@kobalte/core/switch";
1
+ import { Root } from "@kobalte/core/switch";
2
2
  import type { ComponentProps, ParentProps } from "solid-js";
3
- export interface SwitchProps extends ParentProps<ComponentProps<typeof Kobalte>> {
3
+ import "./switch.css";
4
+ export interface SwitchProps extends ParentProps<ComponentProps<typeof Root>> {
5
+ appearance?: "standard" | "compact";
4
6
  hideLabel?: boolean;
5
7
  description?: string;
6
8
  }
@@ -1,6 +1,6 @@
1
1
  import { type ComponentProps, type JSX } from "solid-js";
2
- import "./text-input-v2.css";
3
- export interface TextInputV2Props extends Omit<ComponentProps<"input">, "type"> {
2
+ import "./text-input.css";
3
+ export interface TextInputProps extends Omit<ComponentProps<"input">, "type"> {
4
4
  /** Icon or adornment shown before the field value. */
5
5
  leadingIcon?: JSX.Element;
6
6
  /** Show the trailing copy action. */
@@ -21,4 +21,4 @@ export interface TextInputV2Props extends Omit<ComponentProps<"input">, "type">
21
21
  appearance?: "base" | "large";
22
22
  type?: ComponentProps<"input">["type"];
23
23
  }
24
- export declare function TextInputV2(props: TextInputV2Props): JSX.Element;
24
+ export declare function TextInput(props: TextInputProps): JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { type ComponentProps } from "solid-js";
2
+ import "./textarea.css";
3
+ export interface TextareaProps extends ComponentProps<"textarea"> {
4
+ /** Error styling for the field and value text. */
5
+ invalid?: boolean;
6
+ }
7
+ export declare function Textarea(props: TextareaProps): import("solid-js").JSX.Element;
package/dist/i18n/ar.d.ts CHANGED
@@ -152,8 +152,6 @@ export declare const dict: {
152
152
  "ui.tool.websearch.provider": string;
153
153
  "ui.tool.shell": string;
154
154
  "ui.tool.patch": string;
155
- "ui.tool.todos": string;
156
- "ui.tool.todos.read": string;
157
155
  "ui.tool.questions": string;
158
156
  "ui.tool.questions.numbered": string;
159
157
  "ui.tool.agent": string;
package/dist/i18n/bg.d.ts CHANGED
@@ -141,8 +141,6 @@ export declare const dict: {
141
141
  "ui.tool.websearch.provider": string;
142
142
  "ui.tool.shell": string;
143
143
  "ui.tool.patch": string;
144
- "ui.tool.todos": string;
145
- "ui.tool.todos.read": string;
146
144
  "ui.tool.questions": string;
147
145
  "ui.tool.questions.numbered": string;
148
146
  "ui.tool.agent": string;
package/dist/i18n/br.d.ts CHANGED
@@ -140,8 +140,6 @@ export declare const dict: {
140
140
  "ui.tool.websearch.provider": string;
141
141
  "ui.tool.shell": string;
142
142
  "ui.tool.patch": string;
143
- "ui.tool.todos": string;
144
- "ui.tool.todos.read": string;
145
143
  "ui.tool.questions": string;
146
144
  "ui.tool.questions.numbered": string;
147
145
  "ui.tool.agent": string;
package/dist/i18n/bs.d.ts CHANGED
@@ -140,8 +140,6 @@ export declare const dict: {
140
140
  "ui.tool.websearch.provider": string;
141
141
  "ui.tool.shell": string;
142
142
  "ui.tool.patch": string;
143
- "ui.tool.todos": string;
144
- "ui.tool.todos.read": string;
145
143
  "ui.tool.questions": string;
146
144
  "ui.tool.questions.numbered": string;
147
145
  "ui.tool.agent": string;
package/dist/i18n/da.d.ts CHANGED
@@ -118,8 +118,6 @@ export declare const dict: {
118
118
  "ui.tool.websearch.provider": string;
119
119
  "ui.tool.shell": string;
120
120
  "ui.tool.patch": string;
121
- "ui.tool.todos": string;
122
- "ui.tool.todos.read": string;
123
121
  "ui.tool.questions": string;
124
122
  "ui.tool.questions.numbered": string;
125
123
  "ui.tool.agent": string;
package/dist/i18n/de.d.ts CHANGED
@@ -118,8 +118,6 @@ export declare const dict: {
118
118
  "ui.tool.websearch.provider": string;
119
119
  "ui.tool.shell": string;
120
120
  "ui.tool.patch": string;
121
- "ui.tool.todos": string;
122
- "ui.tool.todos.read": string;
123
121
  "ui.tool.questions": string;
124
122
  "ui.tool.questions.numbered": string;
125
123
  "ui.tool.agent": string;