@opencode-ai/ui 0.0.0-dev-202608261632 → 0.0.0-dev-18313
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.
- package/dist/actions/button/button.d.ts +10 -0
- package/dist/actions/icon-button/icon-button.d.ts +11 -0
- package/dist/actions/split-button/split-button.d.ts +5 -0
- package/dist/components/card.d.ts +1 -1
- package/dist/components/list.d.ts +1 -1
- package/dist/components/scroll-view.d.ts +3 -3
- package/dist/context/i18n.d.ts +10 -7
- package/dist/{components → data-display/accordion}/accordion.d.ts +6 -6
- package/dist/{v2/components/avatar-v2.d.ts → data-display/avatar/avatar.d.ts} +1 -1
- package/dist/data-display/badge/badge.d.ts +7 -0
- package/dist/{components → data-display/diff-changes}/diff-changes.d.ts +2 -1
- package/dist/data-display/keybind/keybind.d.ts +7 -0
- package/dist/{v2/components/line-comment-v2.d.ts → data-display/line-comment/line-comment.d.ts} +9 -9
- package/dist/{v2/components/project-avatar-v2.d.ts → data-display/project-avatar/project-avatar.d.ts} +1 -1
- package/dist/feedback/loader/loader.d.ts +3 -0
- package/dist/{components → feedback/progress-circle}/progress-circle.d.ts +2 -0
- package/dist/feedback/toast/toast.d.ts +57 -0
- package/dist/{components → forms/checkbox}/checkbox.d.ts +2 -2
- package/dist/{v2/components/field-v2.d.ts → forms/field/field.d.ts} +4 -10
- package/dist/forms/radio/radio.d.ts +16 -0
- package/dist/{v2/components/select-v2.d.ts → forms/select/select.d.ts} +4 -6
- package/dist/{components → forms/switch}/switch.d.ts +4 -2
- package/dist/{v2/components/text-input-v2.d.ts → forms/text-input/text-input.d.ts} +3 -3
- package/dist/forms/textarea/textarea.d.ts +7 -0
- package/dist/i18n/ar.d.ts +0 -2
- package/dist/i18n/bg.d.ts +0 -2
- package/dist/i18n/br.d.ts +0 -2
- package/dist/i18n/bs.d.ts +0 -2
- package/dist/i18n/da.d.ts +0 -2
- package/dist/i18n/de.d.ts +0 -2
- package/dist/i18n/en.d.ts +226 -1
- package/dist/i18n/es.d.ts +0 -2
- package/dist/i18n/fr.d.ts +0 -2
- package/dist/i18n/he.d.ts +197 -0
- package/dist/i18n/ja.d.ts +0 -2
- package/dist/i18n/km.d.ts +0 -2
- package/dist/i18n/ko.d.ts +0 -2
- package/dist/i18n/lo.d.ts +0 -2
- package/dist/i18n/mk.d.ts +0 -2
- package/dist/i18n/mn.d.ts +0 -2
- package/dist/i18n/my.d.ts +0 -2
- package/dist/i18n/pl.d.ts +0 -2
- package/dist/i18n/ru.d.ts +0 -2
- package/dist/i18n/sr.d.ts +0 -2
- package/dist/i18n/tg.d.ts +0 -2
- package/dist/i18n/th.d.ts +0 -2
- package/dist/i18n/tr.d.ts +0 -2
- package/dist/i18n/zh.d.ts +0 -2
- package/dist/i18n/zht.d.ts +0 -2
- package/dist/{components/icon.d.ts → icons/icon/additional-icons.d.ts} +8 -8
- package/dist/{v2/components → icons/icon}/icon.d.ts +24 -1
- package/dist/layout/divider/divider.d.ts +5 -0
- package/dist/navigation/menu/menu.d.ts +59 -0
- package/dist/{v2/components/segmented-control-v2.d.ts → navigation/segmented-control/segmented-control.d.ts} +5 -5
- package/dist/{components → navigation/tabs}/tabs.d.ts +15 -8
- package/dist/{v2/components/dialog-v2.d.ts → overlays/dialog/dialog.d.ts} +1 -2
- package/dist/overlays/tooltip/tooltip.d.ts +15 -0
- package/dist/{components → typography/text-shimmer}/text-shimmer.d.ts +1 -0
- package/dist/typography/wordmark/wordmark.d.ts +2 -0
- package/package.json +131 -13
- package/src/{components → actions/button}/button.tsx +10 -11
- package/src/actions/icon-button/icon-button.tsx +32 -0
- package/src/{v2/components/split-button-v2.css → actions/split-button/split-button.css} +1 -6
- package/src/{v2/components/split-button-v2.tsx → actions/split-button/split-button.tsx} +4 -4
- package/src/components/animated-number.css +29 -11
- package/src/components/animated-number.tsx +2 -2
- package/src/components/card.css +2 -23
- package/src/components/card.tsx +4 -4
- package/src/components/collapsible.tsx +2 -2
- package/src/components/dock-surface.css +2 -9
- package/src/components/image-preview.tsx +3 -2
- package/src/components/list.css +5 -5
- package/src/components/list.tsx +7 -5
- package/src/components/popover.tsx +3 -2
- package/src/components/scroll-view.tsx +5 -20
- package/src/components/sticky-accordion-header.tsx +1 -1
- package/src/components/text-field.tsx +12 -4
- package/src/context/dialog.tsx +1 -0
- package/src/context/i18n.tsx +17 -14
- package/src/{components → data-display/accordion}/accordion.css +1 -26
- package/src/{components → data-display/accordion}/accordion.tsx +14 -14
- package/src/{v2/components/avatar-v2.tsx → data-display/avatar/avatar.tsx} +1 -1
- package/src/{v2/components/badge-v2.css → data-display/badge/badge.css} +19 -0
- package/src/{v2/components/badge-v2.tsx → data-display/badge/badge.tsx} +6 -4
- package/src/{components → data-display/diff-changes}/diff-changes.css +22 -19
- package/src/{v2/components/diff-changes-v2.tsx → data-display/diff-changes/diff-changes.tsx} +7 -2
- package/src/{v2/components/keybind-v2.css → data-display/keybind/keybind.css} +1 -1
- package/src/{v2/components/keybind-v2.tsx → data-display/keybind/keybind.tsx} +3 -3
- package/src/{v2/components/line-comment-v2.css → data-display/line-comment/line-comment.css} +3 -3
- package/src/{v2/components/line-comment-v2.tsx → data-display/line-comment/line-comment.tsx} +17 -15
- package/src/{v2/components/project-avatar-v2.tsx → data-display/project-avatar/project-avatar.tsx} +1 -1
- package/src/{v2/components/loader-v2.tsx → feedback/loader/loader.tsx} +2 -2
- package/src/feedback/progress-circle/progress-circle.css +28 -0
- package/src/feedback/progress-circle/progress-circle.tsx +64 -0
- package/src/{v2/components/toast-v2.tsx → feedback/toast/toast.tsx} +60 -58
- package/src/{components → forms/checkbox}/checkbox.css +1 -7
- package/src/{components → forms/checkbox}/checkbox.tsx +13 -13
- package/src/{v2/components/field-v2.css → forms/field/field.css} +1 -1
- package/src/{v2/components/field-v2.tsx → forms/field/field.tsx} +9 -11
- package/src/{v2/components/radio-v2.tsx → forms/radio/radio.tsx} +30 -20
- package/src/{v2/components/select-v2.css → forms/select/select.css} +2 -8
- package/src/{v2/components/select-v2.tsx → forms/select/select.tsx} +38 -32
- package/src/{v2/components/switch-v2.css → forms/switch/switch.css} +110 -0
- package/src/forms/switch/switch.tsx +34 -0
- package/src/{v2/components/text-input-v2.css → forms/text-input/text-input.css} +1 -1
- package/src/{v2/components/text-input-v2.tsx → forms/text-input/text-input.tsx} +4 -4
- package/src/{v2/components/textarea-v2.tsx → forms/textarea/textarea.tsx} +3 -3
- package/src/hooks/create-auto-scroll.tsx +20 -0
- package/src/i18n/am.ts +1 -3
- package/src/i18n/ar.ts +1 -3
- package/src/i18n/az.ts +1 -3
- package/src/i18n/bg.ts +1 -3
- package/src/i18n/bn.ts +1 -3
- package/src/i18n/br.ts +1 -3
- package/src/i18n/bs.ts +1 -3
- package/src/i18n/ca.ts +1 -3
- package/src/i18n/cs.ts +1 -3
- package/src/i18n/da.ts +1 -3
- package/src/i18n/de.ts +1 -3
- package/src/i18n/dv.ts +1 -3
- package/src/i18n/dz.ts +1 -3
- package/src/i18n/el.ts +1 -3
- package/src/i18n/en.ts +36 -5
- package/src/i18n/es.ts +1 -3
- package/src/i18n/et.ts +1 -3
- package/src/i18n/fa.ts +1 -3
- package/src/i18n/fi.ts +1 -3
- package/src/i18n/fo.ts +1 -3
- package/src/i18n/fr.ts +1 -3
- package/src/i18n/he.ts +199 -0
- package/src/i18n/hi.ts +1 -3
- package/src/i18n/hr.ts +1 -3
- package/src/i18n/hu.ts +1 -3
- package/src/i18n/hy.ts +1 -3
- package/src/i18n/id.ts +1 -3
- package/src/i18n/is.ts +1 -3
- package/src/i18n/it.ts +1 -3
- package/src/i18n/ja.ts +1 -3
- package/src/i18n/ka.ts +1 -3
- package/src/i18n/km.ts +1 -3
- package/src/i18n/ko.ts +1 -3
- package/src/i18n/lo.ts +1 -3
- package/src/i18n/lt.ts +1 -3
- package/src/i18n/lv.ts +1 -3
- package/src/i18n/mk.ts +1 -3
- package/src/i18n/mn.ts +1 -3
- package/src/i18n/ms.ts +1 -3
- package/src/i18n/my.ts +1 -3
- package/src/i18n/ne.ts +1 -3
- package/src/i18n/nl.ts +1 -3
- package/src/i18n/no.ts +1 -3
- package/src/i18n/pa.ts +1 -3
- package/src/i18n/pl.ts +1 -3
- package/src/i18n/ro.ts +1 -3
- package/src/i18n/ru.ts +1 -3
- package/src/i18n/si.ts +1 -3
- package/src/i18n/sk.ts +1 -3
- package/src/i18n/sl.ts +1 -3
- package/src/i18n/sq.ts +1 -3
- package/src/i18n/sr.ts +1 -3
- package/src/i18n/sv.ts +1 -3
- package/src/i18n/tg.ts +1 -3
- package/src/i18n/th.ts +1 -3
- package/src/i18n/tk.ts +1 -3
- package/src/i18n/tr.ts +1 -3
- package/src/i18n/uk.ts +1 -3
- package/src/i18n/ur.ts +1 -3
- package/src/i18n/uz.ts +1 -3
- package/src/i18n/vi.ts +1 -3
- package/src/i18n/zh.ts +1 -3
- package/src/i18n/zht.ts +1 -3
- package/src/{components/icon.tsx → icons/icon/additional-icons.ts} +8 -74
- package/src/icons/icon/icon.css +3 -0
- package/src/{v2/components → icons/icon}/icon.tsx +50 -9
- package/src/{v2/components/divider-v2.tsx → layout/divider/divider.tsx} +3 -3
- package/src/{v2/components/menu-v2.css → navigation/menu/menu.css} +122 -1
- package/src/{v2/components/menu-v2.tsx → navigation/menu/menu.tsx} +96 -32
- package/src/{v2/components/segmented-control-v2.css → navigation/segmented-control/segmented-control.css} +1 -1
- package/src/{v2/components/segmented-control-v2.tsx → navigation/segmented-control/segmented-control.tsx} +9 -8
- package/src/{v2/components/tabs-v2.css → navigation/tabs/tabs-current.css} +25 -10
- package/src/{components → navigation/tabs}/tabs.css +39 -229
- package/src/navigation/tabs/tabs.tsx +194 -0
- package/src/{v2/components/dialog-v2.css → overlays/dialog/dialog.css} +3 -0
- package/src/{v2/components/dialog-v2.tsx → overlays/dialog/dialog.tsx} +11 -13
- package/src/{v2/components/tooltip-v2.css → overlays/tooltip/tooltip.css} +26 -0
- package/src/{v2/components/tooltip-v2.tsx → overlays/tooltip/tooltip.tsx} +21 -14
- package/src/styles/index.css +4 -20
- package/src/styles/tailwind/colors.css +1 -0
- package/src/styles/tailwind/index.css +18 -1
- package/src/styles/theme.css +2 -2
- package/src/{v2/styles → styles/tokens}/theme.css +10 -14
- package/src/theme/context.tsx +19 -11
- package/src/theme/themes/oc-2.json +3 -1
- package/src/theme/v2/foreground.ts +1 -0
- package/src/{components → typography/text-shimmer}/text-shimmer.css +2 -1
- package/src/{components → typography/text-shimmer}/text-shimmer.tsx +1 -0
- package/src/{v2/components/wordmark-v2.tsx → typography/wordmark/wordmark.tsx} +1 -1
- package/dist/components/avatar.d.ts +0 -9
- package/dist/components/button.d.ts +0 -9
- package/dist/components/dialog.d.ts +0 -12
- package/dist/components/dropdown-menu.d.ts +0 -80
- package/dist/components/icon-button.d.ts +0 -10
- package/dist/components/keybind.d.ts +0 -6
- package/dist/components/radio-group.d.ts +0 -16
- package/dist/components/select.d.ts +0 -21
- package/dist/components/tag.d.ts +0 -5
- package/dist/components/toast.d.ts +0 -56
- package/dist/components/tooltip.d.ts +0 -17
- package/dist/v2/components/accordion-v2.d.ts +0 -26
- package/dist/v2/components/badge-v2.d.ts +0 -6
- package/dist/v2/components/button-v2.d.ts +0 -10
- package/dist/v2/components/checkbox-v2.d.ts +0 -10
- package/dist/v2/components/diff-changes-v2.d.ts +0 -11
- package/dist/v2/components/divider-v2.d.ts +0 -5
- package/dist/v2/components/icon-button-v2.d.ts +0 -11
- package/dist/v2/components/inline-input-v2.d.ts +0 -21
- package/dist/v2/components/keybind-v2.d.ts +0 -7
- package/dist/v2/components/loader-v2.d.ts +0 -3
- package/dist/v2/components/menu-v2.d.ts +0 -52
- package/dist/v2/components/progress-circle-v2.d.ts +0 -8
- package/dist/v2/components/radio-v2.d.ts +0 -16
- package/dist/v2/components/split-button-v2.d.ts +0 -5
- package/dist/v2/components/switch-v2.d.ts +0 -7
- package/dist/v2/components/tabs-v2.d.ts +0 -34
- package/dist/v2/components/text-shimmer-v2.d.ts +0 -9
- package/dist/v2/components/textarea-v2.d.ts +0 -7
- package/dist/v2/components/toast-v2.d.ts +0 -57
- package/dist/v2/components/tooltip-v2.d.ts +0 -13
- package/dist/v2/components/wordmark-v2.d.ts +0 -2
- package/src/components/avatar.css +0 -49
- package/src/components/avatar.tsx +0 -55
- package/src/components/button.css +0 -194
- package/src/components/dialog.css +0 -181
- package/src/components/dialog.tsx +0 -72
- package/src/components/diff-changes.tsx +0 -115
- package/src/components/dropdown-menu.css +0 -135
- package/src/components/dropdown-menu.tsx +0 -308
- package/src/components/icon-button.css +0 -181
- package/src/components/icon-button.tsx +0 -29
- package/src/components/icon.css +0 -39
- package/src/components/keybind.css +0 -18
- package/src/components/keybind.tsx +0 -20
- package/src/components/progress-circle.css +0 -16
- package/src/components/progress-circle.tsx +0 -64
- package/src/components/radio-group.css +0 -187
- package/src/components/radio-group.tsx +0 -83
- package/src/components/select.css +0 -201
- package/src/components/select.tsx +0 -174
- package/src/components/switch.css +0 -136
- package/src/components/switch.tsx +0 -29
- package/src/components/tabs.tsx +0 -126
- package/src/components/tag.css +0 -37
- package/src/components/tag.tsx +0 -22
- package/src/components/toast.css +0 -236
- package/src/components/toast.tsx +0 -185
- package/src/components/tooltip.css +0 -74
- package/src/components/tooltip.tsx +0 -163
- package/src/v2/components/accordion-v2.css +0 -139
- package/src/v2/components/accordion-v2.tsx +0 -86
- package/src/v2/components/button-v2.tsx +0 -35
- package/src/v2/components/checkbox-v2.css +0 -184
- package/src/v2/components/checkbox-v2.tsx +0 -65
- package/src/v2/components/diff-changes-v2.css +0 -26
- package/src/v2/components/icon-button-v2.tsx +0 -37
- package/src/v2/components/inline-input-v2.css +0 -225
- package/src/v2/components/inline-input-v2.tsx +0 -107
- package/src/v2/components/progress-circle-v2.css +0 -13
- package/src/v2/components/progress-circle-v2.tsx +0 -52
- package/src/v2/components/switch-v2.tsx +0 -28
- package/src/v2/components/tabs-v2.tsx +0 -149
- package/src/v2/components/text-shimmer-v2.css +0 -125
- package/src/v2/components/text-shimmer-v2.tsx +0 -63
- /package/dist/{components → forms/inline-input}/inline-input.d.ts +0 -0
- /package/dist/{v2/components → navigation}/tab-state-indicator.d.ts +0 -0
- /package/src/{v2/components/button-v2.css → actions/button/button.css} +0 -0
- /package/src/{v2/components/icon-button-v2.css → actions/icon-button/icon-button.css} +0 -0
- /package/src/{v2/components/avatar-v2.css → data-display/avatar/avatar.css} +0 -0
- /package/src/{v2/components/project-avatar-v2.css → data-display/project-avatar/project-avatar.css} +0 -0
- /package/src/{v2/components/loader-v2.css → feedback/loader/loader.css} +0 -0
- /package/src/{v2/components/toast-v2.css → feedback/toast/toast.css} +0 -0
- /package/src/{components → forms/inline-input}/inline-input.css +0 -0
- /package/src/{components → forms/inline-input}/inline-input.tsx +0 -0
- /package/src/{v2/components/radio-v2.css → forms/radio/radio.css} +0 -0
- /package/src/{v2/components/textarea-v2.css → forms/textarea/textarea.css} +0 -0
- /package/src/{v2/components/divider-v2.css → layout/divider/divider.css} +0 -0
- /package/src/{v2/components → navigation}/tab-state-indicator.tsx +0 -0
- /package/src/{v2/components/file-tree-v2.css → styles/file-tree.css} +0 -0
- /package/src/{v2/styles → styles/tokens}/colors.css +0 -0
- /package/src/{v2/styles/tailwind.css → styles/tokens/index.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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 <
|
|
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) => <
|
|
49
|
-
<
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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 {
|
|
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
|
|
5
|
+
import "./tooltip.css"
|
|
6
6
|
|
|
7
|
-
export interface
|
|
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
|
|
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
|
-
<
|
|
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
|
|
101
|
+
open={controlled() ? local.forceOpen : state.open}
|
|
97
102
|
onOpenChange={(open) => {
|
|
98
|
-
if (
|
|
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
|
-
<
|
|
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
|
-
</
|
|
122
|
-
<
|
|
123
|
-
<
|
|
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
|
-
</
|
|
142
|
-
</
|
|
143
|
-
</
|
|
148
|
+
</Content>
|
|
149
|
+
</Portal>
|
|
150
|
+
</Root>
|
|
144
151
|
</Match>
|
|
145
152
|
</Switch>
|
|
146
153
|
)
|
package/src/styles/index.css
CHANGED
|
@@ -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 "../
|
|
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 "../
|
|
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 "../
|
|
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 "../
|
|
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);
|
package/src/styles/theme.css
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
:root {
|
|
2
|
-
--font-family-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
2
|
+
--font-family-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
3
3
|
--font-family-sans--font-feature-settings: normal;
|
|
4
4
|
--font-family-mono:
|
|
5
|
-
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
5
|
+
"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
6
6
|
--font-family-mono--font-feature-settings: normal;
|
|
7
7
|
|
|
8
8
|
--font-size-small: 13px;
|
|
@@ -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);
|
|
@@ -140,8 +129,12 @@
|
|
|
140
129
|
--v2-illustration-illustration-layer-02: var(--v2-grey-400);
|
|
141
130
|
--v2-illustration-illustration-layer-03: var(--v2-grey-500);
|
|
142
131
|
|
|
143
|
-
--font-family-text:
|
|
144
|
-
--v2-font-family-sans:
|
|
132
|
+
--font-family-text: var(--font-family-sans);
|
|
133
|
+
--v2-font-family-sans: var(--font-family-sans);
|
|
134
|
+
--v2-font-family-code: 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);
|
package/src/theme/context.tsx
CHANGED
|
@@ -84,8 +84,9 @@ const names: Record<string, string> = {
|
|
|
84
84
|
}
|
|
85
85
|
const oc2Theme = oc2ThemeJson as DesktopTheme
|
|
86
86
|
|
|
87
|
-
function
|
|
88
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
237
|
-
if (
|
|
238
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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": "
|
|
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-
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { createUniqueId, type ComponentProps } from "solid-js"
|
|
2
2
|
|
|
3
|
-
export function
|
|
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;
|