@opencode-ai/ui 0.0.0-dev-19220 → 0.0.0-dev-202609070344

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 (299) hide show
  1. package/dist/{data-display/accordion → components}/accordion.d.ts +6 -6
  2. package/dist/components/avatar.d.ts +9 -0
  3. package/dist/components/button.d.ts +9 -0
  4. package/dist/components/card.d.ts +1 -1
  5. package/dist/{forms/checkbox → components}/checkbox.d.ts +2 -2
  6. package/dist/components/dialog.d.ts +12 -0
  7. package/dist/{data-display/diff-changes → components}/diff-changes.d.ts +1 -2
  8. package/dist/components/dropdown-menu.d.ts +80 -0
  9. package/dist/components/icon-button.d.ts +10 -0
  10. package/dist/{icons/icon/additional-icons.d.ts → components/icon.d.ts} +8 -8
  11. package/dist/components/keybind.d.ts +6 -0
  12. package/dist/components/list.d.ts +1 -1
  13. package/dist/{feedback/progress-circle → components}/progress-circle.d.ts +0 -2
  14. package/dist/components/radio-group.d.ts +16 -0
  15. package/dist/components/scroll-view.d.ts +4 -14
  16. package/dist/components/select.d.ts +21 -0
  17. package/dist/{forms/switch → components}/switch.d.ts +2 -4
  18. package/dist/{navigation/tabs → components}/tabs.d.ts +8 -15
  19. package/dist/components/tag.d.ts +5 -0
  20. package/dist/{typography/text-shimmer → components}/text-shimmer.d.ts +0 -1
  21. package/dist/components/toast.d.ts +56 -0
  22. package/dist/components/tooltip.d.ts +17 -0
  23. package/dist/context/i18n.d.ts +7 -10
  24. package/dist/context/marked-parser.d.ts +2 -1
  25. package/dist/hooks/use-filtered-list.d.ts +0 -9
  26. package/dist/i18n/ar.d.ts +2 -0
  27. package/dist/i18n/bg.d.ts +2 -0
  28. package/dist/i18n/br.d.ts +2 -0
  29. package/dist/i18n/bs.d.ts +2 -0
  30. package/dist/i18n/da.d.ts +2 -0
  31. package/dist/i18n/de.d.ts +2 -0
  32. package/dist/i18n/en.d.ts +1 -242
  33. package/dist/i18n/es.d.ts +2 -0
  34. package/dist/i18n/fr.d.ts +2 -0
  35. package/dist/i18n/ja.d.ts +2 -0
  36. package/dist/i18n/km.d.ts +2 -0
  37. package/dist/i18n/ko.d.ts +2 -0
  38. package/dist/i18n/lo.d.ts +2 -0
  39. package/dist/i18n/mk.d.ts +2 -0
  40. package/dist/i18n/mn.d.ts +2 -0
  41. package/dist/i18n/my.d.ts +2 -0
  42. package/dist/i18n/pl.d.ts +2 -0
  43. package/dist/i18n/ru.d.ts +2 -0
  44. package/dist/i18n/sr.d.ts +2 -0
  45. package/dist/i18n/tg.d.ts +2 -0
  46. package/dist/i18n/th.d.ts +2 -0
  47. package/dist/i18n/tr.d.ts +2 -0
  48. package/dist/i18n/zh.d.ts +2 -0
  49. package/dist/i18n/zht.d.ts +2 -0
  50. package/dist/v2/components/accordion-v2.d.ts +26 -0
  51. package/dist/{data-display/avatar/avatar.d.ts → v2/components/avatar-v2.d.ts} +1 -1
  52. package/dist/v2/components/badge-v2.d.ts +6 -0
  53. package/dist/v2/components/button-v2.d.ts +10 -0
  54. package/dist/v2/components/checkbox-v2.d.ts +10 -0
  55. package/dist/{overlays/dialog/dialog.d.ts → v2/components/dialog-v2.d.ts} +2 -1
  56. package/dist/v2/components/diff-changes-v2.d.ts +11 -0
  57. package/dist/v2/components/divider-v2.d.ts +5 -0
  58. package/dist/{forms/field/field.d.ts → v2/components/field-v2.d.ts} +10 -4
  59. package/dist/v2/components/icon-button-v2.d.ts +11 -0
  60. package/dist/{icons/icon → v2/components}/icon.d.ts +1 -52
  61. package/dist/v2/components/inline-input-v2.d.ts +21 -0
  62. package/dist/v2/components/keybind-v2.d.ts +7 -0
  63. package/dist/{data-display/line-comment/line-comment.d.ts → v2/components/line-comment-v2.d.ts} +9 -9
  64. package/dist/v2/components/loader-v2.d.ts +3 -0
  65. package/dist/v2/components/menu-v2.d.ts +52 -0
  66. package/dist/v2/components/progress-circle-v2.d.ts +8 -0
  67. package/dist/{data-display/project-avatar/project-avatar.d.ts → v2/components/project-avatar-v2.d.ts} +1 -1
  68. package/dist/v2/components/radio-v2.d.ts +16 -0
  69. package/dist/{navigation/segmented-control/segmented-control.d.ts → v2/components/segmented-control-v2.d.ts} +5 -5
  70. package/dist/{forms/select/select.d.ts → v2/components/select-v2.d.ts} +6 -5
  71. package/dist/v2/components/split-button-v2.d.ts +5 -0
  72. package/dist/v2/components/switch-v2.d.ts +7 -0
  73. package/dist/v2/components/tabs-v2.d.ts +34 -0
  74. package/dist/{forms/text-input/text-input.d.ts → v2/components/text-input-v2.d.ts} +3 -3
  75. package/dist/v2/components/text-shimmer-v2.d.ts +9 -0
  76. package/dist/v2/components/textarea-v2.d.ts +7 -0
  77. package/dist/v2/components/toast-v2.d.ts +57 -0
  78. package/dist/v2/components/tooltip-v2.d.ts +13 -0
  79. package/dist/v2/components/wordmark-v2.d.ts +2 -0
  80. package/package.json +35 -141
  81. package/src/{data-display/accordion → components}/accordion.css +33 -7
  82. package/src/{data-display/accordion → components}/accordion.tsx +14 -14
  83. package/src/components/animated-number.css +11 -29
  84. package/src/components/animated-number.tsx +2 -2
  85. package/src/components/avatar.css +49 -0
  86. package/src/components/avatar.tsx +55 -0
  87. package/src/components/button.css +194 -0
  88. package/src/{actions/button → components}/button.tsx +11 -19
  89. package/src/components/card.css +23 -2
  90. package/src/components/card.tsx +4 -4
  91. package/src/{forms/checkbox → components}/checkbox.css +7 -1
  92. package/src/{forms/checkbox → components}/checkbox.tsx +13 -13
  93. package/src/components/collapsible.tsx +2 -2
  94. package/src/components/dialog.css +181 -0
  95. package/src/components/dialog.tsx +72 -0
  96. package/src/{data-display/diff-changes → components}/diff-changes.css +19 -22
  97. package/src/components/diff-changes.tsx +115 -0
  98. package/src/components/dock-surface.css +9 -2
  99. package/src/components/dropdown-menu.css +135 -0
  100. package/src/components/dropdown-menu.tsx +308 -0
  101. package/src/components/icon-button.css +181 -0
  102. package/src/components/icon-button.tsx +29 -0
  103. package/src/components/icon.css +39 -0
  104. package/src/{icons/icon/additional-icons.ts → components/icon.tsx} +74 -8
  105. package/src/components/image-preview.tsx +2 -3
  106. package/src/components/keybind.css +18 -0
  107. package/src/components/keybind.tsx +20 -0
  108. package/src/components/list.css +5 -5
  109. package/src/components/list.tsx +5 -7
  110. package/src/components/popover.tsx +2 -3
  111. package/src/components/progress-circle.css +16 -0
  112. package/src/components/progress-circle.tsx +64 -0
  113. package/src/components/radio-group.css +187 -0
  114. package/src/components/radio-group.tsx +83 -0
  115. package/src/components/scroll-view.css +4 -36
  116. package/src/components/scroll-view.tsx +88 -153
  117. package/src/components/select.css +201 -0
  118. package/src/components/select.tsx +174 -0
  119. package/src/components/sticky-accordion-header.tsx +1 -1
  120. package/src/components/switch.css +136 -0
  121. package/src/components/switch.tsx +29 -0
  122. package/src/{navigation/tabs → components}/tabs.css +232 -53
  123. package/src/components/tabs.tsx +126 -0
  124. package/src/components/tag.css +37 -0
  125. package/src/components/tag.tsx +22 -0
  126. package/src/components/text-field.tsx +4 -12
  127. package/src/{typography/text-shimmer → components}/text-shimmer.css +1 -2
  128. package/src/{typography/text-shimmer → components}/text-shimmer.tsx +0 -1
  129. package/src/components/toast.css +236 -0
  130. package/src/components/toast.tsx +185 -0
  131. package/src/components/tooltip.css +74 -0
  132. package/src/components/tooltip.tsx +163 -0
  133. package/src/context/dialog.tsx +0 -1
  134. package/src/context/i18n.tsx +14 -17
  135. package/src/context/marked-parser.tsx +13 -3
  136. package/src/hooks/create-auto-scroll.tsx +0 -20
  137. package/src/i18n/am.ts +9 -7
  138. package/src/i18n/ar.ts +9 -7
  139. package/src/i18n/az.ts +9 -7
  140. package/src/i18n/bg.ts +9 -7
  141. package/src/i18n/bn.ts +9 -7
  142. package/src/i18n/br.ts +9 -7
  143. package/src/i18n/bs.ts +9 -7
  144. package/src/i18n/ca.ts +9 -7
  145. package/src/i18n/cs.ts +9 -7
  146. package/src/i18n/da.ts +9 -7
  147. package/src/i18n/de.ts +3 -1
  148. package/src/i18n/dv.ts +9 -7
  149. package/src/i18n/dz.ts +7 -5
  150. package/src/i18n/el.ts +9 -7
  151. package/src/i18n/en.ts +12 -59
  152. package/src/i18n/es.ts +8 -6
  153. package/src/i18n/et.ts +9 -7
  154. package/src/i18n/fa.ts +9 -7
  155. package/src/i18n/fi.ts +9 -7
  156. package/src/i18n/fo.ts +9 -7
  157. package/src/i18n/fr.ts +8 -6
  158. package/src/i18n/hi.ts +9 -7
  159. package/src/i18n/hr.ts +9 -7
  160. package/src/i18n/hu.ts +9 -7
  161. package/src/i18n/hy.ts +9 -7
  162. package/src/i18n/id.ts +9 -7
  163. package/src/i18n/is.ts +9 -7
  164. package/src/i18n/it.ts +9 -7
  165. package/src/i18n/ja.ts +9 -7
  166. package/src/i18n/ka.ts +9 -7
  167. package/src/i18n/km.ts +9 -7
  168. package/src/i18n/ko.ts +9 -7
  169. package/src/i18n/lo.ts +9 -7
  170. package/src/i18n/lt.ts +9 -7
  171. package/src/i18n/lv.ts +9 -7
  172. package/src/i18n/mk.ts +9 -7
  173. package/src/i18n/mn.ts +9 -7
  174. package/src/i18n/ms.ts +9 -7
  175. package/src/i18n/my.ts +9 -7
  176. package/src/i18n/ne.ts +9 -7
  177. package/src/i18n/nl.ts +9 -7
  178. package/src/i18n/no.ts +9 -7
  179. package/src/i18n/pa.ts +9 -7
  180. package/src/i18n/pl.ts +9 -7
  181. package/src/i18n/ro.ts +9 -7
  182. package/src/i18n/ru.ts +9 -7
  183. package/src/i18n/si.ts +9 -7
  184. package/src/i18n/sk.ts +9 -7
  185. package/src/i18n/sl.ts +9 -7
  186. package/src/i18n/sq.ts +9 -7
  187. package/src/i18n/sr.ts +9 -7
  188. package/src/i18n/sv.ts +9 -7
  189. package/src/i18n/tg.ts +9 -7
  190. package/src/i18n/th.ts +9 -7
  191. package/src/i18n/tk.ts +9 -7
  192. package/src/i18n/tr.ts +9 -7
  193. package/src/i18n/uk.ts +9 -7
  194. package/src/i18n/ur.ts +9 -7
  195. package/src/i18n/uz.ts +9 -7
  196. package/src/i18n/vi.ts +9 -7
  197. package/src/i18n/zh.ts +9 -7
  198. package/src/i18n/zht.ts +9 -7
  199. package/src/styles/base.css +0 -5
  200. package/src/styles/index.css +20 -4
  201. package/src/styles/tailwind/colors.css +0 -2
  202. package/src/styles/tailwind/index.css +1 -18
  203. package/src/styles/theme.css +2 -2
  204. package/src/theme/context.tsx +11 -19
  205. package/src/theme/themes/oc-2.json +19 -50
  206. package/src/theme/v2/default-primitives.ts +8 -8
  207. package/src/theme/v2/foreground.ts +0 -1
  208. package/src/theme/v2/mapping.ts +1 -7
  209. package/src/v2/components/accordion-v2.css +139 -0
  210. package/src/v2/components/accordion-v2.tsx +86 -0
  211. package/src/{data-display/avatar/avatar.tsx → v2/components/avatar-v2.tsx} +1 -1
  212. package/src/{data-display/badge/badge.css → v2/components/badge-v2.css} +0 -19
  213. package/src/{data-display/badge/badge.tsx → v2/components/badge-v2.tsx} +4 -6
  214. package/src/{actions/button/button.css → v2/components/button-v2.css} +0 -30
  215. package/src/v2/components/button-v2.tsx +35 -0
  216. package/src/v2/components/checkbox-v2.css +184 -0
  217. package/src/v2/components/checkbox-v2.tsx +65 -0
  218. package/src/{overlays/dialog/dialog.css → v2/components/dialog-v2.css} +0 -3
  219. package/src/{overlays/dialog/dialog.tsx → v2/components/dialog-v2.tsx} +13 -11
  220. package/src/v2/components/diff-changes-v2.css +26 -0
  221. package/src/{data-display/diff-changes/diff-changes.tsx → v2/components/diff-changes-v2.tsx} +2 -7
  222. package/src/{layout/divider/divider.tsx → v2/components/divider-v2.tsx} +3 -3
  223. package/src/{forms/field/field.css → v2/components/field-v2.css} +1 -1
  224. package/src/{forms/field/field.tsx → v2/components/field-v2.tsx} +11 -9
  225. package/src/{styles/file-tree.css → v2/components/file-tree-v2.css} +3 -64
  226. package/src/{actions/icon-button/icon-button.css → v2/components/icon-button-v2.css} +9 -27
  227. package/src/v2/components/icon-button-v2.tsx +37 -0
  228. package/src/{icons/icon → v2/components}/icon.tsx +12 -88
  229. package/src/v2/components/inline-input-v2.css +225 -0
  230. package/src/v2/components/inline-input-v2.tsx +107 -0
  231. package/src/{data-display/keybind/keybind.css → v2/components/keybind-v2.css} +1 -1
  232. package/src/{data-display/keybind/keybind.tsx → v2/components/keybind-v2.tsx} +3 -3
  233. package/src/{data-display/line-comment/line-comment.css → v2/components/line-comment-v2.css} +4 -4
  234. package/src/{data-display/line-comment/line-comment.tsx → v2/components/line-comment-v2.tsx} +15 -17
  235. package/src/{feedback/loader/loader.tsx → v2/components/loader-v2.tsx} +2 -2
  236. package/src/{navigation/menu/menu.css → v2/components/menu-v2.css} +2 -124
  237. package/src/{navigation/menu/menu.tsx → v2/components/menu-v2.tsx} +32 -96
  238. package/src/v2/components/progress-circle-v2.css +13 -0
  239. package/src/v2/components/progress-circle-v2.tsx +52 -0
  240. package/src/{data-display/project-avatar/project-avatar.css → v2/components/project-avatar-v2.css} +4 -4
  241. package/src/{data-display/project-avatar/project-avatar.tsx → v2/components/project-avatar-v2.tsx} +1 -1
  242. package/src/{forms/radio/radio.tsx → v2/components/radio-v2.tsx} +20 -30
  243. package/src/{navigation/segmented-control/segmented-control.css → v2/components/segmented-control-v2.css} +1 -1
  244. package/src/{navigation/segmented-control/segmented-control.tsx → v2/components/segmented-control-v2.tsx} +8 -9
  245. package/src/{forms/select/select.css → v2/components/select-v2.css} +8 -2
  246. package/src/{forms/select/select.tsx → v2/components/select-v2.tsx} +32 -42
  247. package/src/{actions/split-button/split-button.css → v2/components/split-button-v2.css} +6 -2
  248. package/src/{actions/split-button/split-button.tsx → v2/components/split-button-v2.tsx} +4 -4
  249. package/src/{forms/switch/switch.css → v2/components/switch-v2.css} +0 -110
  250. package/src/v2/components/switch-v2.tsx +28 -0
  251. package/src/{navigation/tabs/tabs-current.css → v2/components/tabs-v2.css} +10 -25
  252. package/src/v2/components/tabs-v2.tsx +149 -0
  253. package/src/{forms/text-input/text-input.css → v2/components/text-input-v2.css} +3 -3
  254. package/src/{forms/text-input/text-input.tsx → v2/components/text-input-v2.tsx} +4 -4
  255. package/src/v2/components/text-shimmer-v2.css +125 -0
  256. package/src/v2/components/text-shimmer-v2.tsx +63 -0
  257. package/src/{forms/textarea/textarea.tsx → v2/components/textarea-v2.tsx} +3 -3
  258. package/src/{feedback/toast/toast.tsx → v2/components/toast-v2.tsx} +58 -60
  259. package/src/{overlays/tooltip/tooltip.css → v2/components/tooltip-v2.css} +0 -33
  260. package/src/{overlays/tooltip/tooltip.tsx → v2/components/tooltip-v2.tsx} +17 -24
  261. package/src/v2/components/wordmark-v2.tsx +71 -0
  262. package/src/{styles/tokens → v2/styles}/colors.css +8 -8
  263. package/src/{styles/tokens → v2/styles}/theme.css +16 -23
  264. package/dist/actions/button/button.d.ts +0 -10
  265. package/dist/actions/icon-button/icon-button.d.ts +0 -11
  266. package/dist/actions/split-button/split-button.d.ts +0 -5
  267. package/dist/context/marked-base.d.ts +0 -3
  268. package/dist/data-display/badge/badge.d.ts +0 -7
  269. package/dist/data-display/keybind/keybind.d.ts +0 -7
  270. package/dist/feedback/loader/loader.d.ts +0 -3
  271. package/dist/feedback/toast/toast.d.ts +0 -57
  272. package/dist/forms/radio/radio.d.ts +0 -16
  273. package/dist/forms/textarea/textarea.d.ts +0 -7
  274. package/dist/i18n/he.d.ts +0 -197
  275. package/dist/layout/divider/divider.d.ts +0 -5
  276. package/dist/navigation/menu/menu.d.ts +0 -59
  277. package/dist/overlays/tooltip/tooltip.d.ts +0 -15
  278. package/dist/typography/wordmark/wordmark.d.ts +0 -5
  279. package/src/actions/icon-button/icon-button.tsx +0 -32
  280. package/src/context/marked-base.tsx +0 -27
  281. package/src/feedback/progress-circle/progress-circle.css +0 -28
  282. package/src/feedback/progress-circle/progress-circle.tsx +0 -64
  283. package/src/forms/switch/switch.tsx +0 -34
  284. package/src/i18n/he.ts +0 -199
  285. package/src/icons/icon/icon.css +0 -3
  286. package/src/navigation/tabs/tabs.tsx +0 -194
  287. package/src/typography/wordmark/wordmark.tsx +0 -39
  288. /package/dist/{forms/inline-input → components}/inline-input.d.ts +0 -0
  289. /package/dist/{navigation → v2/components}/tab-state-indicator.d.ts +0 -0
  290. /package/src/{forms/inline-input → components}/inline-input.css +0 -0
  291. /package/src/{forms/inline-input → components}/inline-input.tsx +0 -0
  292. /package/src/{data-display/avatar/avatar.css → v2/components/avatar-v2.css} +0 -0
  293. /package/src/{layout/divider/divider.css → v2/components/divider-v2.css} +0 -0
  294. /package/src/{feedback/loader/loader.css → v2/components/loader-v2.css} +0 -0
  295. /package/src/{forms/radio/radio.css → v2/components/radio-v2.css} +0 -0
  296. /package/src/{navigation → v2/components}/tab-state-indicator.tsx +0 -0
  297. /package/src/{forms/textarea/textarea.css → v2/components/textarea-v2.css} +0 -0
  298. /package/src/{feedback/toast/toast.css → v2/components/toast-v2.css} +0 -0
  299. /package/src/{styles/tokens/index.css → v2/styles/tailwind.css} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencode-ai/ui",
3
- "version": "0.0.0-dev-19220",
3
+ "version": "0.0.0-dev-202609070344",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,133 +34,6 @@
34
34
  ],
35
35
  "exports": {
36
36
  "./package.json": "./package.json",
37
- "./accordion": {
38
- "types": "./dist/data-display/accordion/accordion.d.ts",
39
- "import": "./src/data-display/accordion/accordion.tsx"
40
- },
41
- "./avatar": {
42
- "types": "./dist/data-display/avatar/avatar.d.ts",
43
- "import": "./src/data-display/avatar/avatar.tsx"
44
- },
45
- "./badge": {
46
- "types": "./dist/data-display/badge/badge.d.ts",
47
- "import": "./src/data-display/badge/badge.tsx"
48
- },
49
- "./button": {
50
- "types": "./dist/actions/button/button.d.ts",
51
- "import": "./src/actions/button/button.tsx"
52
- },
53
- "./button.css": "./src/actions/button/button.css",
54
- "./checkbox": {
55
- "types": "./dist/forms/checkbox/checkbox.d.ts",
56
- "import": "./src/forms/checkbox/checkbox.tsx"
57
- },
58
- "./dialog": {
59
- "types": "./dist/overlays/dialog/dialog.d.ts",
60
- "import": "./src/overlays/dialog/dialog.tsx"
61
- },
62
- "./diff-changes": {
63
- "types": "./dist/data-display/diff-changes/diff-changes.d.ts",
64
- "import": "./src/data-display/diff-changes/diff-changes.tsx"
65
- },
66
- "./divider": {
67
- "types": "./dist/layout/divider/divider.d.ts",
68
- "import": "./src/layout/divider/divider.tsx"
69
- },
70
- "./field": {
71
- "types": "./dist/forms/field/field.d.ts",
72
- "import": "./src/forms/field/field.tsx"
73
- },
74
- "./file-tree.css": "./src/styles/file-tree.css",
75
- "./icon": {
76
- "types": "./dist/icons/icon/icon.d.ts",
77
- "import": "./src/icons/icon/icon.tsx"
78
- },
79
- "./icon-button": {
80
- "types": "./dist/actions/icon-button/icon-button.d.ts",
81
- "import": "./src/actions/icon-button/icon-button.tsx"
82
- },
83
- "./inline-input": {
84
- "types": "./dist/forms/inline-input/inline-input.d.ts",
85
- "import": "./src/forms/inline-input/inline-input.tsx"
86
- },
87
- "./keybind": {
88
- "types": "./dist/data-display/keybind/keybind.d.ts",
89
- "import": "./src/data-display/keybind/keybind.tsx"
90
- },
91
- "./line-comment": {
92
- "types": "./dist/data-display/line-comment/line-comment.d.ts",
93
- "import": "./src/data-display/line-comment/line-comment.tsx"
94
- },
95
- "./loader": {
96
- "types": "./dist/feedback/loader/loader.d.ts",
97
- "import": "./src/feedback/loader/loader.tsx"
98
- },
99
- "./menu": {
100
- "types": "./dist/navigation/menu/menu.d.ts",
101
- "import": "./src/navigation/menu/menu.tsx"
102
- },
103
- "./progress-circle": {
104
- "types": "./dist/feedback/progress-circle/progress-circle.d.ts",
105
- "import": "./src/feedback/progress-circle/progress-circle.tsx"
106
- },
107
- "./project-avatar": {
108
- "types": "./dist/data-display/project-avatar/project-avatar.d.ts",
109
- "import": "./src/data-display/project-avatar/project-avatar.tsx"
110
- },
111
- "./radio": {
112
- "types": "./dist/forms/radio/radio.d.ts",
113
- "import": "./src/forms/radio/radio.tsx"
114
- },
115
- "./segmented-control": {
116
- "types": "./dist/navigation/segmented-control/segmented-control.d.ts",
117
- "import": "./src/navigation/segmented-control/segmented-control.tsx"
118
- },
119
- "./select": {
120
- "types": "./dist/forms/select/select.d.ts",
121
- "import": "./src/forms/select/select.tsx"
122
- },
123
- "./split-button": {
124
- "types": "./dist/actions/split-button/split-button.d.ts",
125
- "import": "./src/actions/split-button/split-button.tsx"
126
- },
127
- "./switch": {
128
- "types": "./dist/forms/switch/switch.d.ts",
129
- "import": "./src/forms/switch/switch.tsx"
130
- },
131
- "./tab-state-indicator": {
132
- "types": "./dist/navigation/tab-state-indicator.d.ts",
133
- "import": "./src/navigation/tab-state-indicator.tsx"
134
- },
135
- "./tabs": {
136
- "types": "./dist/navigation/tabs/tabs.d.ts",
137
- "import": "./src/navigation/tabs/tabs.tsx"
138
- },
139
- "./text-input": {
140
- "types": "./dist/forms/text-input/text-input.d.ts",
141
- "import": "./src/forms/text-input/text-input.tsx"
142
- },
143
- "./text-input.css": "./src/forms/text-input/text-input.css",
144
- "./textarea": {
145
- "types": "./dist/forms/textarea/textarea.d.ts",
146
- "import": "./src/forms/textarea/textarea.tsx"
147
- },
148
- "./text-shimmer": {
149
- "types": "./dist/typography/text-shimmer/text-shimmer.d.ts",
150
- "import": "./src/typography/text-shimmer/text-shimmer.tsx"
151
- },
152
- "./toast": {
153
- "types": "./dist/feedback/toast/toast.d.ts",
154
- "import": "./src/feedback/toast/toast.tsx"
155
- },
156
- "./tooltip": {
157
- "types": "./dist/overlays/tooltip/tooltip.d.ts",
158
- "import": "./src/overlays/tooltip/tooltip.tsx"
159
- },
160
- "./wordmark": {
161
- "types": "./dist/typography/wordmark/wordmark.d.ts",
162
- "import": "./src/typography/wordmark/wordmark.tsx"
163
- },
164
37
  "./*": {
165
38
  "types": "./dist/components/*.d.ts",
166
39
  "import": "./src/components/*.tsx"
@@ -190,7 +63,6 @@
190
63
  "import": "./src/storybook/fixtures.ts"
191
64
  },
192
65
  "./styles": "./src/styles/index.css",
193
- "./styles/tokens": "./src/styles/tokens/index.css",
194
66
  "./styles/tailwind": "./src/styles/tailwind/index.css",
195
67
  "./theme": {
196
68
  "types": "./dist/theme/index.d.ts",
@@ -217,7 +89,13 @@
217
89
  "import": "./src/components/app-icons/types.ts"
218
90
  },
219
91
  "./fonts/*": "./src/assets/fonts/*",
220
- "./audio/*": "./src/assets/audio/*"
92
+ "./audio/*": "./src/assets/audio/*",
93
+ "./v2/*.css": "./src/v2/components/*.css",
94
+ "./v2/*": {
95
+ "types": "./dist/v2/components/*.d.ts",
96
+ "import": "./src/v2/components/*.tsx"
97
+ },
98
+ "./v2/styles/*": "./src/v2/styles/*"
221
99
  },
222
100
  "scripts": {
223
101
  "build": "rm -rf dist && tsc -p tsconfig.build.json",
@@ -229,33 +107,49 @@
229
107
  },
230
108
  "devDependencies": {
231
109
  "@solidjs/meta": "0.29.4",
110
+ "@tailwindcss/vite": "4.1.11",
232
111
  "@tsconfig/node22": "22.0.2",
233
- "@types/bun": "1.4.0",
112
+ "@types/bun": "1.3.13",
113
+ "@types/katex": "0.16.7",
114
+ "@types/luxon": "3.7.1",
234
115
  "@typescript/native-preview": "7.0.0-dev.20251207.1",
235
- "solid-js": "1.9.15",
116
+ "solid-js": "1.9.10",
236
117
  "tailwindcss": "4.1.11",
118
+ "tw-animate-css": "1.4.0",
237
119
  "typescript": "5.8.2",
238
- "vite": "7.3.6",
120
+ "vite": "7.1.4",
239
121
  "vite-plugin-icons-spritesheet": "3.0.1",
240
122
  "vite-plugin-solid": "2.11.10"
241
123
  },
242
124
  "dependencies": {
243
- "@kobalte/core": "0.13.13",
125
+ "@kobalte/core": "0.13.11",
244
126
  "@pierre/diffs": "1.2.10",
245
- "@solid-primitives/event-listener": "2.4.6",
246
- "@solid-primitives/resize-observer": "2.2.0",
127
+ "@shikijs/transformers": "3.9.2",
128
+ "@solid-primitives/bounds": "0.1.3",
129
+ "@solid-primitives/event-listener": "2.4.5",
130
+ "@solid-primitives/media": "2.3.3",
131
+ "@solid-primitives/resize-observer": "2.1.3",
132
+ "@shikijs/stream": "4.2.0",
133
+ "diff": "8.0.2",
134
+ "dompurify": "3.3.1",
247
135
  "fuzzysort": "3.1.0",
248
- "katex": "0.16.47",
249
- "marked": "18.0.11",
136
+ "katex": "0.16.27",
137
+ "luxon": "3.6.1",
138
+ "marked": "18.0.7",
250
139
  "marked-shiki": "1.2.1",
140
+ "morphdom": "2.7.8",
251
141
  "motion": "12.34.5",
142
+ "motion-dom": "12.34.3",
143
+ "motion-utils": "12.29.2",
252
144
  "remeda": "2.26.0",
253
- "shiki": "4.4.3",
145
+ "remend": "1.3.0",
146
+ "shiki": "4.2.0",
254
147
  "solid-list": "0.3.0",
255
- "solid-sonner": "0.3.1"
148
+ "solid-sonner": "0.3.1",
149
+ "strip-ansi": "7.1.2"
256
150
  },
257
151
  "peerDependencies": {
258
152
  "@solidjs/meta": "^0.29.0",
259
- "solid-js": "^1.9.8"
153
+ "solid-js": "^1.9.0"
260
154
  }
261
155
  }
@@ -36,24 +36,26 @@
36
36
  user-select: none;
37
37
 
38
38
  background-color: var(--v2-background-bg-base);
39
- border: 1px solid var(--v2-border-border-base);
39
+ border: 0.5px solid var(--v2-border-border-base);
40
40
  border-radius: 0;
41
41
  box-shadow: none;
42
42
  overflow: clip;
43
43
  color: var(--v2-text-text-base);
44
44
  transition: background-color 0.15s ease;
45
45
 
46
+ /* text-12-regular */
46
47
  font-family: var(--font-family-sans);
47
48
  font-size: var(--font-size-small);
48
49
  font-style: normal;
49
50
  font-weight: var(--font-weight-regular);
50
- line-height: var(--line-height-large);
51
+ line-height: var(--line-height-large); /* 166.667% */
51
52
  letter-spacing: var(--letter-spacing-normal);
52
53
 
53
- @media (hover: hover) {
54
- &:hover:not([data-disabled]) {
55
- background-color: var(--v2-overlay-simple-overlay-hover);
56
- }
54
+ &:hover:not([data-disabled]) {
55
+ background-color: var(--v2-overlay-simple-overlay-hover);
56
+ }
57
+ &:active:not([data-disabled]) {
58
+ background-color: var(--v2-overlay-simple-overlay-pressed);
57
59
  }
58
60
  &:focus-visible {
59
61
  outline: none;
@@ -80,7 +82,7 @@
80
82
 
81
83
  &[data-expanded] {
82
84
  [data-slot="accordion-content"] {
83
- border: 1px solid var(--v2-border-border-base);
85
+ border: 0.5px solid var(--v2-border-border-base);
84
86
  border-top: 0;
85
87
  background-color: var(--v2-background-bg-layer-01);
86
88
  }
@@ -102,6 +104,30 @@
102
104
  }
103
105
  }
104
106
 
107
+ body:not([data-new-layout]) [data-component="accordion"] {
108
+ [data-slot="accordion-item"] [data-slot="accordion-header"] [data-slot="accordion-trigger"] {
109
+ background-color: var(--background-stronger);
110
+ border-width: 1px;
111
+ border-color: var(--border-weak-base);
112
+ color: var(--text-strong);
113
+
114
+ &:hover:not([data-disabled]) {
115
+ background-color: var(--surface-base-hover);
116
+ }
117
+
118
+ &:active:not([data-disabled]) {
119
+ background-color: var(--surface-base-active);
120
+ }
121
+ }
122
+
123
+ [data-slot="accordion-item"][data-expanded] [data-slot="accordion-content"] {
124
+ border-width: 1px;
125
+ border-color: var(--border-weak-base);
126
+ border-top: 0;
127
+ background-color: var(--background-stronger);
128
+ }
129
+ }
130
+
105
131
  @keyframes slideDown {
106
132
  from {
107
133
  height: 0;
@@ -1,17 +1,17 @@
1
- import { Content, Header, Item, Root, Trigger } from "@kobalte/core/accordion"
1
+ import { Accordion as Kobalte } from "@kobalte/core/accordion"
2
2
  import { splitProps } from "solid-js"
3
3
  import type { ComponentProps, ParentProps } from "solid-js"
4
4
 
5
- export interface AccordionProps extends ComponentProps<typeof Root> {}
6
- export interface AccordionItemProps extends ComponentProps<typeof Item> {}
7
- export interface AccordionHeaderProps extends ComponentProps<typeof Header> {}
8
- export interface AccordionTriggerProps extends ComponentProps<typeof Trigger> {}
9
- export interface AccordionContentProps extends ComponentProps<typeof Content> {}
5
+ export interface AccordionProps extends ComponentProps<typeof Kobalte> {}
6
+ export interface AccordionItemProps extends ComponentProps<typeof Kobalte.Item> {}
7
+ export interface AccordionHeaderProps extends ComponentProps<typeof Kobalte.Header> {}
8
+ export interface AccordionTriggerProps extends ComponentProps<typeof Kobalte.Trigger> {}
9
+ export interface AccordionContentProps extends ComponentProps<typeof Kobalte.Content> {}
10
10
 
11
11
  function AccordionRoot(props: AccordionProps) {
12
12
  const [split, rest] = splitProps(props, ["class", "classList"])
13
13
  return (
14
- <Root
14
+ <Kobalte
15
15
  {...rest}
16
16
  data-component="accordion"
17
17
  classList={{
@@ -25,7 +25,7 @@ function AccordionRoot(props: AccordionProps) {
25
25
  function AccordionItem(props: AccordionItemProps) {
26
26
  const [split, rest] = splitProps(props, ["class", "classList"])
27
27
  return (
28
- <Item
28
+ <Kobalte.Item
29
29
  {...rest}
30
30
  data-slot="accordion-item"
31
31
  classList={{
@@ -39,7 +39,7 @@ function AccordionItem(props: AccordionItemProps) {
39
39
  function AccordionHeader(props: ParentProps<AccordionHeaderProps>) {
40
40
  const [split, rest] = splitProps(props, ["class", "classList", "children"])
41
41
  return (
42
- <Header
42
+ <Kobalte.Header
43
43
  {...rest}
44
44
  data-slot="accordion-header"
45
45
  classList={{
@@ -48,14 +48,14 @@ function AccordionHeader(props: ParentProps<AccordionHeaderProps>) {
48
48
  }}
49
49
  >
50
50
  {split.children}
51
- </Header>
51
+ </Kobalte.Header>
52
52
  )
53
53
  }
54
54
 
55
55
  function AccordionTrigger(props: ParentProps<AccordionTriggerProps>) {
56
56
  const [split, rest] = splitProps(props, ["class", "classList", "children"])
57
57
  return (
58
- <Trigger
58
+ <Kobalte.Trigger
59
59
  {...rest}
60
60
  data-slot="accordion-trigger"
61
61
  classList={{
@@ -64,14 +64,14 @@ function AccordionTrigger(props: ParentProps<AccordionTriggerProps>) {
64
64
  }}
65
65
  >
66
66
  {split.children}
67
- </Trigger>
67
+ </Kobalte.Trigger>
68
68
  )
69
69
  }
70
70
 
71
71
  function AccordionContent(props: ParentProps<AccordionContentProps>) {
72
72
  const [split, rest] = splitProps(props, ["class", "classList", "children"])
73
73
  return (
74
- <Content
74
+ <Kobalte.Content
75
75
  {...rest}
76
76
  data-slot="accordion-content"
77
77
  classList={{
@@ -80,7 +80,7 @@ function AccordionContent(props: ParentProps<AccordionContentProps>) {
80
80
  }}
81
81
  >
82
82
  {split.children}
83
- </Content>
83
+ </Kobalte.Content>
84
84
  )
85
85
  }
86
86
 
@@ -17,7 +17,7 @@
17
17
  }
18
18
 
19
19
  [data-slot="animated-number-digit"] {
20
- display: inline-grid;
20
+ display: inline-block;
21
21
  width: 1ch;
22
22
  height: 1em;
23
23
  line-height: 1em;
@@ -41,12 +41,19 @@
41
41
  mask-repeat: no-repeat;
42
42
  }
43
43
 
44
- [data-slot="animated-number-static"],
45
44
  [data-slot="animated-number-strip"] {
46
- grid-area: 1 / 1;
45
+ display: inline-flex;
46
+ flex-direction: column;
47
+ transform: translateY(calc(var(--animated-number-offset, 10) * -1em));
48
+ transition-property: transform;
49
+ transition-duration: var(--animated-number-duration, 560ms);
50
+ transition-timing-function: var(--tool-motion-ease, cubic-bezier(0.22, 1, 0.36, 1));
51
+ }
52
+
53
+ [data-slot="animated-number-strip"][data-animating="false"] {
54
+ transition-duration: 0ms;
47
55
  }
48
56
 
49
- [data-slot="animated-number-static"],
50
57
  [data-slot="animated-number-cell"] {
51
58
  display: inline-flex;
52
59
  align-items: center;
@@ -55,24 +62,6 @@
55
62
  height: 1em;
56
63
  line-height: 1em;
57
64
  }
58
-
59
- [data-slot="animated-number-digit"][data-animating="true"] [data-slot="animated-number-static"] {
60
- visibility: hidden;
61
- }
62
-
63
- [data-slot="animated-number-strip"] {
64
- display: inline-flex;
65
- flex-direction: column;
66
- margin-top: calc(var(--animated-number-offset, 10) * -1em);
67
- transition-property: margin-top;
68
- transition-duration: var(--animated-number-duration, 560ms);
69
- transition-timing-function: var(--tool-motion-ease, cubic-bezier(0.22, 1, 0.36, 1));
70
- }
71
-
72
- [data-slot="animated-number-digit"][data-animating="false"] [data-slot="animated-number-strip"] {
73
- transition-duration: 0ms;
74
- visibility: hidden;
75
- }
76
65
  }
77
66
 
78
67
  @media (prefers-reduced-motion: reduce) {
@@ -82,12 +71,5 @@
82
71
 
83
72
  [data-component="animated-number"] [data-slot="animated-number-strip"] {
84
73
  transition-duration: 0ms;
85
- visibility: hidden;
86
- }
87
-
88
- [data-component="animated-number"]
89
- [data-slot="animated-number-digit"][data-animating]
90
- [data-slot="animated-number-static"] {
91
- visibility: visible;
92
74
  }
93
75
  }
@@ -43,10 +43,10 @@ function Digit(props: { value: number; direction: 1 | -1 }) {
43
43
  )
44
44
 
45
45
  return (
46
- <span data-slot="animated-number-digit" data-animating={animating() ? "true" : "false"}>
47
- <span data-slot="animated-number-static">{props.value}</span>
46
+ <span data-slot="animated-number-digit">
48
47
  <span
49
48
  data-slot="animated-number-strip"
49
+ data-animating={animating() ? "true" : "false"}
50
50
  onTransitionEnd={() => {
51
51
  setState("animating", false)
52
52
  setState("step", (value) => normalize(value) + 10)
@@ -0,0 +1,49 @@
1
+ [data-component="avatar"] {
2
+ --avatar-bg: var(--color-surface-info-base);
3
+ --avatar-fg: var(--color-text-base);
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ flex-shrink: 0;
8
+ border-radius: var(--radius-sm);
9
+ border: 1px solid var(--color-border-weak-base);
10
+ font-family: var(--font-mono);
11
+ font-weight: 500;
12
+ text-transform: uppercase;
13
+ background-color: var(--avatar-bg);
14
+ color: var(--avatar-fg);
15
+ }
16
+
17
+ [data-component="avatar"][data-has-image] {
18
+ background-color: transparent;
19
+ border: none;
20
+ }
21
+
22
+ [data-component="avatar"][data-size="small"] {
23
+ width: 1.25rem;
24
+ height: 1.25rem;
25
+ font-size: 0.75rem;
26
+ line-height: 1;
27
+ }
28
+
29
+ [data-component="avatar"][data-size="normal"] {
30
+ width: 1.5rem;
31
+ height: 1.5rem;
32
+ font-size: 1.125rem;
33
+ line-height: 1.5rem;
34
+ }
35
+
36
+ [data-component="avatar"][data-size="large"] {
37
+ width: 2rem;
38
+ height: 2rem;
39
+ font-size: 1.25rem;
40
+ line-height: 2rem;
41
+ }
42
+
43
+ [data-component="avatar"] [data-slot="avatar-image"] {
44
+ width: 100%;
45
+ height: 100%;
46
+ display: block;
47
+ object-fit: cover;
48
+ border-radius: inherit;
49
+ }
@@ -0,0 +1,55 @@
1
+ import { type ComponentProps, splitProps, Show } from "solid-js"
2
+
3
+ const segmenter =
4
+ typeof Intl !== "undefined" && "Segmenter" in Intl
5
+ ? new Intl.Segmenter(undefined, { granularity: "grapheme" })
6
+ : undefined
7
+
8
+ function first(value: string) {
9
+ if (!value) return ""
10
+ if (!segmenter) return Array.from(value)[0] ?? ""
11
+ return segmenter.segment(value)[Symbol.iterator]().next().value?.segment ?? Array.from(value)[0] ?? ""
12
+ }
13
+
14
+ export interface AvatarProps extends ComponentProps<"div"> {
15
+ fallback: string
16
+ src?: string
17
+ background?: string
18
+ foreground?: string
19
+ size?: "small" | "normal" | "large"
20
+ }
21
+
22
+ export function Avatar(props: AvatarProps) {
23
+ const [split, rest] = splitProps(props, [
24
+ "fallback",
25
+ "src",
26
+ "background",
27
+ "foreground",
28
+ "size",
29
+ "class",
30
+ "classList",
31
+ "style",
32
+ ])
33
+ const src = split.src // did this so i can zero it out to test fallback
34
+ return (
35
+ <div
36
+ {...rest}
37
+ data-component="avatar"
38
+ data-size={split.size || "normal"}
39
+ data-has-image={src ? "" : undefined}
40
+ classList={{
41
+ ...split.classList,
42
+ [split.class ?? ""]: !!split.class,
43
+ }}
44
+ style={{
45
+ ...(typeof split.style === "object" ? split.style : {}),
46
+ ...(!src && split.background ? { "--avatar-bg": split.background } : {}),
47
+ ...(!src && split.foreground ? { "--avatar-fg": split.foreground } : {}),
48
+ }}
49
+ >
50
+ <Show when={src} fallback={first(split.fallback)}>
51
+ {(src) => <img src={src()} draggable={false} data-slot="avatar-image" />}
52
+ </Show>
53
+ </div>
54
+ )
55
+ }