main
html 173 lines 4.58 KB
Raw
1 <html>
2
3 <head></head>
4
5 <body>
6 <div class="quick-actions-surface-host" x-data>
7 <template x-teleport="#sidebar-quick-actions-dropdown-slot-start">
8 <x-extension id="sidebar-quick-actions-dropdown-start"></x-extension>
9 </template>
10
11 <div id="quick-actions">
12 <x-extension id="sidebar-quick-actions-main-start"></x-extension>
13 <x-extension id="sidebar-quick-actions-main-end"></x-extension>
14 </div>
15
16 <template x-teleport="#sidebar-quick-actions-dropdown-slot-end">
17 <x-extension id="sidebar-quick-actions-dropdown-end"></x-extension>
18 </template>
19 </div>
20 </body>
21
22 <style>
23 .quick-actions-surface-host {
24 display: contents;
25 }
26
27 /* Icon toolbar layout – grid for extension-friendly wrapping */
28 #quick-actions {
29 display: grid;
30 grid-template-columns: repeat(5, 1fr);
31 grid-auto-rows: auto;
32 width: 100%;
33 padding: 0;
34 gap: var(--spacing-xs);
35 }
36
37 #quick-actions:not(:has(> x-extension:not(:empty))) {
38 display: none;
39 }
40
41 #quick-actions > x-extension:not(:empty) {
42 display: contents;
43 }
44
45 #quick-actions > x-extension:empty {
46 display: none;
47 }
48
49 #quick-actions > x-extension > x-component,
50 #quick-actions > x-extension > x-component > div[x-data] {
51 display: contents;
52 }
53
54 /* Config button - icon only style */
55 .config-button {
56 background-color: var(--color-panel);
57 border: 0.05rem solid var(--color-border);
58 border-radius: 4px;
59 cursor: pointer;
60 display: flex;
61 align-items: center;
62 justify-content: center;
63 opacity: 0.8;
64 padding: var(--spacing-xs);
65 flex: 1;
66 min-width: 0;
67 transition: background-color var(--transition-speed),
68 border-color var(--transition-speed), box-shadow var(--transition-speed),
69 opacity var(--transition-speed);
70 }
71
72 .config-button .material-symbols-outlined {
73 font-size: 22px;
74 transition: transform 0.2s ease;
75 }
76
77 .config-button .material-symbols-outlined.rotated {
78 transform: rotate(180deg);
79 }
80
81
82 .config-button:hover {
83 background-color: var(--color-background-hover);
84 opacity: 1;
85 box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent);
86 z-index: 1;
87 position: relative;
88 }
89
90 .config-button:active {
91 opacity: 0.5;
92 box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.06);
93 }
94
95 /* Dropdown specific positioning - fixed to escape overflow:hidden */
96 .quick-actions-dropdown {
97 position: fixed;
98 z-index: 9999;
99 margin-top: 0;
100 }
101
102 /* Unified scrollbar styling for dropdown */
103 .quick-actions-dropdown::-webkit-scrollbar {
104 width: 6px;
105 height: 6px;
106 }
107
108 .quick-actions-dropdown::-webkit-scrollbar-track {
109 background: transparent;
110 margin: 4px 0;
111 border-radius: 6px;
112 }
113
114 .quick-actions-dropdown::-webkit-scrollbar-thumb {
115 background-color: rgba(155, 155, 155, 0.5);
116 border-radius: 6px;
117 transition: background-color 0.2s ease;
118 }
119
120 .quick-actions-dropdown::-webkit-scrollbar-thumb:hover {
121 background-color: rgba(155, 155, 155, 0.7);
122 }
123
124 /* Dropdown item icon sizing (do not override disabled opacity from index.css) */
125 .quick-actions-dropdown .dropdown-item:not(:disabled),
126 .quick-actions-dropdown .dropdown-item:not(:disabled) .material-symbols-outlined {
127 opacity: 1;
128 }
129
130 .quick-actions-dropdown .dropdown-item:disabled,
131 .quick-actions-dropdown .dropdown-item:disabled .material-symbols-outlined {
132 opacity: 0.4;
133 cursor: not-allowed;
134 }
135
136 .quick-actions-dropdown .dropdown-item .material-symbols-outlined {
137 font-size: 18px;
138 }
139
140 /* New Chat Button */
141 #newChat {
142 display: flex;
143 flex-wrap: nowrap;
144 background-color: transparent;
145 border: none;
146 align-items: center;
147 opacity: 0.6;
148 cursor: pointer;
149 -webkit-transition: opacity 0.1s ease-in-out, color 0.1s ease-in-out, filter 0.1s ease-in-out, left var(--transition-speed) ease-in-out;
150 transition: opacity 0.1s ease-in-out, color 0.1s ease-in-out, filter 0.1s ease-in-out, left var(--transition-speed) ease-in-out;
151 }
152 #newChat:hover { opacity: 0.85; filter: brightness(1.08); }
153 #newChat:active { opacity: 0.5; filter: brightness(0.96); }
154 #newChat .material-symbols-outlined {
155 color: var(--color-text);
156 font-size: 24px;
157 }
158
159 /* Light mode */
160 .light-mode .config-button {
161 background-color: var(--color-background);
162 color: #333333;
163 }
164
165 .light-mode .config-button:hover { background-color: var(--color-background-hover); }
166 .light-mode .config-button:active { background-color: var(--color-background-hover); }
167
168 /* Transition helpers */
169 .-translate-y-1 { transform: translateY(-0.25rem); }
170 .translate-y-0 { transform: translateY(0); }
171 </style>
172
173 </html>