catime 0.4.2__py3-none-any.whl → 0.4.4__py3-none-any.whl
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.
- catime/docs/app.js +18 -5
- catime/docs/index.html +6 -3
- catime/docs/style.css +24 -0
- {catime-0.4.2.dist-info → catime-0.4.4.dist-info}/METADATA +1 -1
- {catime-0.4.2.dist-info → catime-0.4.4.dist-info}/RECORD +8 -8
- {catime-0.4.2.dist-info → catime-0.4.4.dist-info}/WHEEL +0 -0
- {catime-0.4.2.dist-info → catime-0.4.4.dist-info}/entry_points.txt +0 -0
- {catime-0.4.2.dist-info → catime-0.4.4.dist-info}/licenses/LICENSE +0 -0
catime/docs/app.js
CHANGED
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
const lbPrompt = document.getElementById("lb-prompt");
|
|
22
22
|
const lbPromptText = document.getElementById("lb-prompt-text");
|
|
23
23
|
const lbCopyBtn = document.getElementById("lb-copy-btn");
|
|
24
|
+
const lbStory = document.getElementById("lb-story");
|
|
25
|
+
const lbStoryText = document.getElementById("lb-story-text");
|
|
24
26
|
|
|
25
27
|
// Date picker elements
|
|
26
28
|
const datePickerBtn = document.getElementById("date-picker-btn");
|
|
@@ -31,6 +33,10 @@
|
|
|
31
33
|
const ddDays = document.getElementById("dd-days");
|
|
32
34
|
const ddClear = document.getElementById("dd-clear");
|
|
33
35
|
|
|
36
|
+
const SVG_CALENDAR = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>';
|
|
37
|
+
const SVG_CLIPBOARD = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>';
|
|
38
|
+
const SVG_CHECK = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>';
|
|
39
|
+
|
|
34
40
|
let calYear = new Date().getFullYear();
|
|
35
41
|
let calMonth = new Date().getMonth();
|
|
36
42
|
let catDates = new Set();
|
|
@@ -97,7 +103,7 @@
|
|
|
97
103
|
ddNext.addEventListener("click", () => { calMonth++; if (calMonth > 11) { calMonth = 0; calYear++; } renderCalendar(); });
|
|
98
104
|
ddClear.addEventListener("click", () => {
|
|
99
105
|
selectedDate = "";
|
|
100
|
-
datePickerBtn.
|
|
106
|
+
datePickerBtn.innerHTML = SVG_CALENDAR + " All Dates";
|
|
101
107
|
datePickerBtn.classList.remove("active");
|
|
102
108
|
dateDropdown.classList.add("hidden");
|
|
103
109
|
applyFilter();
|
|
@@ -129,7 +135,7 @@
|
|
|
129
135
|
const date = e.target.dataset.date;
|
|
130
136
|
if (!date) return;
|
|
131
137
|
selectedDate = date;
|
|
132
|
-
datePickerBtn.
|
|
138
|
+
datePickerBtn.innerHTML = SVG_CALENDAR + " " + date;
|
|
133
139
|
datePickerBtn.classList.add("active");
|
|
134
140
|
dateDropdown.classList.add("hidden");
|
|
135
141
|
applyFilter();
|
|
@@ -220,16 +226,23 @@
|
|
|
220
226
|
if (cat.prompt) {
|
|
221
227
|
lbPromptText.textContent = cat.prompt;
|
|
222
228
|
lbPrompt.classList.remove("hidden");
|
|
223
|
-
lbCopyBtn.
|
|
229
|
+
lbCopyBtn.innerHTML = SVG_CLIPBOARD + " Copy";
|
|
224
230
|
} else {
|
|
225
231
|
lbPrompt.classList.add("hidden");
|
|
226
232
|
}
|
|
233
|
+
// Handle story (backwards compatible)
|
|
234
|
+
if (cat.story) {
|
|
235
|
+
lbStoryText.textContent = cat.story;
|
|
236
|
+
lbStory.classList.remove("hidden");
|
|
237
|
+
} else {
|
|
238
|
+
lbStory.classList.add("hidden");
|
|
239
|
+
}
|
|
227
240
|
lightbox.classList.remove("hidden");
|
|
228
241
|
}
|
|
229
242
|
lbCopyBtn.addEventListener("click", () => {
|
|
230
243
|
navigator.clipboard.writeText(lbPromptText.textContent).then(() => {
|
|
231
|
-
lbCopyBtn.
|
|
232
|
-
setTimeout(() => { lbCopyBtn.
|
|
244
|
+
lbCopyBtn.innerHTML = SVG_CHECK + " Copied!";
|
|
245
|
+
setTimeout(() => { lbCopyBtn.innerHTML = SVG_CLIPBOARD + " Copy"; }, 1500);
|
|
233
246
|
});
|
|
234
247
|
});
|
|
235
248
|
lbClose.addEventListener("click", () => lightbox.classList.add("hidden"));
|
catime/docs/index.html
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<option value="">All Models</option>
|
|
20
20
|
</select>
|
|
21
21
|
<div class="date-picker" id="date-picker">
|
|
22
|
-
<button class="date-picker-btn" id="date-picker-btn"
|
|
22
|
+
<button class="date-picker-btn" id="date-picker-btn"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg> All Dates</button>
|
|
23
23
|
<div class="date-dropdown hidden" id="date-dropdown">
|
|
24
24
|
<div class="dd-header">
|
|
25
25
|
<button class="dd-nav" id="dd-prev">‹</button>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
</header>
|
|
41
41
|
|
|
42
42
|
<nav id="timeline" aria-label="Timeline navigation">
|
|
43
|
-
<button id="timeline-toggle" aria-label="Toggle timeline"
|
|
43
|
+
<button id="timeline-toggle" aria-label="Toggle timeline"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg></button>
|
|
44
44
|
<div id="timeline-list"></div>
|
|
45
45
|
</nav>
|
|
46
46
|
|
|
@@ -53,7 +53,10 @@
|
|
|
53
53
|
<div id="lb-info"></div>
|
|
54
54
|
<div id="lb-prompt" class="hidden">
|
|
55
55
|
<p id="lb-prompt-text"></p>
|
|
56
|
-
<button id="lb-copy-btn" title="Copy prompt"
|
|
56
|
+
<button id="lb-copy-btn" title="Copy prompt"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg> Copy</button>
|
|
57
|
+
</div>
|
|
58
|
+
<div id="lb-story" class="hidden">
|
|
59
|
+
<p id="lb-story-text"></p>
|
|
57
60
|
</div>
|
|
58
61
|
</div>
|
|
59
62
|
|
catime/docs/style.css
CHANGED
|
@@ -71,6 +71,9 @@ body {
|
|
|
71
71
|
box-shadow: 0 0 0 3px rgba(255,107,157,.2);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
/* Inline SVG icon alignment */
|
|
75
|
+
button svg, .date-picker-btn svg { vertical-align: -0.15em; }
|
|
76
|
+
|
|
74
77
|
/* Custom date picker */
|
|
75
78
|
.date-picker { position: relative; }
|
|
76
79
|
.date-picker-btn {
|
|
@@ -297,6 +300,27 @@ body {
|
|
|
297
300
|
}
|
|
298
301
|
#lb-copy-btn:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(255, 107, 157, .5); }
|
|
299
302
|
|
|
303
|
+
/* Lightbox story */
|
|
304
|
+
#lb-story {
|
|
305
|
+
margin-top: .6rem;
|
|
306
|
+
max-width: 600px;
|
|
307
|
+
width: 90vw;
|
|
308
|
+
background: linear-gradient(135deg, rgba(201, 177, 255, .4), rgba(255, 107, 157, .3));
|
|
309
|
+
border-radius: 12px;
|
|
310
|
+
padding: .8rem 1rem;
|
|
311
|
+
border: 1px solid rgba(255, 255, 255, .2);
|
|
312
|
+
}
|
|
313
|
+
#lb-story-text {
|
|
314
|
+
color: #fff;
|
|
315
|
+
font-size: .9rem;
|
|
316
|
+
line-height: 1.6;
|
|
317
|
+
text-align: center;
|
|
318
|
+
margin: 0;
|
|
319
|
+
}
|
|
320
|
+
#lb-story::before {
|
|
321
|
+
content: "📖 ";
|
|
322
|
+
}
|
|
323
|
+
|
|
300
324
|
/* Responsive */
|
|
301
325
|
@media (max-width: 1024px) {
|
|
302
326
|
.masonry { column-count: 2; margin-right: 0; }
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
catime/__init__.py,sha256=i8FYHW-V2UO0kNEghreL2-uQ70fLxsGQ0z5kGoNEbfk,70
|
|
2
2
|
catime/cli.py,sha256=pFuEWlUvQdXcqc1VeO8pqxil4hGzib5j4PfVa-5C4lA,5821
|
|
3
|
-
catime/docs/app.js,sha256=
|
|
3
|
+
catime/docs/app.js,sha256=W8_ma0DN8so24mWXF3o_J-yj3FrZ5-k7Q8gE3TGCoDg,10113
|
|
4
4
|
catime/docs/apple-touch-icon.png,sha256=ZSipNfat3Wz3Gu3S5hTGPfIpc5hT_eDFFgScStJLzwQ,38872
|
|
5
5
|
catime/docs/favicon-32.png,sha256=13byvPFWFl_u2RiFITAIVZJZk75Ljo7_N_xS6NUmX_g,2496
|
|
6
6
|
catime/docs/favicon.ico,sha256=2LLdNzyOh5dCYMkpcOVCMyvYyg9PVJPTmmZ2APubvpQ,8050
|
|
7
7
|
catime/docs/icon-192.png,sha256=hx10FySGPXgaBVWMDLR6VJd9UBOfzybOeo9fNZMZTdw,43281
|
|
8
|
-
catime/docs/index.html,sha256=
|
|
9
|
-
catime/docs/style.css,sha256=
|
|
10
|
-
catime-0.4.
|
|
11
|
-
catime-0.4.
|
|
12
|
-
catime-0.4.
|
|
13
|
-
catime-0.4.
|
|
14
|
-
catime-0.4.
|
|
8
|
+
catime/docs/index.html,sha256=Uup_GMkCveRvdiJOrnNA0DBW2wPcF8BU8f-kq7Yh9IU,3907
|
|
9
|
+
catime/docs/style.css,sha256=NzfVrv8IBa1nV_Td6wbmI5CDrIZa35063ykCrWYXdKg,12029
|
|
10
|
+
catime-0.4.4.dist-info/METADATA,sha256=ZkPJdQAwUijoSoWItaqjo67HgVgvbvj-14_XlsUJQyU,1814
|
|
11
|
+
catime-0.4.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
12
|
+
catime-0.4.4.dist-info/entry_points.txt,sha256=oPgi6h026vMo9YyEOH3wuNtD3A28e-s1ChJs-KWWGXw,43
|
|
13
|
+
catime-0.4.4.dist-info/licenses/LICENSE,sha256=p_h5YRMaNCwMqGXX5KDrk49_NWGpzAJ2d6IhKa67B0E,1064
|
|
14
|
+
catime-0.4.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|