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 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.textContent = "\u{1f4c5} All Dates";
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.textContent = "\u{1f4c5} " + date;
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.textContent = "\u{1f4cb} Copy";
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.textContent = "\u2705 Copied!";
232
- setTimeout(() => { lbCopyBtn.textContent = "\u{1f4cb} Copy"; }, 1500);
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">&#x1f4c5; All Dates</button>
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">&lsaquo;</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">&#x1f4c5;</button>
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">📋 Copy</button>
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: catime
3
- Version: 0.4.2
3
+ Version: 0.4.4
4
4
  Summary: AI-generated hourly cat images - a new cat every hour!
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -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=Hh-qKaBtmZfzL0auV0KXqVcd9dLnsW1DxbDXMWJM-lo,8919
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=6oQWL8IWHAbdwKP6jN-DHgeXAhcLFzjdc6CXwe6L1Jo,2956
9
- catime/docs/style.css,sha256=Kt6UX190gvOFxO41vwGWlYqyMisROJg74VxYkVrCVUc,11511
10
- catime-0.4.2.dist-info/METADATA,sha256=zghWWrM6bhxTxHeQGJLI-N3Sjn9eP4Mq8IMMtvgFVWY,1814
11
- catime-0.4.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
12
- catime-0.4.2.dist-info/entry_points.txt,sha256=oPgi6h026vMo9YyEOH3wuNtD3A28e-s1ChJs-KWWGXw,43
13
- catime-0.4.2.dist-info/licenses/LICENSE,sha256=p_h5YRMaNCwMqGXX5KDrk49_NWGpzAJ2d6IhKa67B0E,1064
14
- catime-0.4.2.dist-info/RECORD,,
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