Skip to content

Commit ab2da3e

Browse files
committed
Updates
1 parent 1e1bb7f commit ab2da3e

14 files changed

Lines changed: 3635 additions & 48 deletions

assets/editModal-Cfbqx_SI.js

Lines changed: 405 additions & 0 deletions
Large diffs are not rendered by default.

assets/hero-CLDdwZDr.png

-12.8 KB
Binary file not shown.
Lines changed: 311 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,311 @@
1+
import{a as e,c as t,i as n,l as r,n as i,s as a,t as o,u as s}from"./index-DlpFYv3O.js";s();var c={Wrapper:i.div`
2+
position: fixed;
3+
inset: 0;
4+
z-index: 110;
5+
6+
padding: 18px;
7+
8+
display: flex;
9+
align-items: center;
10+
justify-content: center;
11+
12+
background: var(--overlay-color);
13+
14+
backdrop-filter: blur(6px);
15+
-webkit-backdrop-filter: blur(6px);
16+
17+
.panel {
18+
width: min(620px, 100%);
19+
max-height: calc(100vh - 36px);
20+
21+
overflow-y: auto;
22+
23+
border: 1px solid var(--border-color);
24+
border-radius: 18px;
25+
26+
background: var(--surface-color);
27+
28+
box-shadow: 0 28px 90px var(--shadow-color);
29+
}
30+
31+
.header {
32+
padding: 18px;
33+
34+
display: flex;
35+
align-items: flex-start;
36+
justify-content: space-between;
37+
gap: 16px;
38+
39+
border-bottom: 1px solid var(--border-color);
40+
41+
.label {
42+
color: var(--text-muted-color);
43+
44+
font-size: 0.63rem;
45+
font-weight: 700;
46+
47+
letter-spacing: 0.1em;
48+
text-transform: uppercase;
49+
}
50+
51+
h2 {
52+
margin-top: 4px;
53+
54+
font-family: Antonio, Verdana, sans-serif;
55+
56+
font-size: 1.5rem;
57+
line-height: 1.15;
58+
}
59+
60+
p {
61+
margin-top: 5px;
62+
63+
max-width: 430px;
64+
65+
color: var(--text-muted-color);
66+
67+
font-size: 0.66rem;
68+
line-height: 1.55;
69+
}
70+
}
71+
72+
.closeButton {
73+
width: 38px;
74+
height: 38px;
75+
76+
flex-shrink: 0;
77+
78+
display: grid;
79+
place-items: center;
80+
81+
border: 1px solid var(--border-color);
82+
border-radius: 10px;
83+
84+
background: var(--surface-soft-color);
85+
color: var(--text-muted-color);
86+
87+
cursor: pointer;
88+
89+
transition:
90+
background 160ms ease,
91+
border-color 160ms ease,
92+
color 160ms ease,
93+
transform 160ms ease;
94+
95+
svg {
96+
width: 17px;
97+
height: 17px;
98+
}
99+
100+
&:hover {
101+
border-color: var(--border-strong-color);
102+
103+
background: var(--surface-strong-color);
104+
color: var(--text-color);
105+
}
106+
107+
&:active {
108+
transform: scale(0.95);
109+
}
110+
}
111+
112+
.content {
113+
padding: 18px;
114+
}
115+
116+
.toolGrid {
117+
display: grid;
118+
grid-template-columns: repeat(2, minmax(0, 1fr));
119+
gap: 10px;
120+
}
121+
122+
.toolCard {
123+
min-height: 110px;
124+
125+
padding: 14px;
126+
127+
display: flex;
128+
align-items: flex-start;
129+
gap: 11px;
130+
131+
border: 1px solid var(--border-color);
132+
border-radius: 12px;
133+
134+
background: var(--surface-soft-color);
135+
color: var(--text-soft-color);
136+
137+
text-align: left;
138+
139+
cursor: pointer;
140+
141+
transition:
142+
background 160ms ease,
143+
border-color 160ms ease,
144+
color 160ms ease,
145+
transform 160ms ease;
146+
147+
&:hover:not(:disabled) {
148+
border-color: var(--border-strong-color);
149+
150+
background: var(--surface-strong-color);
151+
color: var(--text-color);
152+
153+
transform: translateY(-2px);
154+
}
155+
156+
&:active:not(:disabled) {
157+
transform: translateY(0);
158+
}
159+
160+
&:disabled {
161+
opacity: 0.42;
162+
163+
cursor: not-allowed;
164+
}
165+
}
166+
167+
.icon {
168+
width: 36px;
169+
height: 36px;
170+
171+
flex-shrink: 0;
172+
173+
display: grid;
174+
place-items: center;
175+
176+
border: 1px solid var(--border-color);
177+
border-radius: 10px;
178+
179+
background: var(--surface-color);
180+
color: var(--text-muted-color);
181+
182+
svg {
183+
width: 16px;
184+
height: 16px;
185+
}
186+
}
187+
188+
.text {
189+
min-width: 0;
190+
191+
display: flex;
192+
flex-direction: column;
193+
gap: 4px;
194+
195+
strong {
196+
color: var(--text-color);
197+
198+
font-size: 0.7rem;
199+
}
200+
201+
small {
202+
color: var(--text-muted-color);
203+
204+
font-size: 0.61rem;
205+
line-height: 1.5;
206+
}
207+
}
208+
209+
.importCard {
210+
position: relative;
211+
212+
input {
213+
position: absolute;
214+
215+
width: 1px;
216+
height: 1px;
217+
218+
opacity: 0;
219+
pointer-events: none;
220+
}
221+
}
222+
223+
.toolCard.danger {
224+
border-color: color-mix(
225+
in srgb,
226+
var(--danger-color) 24%,
227+
var(--border-color)
228+
);
229+
230+
.icon {
231+
color: var(--danger-color);
232+
233+
background: var(--danger-soft-color);
234+
}
235+
236+
&:hover:not(:disabled) {
237+
border-color: color-mix(
238+
in srgb,
239+
var(--danger-color) 48%,
240+
var(--border-color)
241+
);
242+
243+
background: var(--danger-soft-color);
244+
245+
.text strong {
246+
color: var(--danger-color);
247+
}
248+
}
249+
}
250+
251+
.info {
252+
margin-top: 14px;
253+
padding: 11px 12px;
254+
255+
display: flex;
256+
align-items: center;
257+
gap: 9px;
258+
259+
border: 1px solid var(--border-color);
260+
border-radius: 10px;
261+
262+
background: var(--background-color);
263+
264+
span {
265+
min-width: 30px;
266+
height: 30px;
267+
268+
display: grid;
269+
place-items: center;
270+
271+
border: 1px solid var(--border-color);
272+
border-radius: 9px;
273+
274+
background: var(--surface-soft-color);
275+
color: var(--text-color);
276+
277+
font-family: Antonio, Verdana, sans-serif;
278+
279+
font-size: 1rem;
280+
font-weight: 700;
281+
}
282+
283+
p {
284+
color: var(--text-muted-color);
285+
286+
font-size: 0.63rem;
287+
line-height: 1.5;
288+
}
289+
}
290+
291+
@media (max-width: 560px) {
292+
padding: 10px;
293+
294+
.panel {
295+
max-height: calc(100vh - 20px);
296+
}
297+
298+
.header,
299+
.content {
300+
padding: 15px;
301+
}
302+
303+
.toolGrid {
304+
grid-template-columns: 1fr;
305+
}
306+
307+
.toolCard {
308+
min-height: 96px;
309+
}
310+
}
311+
`},l=o(),u=({isOpen:i,onClose:o,onExportCsv:s,onImportCsv:u,onPrint:d,onClearAll:f,totalAssignments:p=0})=>i?(0,l.jsx)(c.Wrapper,{onMouseDown:e=>{e.target===e.currentTarget&&o()},children:(0,l.jsxs)(`div`,{className:`panel`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`toolsTitle`,onMouseDown:e=>e.stopPropagation(),children:[(0,l.jsxs)(`div`,{className:`header`,children:[(0,l.jsxs)(`div`,{children:[(0,l.jsx)(`span`,{className:`label`,children:`Planner tools`}),(0,l.jsx)(`h2`,{id:`toolsTitle`,children:`Import, Export & Print`}),(0,l.jsx)(`p`,{children:`Move planner data, create a printable copy, or clear stored assignments.`})]}),(0,l.jsx)(`button`,{type:`button`,className:`closeButton`,onClick:o,"aria-label":`Close planner tools`,title:`Close`,children:(0,l.jsx)(r,{})})]}),(0,l.jsxs)(`div`,{className:`content`,children:[(0,l.jsxs)(`div`,{className:`toolGrid`,children:[(0,l.jsxs)(`button`,{type:`button`,className:`toolCard`,onClick:s,disabled:p===0,children:[(0,l.jsx)(`span`,{className:`icon`,children:(0,l.jsx)(n,{})}),(0,l.jsxs)(`span`,{className:`text`,children:[(0,l.jsx)(`strong`,{children:`Export CSV`}),(0,l.jsx)(`small`,{children:`Download all assignments as a CSV file.`})]})]}),(0,l.jsxs)(`label`,{className:`toolCard importCard`,children:[(0,l.jsx)(`span`,{className:`icon`,children:(0,l.jsx)(t,{})}),(0,l.jsxs)(`span`,{className:`text`,children:[(0,l.jsx)(`strong`,{children:`Import CSV`}),(0,l.jsx)(`small`,{children:`Add assignments from a compatible CSV file.`})]}),(0,l.jsx)(`input`,{type:`file`,accept:`.csv,text/csv`,onChange:u})]}),(0,l.jsxs)(`button`,{type:`button`,className:`toolCard`,onClick:d,disabled:p===0,children:[(0,l.jsx)(`span`,{className:`icon`,children:(0,l.jsx)(e,{})}),(0,l.jsxs)(`span`,{className:`text`,children:[(0,l.jsx)(`strong`,{children:`Print Planner`}),(0,l.jsx)(`small`,{children:`Open the browser print view for assignments.`})]})]}),(0,l.jsxs)(`button`,{type:`button`,className:`toolCard danger`,onClick:f,disabled:p===0,children:[(0,l.jsx)(`span`,{className:`icon`,children:(0,l.jsx)(a,{})}),(0,l.jsxs)(`span`,{className:`text`,children:[(0,l.jsx)(`strong`,{children:`Clear All`}),(0,l.jsx)(`small`,{children:`Permanently remove every stored assignment.`})]})]})]}),(0,l.jsxs)(`div`,{className:`info`,children:[(0,l.jsx)(`span`,{children:p}),(0,l.jsx)(`p`,{children:p===1?`assignment currently stored in this browser.`:`assignments currently stored in this browser.`})]})]})]})}):null;export{u as default};

assets/index-B8dUIkQl.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/index-C1HZB53S.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

assets/index-DDkPv5n9.js

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

assets/index-DlpFYv3O.js

Lines changed: 2847 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)