Skip to content

Commit 7cbd93a

Browse files
committed
use primevue
1 parent 5e7bc89 commit 7cbd93a

File tree

20 files changed

+377
-353
lines changed

20 files changed

+377
-353
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"ollama-ai-provider-v2": "^1.3.1",
3535
"pinia": "^3.0.2",
3636
"pluralize": "^8.0.0",
37+
"primevue": "^4.4.1",
3738
"sql-query-identifier": "^2.8.0",
3839
"typeface-roboto": "^0.0.75",
3940
"vue": "^3.4.21",

src/App.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
<ChatInterface v-if="page === 'chat-interface'" :initialMessages="messages" :openaiApiKey="openaiApiKey"
88
:anthropicApiKey="anthropicApiKey" :googleApiKey="googleApiKey" @manage-models="handleManageModels"
99
@open-configuration="handleOpenConfiguration" />
10-
<div id="configuration-popover" :class="{ active: showConfiguration }" v-kbd-trap.autofocus="showConfiguration">
11-
<Configuration :reactivePage="configurationPage" @close="closeConfiguration" />
12-
</div>
10+
<Configuration v-model:visible="showConfiguration" :reactivePage="configurationPage" @close="closeConfiguration" />
1311
<div class="onboarding-screen-popover-container" v-if="showOnboarding">
1412
<div class="onboarding-screen-popover" v-kbd-trap="true">
1513
<button class="btn close-btn" @click="closeOnboardingScreen">
@@ -33,6 +31,7 @@ import Configuration, {
3331
} from "@/components/configuration/Configuration.vue";
3432
import OnboardingScreen from "./components/OnboardingScreen.vue";
3533
import { getData, notify } from "@beekeeperstudio/plugin";
34+
import { Dialog } from "primevue";
3635
3736
type Page = "starting" | "chat-interface";
3837
@@ -41,6 +40,7 @@ export default {
4140
ChatInterface,
4241
Configuration,
4342
OnboardingScreen,
43+
Dialog,
4444
},
4545
4646
data() {

src/assets/styles/_base.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ a {
4848
font-weight: 700;
4949
}
5050

51+
p {
52+
line-height: 1.5;
53+
}
54+
5155
/* Make the scrollbar look better */
5256
::-webkit-scrollbar {
5357
width: 12px;

src/assets/styles/_primevue.scss

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
:root {
2+
// Button
3+
--p-button-primary-focus-ring-color: var(--focus-visible-outline-color);
4+
5+
--p-button-text-secondary-hover-background: var(--p-togglebutton-background);
6+
7+
--p-button-icon-only-width: 2rem;
8+
--p-icon-size: 0.875rem;
9+
10+
--p-button-focus-ring-style: var(--focus-visible-outline-style);
11+
--p-button-focus-ring-width: var(--focus-visible-outline-width);
12+
--p-button-focus-ring-offset: 2px;
13+
// -----------------------------------
14+
15+
// Select Button
16+
--p-selectbutton-border-radius: 8px;
17+
// -----------------------------------
18+
19+
// Toggle Button
20+
--p-togglebutton-color: color-mix(in srgb, var(--theme-base) 60%, var(--theme-bg));
21+
--p-togglebutton-background: color-mix(in srgb, var(--theme-base) 6%, var(--theme-bg));
22+
--p-togglebutton-padding: 0.25rem 0.25rem;
23+
--p-togglebutton-font-weight: 700;
24+
--p-togglebutton-border-radius: 8px;
25+
--p-togglebutton-focus-ring-color: var(--focus-visible-outline-color);
26+
--p-togglebutton-focus-ring-style: var(--focus-visible-outline-style);
27+
--p-togglebutton-focus-ring-width: var(--focus-visible-outline-width);
28+
--p-togglebutton-focus-ring-offset: var(--p-button-focus-ring-offset);
29+
--p-togglebutton-transition-duration: var(--p-transition-duration);
30+
31+
--p-togglebutton-hover-background: var(--p-togglebutton-background);
32+
--p-togglebutton-hover-color: var(--theme-base);
33+
--p-togglebutton-checked-color: var(--theme-base);
34+
--p-togglebutton-checked-background: var(--p-togglebutton-background);
35+
36+
--p-togglebutton-content-padding: 0.1rem 0.75rem;
37+
--p-togglebutton-content-border-radius: 8px;
38+
39+
--p-togglebutton-content-checked-background: color-mix(in srgb,
40+
var(--theme-base) 15%,
41+
var(--theme-bg));
42+
// -----------------------------------
43+
44+
// Select
45+
--p-select-background: color-mix(
46+
in srgb,
47+
var(--theme-base) 6%,
48+
var(--theme-bg));
49+
--p-select-color: var(--text-dark);
50+
--p-select-border-color: var(--border-color);
51+
--p-select-border-radius: 8px;
52+
--p-select-padding-x: 0.75rem;
53+
--p-select-padding-y: 0.5rem;
54+
--p-select-dropdown-width: 1.5rem;
55+
56+
--p-select-overlay-border-radius: var(--p-menu-border-radius);
57+
--p-select-overlay-color: var(--p-menu-color);
58+
--p-select-overlay-background: var(--p-menu-background);
59+
--p-select-overlay-shadow: var(--p-menu-shadow);
60+
61+
--p-select-option-color: var(--text-dark);
62+
--p-select-option-padding: var(--p-menu-item-padding);
63+
--p-select-option-border-radius: var(--p-menu-item-border-radius);
64+
65+
--p-select-option-selected-color: var(--p-menu-item-focus-color);
66+
--p-select-option-selected-background: var(--p-menu-item-focus-background);
67+
--p-select-option-selected-focus-color: var(--p-menu-item-focus-color);
68+
--p-select-option-selected-focus-background: var(--p-menu-item-focus-background);
69+
--p-select-option-focus-background: var(--p-menu-item-focus-background);
70+
--p-select-option-focus-color: var(--p-menu-item-focus-color);
71+
72+
--p-select-placeholder-color: var(--text-light);
73+
// -----------------------------------
74+
75+
76+
// Dialog
77+
--p-dialog-background: var(--theme-bg);
78+
--p-dialog-border-radius: 8px;
79+
--p-dialog-shadow: 0 0 0.5rem var(--query-editor-bg);
80+
--p-dialog-color: var(--text-dark);
81+
82+
--p-dialog-header-padding: 1.2rem 1.2rem 0.8rem;
83+
84+
--p-dialog-title-font-weight: 500;
85+
--p-dialog-title-font-size: 1.1rem;
86+
87+
--p-dialog-content-padding: 0 1.2rem 1.75rem;
88+
--p-dialog-footer-padding: 0 1.2rem 1.2rem;
89+
--p-dialog-footer-gap: 0.5rem;
90+
// -----------------------------------
91+
92+
// Menu
93+
--p-menu-border-radius: 8px;
94+
--p-menu-color: var(--text);
95+
--p-menu-background: color-mix(in srgb,
96+
var(--theme-base) 6%,
97+
var(--theme-bg));
98+
--p-menu-shadow: 0 0 0.5rem var(--theme-bg);
99+
100+
--p-menu-submenu-label-font-weight: normal;
101+
102+
--p-menu-list-padding: 0.3rem 0;
103+
104+
--p-menu-item-color: var(--text-dark);
105+
// --p-menu-item-padding: 0.482rem 0.8rem;
106+
--p-menu-item-padding: 0.2855rem 0.8rem;
107+
--p-menu-item-focus-background: color-mix(in srgb,
108+
var(--theme-base) 11%,
109+
var(--theme-bg));
110+
--p-menu-item-focus-color: var(--theme-base);
111+
--p-menu-item-gap: 0.5rem;
112+
113+
--p-menu-separator-border-color: color-mix(in srgb,
114+
var(--theme-base) 10%,
115+
var(--theme-bg));
116+
// -----------------------------------
117+
118+
// Context Menu -- pretty much the same as menu
119+
--p-contextmenu-border-radius: var(--p-menu-border-radius);
120+
--p-contextmenu-color: var(--p-menu-color);
121+
--p-contextmenu-background: var(--p-menu-background);
122+
--p-contextmenu-shadow: var(--p-menu-shadow);
123+
124+
--p-contextmenu-submenu-label-font-weight: var(--p-menu-submenu-label-font-weight);
125+
126+
--p-contextmenu-item-padding: var(--p-menu-item-padding);
127+
--p-contextmenu-item-border-radius: var(--p-menu-item-border-radius);
128+
--p-contextmenu-item-focus-background: var(--p-menu-item-focus-background);
129+
--p-contextmenu-item-focus-color: var(--p-menu-item-focus-color);
130+
// -----------------------------------
131+
132+
// Overlay
133+
--p-mask-background: rgb(from var(--theme-bg) r g b / 0.3);
134+
// -----------------------------------
135+
136+
// Popover
137+
--p-popover-gutter: 0.5rem;
138+
--p-popover-arrow-offset: 1rem;
139+
--p-popover-background: color-mix(in srgb,
140+
var(--theme-base) 6%,
141+
var(--query-editor-bg));
142+
--p-popover-color: var(--text);
143+
--p-popover-border-color: transparent;
144+
--p-popover-border-radius: 8px;
145+
--p-popover-box-shadow: 0 0 0.5rem var(--theme-bg);
146+
// -----------------------------------
147+
148+
// Progress
149+
--p-progressspinner-color-one: var(--theme-primary);
150+
--p-progressspinner-color-two: var(--theme-primary);
151+
--p-progressspinner-color-three: var(--theme-primary);
152+
--p-progressspinner-color-four: var(--theme-primary);
153+
// -----------------------------------
154+
155+
// Mask (overlay)
156+
--p-mask-transition-duration: 0.2s;
157+
// -----------------------------------
158+
}
159+
160+
.p-menu .p-menu-item,
161+
.p-contextmenu .p-contextmenu-item,
162+
.p-select-list, .p-select-option {
163+
// FIXME should be 0.9rem. But this should match the app font size for now.
164+
font-size: 12.6px;
165+
166+
.menu-icon {
167+
font-size: 1.5em;
168+
width: 1em;
169+
height: 1em;
170+
}
171+
172+
a {
173+
font-weight: normal;
174+
}
175+
}
176+
177+
.p-select .p-select-label {
178+
font-size: 0.9rem;
179+
text-align: left;
180+
}
181+
182+
.p-menu {
183+
overflow: hidden;
184+
}
185+
186+
.p-menu-list {
187+
max-height: 90vh;
188+
overflow-y: auto;
189+
}
190+
191+
.p-menu-item.selected {
192+
background-color: var(--p-select-option-selected-background);
193+
}
194+
195+
.p-dialog {
196+
max-width: 90vw;
197+
}

src/assets/styles/components/_all.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
@use "base-input";
33
@use "buttons";
44
@use "spinner";
5-
@use "dropdown";
65
@use "run-query-result";
76
@use "progress-bar";
87
@use "switch";

src/assets/styles/components/_base-input.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
font-size: 0.75rem;
1515
color: var(--text-dark);
1616
opacity: 0.7;
17+
margin: 0;
1718
}
1819

1920
.input-wrapper {
@@ -25,7 +26,10 @@
2526

2627
input,
2728
textarea {
28-
background-color: color-mix(in srgb, var(--theme-base) 5%, var(--query-editor-bg));
29+
background-color: color-mix(
30+
in srgb,
31+
var(--theme-base) 5%,
32+
var(--theme-bg));
2933
border: 1px solid var(--border-color);
3034
border-radius: 8px;
3135
padding: 0.5rem 0.75rem;

src/assets/styles/components/_dropdown.scss

Lines changed: 0 additions & 85 deletions
This file was deleted.

src/assets/styles/main.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
@use "components/all" as components;
44
@use "pages/all" as pages;
55
@use "sass:color";
6+
@use "primevue";
67

78
#app {
89
height: 100%;

src/assets/styles/pages/_api-key-form.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434

3535
label {
3636
margin-top: 0.6rem;
37-
width: 10rem;
3837
}
3938

4039
.input-wrapper {

0 commit comments

Comments
 (0)