@opencode-ai/ui 0.0.0-dev-202608240755 → 0.0.0-dev-18074

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 (288) 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 +219 -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 +20 -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 +15 -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/{components → actions/button}/button.tsx +10 -11
  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 +2 -2
  70. package/src/components/dock-surface.css +2 -9
  71. package/src/components/image-preview.tsx +3 -2
  72. package/src/components/list.css +5 -5
  73. package/src/components/list.tsx +7 -5
  74. package/src/components/popover.tsx +3 -2
  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/dialog.tsx +2 -1
  79. package/src/context/i18n.tsx +17 -14
  80. package/src/{components → data-display/accordion}/accordion.css +1 -26
  81. package/src/{components → data-display/accordion}/accordion.tsx +14 -14
  82. package/src/{v2/components/avatar-v2.tsx → data-display/avatar/avatar.tsx} +1 -1
  83. package/src/{v2/components/badge-v2.css → data-display/badge/badge.css} +19 -0
  84. package/src/{v2/components/badge-v2.tsx → data-display/badge/badge.tsx} +6 -4
  85. package/src/{components → data-display/diff-changes}/diff-changes.css +22 -19
  86. package/src/{v2/components/diff-changes-v2.tsx → data-display/diff-changes/diff-changes.tsx} +7 -2
  87. package/src/{v2/components/keybind-v2.css → data-display/keybind/keybind.css} +1 -1
  88. package/src/{v2/components/keybind-v2.tsx → data-display/keybind/keybind.tsx} +3 -3
  89. package/src/{v2/components/line-comment-v2.css → data-display/line-comment/line-comment.css} +3 -3
  90. package/src/{v2/components/line-comment-v2.tsx → data-display/line-comment/line-comment.tsx} +17 -15
  91. package/src/{v2/components/project-avatar-v2.tsx → data-display/project-avatar/project-avatar.tsx} +1 -1
  92. package/src/{v2/components/loader-v2.tsx → feedback/loader/loader.tsx} +2 -2
  93. package/src/feedback/progress-circle/progress-circle.css +28 -0
  94. package/src/feedback/progress-circle/progress-circle.tsx +64 -0
  95. package/src/{v2/components/toast-v2.tsx → feedback/toast/toast.tsx} +60 -58
  96. package/src/{components → forms/checkbox}/checkbox.css +1 -7
  97. package/src/{components → forms/checkbox}/checkbox.tsx +13 -13
  98. package/src/{v2/components/field-v2.css → forms/field/field.css} +1 -1
  99. package/src/{v2/components/field-v2.tsx → forms/field/field.tsx} +9 -11
  100. package/src/{v2/components/radio-v2.tsx → forms/radio/radio.tsx} +30 -20
  101. package/src/{v2/components/select-v2.css → forms/select/select.css} +2 -8
  102. package/src/{v2/components/select-v2.tsx → forms/select/select.tsx} +38 -32
  103. package/src/{v2/components/switch-v2.css → forms/switch/switch.css} +110 -0
  104. package/src/forms/switch/switch.tsx +34 -0
  105. package/src/{v2/components/text-input-v2.css → forms/text-input/text-input.css} +1 -1
  106. package/src/{v2/components/text-input-v2.tsx → forms/text-input/text-input.tsx} +4 -4
  107. package/src/{v2/components/textarea-v2.tsx → forms/textarea/textarea.tsx} +3 -3
  108. package/src/hooks/create-auto-scroll.tsx +20 -0
  109. package/src/i18n/am.ts +1 -3
  110. package/src/i18n/ar.ts +1 -3
  111. package/src/i18n/az.ts +1 -3
  112. package/src/i18n/bg.ts +1 -3
  113. package/src/i18n/bn.ts +1 -3
  114. package/src/i18n/br.ts +1 -3
  115. package/src/i18n/bs.ts +1 -3
  116. package/src/i18n/ca.ts +1 -3
  117. package/src/i18n/cs.ts +1 -3
  118. package/src/i18n/da.ts +1 -3
  119. package/src/i18n/de.ts +1 -3
  120. package/src/i18n/dv.ts +1 -3
  121. package/src/i18n/dz.ts +1 -3
  122. package/src/i18n/el.ts +1 -3
  123. package/src/i18n/en.ts +29 -5
  124. package/src/i18n/es.ts +1 -3
  125. package/src/i18n/et.ts +1 -3
  126. package/src/i18n/fa.ts +1 -3
  127. package/src/i18n/fi.ts +1 -3
  128. package/src/i18n/fo.ts +1 -3
  129. package/src/i18n/fr.ts +1 -3
  130. package/src/i18n/he.ts +199 -0
  131. package/src/i18n/hi.ts +1 -3
  132. package/src/i18n/hr.ts +1 -3
  133. package/src/i18n/hu.ts +1 -3
  134. package/src/i18n/hy.ts +1 -3
  135. package/src/i18n/id.ts +1 -3
  136. package/src/i18n/is.ts +1 -3
  137. package/src/i18n/it.ts +1 -3
  138. package/src/i18n/ja.ts +1 -3
  139. package/src/i18n/ka.ts +1 -3
  140. package/src/i18n/km.ts +1 -3
  141. package/src/i18n/ko.ts +1 -3
  142. package/src/i18n/lo.ts +1 -3
  143. package/src/i18n/lt.ts +1 -3
  144. package/src/i18n/lv.ts +1 -3
  145. package/src/i18n/mk.ts +1 -3
  146. package/src/i18n/mn.ts +1 -3
  147. package/src/i18n/ms.ts +1 -3
  148. package/src/i18n/my.ts +1 -3
  149. package/src/i18n/ne.ts +1 -3
  150. package/src/i18n/nl.ts +1 -3
  151. package/src/i18n/no.ts +1 -3
  152. package/src/i18n/pa.ts +1 -3
  153. package/src/i18n/pl.ts +1 -3
  154. package/src/i18n/ro.ts +1 -3
  155. package/src/i18n/ru.ts +1 -3
  156. package/src/i18n/si.ts +1 -3
  157. package/src/i18n/sk.ts +1 -3
  158. package/src/i18n/sl.ts +1 -3
  159. package/src/i18n/sq.ts +1 -3
  160. package/src/i18n/sr.ts +1 -3
  161. package/src/i18n/sv.ts +1 -3
  162. package/src/i18n/tg.ts +1 -3
  163. package/src/i18n/th.ts +1 -3
  164. package/src/i18n/tk.ts +1 -3
  165. package/src/i18n/tr.ts +1 -3
  166. package/src/i18n/uk.ts +1 -3
  167. package/src/i18n/ur.ts +1 -3
  168. package/src/i18n/uz.ts +1 -3
  169. package/src/i18n/vi.ts +1 -3
  170. package/src/i18n/zh.ts +1 -3
  171. package/src/i18n/zht.ts +1 -3
  172. package/src/{components/icon.tsx → icons/icon/additional-icons.ts} +8 -74
  173. package/src/icons/icon/icon.css +3 -0
  174. package/src/{v2/components → icons/icon}/icon.tsx +46 -9
  175. package/src/{v2/components/divider-v2.tsx → layout/divider/divider.tsx} +3 -3
  176. package/src/{v2/components/menu-v2.css → navigation/menu/menu.css} +122 -1
  177. package/src/{v2/components/menu-v2.tsx → navigation/menu/menu.tsx} +96 -32
  178. package/src/{v2/components/segmented-control-v2.css → navigation/segmented-control/segmented-control.css} +1 -1
  179. package/src/{v2/components/segmented-control-v2.tsx → navigation/segmented-control/segmented-control.tsx} +9 -8
  180. package/src/{v2/components/tabs-v2.css → navigation/tabs/tabs-current.css} +25 -10
  181. package/src/{components → navigation/tabs}/tabs.css +39 -229
  182. package/src/navigation/tabs/tabs.tsx +194 -0
  183. package/src/{v2/components/dialog-v2.css → overlays/dialog/dialog.css} +3 -0
  184. package/src/{v2/components/dialog-v2.tsx → overlays/dialog/dialog.tsx} +11 -13
  185. package/src/{v2/components/tooltip-v2.css → overlays/tooltip/tooltip.css} +26 -0
  186. package/src/{v2/components/tooltip-v2.tsx → overlays/tooltip/tooltip.tsx} +21 -14
  187. package/src/styles/index.css +4 -20
  188. package/src/styles/tailwind/colors.css +1 -0
  189. package/src/styles/tailwind/index.css +18 -1
  190. package/src/{v2/styles → styles/tokens}/theme.css +8 -12
  191. package/src/theme/context.tsx +19 -11
  192. package/src/theme/themes/oc-2.json +3 -1
  193. package/src/theme/v2/foreground.ts +1 -0
  194. package/src/{components → typography/text-shimmer}/text-shimmer.css +2 -1
  195. package/src/{components → typography/text-shimmer}/text-shimmer.tsx +1 -0
  196. package/src/{v2/components/wordmark-v2.tsx → typography/wordmark/wordmark.tsx} +1 -1
  197. package/dist/components/avatar.d.ts +0 -9
  198. package/dist/components/button.d.ts +0 -9
  199. package/dist/components/dialog.d.ts +0 -12
  200. package/dist/components/dropdown-menu.d.ts +0 -80
  201. package/dist/components/icon-button.d.ts +0 -10
  202. package/dist/components/keybind.d.ts +0 -6
  203. package/dist/components/radio-group.d.ts +0 -16
  204. package/dist/components/select.d.ts +0 -21
  205. package/dist/components/tag.d.ts +0 -5
  206. package/dist/components/toast.d.ts +0 -56
  207. package/dist/components/tooltip.d.ts +0 -17
  208. package/dist/v2/components/accordion-v2.d.ts +0 -26
  209. package/dist/v2/components/badge-v2.d.ts +0 -6
  210. package/dist/v2/components/button-v2.d.ts +0 -10
  211. package/dist/v2/components/checkbox-v2.d.ts +0 -10
  212. package/dist/v2/components/diff-changes-v2.d.ts +0 -11
  213. package/dist/v2/components/divider-v2.d.ts +0 -5
  214. package/dist/v2/components/icon-button-v2.d.ts +0 -11
  215. package/dist/v2/components/inline-input-v2.d.ts +0 -21
  216. package/dist/v2/components/keybind-v2.d.ts +0 -7
  217. package/dist/v2/components/loader-v2.d.ts +0 -3
  218. package/dist/v2/components/menu-v2.d.ts +0 -52
  219. package/dist/v2/components/progress-circle-v2.d.ts +0 -8
  220. package/dist/v2/components/radio-v2.d.ts +0 -16
  221. package/dist/v2/components/split-button-v2.d.ts +0 -5
  222. package/dist/v2/components/switch-v2.d.ts +0 -7
  223. package/dist/v2/components/tabs-v2.d.ts +0 -34
  224. package/dist/v2/components/text-shimmer-v2.d.ts +0 -9
  225. package/dist/v2/components/textarea-v2.d.ts +0 -7
  226. package/dist/v2/components/toast-v2.d.ts +0 -57
  227. package/dist/v2/components/tooltip-v2.d.ts +0 -13
  228. package/dist/v2/components/wordmark-v2.d.ts +0 -2
  229. package/src/components/avatar.css +0 -49
  230. package/src/components/avatar.tsx +0 -55
  231. package/src/components/button.css +0 -194
  232. package/src/components/dialog.css +0 -181
  233. package/src/components/dialog.tsx +0 -72
  234. package/src/components/diff-changes.tsx +0 -115
  235. package/src/components/dropdown-menu.css +0 -135
  236. package/src/components/dropdown-menu.tsx +0 -308
  237. package/src/components/icon-button.css +0 -181
  238. package/src/components/icon-button.tsx +0 -29
  239. package/src/components/icon.css +0 -39
  240. package/src/components/keybind.css +0 -18
  241. package/src/components/keybind.tsx +0 -20
  242. package/src/components/progress-circle.css +0 -16
  243. package/src/components/progress-circle.tsx +0 -64
  244. package/src/components/radio-group.css +0 -187
  245. package/src/components/radio-group.tsx +0 -83
  246. package/src/components/select.css +0 -201
  247. package/src/components/select.tsx +0 -174
  248. package/src/components/switch.css +0 -136
  249. package/src/components/switch.tsx +0 -29
  250. package/src/components/tabs.tsx +0 -126
  251. package/src/components/tag.css +0 -37
  252. package/src/components/tag.tsx +0 -22
  253. package/src/components/toast.css +0 -236
  254. package/src/components/toast.tsx +0 -185
  255. package/src/components/tooltip.css +0 -74
  256. package/src/components/tooltip.tsx +0 -163
  257. package/src/v2/components/accordion-v2.css +0 -139
  258. package/src/v2/components/accordion-v2.tsx +0 -86
  259. package/src/v2/components/button-v2.tsx +0 -35
  260. package/src/v2/components/checkbox-v2.css +0 -184
  261. package/src/v2/components/checkbox-v2.tsx +0 -65
  262. package/src/v2/components/diff-changes-v2.css +0 -26
  263. package/src/v2/components/icon-button-v2.tsx +0 -37
  264. package/src/v2/components/inline-input-v2.css +0 -225
  265. package/src/v2/components/inline-input-v2.tsx +0 -107
  266. package/src/v2/components/progress-circle-v2.css +0 -13
  267. package/src/v2/components/progress-circle-v2.tsx +0 -52
  268. package/src/v2/components/switch-v2.tsx +0 -28
  269. package/src/v2/components/tabs-v2.tsx +0 -149
  270. package/src/v2/components/text-shimmer-v2.css +0 -125
  271. package/src/v2/components/text-shimmer-v2.tsx +0 -63
  272. /package/dist/{components → forms/inline-input}/inline-input.d.ts +0 -0
  273. /package/dist/{v2/components → navigation}/tab-state-indicator.d.ts +0 -0
  274. /package/src/{v2/components/button-v2.css → actions/button/button.css} +0 -0
  275. /package/src/{v2/components/icon-button-v2.css → actions/icon-button/icon-button.css} +0 -0
  276. /package/src/{v2/components/avatar-v2.css → data-display/avatar/avatar.css} +0 -0
  277. /package/src/{v2/components/project-avatar-v2.css → data-display/project-avatar/project-avatar.css} +0 -0
  278. /package/src/{v2/components/loader-v2.css → feedback/loader/loader.css} +0 -0
  279. /package/src/{v2/components/toast-v2.css → feedback/toast/toast.css} +0 -0
  280. /package/src/{components → forms/inline-input}/inline-input.css +0 -0
  281. /package/src/{components → forms/inline-input}/inline-input.tsx +0 -0
  282. /package/src/{v2/components/radio-v2.css → forms/radio/radio.css} +0 -0
  283. /package/src/{v2/components/textarea-v2.css → forms/textarea/textarea.css} +0 -0
  284. /package/src/{v2/components/divider-v2.css → layout/divider/divider.css} +0 -0
  285. /package/src/{v2/components → navigation}/tab-state-indicator.tsx +0 -0
  286. /package/src/{v2/components/file-tree-v2.css → styles/file-tree.css} +0 -0
  287. /package/src/{v2/styles → styles/tokens}/colors.css +0 -0
  288. /package/src/{v2/styles/tailwind.css → styles/tokens/index.css} +0 -0
@@ -1,7 +1,7 @@
1
- import { Dialog as Kobalte } from "@kobalte/core/dialog"
1
+ import { CloseButton, Content, Description, Title } from "@kobalte/core/dialog"
2
2
  import { type ComponentProps, type JSXElement, type ParentProps, Show, children, splitProps } from "solid-js"
3
3
  import { useI18n } from "../../context/i18n"
4
- import "./dialog-v2.css"
4
+ import "./dialog.css"
5
5
 
6
6
  export interface DialogProps extends ParentProps {
7
7
  size?: "normal" | "large" | "x-large"
@@ -36,7 +36,7 @@ export function DialogBody(props: ParentProps & { class?: ComponentProps<"div">[
36
36
  }
37
37
 
38
38
  export function DialogTitle(props: ParentProps) {
39
- return <Kobalte.Title data-slot="dialog-header-title">{props.children}</Kobalte.Title>
39
+ return <Title data-slot="dialog-header-title">{props.children}</Title>
40
40
  }
41
41
 
42
42
  export function DialogTitleGroup(props: DialogTitleGroupProps) {
@@ -45,8 +45,8 @@ export function DialogTitleGroup(props: DialogTitleGroupProps) {
45
45
 
46
46
  return (
47
47
  <div data-slot="dialog-title-group">
48
- <Show when={title()}>{(t) => <Kobalte.Title data-slot="dialog-title">{t()}</Kobalte.Title>}</Show>
49
- <Kobalte.Description data-slot="dialog-description">{description()}</Kobalte.Description>
48
+ <Show when={title()}>{(t) => <Title data-slot="dialog-title">{t()}</Title>}</Show>
49
+ <Description data-slot="dialog-description">{description()}</Description>
50
50
  </div>
51
51
  )
52
52
  }
@@ -59,8 +59,8 @@ export function DialogHeader(props: DialogHeaderProps) {
59
59
  return (
60
60
  <div data-slot="dialog-header" data-hide-close={hideClose() ? "" : undefined}>
61
61
  {local.children}
62
- {!hideClose() && (
63
- <Kobalte.CloseButton data-slot="dialog-close-button" aria-label={local.closeLabel ?? i18n.t("ui.common.close")}>
62
+ <Show when={!hideClose()}>
63
+ <CloseButton data-slot="dialog-close-button" aria-label={local.closeLabel ?? i18n.t("ui.common.close")}>
64
64
  <svg
65
65
  width="16"
66
66
  height="16"
@@ -75,8 +75,8 @@ export function DialogHeader(props: DialogHeaderProps) {
75
75
  stroke-linejoin="round"
76
76
  />
77
77
  </svg>
78
- </Kobalte.CloseButton>
79
- )}
78
+ </CloseButton>
79
+ </Show>
80
80
  </div>
81
81
  )
82
82
  }
@@ -92,7 +92,7 @@ export function Dialog(props: DialogProps) {
92
92
  data-size={local.size || "normal"}
93
93
  >
94
94
  <div data-slot="dialog-container" class={local.containerClass}>
95
- <Kobalte.Content
95
+ <Content
96
96
  data-slot="dialog-content"
97
97
  classList={{
98
98
  ...local.classList,
@@ -108,10 +108,8 @@ export function Dialog(props: DialogProps) {
108
108
  }}
109
109
  >
110
110
  {local.children}
111
- </Kobalte.Content>
111
+ </Content>
112
112
  </div>
113
113
  </div>
114
114
  )
115
115
  }
116
-
117
- export const DialogV2 = Dialog
@@ -39,6 +39,32 @@
39
39
  }
40
40
  }
41
41
 
42
+ [data-component="tooltip-v2"][data-appearance="standard"] {
43
+ display: block;
44
+ max-width: 320px;
45
+ padding: 2px 8px;
46
+ border: 1px solid var(--border-weak-base, rgba(0, 0, 0, 0.07));
47
+ border-radius: var(--radius-sm);
48
+ background: var(--surface-float-base);
49
+ color: var(--text-invert-strong);
50
+ box-shadow: var(--shadow-md);
51
+ font-family: var(--font-family-sans);
52
+ font-size: var(--font-size-small);
53
+ font-style: normal;
54
+ font-weight: var(--font-weight-medium);
55
+ line-height: var(--line-height-large);
56
+ letter-spacing: var(--letter-spacing-normal);
57
+ font-variant-numeric: normal;
58
+ font-variation-settings: normal;
59
+ user-select: text;
60
+ animation: none;
61
+
62
+ &[data-closed]:not([data-force-open="true"]) {
63
+ opacity: 0;
64
+ animation: none;
65
+ }
66
+ }
67
+
42
68
  @keyframes tooltipV2In {
43
69
  from {
44
70
  opacity: 0;
@@ -1,19 +1,21 @@
1
- import { Tooltip as KobalteTooltip } from "@kobalte/core/tooltip"
1
+ import { Content, Portal, Root, Trigger } from "@kobalte/core/tooltip"
2
2
  import { createEffect, Match, onCleanup, splitProps, Switch, type JSX } from "solid-js"
3
3
  import type { ComponentProps } from "solid-js"
4
4
  import { createStore } from "solid-js/store"
5
- import "./tooltip-v2.css"
5
+ import "./tooltip.css"
6
6
 
7
- export interface TooltipV2Props extends ComponentProps<typeof KobalteTooltip> {
7
+ export interface TooltipProps extends ComponentProps<typeof Root> {
8
8
  value: JSX.Element
9
+ appearance?: "standard" | "compact"
9
10
  class?: string
10
11
  contentClass?: string
11
12
  contentStyle?: JSX.CSSProperties
12
13
  inactive?: boolean
13
14
  forceOpen?: boolean
15
+ triggerTabIndex?: number
14
16
  }
15
17
 
16
- export function TooltipV2(props: TooltipV2Props) {
18
+ export function Tooltip(props: TooltipProps) {
17
19
  let ref: HTMLDivElement | undefined
18
20
  const [state, setState] = createStore({
19
21
  open: false,
@@ -22,16 +24,19 @@ export function TooltipV2(props: TooltipV2Props) {
22
24
  })
23
25
  const [local, others] = splitProps(props, [
24
26
  "children",
27
+ "appearance",
25
28
  "class",
26
29
  "contentClass",
27
30
  "contentStyle",
28
31
  "inactive",
29
32
  "forceOpen",
33
+ "triggerTabIndex",
30
34
  "ignoreSafeArea",
31
35
  "value",
32
36
  ])
33
37
 
34
38
  const close = () => setState("open", false)
39
+ const controlled = () => local.forceOpen !== undefined
35
40
 
36
41
  const inside = () => {
37
42
  const active = document.activeElement
@@ -86,16 +91,16 @@ export function TooltipV2(props: TooltipV2Props) {
86
91
  <Switch>
87
92
  <Match when={local.inactive}>{local.children}</Match>
88
93
  <Match when={true}>
89
- <KobalteTooltip
94
+ <Root
90
95
  gutter={4}
91
96
  openDelay={400}
92
97
  skipDelayDuration={300}
93
98
  {...others}
94
99
  closeDelay={0}
95
100
  ignoreSafeArea={local.ignoreSafeArea ?? true}
96
- open={local.forceOpen || state.open}
101
+ open={controlled() ? local.forceOpen : state.open}
97
102
  onOpenChange={(open) => {
98
- if (local.forceOpen) return
103
+ if (controlled()) return
99
104
  if (state.block && open) return
100
105
  if (justClickedTrigger) {
101
106
  justClickedTrigger = false
@@ -104,9 +109,10 @@ export function TooltipV2(props: TooltipV2Props) {
104
109
  setState("open", open)
105
110
  }}
106
111
  >
107
- <KobalteTooltip.Trigger
112
+ <Trigger
108
113
  ref={ref}
109
114
  as="div"
115
+ tabIndex={local.triggerTabIndex}
110
116
  data-component="tooltip-v2-trigger"
111
117
  class={local.class}
112
118
  onPointerDownCapture={arm}
@@ -118,14 +124,15 @@ export function TooltipV2(props: TooltipV2Props) {
118
124
  onFocusOut={() => requestAnimationFrame(() => drop())}
119
125
  >
120
126
  {local.children}
121
- </KobalteTooltip.Trigger>
122
- <KobalteTooltip.Portal>
123
- <KobalteTooltip.Content
127
+ </Trigger>
128
+ <Portal>
129
+ <Content
124
130
  ref={(el) => {
125
131
  const theme = ref?.closest("[data-theme]")?.getAttribute("data-theme")
126
132
  if (theme) el.setAttribute("data-theme", theme)
127
133
  }}
128
134
  data-component="tooltip-v2"
135
+ data-appearance={local.appearance ?? "compact"}
129
136
  data-placement={props.placement}
130
137
  data-force-open={local.forceOpen}
131
138
  class={local.contentClass}
@@ -138,9 +145,9 @@ export function TooltipV2(props: TooltipV2Props) {
138
145
  }}
139
146
  >
140
147
  {local.value}
141
- </KobalteTooltip.Content>
142
- </KobalteTooltip.Portal>
143
- </KobalteTooltip>
148
+ </Content>
149
+ </Portal>
150
+ </Root>
144
151
  </Match>
145
152
  </Switch>
146
153
  )
@@ -6,47 +6,31 @@
6
6
  @import "./base.css" layer(base);
7
7
  @import "katex/dist/katex.min.css" layer(base);
8
8
 
9
- @import "../components/accordion.css" layer(components);
9
+ @import "../data-display/accordion/accordion.css" layer(components);
10
10
  @import "../components/animated-number.css" layer(components);
11
11
  @import "../components/app-icon.css" layer(components);
12
- @import "../components/avatar.css" layer(components);
13
- @import "../components/button.css" layer(components);
14
12
  @import "../components/card.css" layer(components);
15
- @import "../components/checkbox.css" layer(components);
13
+ @import "../forms/checkbox/checkbox.css" layer(components);
16
14
  @import "../components/collapsible.css" layer(components);
17
- @import "../components/diff-changes.css" layer(components);
18
15
  @import "../components/context-menu.css" layer(components);
19
- @import "../components/dropdown-menu.css" layer(components);
20
- @import "../components/dialog.css" layer(components);
21
16
  @import "../components/file-icon.css" layer(components);
22
17
  @import "../components/hover-card.css" layer(components);
23
18
  @import "../components/provider-icon.css" layer(components);
24
19
  @import "../components/dock-surface.css" layer(components);
25
- @import "../components/icon.css" layer(components);
26
- @import "../components/icon-button.css" layer(components);
27
20
  @import "../components/image-preview.css" layer(components);
28
- @import "../components/keybind.css" layer(components);
21
+ @import "../forms/inline-input/inline-input.css" layer(components);
29
22
  @import "../components/text-field.css" layer(components);
30
- @import "../components/inline-input.css" layer(components);
31
23
  @import "../components/list.css" layer(components);
32
24
  @import "../components/logo.css" layer(components);
33
25
  @import "../components/popover.css" layer(components);
34
26
  @import "../components/progress.css" layer(components);
35
- @import "../components/progress-circle.css" layer(components);
36
- @import "../components/radio-group.css" layer(components);
37
27
  @import "../components/resize-handle.css" layer(components);
38
- @import "../components/select.css" layer(components);
39
28
  @import "../components/spinner.css" layer(components);
40
- @import "../components/switch.css" layer(components);
41
29
  @import "../components/scroll-view.css" layer(components);
42
30
  @import "../components/sticky-accordion-header.css" layer(components);
43
- @import "../components/tabs.css" layer(components);
44
- @import "../components/tag.css" layer(components);
31
+ @import "../navigation/tabs/tabs.css" layer(components);
45
32
  @import "../components/text-reveal.css" layer(components);
46
33
  @import "../components/text-strikethrough.css" layer(components);
47
- @import "../components/text-shimmer.css" layer(components);
48
- @import "../components/toast.css" layer(components);
49
- @import "../components/tooltip.css" layer(components);
50
34
  @import "../components/typewriter.css" layer(components);
51
35
 
52
36
  @import "./utilities.css" layer(utilities);
@@ -252,6 +252,7 @@
252
252
  --color-v2-text-text-code-accent: var(--v2-text-text-code-accent);
253
253
  --color-v2-icon-icon-base: var(--v2-icon-icon-base);
254
254
  --color-v2-icon-icon-muted: var(--v2-icon-icon-muted);
255
+ --color-v2-icon-icon-faint: var(--v2-icon-icon-faint);
255
256
  --color-v2-icon-icon-inverse: var(--v2-icon-icon-inverse);
256
257
  --color-v2-icon-icon-contrast: var(--v2-icon-icon-contrast);
257
258
  --color-v2-icon-icon-accent: var(--v2-icon-icon-accent);
@@ -1,7 +1,21 @@
1
1
  @layer theme, base, components, utilities;
2
2
 
3
3
  @import "tailwindcss/theme.css" layer(theme);
4
- @import "tailwindcss/utilities.css" layer(utilities) source("../../../../");
4
+ @import "tailwindcss/utilities.css" layer(utilities) source(none);
5
+ @source "../../../../app/src";
6
+ @source "../../../../app/index.html";
7
+ @source not "../../../../app/src/i18n";
8
+ @source not "../../../../app/src/**/*.test.{ts,tsx}";
9
+ @source "../../../../desktop/src/renderer";
10
+ @source not "../../../../desktop/src/renderer/**/*.test.{ts,tsx}";
11
+ @source "../../../../enterprise/src";
12
+ @source "../../../../session-ui/src";
13
+ @source not "../../../../session-ui/src/**/*.test.{ts,tsx}";
14
+ @source "../../../../storybook";
15
+ @source "../../../src";
16
+ @source not "../../../src/assets";
17
+ @source not "../../../src/i18n";
18
+ @source not "../../../src/**/*.test.{ts,tsx}";
5
19
  @import "./utilities.css";
6
20
 
7
21
  @import "../index.css";
@@ -51,6 +65,9 @@
51
65
  --leading-lg: var(--line-height-large);
52
66
  --leading-xl: var(--line-height-x-large);
53
67
  --leading-2xl: var(--line-height-2x-large);
68
+ --leading-text-tight: var(--line-height-tight);
69
+ --leading-text-compact: var(--line-height-compact);
70
+ --leading-text-base: var(--line-height-base);
54
71
 
55
72
  --tracking-normal: var(--letter-spacing-normal);
56
73
  --tracking-tight: var(--letter-spacing-tight);
@@ -1,16 +1,4 @@
1
1
  @layer theme {
2
- html[data-theme="oc-2"] body:not([data-new-layout]) {
3
- --text-diff-add-base: light-dark(#167517, #c4ffc0);
4
- --text-diff-delete-base: light-dark(#fa3012, #ec2f14);
5
- --syntax-comment: light-dark(#7a7a7a, #8f8f8f);
6
- --syntax-keyword: light-dark(#a753ae, #edb2f1);
7
- --syntax-string: #00ceb9;
8
- --syntax-primitive: light-dark(#034cff, #8cb0ff);
9
- --syntax-property: light-dark(#a753ae, #fab283);
10
- --syntax-type: light-dark(#8a6f00, #fcd53a);
11
- --syntax-critical: light-dark(#ff8c00, #fab283);
12
- }
13
-
14
2
  :root {
15
3
  color-scheme: light;
16
4
 
@@ -39,6 +27,7 @@
39
27
  /* ── Icon ── */
40
28
  --v2-icon-icon-base: var(--v2-grey-800);
41
29
  --v2-icon-icon-muted: var(--v2-grey-600);
30
+ --v2-icon-icon-faint: var(--v2-grey-500);
42
31
  --v2-icon-icon-inverse: var(--v2-grey-50);
43
32
  --v2-icon-icon-contrast: var(--v2-grey-100);
44
33
  --v2-icon-icon-accent: var(--v2-blue-600);
@@ -142,6 +131,10 @@
142
131
 
143
132
  --font-family-text: "Inter", sans-serif;
144
133
  --v2-font-family-sans: "Inter", sans-serif;
134
+ --v2-font-family-code: "IBM Plex Mono", var(--font-family-mono);
135
+ --line-height-tight: 12px;
136
+ --line-height-compact: 16px;
137
+ --line-height-base: 20px;
145
138
  }
146
139
 
147
140
  /* OS preference fallback (no JS needed) */
@@ -170,6 +163,7 @@
170
163
 
171
164
  --v2-icon-icon-base: var(--v2-grey-400);
172
165
  --v2-icon-icon-muted: var(--v2-grey-600);
166
+ --v2-icon-icon-faint: var(--v2-grey-500);
173
167
  --v2-icon-icon-inverse: var(--v2-grey-1000);
174
168
  --v2-icon-icon-contrast: var(--v2-grey-200);
175
169
  --v2-icon-icon-accent: var(--v2-blue-400);
@@ -283,6 +277,7 @@
283
277
 
284
278
  --v2-icon-icon-base: var(--v2-grey-800);
285
279
  --v2-icon-icon-muted: var(--v2-grey-600);
280
+ --v2-icon-icon-faint: var(--v2-grey-500);
286
281
  --v2-icon-icon-inverse: var(--v2-grey-50);
287
282
  --v2-icon-icon-contrast: var(--v2-grey-100);
288
283
  --v2-icon-icon-accent: var(--v2-blue-600);
@@ -405,6 +400,7 @@
405
400
 
406
401
  --v2-icon-icon-base: var(--v2-grey-400);
407
402
  --v2-icon-icon-muted: var(--v2-grey-600);
403
+ --v2-icon-icon-faint: var(--v2-grey-500);
408
404
  --v2-icon-icon-inverse: var(--v2-grey-1100);
409
405
  --v2-icon-icon-contrast: var(--v2-grey-100);
410
406
  --v2-icon-icon-accent: var(--v2-blue-400);
@@ -84,8 +84,9 @@ const names: Record<string, string> = {
84
84
  }
85
85
  const oc2Theme = oc2ThemeJson as DesktopTheme
86
86
 
87
- function normalize(id: string | null | undefined) {
88
- return id === "oc-1" ? "oc-2" : id
87
+ function resolveStoredTheme(id: string | null | undefined, registered?: Record<string, DesktopTheme>) {
88
+ if (id === "oc-2" || (id && (knownThemes().has(id) || registered?.[id]))) return id
89
+ return "oc-2"
89
90
  }
90
91
 
91
92
  function read(key: string) {
@@ -177,7 +178,12 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
177
178
  defaultTheme?: string
178
179
  onThemeApplied?: (theme: DesktopTheme, mode: "light" | "dark", scheme: ColorScheme) => void
179
180
  }) => {
180
- const themeId = normalize(read(STORAGE_KEYS.THEME_ID) ?? props.defaultTheme) ?? "oc-2"
181
+ const rawTheme = read(STORAGE_KEYS.THEME_ID) ?? props.defaultTheme
182
+ const themeId = resolveStoredTheme(rawTheme)
183
+ if (rawTheme && rawTheme !== themeId) {
184
+ write(STORAGE_KEYS.THEME_ID, themeId)
185
+ clear()
186
+ }
181
187
  const colorScheme = (read(STORAGE_KEYS.COLOR_SCHEME) as ColorScheme | null) ?? "system"
182
188
  const mode = colorScheme === "system" ? getSystemMode() : colorScheme
183
189
  const [store, setStore] = createStore({
@@ -194,7 +200,7 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
194
200
  const loads = new Map<string, Promise<DesktopTheme | undefined>>()
195
201
 
196
202
  const load = (id: string) => {
197
- const next = normalize(id)
203
+ const next = id
198
204
  if (!next) return Promise.resolve(undefined)
199
205
  const hit = store.themes[next]
200
206
  if (hit) return Promise.resolve(hit)
@@ -233,9 +239,11 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
233
239
 
234
240
  const onStorage = (e: StorageEvent) => {
235
241
  if (e.key === STORAGE_KEYS.THEME_ID && e.newValue) {
236
- const next = normalize(e.newValue)
237
- if (!next) return
238
- if (next !== "oc-2" && !knownThemes().has(next) && !store.themes[next]) return
242
+ const next = resolveStoredTheme(e.newValue, store.themes)
243
+ if (next !== e.newValue) {
244
+ write(STORAGE_KEYS.THEME_ID, next)
245
+ clear()
246
+ }
239
247
  setStore("themeId", next)
240
248
  if (next === "oc-2") {
241
249
  clear()
@@ -262,8 +270,8 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
262
270
  }
263
271
  makeEventListener(mediaQuery, "change", onMedia)
264
272
 
265
- const rawTheme = read(STORAGE_KEYS.THEME_ID)
266
- const savedTheme = normalize(rawTheme ?? props.defaultTheme) ?? "oc-2"
273
+ const rawTheme = read(STORAGE_KEYS.THEME_ID) ?? props.defaultTheme
274
+ const savedTheme = resolveStoredTheme(rawTheme, store.themes)
267
275
  const savedScheme = (read(STORAGE_KEYS.COLOR_SCHEME) as ColorScheme | null) ?? "system"
268
276
  if (rawTheme && rawTheme !== savedTheme) {
269
277
  write(STORAGE_KEYS.THEME_ID, savedTheme)
@@ -285,7 +293,7 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
285
293
  })
286
294
 
287
295
  const setTheme = (id: string) => {
288
- const next = normalize(id)
296
+ const next = id
289
297
  if (!next) {
290
298
  console.warn(`Theme "${id}" not found`)
291
299
  return
@@ -325,7 +333,7 @@ export const { use: useTheme, provider: ThemeProvider } = createSimpleContext({
325
333
  setColorScheme,
326
334
  registerTheme: (theme: DesktopTheme) => setStore("themes", theme.id, theme),
327
335
  previewTheme: (id: string) => {
328
- const next = normalize(id)
336
+ const next = id
329
337
  if (!next) return
330
338
  if (next !== "oc-2" && !knownThemes().has(next) && !store.themes[next]) return
331
339
  setStore("previewThemeId", next)
@@ -25,7 +25,7 @@
25
25
  "border-weak-base": "#DBDBDB",
26
26
  "border-weaker-base": "#E8E8E8",
27
27
  "icon-base": "#8F8F8F",
28
- "icon-weak-base": "#C7C7C7",
28
+ "icon-weak-base": "C7C7C7",
29
29
  "surface-raised-base": "#F3F3F3",
30
30
  "surface-raised-base-hover": "#EDEDED",
31
31
  "surface-base": "#F8F8F8",
@@ -176,6 +176,7 @@
176
176
  "v2-text-text-code-accent": "var(--v2-blue-900)",
177
177
  "v2-icon-icon-base": "var(--v2-grey-800)",
178
178
  "v2-icon-icon-muted": "var(--v2-grey-600)",
179
+ "v2-icon-icon-faint": "var(--v2-grey-500)",
179
180
  "v2-icon-icon-inverse": "var(--v2-grey-50)",
180
181
  "v2-icon-icon-contrast": "var(--v2-grey-100)",
181
182
  "v2-icon-icon-accent": "var(--v2-blue-600)",
@@ -411,6 +412,7 @@
411
412
  "v2-text-text-code-accent": "var(--v2-blue-400)",
412
413
  "v2-icon-icon-base": "var(--v2-grey-400)",
413
414
  "v2-icon-icon-muted": "var(--v2-grey-600)",
415
+ "v2-icon-icon-faint": "var(--v2-grey-500)",
414
416
  "v2-icon-icon-inverse": "var(--v2-grey-1100)",
415
417
  "v2-icon-icon-contrast": "var(--v2-grey-100)",
416
418
  "v2-icon-icon-accent": "var(--v2-blue-400)",
@@ -52,6 +52,7 @@ export function mapV2Foreground(
52
52
  "v2-text-text-faint": shift(body, { l: isDark ? -0.2 : 0.21, c: isDark ? 0.78 : 0.72 }),
53
53
  "v2-icon-icon-base": greyRef(pickGrey(primitives, bgBase, 7, isDark ? 400 : 800)),
54
54
  "v2-icon-icon-muted": greyRef(pickGrey(primitives, bgBase, 3, 600)),
55
+ "v2-icon-icon-faint": greyRef(pickGrey(primitives, bgBase, 1.5, 500)),
55
56
  "v2-icon-icon-inverse": greyRef(pickGrey(primitives, bgInverse, 7, inverseTarget)),
56
57
  "v2-icon-icon-contrast": greyRef(pickGrey(primitives, bgContrast, 7, 100)),
57
58
  "v2-icon-icon-accent": isDark ? "var(--v2-blue-400)" : "var(--v2-blue-600)",
@@ -5,7 +5,8 @@
5
5
  --text-shimmer-index: 0;
6
6
  --text-shimmer-angle: 90deg;
7
7
  --text-shimmer-spread: 5.2ch;
8
- --text-shimmer-size: 360%;
8
+ --text-shimmer-gutter: calc(var(--text-shimmer-spread) + 1ch);
9
+ --text-shimmer-size: calc(200% + var(--text-shimmer-gutter) + var(--text-shimmer-gutter));
9
10
  --text-shimmer-base-color: var(--text-weak);
10
11
  --text-shimmer-peak-color: var(--text-strong);
11
12
  --text-shimmer-sweep: linear-gradient(
@@ -1,5 +1,6 @@
1
1
  import { createEffect, createMemo, createSignal, onCleanup, type ValidComponent } from "solid-js"
2
2
  import { Dynamic } from "solid-js/web"
3
+ import "./text-shimmer.css"
3
4
 
4
5
  export const TextShimmer = <T extends ValidComponent = "span">(props: {
5
6
  text: string
@@ -1,6 +1,6 @@
1
1
  import { createUniqueId, type ComponentProps } from "solid-js"
2
2
 
3
- export function WordmarkV2(props: Pick<ComponentProps<"svg">, "class">) {
3
+ export function Wordmark(props: Pick<ComponentProps<"svg">, "class">) {
4
4
  const mask = createUniqueId()
5
5
  const maskGradient = createUniqueId()
6
6
 
@@ -1,9 +0,0 @@
1
- import { type ComponentProps } from "solid-js";
2
- export interface AvatarProps extends ComponentProps<"div"> {
3
- fallback: string;
4
- src?: string;
5
- background?: string;
6
- foreground?: string;
7
- size?: "small" | "normal" | "large";
8
- }
9
- export declare function Avatar(props: AvatarProps): import("solid-js").JSX.Element;
@@ -1,9 +0,0 @@
1
- import { Button as Kobalte } from "@kobalte/core/button";
2
- import { type ComponentProps } from "solid-js";
3
- import { IconProps } from "./icon";
4
- export interface ButtonProps extends ComponentProps<typeof Kobalte>, Pick<ComponentProps<"button">, "class" | "classList" | "children"> {
5
- size?: "small" | "normal" | "large";
6
- variant?: "primary" | "secondary" | "ghost";
7
- icon?: IconProps["name"];
8
- }
9
- export declare function Button(props: ButtonProps): import("solid-js").JSX.Element;
@@ -1,12 +0,0 @@
1
- import { ComponentProps, JSXElement, ParentProps } from "solid-js";
2
- export interface DialogProps extends ParentProps {
3
- title?: JSXElement;
4
- description?: JSXElement;
5
- action?: JSXElement;
6
- size?: "normal" | "large" | "x-large";
7
- class?: ComponentProps<"div">["class"];
8
- classList?: ComponentProps<"div">["classList"];
9
- fit?: boolean;
10
- transition?: boolean;
11
- }
12
- export declare function Dialog(props: DialogProps): import("solid-js").JSX.Element;
@@ -1,80 +0,0 @@
1
- import { DropdownMenu as Kobalte } from "@kobalte/core/dropdown-menu";
2
- import type { ComponentProps, ParentProps } from "solid-js";
3
- export interface DropdownMenuProps extends ComponentProps<typeof Kobalte> {
4
- }
5
- export interface DropdownMenuTriggerProps extends ComponentProps<typeof Kobalte.Trigger> {
6
- }
7
- export interface DropdownMenuIconProps extends ComponentProps<typeof Kobalte.Icon> {
8
- }
9
- export interface DropdownMenuPortalProps extends ComponentProps<typeof Kobalte.Portal> {
10
- }
11
- export interface DropdownMenuContentProps extends ComponentProps<typeof Kobalte.Content> {
12
- }
13
- export interface DropdownMenuArrowProps extends ComponentProps<typeof Kobalte.Arrow> {
14
- }
15
- export interface DropdownMenuSeparatorProps extends ComponentProps<typeof Kobalte.Separator> {
16
- }
17
- export interface DropdownMenuGroupProps extends ComponentProps<typeof Kobalte.Group> {
18
- }
19
- export interface DropdownMenuGroupLabelProps extends ComponentProps<typeof Kobalte.GroupLabel> {
20
- }
21
- export interface DropdownMenuItemProps extends ComponentProps<typeof Kobalte.Item> {
22
- }
23
- export interface DropdownMenuItemLabelProps extends ComponentProps<typeof Kobalte.ItemLabel> {
24
- }
25
- export interface DropdownMenuItemDescriptionProps extends ComponentProps<typeof Kobalte.ItemDescription> {
26
- }
27
- export interface DropdownMenuItemIndicatorProps extends ComponentProps<typeof Kobalte.ItemIndicator> {
28
- }
29
- export interface DropdownMenuRadioGroupProps extends ComponentProps<typeof Kobalte.RadioGroup> {
30
- }
31
- export interface DropdownMenuRadioItemProps extends ComponentProps<typeof Kobalte.RadioItem> {
32
- }
33
- export interface DropdownMenuCheckboxItemProps extends ComponentProps<typeof Kobalte.CheckboxItem> {
34
- }
35
- export interface DropdownMenuSubProps extends ComponentProps<typeof Kobalte.Sub> {
36
- }
37
- export interface DropdownMenuSubTriggerProps extends ComponentProps<typeof Kobalte.SubTrigger> {
38
- }
39
- export interface DropdownMenuSubContentProps extends ComponentProps<typeof Kobalte.SubContent> {
40
- }
41
- declare function DropdownMenuRoot(props: DropdownMenuProps): import("solid-js").JSX.Element;
42
- declare function DropdownMenuTrigger(props: ParentProps<DropdownMenuTriggerProps>): import("solid-js").JSX.Element;
43
- declare function DropdownMenuIcon(props: ParentProps<DropdownMenuIconProps>): import("solid-js").JSX.Element;
44
- declare function DropdownMenuPortal(props: DropdownMenuPortalProps): import("solid-js").JSX.Element;
45
- declare function DropdownMenuContent(props: ParentProps<DropdownMenuContentProps>): import("solid-js").JSX.Element;
46
- declare function DropdownMenuArrow(props: DropdownMenuArrowProps): import("solid-js").JSX.Element;
47
- declare function DropdownMenuSeparator(props: DropdownMenuSeparatorProps): import("solid-js").JSX.Element;
48
- declare function DropdownMenuGroup(props: ParentProps<DropdownMenuGroupProps>): import("solid-js").JSX.Element;
49
- declare function DropdownMenuGroupLabel(props: ParentProps<DropdownMenuGroupLabelProps>): import("solid-js").JSX.Element;
50
- declare function DropdownMenuItem(props: ParentProps<DropdownMenuItemProps>): import("solid-js").JSX.Element;
51
- declare function DropdownMenuItemLabel(props: ParentProps<DropdownMenuItemLabelProps>): import("solid-js").JSX.Element;
52
- declare function DropdownMenuItemDescription(props: ParentProps<DropdownMenuItemDescriptionProps>): import("solid-js").JSX.Element;
53
- declare function DropdownMenuItemIndicator(props: ParentProps<DropdownMenuItemIndicatorProps>): import("solid-js").JSX.Element;
54
- declare function DropdownMenuRadioGroup(props: ParentProps<DropdownMenuRadioGroupProps>): import("solid-js").JSX.Element;
55
- declare function DropdownMenuRadioItem(props: ParentProps<DropdownMenuRadioItemProps>): import("solid-js").JSX.Element;
56
- declare function DropdownMenuCheckboxItem(props: ParentProps<DropdownMenuCheckboxItemProps>): import("solid-js").JSX.Element;
57
- declare function DropdownMenuSub(props: DropdownMenuSubProps): import("solid-js").JSX.Element;
58
- declare function DropdownMenuSubTrigger(props: ParentProps<DropdownMenuSubTriggerProps>): import("solid-js").JSX.Element;
59
- declare function DropdownMenuSubContent(props: ParentProps<DropdownMenuSubContentProps>): import("solid-js").JSX.Element;
60
- export declare const DropdownMenu: typeof DropdownMenuRoot & {
61
- Trigger: typeof DropdownMenuTrigger;
62
- Icon: typeof DropdownMenuIcon;
63
- Portal: typeof DropdownMenuPortal;
64
- Content: typeof DropdownMenuContent;
65
- Arrow: typeof DropdownMenuArrow;
66
- Separator: typeof DropdownMenuSeparator;
67
- Group: typeof DropdownMenuGroup;
68
- GroupLabel: typeof DropdownMenuGroupLabel;
69
- Item: typeof DropdownMenuItem;
70
- ItemLabel: typeof DropdownMenuItemLabel;
71
- ItemDescription: typeof DropdownMenuItemDescription;
72
- ItemIndicator: typeof DropdownMenuItemIndicator;
73
- RadioGroup: typeof DropdownMenuRadioGroup;
74
- RadioItem: typeof DropdownMenuRadioItem;
75
- CheckboxItem: typeof DropdownMenuCheckboxItem;
76
- Sub: typeof DropdownMenuSub;
77
- SubTrigger: typeof DropdownMenuSubTrigger;
78
- SubContent: typeof DropdownMenuSubContent;
79
- };
80
- export {};
@@ -1,10 +0,0 @@
1
- import { Button as Kobalte } from "@kobalte/core/button";
2
- import { type ComponentProps } from "solid-js";
3
- import { IconProps } from "./icon";
4
- export interface IconButtonProps extends ComponentProps<typeof Kobalte> {
5
- icon: IconProps["name"];
6
- size?: "small" | "normal" | "large";
7
- iconSize?: IconProps["size"];
8
- variant?: "primary" | "secondary" | "ghost";
9
- }
10
- export declare function IconButton(props: ComponentProps<"button"> & IconButtonProps): import("solid-js").JSX.Element;
@@ -1,6 +0,0 @@
1
- import type { ComponentProps, ParentProps } from "solid-js";
2
- export interface KeybindProps extends ParentProps {
3
- class?: string;
4
- classList?: ComponentProps<"span">["classList"];
5
- }
6
- export declare function Keybind(props: KeybindProps): import("solid-js").JSX.Element;