zen-wdg 2.3.0 → 2.3.1
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.
- package/README.md +7 -1
- package/dist/widgets/z-marked-widget.vue.d.ts +5 -1
- package/dist/zen-wdg.css +1 -1
- package/dist/zen-wdg.es.js +104 -43
- package/dist/zen-wdg.umd.js +1 -1
- package/package.json +1 -1
- package/src/widgets/z-calendar-widget.vue +31 -12
- package/src/widgets/z-marked-widget.vue +137 -2
package/README.md
CHANGED
|
@@ -21,13 +21,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
21
21
|
};
|
|
22
22
|
}>, {}, {
|
|
23
23
|
STORAGE_KEY: string;
|
|
24
|
+
CATEGORIES_KEY: string;
|
|
24
25
|
bookmarks: any;
|
|
25
|
-
|
|
26
|
+
userCategories: any;
|
|
27
|
+
activeTab: any;
|
|
26
28
|
faviconAttempts: {};
|
|
27
29
|
}, {
|
|
28
30
|
currentBookmarks(): any;
|
|
29
31
|
}, {
|
|
30
32
|
saveState(): void;
|
|
33
|
+
addCategoryPrompt(): Promise<void>;
|
|
34
|
+
deleteCategory(category: any): Promise<void>;
|
|
31
35
|
setActiveTab(tab: any): void;
|
|
32
36
|
openLink(url: any): void;
|
|
33
37
|
deleteBookmark(index: any): Promise<void>;
|
package/dist/zen-wdg.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.clock-container[data-v-e9445086]{display:flex;justify-content:center;align-items:center;height:100%;width:100%}.clock[data-v-e9445086]{text-align:center;font-family:Arial,sans-serif;color:#333;background-color:#14141466;backdrop-filter:blur(.2rem);border-radius:15px;padding:20px;width:100%}.time[data-v-e9445086]{font-size:4em;font-weight:700;color:#fff;display:flex;justify-content:center}.date[data-v-e9445086]{font-size:1.2em;color:#fff;margin-top:10px}@media (max-width: 500px){.time[data-v-e9445086]{font-size:3em}.date[data-v-e9445086]{font-size:1em}}input[data-v-2ad90286]{padding:.5rem 1rem;border:none}.full-width[data-v-2ad90286]{width:100%}input[data-v-2ad90286]:focus{outline:none}.round[data-v-2ad90286]{border-radius:.2rem}.rounded[data-v-2ad90286]{border-radius:10rem}button[data-v-10678914]{cursor:pointer;border:none;padding:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:.5s ease-in-out background}.w-full[data-v-10678914]{width:100%}.bound[data-v-10678914]{border-radius:.2rem}.bounded[data-v-10678914]{border-radius:50%}.flat[data-v-10678914]{padding:0;line-height:0;background-color:transparent}.container[data-v-d1389195]{position:relative}.select[data-v-d1389195]{border-radius:.4rem;gap:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.select>span[data-v-d1389195]{display:flex;align-items:center}.list[data-v-d1389195]{position:absolute;width:200px;top:110%;left:0;padding:.2rem;border-radius:.6rem;gap:.2rem;box-shadow:0 2px 6px #0000000f;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#14141499;border:1px solid rgba(255,255,255,.3)}.item[data-v-d1389195]{gap:1rem;padding:.2rem .4rem;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;background-color:#0a0a0a66;height:40px}.item.active[data-v-d1389195],.item[data-v-d1389195]:hover{background-color:var(--blue)}.theme-selector-popup[data-v-d1389195]{max-height:200px}.logo[data-v-d1389195]{width:30px;border-radius:.4rem;border:1px solid rgba(255,255,255,.3)}.container-search[data-v-834a689a]{width:100%;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#1414141a;border:1px solid rgba(255,255,255,.3);color:#fff;box-shadow:0 8px 32px #1f268733;padding:.4rem;border-radius:.6rem}.search[data-v-834a689a]{width:100%;background-color:#0a0a0a99;display:flex;align-items:center;padding:.3rem .8rem;border-radius:.5rem;box-shadow:0 0 .4rem var(--border-color)}.bg-glass[data-v-834a689a]{background-color:transparent;color:var(--text-color)}.search img[data-v-834a689a]{width:20px}.todo-widget[data-v-3560194d]{width:100%;background-color:#14141466;backdrop-filter:blur(.2rem);border-radius:16px;padding:20px;color:#fff;box-shadow:0 4px 10px #0000004d;max-width:500px;margin:0 auto}.title[data-v-3560194d]{margin-bottom:16px;text-align:center}.todo-form[data-v-3560194d]{display:flex;gap:10px;margin-bottom:20px}.todo-form input[data-v-3560194d]{flex:1;padding:10px 12px;border:none;border-radius:8px;background-color:#2a2a2a;color:#fff}.todo-form button[data-v-3560194d]{background-color:#007bff;color:#fff;border:none;border-radius:8px;padding:10px 16px;cursor:pointer}.task-section[data-v-3560194d]{margin-bottom:20px}.task-section h3[data-v-3560194d]{margin-bottom:8px;font-size:1rem;color:#ccc}.task-section ul[data-v-3560194d]{list-style:none;padding:0}.task-section li[data-v-3560194d]{background-color:#292929;padding:10px 12px;border-radius:10px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.actions button[data-v-3560194d]{margin-left:8px;background:none;border:none;color:#bbb;cursor:pointer;font-size:1rem}.actions button[data-v-3560194d]:hover{color:#fff}.empty[data-v-3560194d]{font-size:.9rem;color:#666}.done[data-v-3560194d]{text-decoration:line-through;color:#777}.container-marked[data-v-1625b2ac]{width:100%;display:flex;flex-direction:column;gap:10px}.tabs[data-v-1625b2ac]{width:auto;height:auto;display:flex;gap:10px;flex-wrap:wrap;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#444;padding:.2rem;border-radius:.6rem;align-self:start}.tabs.dark[data-v-1625b2ac]{background:#1414144d;color:#dfdfdf}.container-tab[data-v-1625b2ac]{position:relative}.tab[data-v-1625b2ac]{padding:8px 2rem;border:none;cursor:pointer;font-weight:600;background-color:transparent;color:unset}.tab.active[data-v-1625b2ac]{background-color:#066d5a4d;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:.5rem}.grid[data-v-1625b2ac]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.4rem}.grid.small[data-v-1625b2ac]{gap:1.4rem}.card[data-v-1625b2ac]{position:relative;flex:1 1 80px}.card.small[data-v-1625b2ac]{flex:1 1 180px}.card-link[data-v-1625b2ac]{height:115px;padding:16px;border-radius:1rem;box-shadow:0 2px 4px #0000004d;background-color:#e1e1e11a;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);text-align:center;cursor:pointer;text-decoration:none;color:#202020;display:flex;justify-content:center;flex-direction:column}.card-link[data-v-1625b2ac]:hover{backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#dcdcdc99;border:1px solid rgba(255,255,255,.3)}.card-link.dark[data-v-1625b2ac]{background-color:#1414141a;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);color:#fff}.card-link.dark[data-v-1625b2ac]:hover{backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#0a0a0a99;border:1px solid rgba(255,255,255,.3)}.option-app[data-v-1625b2ac]{display:none;position:absolute;top:10px;right:10px;z-index:2;gap:.4rem}.card:hover .option-app[data-v-1625b2ac]{display:flex;justify-content:center;align-items:center}.delete-app[data-v-1625b2ac],.edit-app[data-v-1625b2ac]{cursor:pointer;border-radius:.2rem;width:23px;height:23px;border:none;font-size:.8rem}.edit-app[data-v-1625b2ac]{font-size:1rem}.logo-container[data-v-1625b2ac]{width:50px;height:50px;border-radius:.4rem;overflow:hidden;display:flex;align-items:center;justify-content:center}.card.small .logo-container[data-v-1625b2ac]{width:55px;height:55px}.card-link img[data-v-1625b2ac]{width:100%;max-width:50px;height:100%;height:50px;border-radius:.4rem;object-fit:cover}.card-link img.small[data-v-1625b2ac]{max-width:55px;height:55px}.column[data-v-1625b2ac]{display:flex;flex-direction:column;align-items:center;gap:5px}.add[data-v-1625b2ac]{width:50px;height:50px;background:gray;border-radius:.5rem;display:flex;justify-content:center;font-size:2rem;line-height:50px;color:#fff;user-select:none}.calendar-container[data-v-b191092b]{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem;border-radius:1rem;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#202020}.calendar-container.dark[data-v-b191092b]{background:#1414144d;color:#dfdfdf}.calendar-header[data-v-b191092b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.view-selector[data-v-b191092b]{display:flex;gap:.5rem;background:#0000001a;padding:.25rem;border-radius:.5rem}.view-btn[data-v-b191092b]{padding:.5rem 1rem;border:none;background:transparent;cursor:pointer;border-radius:.4rem;font-weight:500;color:inherit;transition:all .2s}.view-btn.active[data-v-b191092b]{background:#066d5a99;color:#fff}.navigation[data-v-b191092b]{display:flex;align-items:center;gap:1rem}.nav-btn[data-v-b191092b]{width:2rem;height:2rem;border:none;background:#0000001a;border-radius:.4rem;cursor:pointer;font-size:1.5rem;color:inherit;display:flex;align-items:center;justify-content:center}.nav-btn[data-v-b191092b]:hover{background:#0003}.current-date[data-v-b191092b]{font-weight:600;min-width:200px;text-align:center}.today-btn[data-v-b191092b]{padding:.5rem 1rem;border:none;background:#0000001a;border-radius:.4rem;cursor:pointer;font-weight:500;color:inherit}.today-btn[data-v-b191092b]:hover{background:#0003}.add-event-btn[data-v-b191092b]{padding:.5rem 1rem;border:none;background:#066d5a;color:#fff;border-radius:.4rem;cursor:pointer;font-weight:600}.add-event-btn[data-v-b191092b]:hover{background:#055a4a}.calendar-view[data-v-b191092b]{flex:1;overflow-y:auto;min-height:400px}.day-view[data-v-b191092b]{height:100%}.time-grid[data-v-b191092b]{display:flex;flex-direction:column}.hour-slot[data-v-b191092b]{display:flex;border-bottom:1px solid rgba(0,0,0,.1);min-height:60px}.hour-label[data-v-b191092b]{width:60px;padding:.5rem;font-size:.85rem;color:#0009}.dark .hour-label[data-v-b191092b]{color:#fff9}.hour-content[data-v-b191092b]{flex:1;padding:.25rem;position:relative}.week-view[data-v-b191092b]{height:100%;display:flex;flex-direction:column}.week-header[data-v-b191092b]{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:2px solid rgba(0,0,0,.2);margin-bottom:.5rem}.week-time-label[data-v-b191092b]{width:60px}.week-day-header[data-v-b191092b]{text-align:center;padding:.5rem}.day-name[data-v-b191092b]{font-size:.85rem;color:#0009}.dark .day-name[data-v-b191092b]{color:#fff9}.day-number[data-v-b191092b]{font-weight:600;font-size:1.2rem;margin-top:.25rem}.day-number.today[data-v-b191092b]{background:#066d5a;color:#fff;border-radius:50%;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center}.week-grid[data-v-b191092b]{flex:1;overflow-y:auto}.week-hour-row[data-v-b191092b]{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid rgba(0,0,0,.1);min-height:60px}.week-hour-label[data-v-b191092b]{padding:.5rem;font-size:.85rem;color:#0009}.dark .week-hour-label[data-v-b191092b]{color:#fff9}.week-hour-cell[data-v-b191092b]{border-left:1px solid rgba(0,0,0,.05);padding:.25rem;position:relative}.month-view[data-v-b191092b]{height:100%;display:flex;flex-direction:column}.month-header[data-v-b191092b]{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem}.month-day-name[data-v-b191092b]{text-align:center;font-weight:600;padding:.5rem;font-size:.9rem}.month-grid[data-v-b191092b]{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;flex:1}.month-day[data-v-b191092b]{aspect-ratio:1;border:1px solid rgba(0,0,0,.1);border-radius:.4rem;padding:.5rem;cursor:pointer;transition:background .2s;display:flex;flex-direction:column}.month-day[data-v-b191092b]:hover{background:#0000000d}.dark .month-day[data-v-b191092b]:hover{background:#ffffff0d}.month-day.other-month[data-v-b191092b]{opacity:.3}.month-day.today[data-v-b191092b]{background:#066d5a33;border-color:#066d5a}.month-day .day-number[data-v-b191092b]{font-weight:600;margin-bottom:.25rem}.day-events[data-v-b191092b]{display:flex;gap:.25rem;flex-wrap:wrap}.event-dot[data-v-b191092b]{width:6px;height:6px;border-radius:50%}.more-events[data-v-b191092b]{font-size:.7rem;color:#0009}.dark .more-events[data-v-b191092b]{color:#fff9}.event-card[data-v-b191092b]{padding:.5rem;border-radius:.4rem;margin-bottom:.25rem;cursor:pointer;color:#fff;position:relative}.event-card[data-v-b191092b]:hover{opacity:.9}.event-card.small[data-v-b191092b]{padding:.25rem;font-size:.75rem}.event-title[data-v-b191092b]{font-weight:600;margin-bottom:.25rem}.event-time[data-v-b191092b]{font-size:.85rem;opacity:.9}.event-recurring[data-v-b191092b]{position:absolute;top:.25rem;right:.25rem;font-size:.75rem}.modal-overlay[data-v-b191092b]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-b191092b]{background:#fff;border-radius:1rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.dark .modal-content[data-v-b191092b]{background:#2a2a2a}.modal-header[data-v-b191092b]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid rgba(0,0,0,.1)}.dark .modal-header[data-v-b191092b]{border-bottom-color:#ffffff1a}.modal-header h3[data-v-b191092b]{margin:0;font-size:1.5rem}.close-btn[data-v-b191092b]{width:2rem;height:2rem;border:none;background:transparent;font-size:1.5rem;cursor:pointer;border-radius:.4rem;color:inherit}.close-btn[data-v-b191092b]:hover{background:#0000001a}.dark .close-btn[data-v-b191092b]:hover{background:#ffffff1a}.modal-body[data-v-b191092b]{padding:1.5rem}.form-group[data-v-b191092b]{margin-bottom:1.5rem}.form-group label[data-v-b191092b]{display:block;margin-bottom:.5rem;font-weight:600}.form-group input[type=text][data-v-b191092b],.form-group input[type=date][data-v-b191092b],.form-group input[type=time][data-v-b191092b],.form-group select[data-v-b191092b]{width:100%;padding:.75rem;border:1px solid rgba(0,0,0,.2);border-radius:.4rem;font-size:1rem;background:#fff;color:#202020}.dark .form-group input[type=text][data-v-b191092b],.dark .form-group input[type=date][data-v-b191092b],.dark .form-group input[type=time][data-v-b191092b],.dark .form-group select[data-v-b191092b]{background:#1a1a1a;border-color:#fff3;color:#dfdfdf}.form-row[data-v-b191092b]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.checkbox-label[data-v-b191092b]{display:flex!important;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox][data-v-b191092b]{width:1.25rem;height:1.25rem;cursor:pointer}.color-picker[data-v-b191092b]{display:flex;gap:.5rem;flex-wrap:wrap}.color-option[data-v-b191092b]{width:2.5rem;height:2.5rem;border-radius:.4rem;cursor:pointer;border:3px solid transparent;transition:all .2s}.color-option[data-v-b191092b]:hover{transform:scale(1.1)}.color-option.selected[data-v-b191092b]{border-color:#fff;box-shadow:0 0 0 2px #066d5a}.modal-footer[data-v-b191092b]{display:flex;justify-content:flex-end;gap:.5rem;padding:1.5rem;border-top:1px solid rgba(0,0,0,.1)}.dark .modal-footer[data-v-b191092b]{border-top-color:#ffffff1a}.modal-footer button[data-v-b191092b]{padding:.75rem 1.5rem;border:none;border-radius:.4rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn[data-v-b191092b]{background:#0000001a;color:inherit}.cancel-btn[data-v-b191092b]:hover{background:#0003}.save-btn[data-v-b191092b]{background:#066d5a;color:#fff}.save-btn[data-v-b191092b]:hover{background:#055a4a}.delete-btn[data-v-b191092b]{background:#dc2626;color:#fff;margin-right:auto}.delete-btn[data-v-b191092b]:hover{background:#b91c1c}@media (max-width: 768px){.calendar-header[data-v-b191092b]{flex-direction:column;align-items:stretch}.navigation[data-v-b191092b]{justify-content:center}.current-date[data-v-b191092b]{min-width:auto}.week-header[data-v-b191092b],.week-hour-row[data-v-b191092b]{grid-template-columns:40px repeat(7,1fr)}.hour-label[data-v-b191092b],.week-hour-label[data-v-b191092b],.week-time-label[data-v-b191092b]{width:40px;font-size:.7rem}.form-row[data-v-b191092b]{grid-template-columns:1fr}}.weather-container[data-v-5f11c261]{display:flex;justify-content:center;align-items:center;height:100%;width:100%;padding:10px}.weather-widget[data-v-5f11c261]{width:100%;max-width:400px;background-color:#14141466;backdrop-filter:blur(.2rem);border-radius:15px;padding:20px;color:#fff;font-family:Arial,sans-serif}.weather-loading[data-v-5f11c261],.weather-error[data-v-5f11c261]{text-align:center;padding:20px}.spinner[data-v-5f11c261]{border:3px solid rgba(255,255,255,.3);border-top:3px solid #fff;border-radius:50%;width:40px;height:40px;animation:spin-5f11c261 1s linear infinite;margin:0 auto 15px}@keyframes spin-5f11c261{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weather-error[data-v-5f11c261]{color:#fcc}.error-icon[data-v-5f11c261]{font-size:2em;display:block;margin-bottom:10px}.retry-btn[data-v-5f11c261],.refresh-btn[data-v-5f11c261]{background-color:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;margin-top:10px;transition:background-color .3s}.retry-btn[data-v-5f11c261]:hover,.refresh-btn[data-v-5f11c261]:hover{background-color:#ffffff4d}.weather-header[data-v-5f11c261]{margin-bottom:15px}.location[data-v-5f11c261]{display:flex;align-items:center;gap:8px;font-size:1.1em}.location-icon[data-v-5f11c261]{font-size:1.2em}.weather-main[data-v-5f11c261]{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.temperature[data-v-5f11c261]{display:flex;align-items:flex-start}.temp-value[data-v-5f11c261]{font-size:4em;font-weight:700;line-height:1}.temp-unit[data-v-5f11c261]{font-size:2em;margin-top:10px;margin-left:5px;opacity:.8}.weather-icon[data-v-5f11c261]{font-size:4em}.weather-description[data-v-5f11c261]{text-align:center;font-size:1.3em;margin-bottom:20px;text-transform:capitalize}.weather-details[data-v-5f11c261]{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}.detail-item[data-v-5f11c261]{display:flex;flex-direction:column;align-items:center;gap:5px}.detail-icon[data-v-5f11c261]{font-size:1.5em}.detail-label[data-v-5f11c261]{font-size:.8em;opacity:.7}.detail-value[data-v-5f11c261]{font-size:1em;font-weight:700}.weather-footer[data-v-5f11c261]{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.2)}.last-update[data-v-5f11c261]{font-size:.85em;opacity:.7}.refresh-btn[data-v-5f11c261]{padding:6px 12px;font-size:1.2em;margin-top:0}@media (max-width: 500px){.temp-value[data-v-5f11c261]{font-size:3em}.temp-unit[data-v-5f11c261]{font-size:1.5em}.weather-icon[data-v-5f11c261]{font-size:3em}.weather-description[data-v-5f11c261]{font-size:1.1em}.weather-details[data-v-5f11c261]{grid-template-columns:repeat(3,1fr);gap:10px}.detail-item[data-v-5f11c261]{font-size:.9em}}.notes-widget[data-v-7326bacf]{width:100%;max-width:900px;background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:20px;padding:25px;color:#e2e8f0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-shadow:0 20px 60px #0000004d}.notes-header[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid rgba(255,255,255,.1)}.notes-title[data-v-7326bacf]{margin:0;font-size:1.8rem;background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions[data-v-7326bacf]{display:flex;gap:10px}.icon-btn[data-v-7326bacf]{width:40px;height:40px;border:none;background:#3b82f633;border-radius:10px;font-size:1.2rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-7326bacf]:hover{background:#3b82f64d;transform:translateY(-2px)}.add-btn[data-v-7326bacf]{background:linear-gradient(135deg,#3b82f6,#2563eb)}.add-btn[data-v-7326bacf]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666}.modal-overlay[data-v-7326bacf]{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content[data-v-7326bacf]{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:20px;padding:30px;max-width:500px;width:100%;box-shadow:0 20px 60px #00000080}.modal-header[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3[data-v-7326bacf]{margin:0;color:#e2e8f0;font-size:1.5rem}.close-btn[data-v-7326bacf]{width:35px;height:35px;border:none;background:#ef444433;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all .3s ease;color:#ef4444}.close-btn[data-v-7326bacf]:hover{background:#ef4444;color:#fff;transform:rotate(90deg)}.modal-body[data-v-7326bacf]{max-height:400px;overflow-y:auto}.category-form[data-v-7326bacf]{display:flex;gap:10px;margin-bottom:20px}.category-input[data-v-7326bacf]{flex:1;padding:12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;font-size:.95rem}.category-input[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6;background:#ffffff14}.color-picker[data-v-7326bacf]{width:60px;height:45px;border:none;border-radius:10px;cursor:pointer;background:transparent}.add-category-btn[data-v-7326bacf]{padding:0 20px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.add-category-btn[data-v-7326bacf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.categories-list[data-v-7326bacf]{display:flex;flex-direction:column;gap:10px}.category-item[data-v-7326bacf]{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff0d;border-radius:10px;transition:all .3s ease}.category-item[data-v-7326bacf]:hover{background:#ffffff14}.category-color-preview[data-v-7326bacf]{width:25px;height:25px;border-radius:6px;border:2px solid rgba(255,255,255,.2)}.category-name[data-v-7326bacf]{flex:1;color:#e2e8f0;font-weight:500}.delete-category-btn[data-v-7326bacf]{width:35px;height:35px;border:none;background:#ef444433;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease}.delete-category-btn[data-v-7326bacf]:hover{background:#ef4444;transform:scale(1.1)}.new-note-form[data-v-7326bacf]{background:#ffffff0d;border:2px solid rgba(59,130,246,.3);border-radius:15px;padding:20px;margin-bottom:20px}.note-title-input[data-v-7326bacf],.note-content-input[data-v-7326bacf]{width:100%;padding:12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;font-size:.95rem;font-family:inherit;margin-bottom:12px}.note-title-input[data-v-7326bacf]{font-size:1.1rem;font-weight:600}.note-title-input[data-v-7326bacf]:focus,.note-content-input[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6;background:#ffffff14}.note-content-input[data-v-7326bacf]{resize:vertical;min-height:100px}.note-form-actions[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;gap:10px}.category-select[data-v-7326bacf]{padding:10px 15px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;cursor:pointer;font-size:.9rem}.category-select[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6}.form-buttons[data-v-7326bacf]{display:flex;gap:10px}.cancel-btn[data-v-7326bacf],.save-btn[data-v-7326bacf]{padding:10px 20px;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-btn[data-v-7326bacf]{background:#ef444433;color:#ef4444}.cancel-btn[data-v-7326bacf]:hover{background:#ef44444d}.save-btn[data-v-7326bacf]{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.save-btn[data-v-7326bacf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.notes-controls[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;flex-wrap:wrap}.filter-controls[data-v-7326bacf]{display:flex;gap:8px;flex-wrap:wrap}.filter-btn[data-v-7326bacf]{padding:8px 16px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:20px;color:#94a3b8;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .3s ease}.filter-btn[data-v-7326bacf]:hover{background:#ffffff14;color:#e2e8f0}.filter-btn.active[data-v-7326bacf]{background:#3b82f633;border-color:#3b82f6;color:#60a5fa}.sort-controls[data-v-7326bacf]{display:flex;gap:10px}.sort-select[data-v-7326bacf]{padding:8px 12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;cursor:pointer;font-size:.85rem}.sort-select[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6}.notes-list[data-v-7326bacf]{margin-bottom:20px}.empty-state[data-v-7326bacf]{text-align:center;padding:60px 20px;color:#64748b}.empty-icon[data-v-7326bacf]{font-size:4rem;margin-bottom:15px;opacity:.5}.empty-state p[data-v-7326bacf]{font-size:1.2rem;margin-bottom:20px}.create-first-note-btn[data-v-7326bacf]{padding:12px 30px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:12px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.create-first-note-btn[data-v-7326bacf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.notes-grid[data-v-7326bacf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.note-card[data-v-7326bacf]{background:#ffffff0d;backdrop-filter:blur(10px);border-left:4px solid #6b7280;border-radius:12px;padding:15px;transition:all .3s ease;display:flex;flex-direction:column;gap:10px}.note-card[data-v-7326bacf]:hover{background:#ffffff14;transform:translateY(-3px);box-shadow:0 8px 24px #0000004d}.note-card.pinned[data-v-7326bacf]{background:#3b82f61a;border-left-color:#3b82f6}.note-card-header[data-v-7326bacf]{display:flex;justify-content:space-between;gap:5px}.pin-btn[data-v-7326bacf],.delete-btn[data-v-7326bacf]{width:30px;height:30px;border:none;background:#ffffff0d;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease}.pin-btn[data-v-7326bacf]:hover{background:#3b82f633;transform:scale(1.1)}.pin-btn.pinned[data-v-7326bacf]{background:#3b82f633}.delete-btn[data-v-7326bacf]:hover{background:#ef444433;transform:scale(1.1)}.note-title[data-v-7326bacf]{margin:0;font-size:1.1rem;color:#f1f5f9;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-content[data-v-7326bacf]{margin:0;color:#cbd5e1;font-size:.9rem;line-height:1.6;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical}.note-footer[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.05)}.note-category[data-v-7326bacf]{padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.note-date[data-v-7326bacf]{color:#64748b;font-size:.75rem}.notes-stats[data-v-7326bacf]{display:flex;justify-content:space-between;padding:15px;background:#ffffff0d;border-radius:10px;color:#94a3b8;font-size:.9rem;font-weight:500}.modal-enter-active[data-v-7326bacf],.modal-leave-active[data-v-7326bacf]{transition:all .3s ease}.modal-enter-from[data-v-7326bacf],.modal-leave-to[data-v-7326bacf]{opacity:0;transform:scale(.9)}.slide-enter-active[data-v-7326bacf],.slide-leave-active[data-v-7326bacf]{transition:all .3s ease}.slide-enter-from[data-v-7326bacf],.slide-leave-to[data-v-7326bacf]{opacity:0;transform:translateY(-20px)}.note-list-enter-active[data-v-7326bacf],.note-list-leave-active[data-v-7326bacf]{transition:all .3s ease}.note-list-enter-from[data-v-7326bacf],.note-list-leave-to[data-v-7326bacf]{opacity:0;transform:scale(.9)}.note-list-move[data-v-7326bacf]{transition:transform .3s ease}@media (max-width: 768px){.notes-widget[data-v-7326bacf]{padding:15px}.notes-title[data-v-7326bacf]{font-size:1.5rem}.notes-grid[data-v-7326bacf]{grid-template-columns:1fr}.notes-controls[data-v-7326bacf]{flex-direction:column;align-items:stretch}.filter-controls[data-v-7326bacf],.sort-controls[data-v-7326bacf]{width:100%}.filter-btn[data-v-7326bacf]{flex:1;text-align:center}}
|
|
1
|
+
.clock-container[data-v-e9445086]{display:flex;justify-content:center;align-items:center;height:100%;width:100%}.clock[data-v-e9445086]{text-align:center;font-family:Arial,sans-serif;color:#333;background-color:#14141466;backdrop-filter:blur(.2rem);border-radius:15px;padding:20px;width:100%}.time[data-v-e9445086]{font-size:4em;font-weight:700;color:#fff;display:flex;justify-content:center}.date[data-v-e9445086]{font-size:1.2em;color:#fff;margin-top:10px}@media (max-width: 500px){.time[data-v-e9445086]{font-size:3em}.date[data-v-e9445086]{font-size:1em}}input[data-v-2ad90286]{padding:.5rem 1rem;border:none}.full-width[data-v-2ad90286]{width:100%}input[data-v-2ad90286]:focus{outline:none}.round[data-v-2ad90286]{border-radius:.2rem}.rounded[data-v-2ad90286]{border-radius:10rem}button[data-v-10678914]{cursor:pointer;border:none;padding:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:.5s ease-in-out background}.w-full[data-v-10678914]{width:100%}.bound[data-v-10678914]{border-radius:.2rem}.bounded[data-v-10678914]{border-radius:50%}.flat[data-v-10678914]{padding:0;line-height:0;background-color:transparent}.container[data-v-d1389195]{position:relative}.select[data-v-d1389195]{border-radius:.4rem;gap:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.select>span[data-v-d1389195]{display:flex;align-items:center}.list[data-v-d1389195]{position:absolute;width:200px;top:110%;left:0;padding:.2rem;border-radius:.6rem;gap:.2rem;box-shadow:0 2px 6px #0000000f;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#14141499;border:1px solid rgba(255,255,255,.3)}.item[data-v-d1389195]{gap:1rem;padding:.2rem .4rem;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;background-color:#0a0a0a66;height:40px}.item.active[data-v-d1389195],.item[data-v-d1389195]:hover{background-color:var(--blue)}.theme-selector-popup[data-v-d1389195]{max-height:200px}.logo[data-v-d1389195]{width:30px;border-radius:.4rem;border:1px solid rgba(255,255,255,.3)}.container-search[data-v-834a689a]{width:100%;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#1414141a;border:1px solid rgba(255,255,255,.3);color:#fff;box-shadow:0 8px 32px #1f268733;padding:.4rem;border-radius:.6rem}.search[data-v-834a689a]{width:100%;background-color:#0a0a0a99;display:flex;align-items:center;padding:.3rem .8rem;border-radius:.5rem;box-shadow:0 0 .4rem var(--border-color)}.bg-glass[data-v-834a689a]{background-color:transparent;color:var(--text-color)}.search img[data-v-834a689a]{width:20px}.todo-widget[data-v-3560194d]{width:100%;background-color:#14141466;backdrop-filter:blur(.2rem);border-radius:16px;padding:20px;color:#fff;box-shadow:0 4px 10px #0000004d;max-width:500px;margin:0 auto}.title[data-v-3560194d]{margin-bottom:16px;text-align:center}.todo-form[data-v-3560194d]{display:flex;gap:10px;margin-bottom:20px}.todo-form input[data-v-3560194d]{flex:1;padding:10px 12px;border:none;border-radius:8px;background-color:#2a2a2a;color:#fff}.todo-form button[data-v-3560194d]{background-color:#007bff;color:#fff;border:none;border-radius:8px;padding:10px 16px;cursor:pointer}.task-section[data-v-3560194d]{margin-bottom:20px}.task-section h3[data-v-3560194d]{margin-bottom:8px;font-size:1rem;color:#ccc}.task-section ul[data-v-3560194d]{list-style:none;padding:0}.task-section li[data-v-3560194d]{background-color:#292929;padding:10px 12px;border-radius:10px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.actions button[data-v-3560194d]{margin-left:8px;background:none;border:none;color:#bbb;cursor:pointer;font-size:1rem}.actions button[data-v-3560194d]:hover{color:#fff}.empty[data-v-3560194d]{font-size:.9rem;color:#666}.done[data-v-3560194d]{text-decoration:line-through;color:#777}.container-marked[data-v-b33a8ba4]{width:100%;display:flex;flex-direction:column;gap:10px}.tabs[data-v-b33a8ba4]{width:auto;height:auto;display:flex;gap:10px;flex-wrap:wrap;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#444;padding:.2rem;border-radius:.6rem;align-self:start}.tabs.dark[data-v-b33a8ba4]{background:#1414144d;color:#dfdfdf}.container-tab[data-v-b33a8ba4]{position:relative;display:flex;align-items:center}.delete-tab[data-v-b33a8ba4]{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;border:none;background-color:#dc2626;color:#fff;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;opacity:0;transition:opacity .2s;z-index:10}.container-tab:hover .delete-tab[data-v-b33a8ba4]{opacity:1}.delete-tab[data-v-b33a8ba4]:hover{background-color:#b91c1c}.add-tab[data-v-b33a8ba4]{background:linear-gradient(135deg,#066d5a,#0891b2);color:#fff;font-size:1.2rem;font-weight:700;padding:8px 1.2rem!important;transition:all .3s ease}.add-tab[data-v-b33a8ba4]:hover{transform:scale(1.05);box-shadow:0 4px 12px #066d5a66}.tab[data-v-b33a8ba4]{padding:8px 2rem;border:none;cursor:pointer;font-weight:600;background-color:transparent;color:unset}.tab.active[data-v-b33a8ba4]{background-color:#066d5a4d;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:.5rem}.grid[data-v-b33a8ba4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.4rem}.grid.small[data-v-b33a8ba4]{gap:1.4rem}.card[data-v-b33a8ba4]{position:relative;flex:1 1 80px}.card.small[data-v-b33a8ba4]{flex:1 1 180px}.card-link[data-v-b33a8ba4]{height:115px;padding:16px;border-radius:1rem;box-shadow:0 2px 4px #0000004d;background-color:#e1e1e11a;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);text-align:center;cursor:pointer;text-decoration:none;color:#202020;display:flex;justify-content:center;flex-direction:column}.card-link[data-v-b33a8ba4]:hover{backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#dcdcdc99;border:1px solid rgba(255,255,255,.3)}.card-link.dark[data-v-b33a8ba4]{background-color:#1414141a;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);border:1px solid rgba(255,255,255,.3);color:#fff}.card-link.dark[data-v-b33a8ba4]:hover{backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background-color:#0a0a0a99;border:1px solid rgba(255,255,255,.3)}.option-app[data-v-b33a8ba4]{display:none;position:absolute;top:10px;right:10px;z-index:2;gap:.4rem}.card:hover .option-app[data-v-b33a8ba4]{display:flex;justify-content:center;align-items:center}.delete-app[data-v-b33a8ba4],.edit-app[data-v-b33a8ba4]{cursor:pointer;border-radius:.2rem;width:23px;height:23px;border:none;font-size:.8rem}.edit-app[data-v-b33a8ba4]{font-size:1rem}.logo-container[data-v-b33a8ba4]{width:50px;height:50px;border-radius:.4rem;overflow:hidden;display:flex;align-items:center;justify-content:center}.card.small .logo-container[data-v-b33a8ba4]{width:55px;height:55px}.card-link img[data-v-b33a8ba4]{width:100%;max-width:50px;height:100%;height:50px;border-radius:.4rem;object-fit:cover}.card-link img.small[data-v-b33a8ba4]{max-width:55px;height:55px}.column[data-v-b33a8ba4]{display:flex;flex-direction:column;align-items:center;gap:5px}.add[data-v-b33a8ba4]{width:50px;height:50px;background:gray;border-radius:.5rem;display:flex;justify-content:center;font-size:2rem;line-height:50px;color:#fff;user-select:none}.calendar-container[data-v-7ca6c82c]{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem;border-radius:1rem;backdrop-filter:blur(10px) saturate(180%);-webkit-backdrop-filter:blur(10px) saturate(180%);background:#ffffffd9;border:1px solid rgba(255,255,255,.3);color:#202020;isolation:isolate}.calendar-container.dark[data-v-7ca6c82c]{background:#141414d9;color:#dfdfdf}.calendar-header[data-v-7ca6c82c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.view-selector[data-v-7ca6c82c]{display:flex;gap:.5rem;background:#0000001a;padding:.25rem;border-radius:.5rem}.view-btn[data-v-7ca6c82c]{padding:.5rem 1rem;border:none;background:transparent;cursor:pointer;border-radius:.4rem;font-weight:500;color:inherit;transition:all .2s}.view-btn.active[data-v-7ca6c82c]{background:#066d5a;color:#fff}.navigation[data-v-7ca6c82c]{display:flex;align-items:center;gap:1rem}.nav-btn[data-v-7ca6c82c]{width:2rem;height:2rem;border:none;background:#0000001a;border-radius:.4rem;cursor:pointer;font-size:1.5rem;color:inherit;display:flex;align-items:center;justify-content:center}.nav-btn[data-v-7ca6c82c]:hover{background:#0003}.current-date[data-v-7ca6c82c]{font-weight:600;min-width:200px;text-align:center}.today-btn[data-v-7ca6c82c]{padding:.5rem 1rem;border:none;background:#0000001a;border-radius:.4rem;cursor:pointer;font-weight:500;color:inherit}.today-btn[data-v-7ca6c82c]:hover{background:#0003}.add-event-btn[data-v-7ca6c82c]{padding:.5rem 1rem;border:none;background:#066d5a;color:#fff;border-radius:.4rem;cursor:pointer;font-weight:600}.add-event-btn[data-v-7ca6c82c]:hover{background:#055a4a}.calendar-view[data-v-7ca6c82c]{flex:1;overflow-y:auto;min-height:400px}.zcal-day-view[data-v-7ca6c82c]{height:100%;display:none}.zcal-day-view[style*="display: block"][data-v-7ca6c82c],.zcal-day-view[data-v-7ca6c82c]:not([style*="display: none"]){display:flex;flex-direction:column}.time-grid[data-v-7ca6c82c]{display:flex;flex-direction:column}.hour-slot[data-v-7ca6c82c]{display:flex;border-bottom:1px solid rgba(0,0,0,.1);min-height:60px}.hour-label[data-v-7ca6c82c]{width:60px;padding:.5rem;font-size:.85rem;color:#0009}.dark .hour-label[data-v-7ca6c82c]{color:#fff9}.hour-content[data-v-7ca6c82c]{flex:1;padding:.25rem;position:relative}.zcal-week-view[data-v-7ca6c82c]{height:100%;display:none;flex-direction:column}.zcal-week-view[style*="display: block"][data-v-7ca6c82c],.zcal-week-view[data-v-7ca6c82c]:not([style*="display: none"]){display:flex}.week-header[data-v-7ca6c82c]{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:2px solid rgba(0,0,0,.2);margin-bottom:.5rem}.week-time-label[data-v-7ca6c82c]{width:60px}.week-day-header[data-v-7ca6c82c]{text-align:center;padding:.5rem}.day-name[data-v-7ca6c82c]{font-size:.85rem;color:#0009}.dark .day-name[data-v-7ca6c82c]{color:#fff9}.day-number[data-v-7ca6c82c]{font-weight:600;font-size:1.2rem;margin-top:.25rem}.day-number.today[data-v-7ca6c82c]{background:#066d5a;color:#fff;border-radius:50%;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center}.week-grid[data-v-7ca6c82c]{flex:1;overflow-y:auto}.week-hour-row[data-v-7ca6c82c]{display:grid;grid-template-columns:60px repeat(7,1fr);border-bottom:1px solid rgba(0,0,0,.1);min-height:60px}.week-hour-label[data-v-7ca6c82c]{padding:.5rem;font-size:.85rem;color:#0009}.dark .week-hour-label[data-v-7ca6c82c]{color:#fff9}.week-hour-cell[data-v-7ca6c82c]{border-left:1px solid rgba(0,0,0,.05);padding:.25rem;position:relative}.zcal-month-view[data-v-7ca6c82c]{height:100%;display:none;flex-direction:column}.zcal-month-view[style*="display: block"][data-v-7ca6c82c],.zcal-month-view[data-v-7ca6c82c]:not([style*="display: none"]){display:flex}.month-header[data-v-7ca6c82c]{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem}.month-day-name[data-v-7ca6c82c]{text-align:center;font-weight:600;padding:.5rem;font-size:.9rem}.month-grid[data-v-7ca6c82c]{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;flex:1}.month-day[data-v-7ca6c82c]{aspect-ratio:1;border:1px solid rgba(0,0,0,.1);border-radius:.4rem;padding:.5rem;cursor:pointer;transition:background .2s;display:flex;flex-direction:column}.month-day[data-v-7ca6c82c]:hover{background:#0000000d}.dark .month-day[data-v-7ca6c82c]:hover{background:#ffffff0d}.month-day.other-month[data-v-7ca6c82c]{opacity:.3}.month-day.today[data-v-7ca6c82c]{background:#066d5a33;border-color:#066d5a}.month-day .day-number[data-v-7ca6c82c]{font-weight:600;margin-bottom:.25rem}.day-events[data-v-7ca6c82c]{display:flex;gap:.25rem;flex-wrap:wrap}.event-dot[data-v-7ca6c82c]{width:6px;height:6px;border-radius:50%}.more-events[data-v-7ca6c82c]{font-size:.7rem;color:#0009}.dark .more-events[data-v-7ca6c82c]{color:#fff9}.event-card[data-v-7ca6c82c]{padding:.5rem;border-radius:.4rem;margin-bottom:.25rem;cursor:pointer;color:#fff;position:relative}.event-card[data-v-7ca6c82c]:hover{opacity:.9}.event-card.small[data-v-7ca6c82c]{padding:.25rem;font-size:.75rem}.event-title[data-v-7ca6c82c]{font-weight:600;margin-bottom:.25rem}.event-time[data-v-7ca6c82c]{font-size:.85rem;opacity:.9}.event-recurring[data-v-7ca6c82c]{position:absolute;top:.25rem;right:.25rem;font-size:.75rem}.modal-overlay[data-v-7ca6c82c]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-7ca6c82c]{background:#fff;border-radius:1rem;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;isolation:isolate}.dark .modal-content[data-v-7ca6c82c]{background:#2a2a2a}.modal-header[data-v-7ca6c82c]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid rgba(0,0,0,.1)}.dark .modal-header[data-v-7ca6c82c]{border-bottom-color:#ffffff1a}.modal-header h3[data-v-7ca6c82c]{margin:0;font-size:1.5rem}.close-btn[data-v-7ca6c82c]{width:2rem;height:2rem;border:none;background:transparent;font-size:1.5rem;cursor:pointer;border-radius:.4rem;color:inherit}.close-btn[data-v-7ca6c82c]:hover{background:#0000001a}.dark .close-btn[data-v-7ca6c82c]:hover{background:#ffffff1a}.modal-body[data-v-7ca6c82c]{padding:1.5rem}.form-group[data-v-7ca6c82c]{margin-bottom:1.5rem}.form-group label[data-v-7ca6c82c]{display:block;margin-bottom:.5rem;font-weight:600}.form-group input[type=text][data-v-7ca6c82c],.form-group input[type=date][data-v-7ca6c82c],.form-group input[type=time][data-v-7ca6c82c],.form-group select[data-v-7ca6c82c]{width:100%;padding:.75rem;border:1px solid rgba(0,0,0,.2);border-radius:.4rem;font-size:1rem;background:#fff;color:#202020}.dark .form-group input[type=text][data-v-7ca6c82c],.dark .form-group input[type=date][data-v-7ca6c82c],.dark .form-group input[type=time][data-v-7ca6c82c],.dark .form-group select[data-v-7ca6c82c]{background:#1a1a1a;border-color:#fff3;color:#dfdfdf}.form-row[data-v-7ca6c82c]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.checkbox-label[data-v-7ca6c82c]{display:flex!important;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox][data-v-7ca6c82c]{width:1.25rem;height:1.25rem;cursor:pointer}.color-picker[data-v-7ca6c82c]{display:flex;gap:.5rem;flex-wrap:wrap}.color-option[data-v-7ca6c82c]{width:2.5rem;height:2.5rem;border-radius:.4rem;cursor:pointer;border:3px solid transparent;transition:all .2s}.color-option[data-v-7ca6c82c]:hover{transform:scale(1.1)}.color-option.selected[data-v-7ca6c82c]{border-color:#fff;box-shadow:0 0 0 2px #066d5a}.modal-footer[data-v-7ca6c82c]{display:flex;justify-content:flex-end;gap:.5rem;padding:1.5rem;border-top:1px solid rgba(0,0,0,.1)}.dark .modal-footer[data-v-7ca6c82c]{border-top-color:#ffffff1a}.modal-footer button[data-v-7ca6c82c]{padding:.75rem 1.5rem;border:none;border-radius:.4rem;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn[data-v-7ca6c82c]{background:#0000001a;color:inherit}.cancel-btn[data-v-7ca6c82c]:hover{background:#0003}.save-btn[data-v-7ca6c82c]{background:#066d5a;color:#fff}.save-btn[data-v-7ca6c82c]:hover{background:#055a4a}.delete-btn[data-v-7ca6c82c]{background:#dc2626;color:#fff;margin-right:auto}.delete-btn[data-v-7ca6c82c]:hover{background:#b91c1c}@media (max-width: 768px){.calendar-header[data-v-7ca6c82c]{flex-direction:column;align-items:stretch}.navigation[data-v-7ca6c82c]{justify-content:center}.current-date[data-v-7ca6c82c]{min-width:auto}.week-header[data-v-7ca6c82c],.week-hour-row[data-v-7ca6c82c]{grid-template-columns:40px repeat(7,1fr)}.hour-label[data-v-7ca6c82c],.week-hour-label[data-v-7ca6c82c],.week-time-label[data-v-7ca6c82c]{width:40px;font-size:.7rem}.form-row[data-v-7ca6c82c]{grid-template-columns:1fr}}.weather-container[data-v-5f11c261]{display:flex;justify-content:center;align-items:center;height:100%;width:100%;padding:10px}.weather-widget[data-v-5f11c261]{width:100%;max-width:400px;background-color:#14141466;backdrop-filter:blur(.2rem);border-radius:15px;padding:20px;color:#fff;font-family:Arial,sans-serif}.weather-loading[data-v-5f11c261],.weather-error[data-v-5f11c261]{text-align:center;padding:20px}.spinner[data-v-5f11c261]{border:3px solid rgba(255,255,255,.3);border-top:3px solid #fff;border-radius:50%;width:40px;height:40px;animation:spin-5f11c261 1s linear infinite;margin:0 auto 15px}@keyframes spin-5f11c261{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weather-error[data-v-5f11c261]{color:#fcc}.error-icon[data-v-5f11c261]{font-size:2em;display:block;margin-bottom:10px}.retry-btn[data-v-5f11c261],.refresh-btn[data-v-5f11c261]{background-color:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:8px;cursor:pointer;margin-top:10px;transition:background-color .3s}.retry-btn[data-v-5f11c261]:hover,.refresh-btn[data-v-5f11c261]:hover{background-color:#ffffff4d}.weather-header[data-v-5f11c261]{margin-bottom:15px}.location[data-v-5f11c261]{display:flex;align-items:center;gap:8px;font-size:1.1em}.location-icon[data-v-5f11c261]{font-size:1.2em}.weather-main[data-v-5f11c261]{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.temperature[data-v-5f11c261]{display:flex;align-items:flex-start}.temp-value[data-v-5f11c261]{font-size:4em;font-weight:700;line-height:1}.temp-unit[data-v-5f11c261]{font-size:2em;margin-top:10px;margin-left:5px;opacity:.8}.weather-icon[data-v-5f11c261]{font-size:4em}.weather-description[data-v-5f11c261]{text-align:center;font-size:1.3em;margin-bottom:20px;text-transform:capitalize}.weather-details[data-v-5f11c261]{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}.detail-item[data-v-5f11c261]{display:flex;flex-direction:column;align-items:center;gap:5px}.detail-icon[data-v-5f11c261]{font-size:1.5em}.detail-label[data-v-5f11c261]{font-size:.8em;opacity:.7}.detail-value[data-v-5f11c261]{font-size:1em;font-weight:700}.weather-footer[data-v-5f11c261]{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.2)}.last-update[data-v-5f11c261]{font-size:.85em;opacity:.7}.refresh-btn[data-v-5f11c261]{padding:6px 12px;font-size:1.2em;margin-top:0}@media (max-width: 500px){.temp-value[data-v-5f11c261]{font-size:3em}.temp-unit[data-v-5f11c261]{font-size:1.5em}.weather-icon[data-v-5f11c261]{font-size:3em}.weather-description[data-v-5f11c261]{font-size:1.1em}.weather-details[data-v-5f11c261]{grid-template-columns:repeat(3,1fr);gap:10px}.detail-item[data-v-5f11c261]{font-size:.9em}}.notes-widget[data-v-7326bacf]{width:100%;max-width:900px;background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:20px;padding:25px;color:#e2e8f0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-shadow:0 20px 60px #0000004d}.notes-header[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid rgba(255,255,255,.1)}.notes-title[data-v-7326bacf]{margin:0;font-size:1.8rem;background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions[data-v-7326bacf]{display:flex;gap:10px}.icon-btn[data-v-7326bacf]{width:40px;height:40px;border:none;background:#3b82f633;border-radius:10px;font-size:1.2rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-7326bacf]:hover{background:#3b82f64d;transform:translateY(-2px)}.add-btn[data-v-7326bacf]{background:linear-gradient(135deg,#3b82f6,#2563eb)}.add-btn[data-v-7326bacf]:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f666}.modal-overlay[data-v-7326bacf]{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content[data-v-7326bacf]{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:20px;padding:30px;max-width:500px;width:100%;box-shadow:0 20px 60px #00000080}.modal-header[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3[data-v-7326bacf]{margin:0;color:#e2e8f0;font-size:1.5rem}.close-btn[data-v-7326bacf]{width:35px;height:35px;border:none;background:#ef444433;border-radius:50%;font-size:1.2rem;cursor:pointer;transition:all .3s ease;color:#ef4444}.close-btn[data-v-7326bacf]:hover{background:#ef4444;color:#fff;transform:rotate(90deg)}.modal-body[data-v-7326bacf]{max-height:400px;overflow-y:auto}.category-form[data-v-7326bacf]{display:flex;gap:10px;margin-bottom:20px}.category-input[data-v-7326bacf]{flex:1;padding:12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;font-size:.95rem}.category-input[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6;background:#ffffff14}.color-picker[data-v-7326bacf]{width:60px;height:45px;border:none;border-radius:10px;cursor:pointer;background:transparent}.add-category-btn[data-v-7326bacf]{padding:0 20px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.add-category-btn[data-v-7326bacf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.categories-list[data-v-7326bacf]{display:flex;flex-direction:column;gap:10px}.category-item[data-v-7326bacf]{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff0d;border-radius:10px;transition:all .3s ease}.category-item[data-v-7326bacf]:hover{background:#ffffff14}.category-color-preview[data-v-7326bacf]{width:25px;height:25px;border-radius:6px;border:2px solid rgba(255,255,255,.2)}.category-name[data-v-7326bacf]{flex:1;color:#e2e8f0;font-weight:500}.delete-category-btn[data-v-7326bacf]{width:35px;height:35px;border:none;background:#ef444433;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease}.delete-category-btn[data-v-7326bacf]:hover{background:#ef4444;transform:scale(1.1)}.new-note-form[data-v-7326bacf]{background:#ffffff0d;border:2px solid rgba(59,130,246,.3);border-radius:15px;padding:20px;margin-bottom:20px}.note-title-input[data-v-7326bacf],.note-content-input[data-v-7326bacf]{width:100%;padding:12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;font-size:.95rem;font-family:inherit;margin-bottom:12px}.note-title-input[data-v-7326bacf]{font-size:1.1rem;font-weight:600}.note-title-input[data-v-7326bacf]:focus,.note-content-input[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6;background:#ffffff14}.note-content-input[data-v-7326bacf]{resize:vertical;min-height:100px}.note-form-actions[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;gap:10px}.category-select[data-v-7326bacf]{padding:10px 15px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;cursor:pointer;font-size:.9rem}.category-select[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6}.form-buttons[data-v-7326bacf]{display:flex;gap:10px}.cancel-btn[data-v-7326bacf],.save-btn[data-v-7326bacf]{padding:10px 20px;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-btn[data-v-7326bacf]{background:#ef444433;color:#ef4444}.cancel-btn[data-v-7326bacf]:hover{background:#ef44444d}.save-btn[data-v-7326bacf]{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.save-btn[data-v-7326bacf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.notes-controls[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;flex-wrap:wrap}.filter-controls[data-v-7326bacf]{display:flex;gap:8px;flex-wrap:wrap}.filter-btn[data-v-7326bacf]{padding:8px 16px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:20px;color:#94a3b8;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .3s ease}.filter-btn[data-v-7326bacf]:hover{background:#ffffff14;color:#e2e8f0}.filter-btn.active[data-v-7326bacf]{background:#3b82f633;border-color:#3b82f6;color:#60a5fa}.sort-controls[data-v-7326bacf]{display:flex;gap:10px}.sort-select[data-v-7326bacf]{padding:8px 12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;cursor:pointer;font-size:.85rem}.sort-select[data-v-7326bacf]:focus{outline:none;border-color:#3b82f6}.notes-list[data-v-7326bacf]{margin-bottom:20px}.empty-state[data-v-7326bacf]{text-align:center;padding:60px 20px;color:#64748b}.empty-icon[data-v-7326bacf]{font-size:4rem;margin-bottom:15px;opacity:.5}.empty-state p[data-v-7326bacf]{font-size:1.2rem;margin-bottom:20px}.create-first-note-btn[data-v-7326bacf]{padding:12px 30px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:12px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.create-first-note-btn[data-v-7326bacf]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.notes-grid[data-v-7326bacf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.note-card[data-v-7326bacf]{background:#ffffff0d;backdrop-filter:blur(10px);border-left:4px solid #6b7280;border-radius:12px;padding:15px;transition:all .3s ease;display:flex;flex-direction:column;gap:10px}.note-card[data-v-7326bacf]:hover{background:#ffffff14;transform:translateY(-3px);box-shadow:0 8px 24px #0000004d}.note-card.pinned[data-v-7326bacf]{background:#3b82f61a;border-left-color:#3b82f6}.note-card-header[data-v-7326bacf]{display:flex;justify-content:space-between;gap:5px}.pin-btn[data-v-7326bacf],.delete-btn[data-v-7326bacf]{width:30px;height:30px;border:none;background:#ffffff0d;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease}.pin-btn[data-v-7326bacf]:hover{background:#3b82f633;transform:scale(1.1)}.pin-btn.pinned[data-v-7326bacf]{background:#3b82f633}.delete-btn[data-v-7326bacf]:hover{background:#ef444433;transform:scale(1.1)}.note-title[data-v-7326bacf]{margin:0;font-size:1.1rem;color:#f1f5f9;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-content[data-v-7326bacf]{margin:0;color:#cbd5e1;font-size:.9rem;line-height:1.6;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical}.note-footer[data-v-7326bacf]{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.05)}.note-category[data-v-7326bacf]{padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.note-date[data-v-7326bacf]{color:#64748b;font-size:.75rem}.notes-stats[data-v-7326bacf]{display:flex;justify-content:space-between;padding:15px;background:#ffffff0d;border-radius:10px;color:#94a3b8;font-size:.9rem;font-weight:500}.modal-enter-active[data-v-7326bacf],.modal-leave-active[data-v-7326bacf]{transition:all .3s ease}.modal-enter-from[data-v-7326bacf],.modal-leave-to[data-v-7326bacf]{opacity:0;transform:scale(.9)}.slide-enter-active[data-v-7326bacf],.slide-leave-active[data-v-7326bacf]{transition:all .3s ease}.slide-enter-from[data-v-7326bacf],.slide-leave-to[data-v-7326bacf]{opacity:0;transform:translateY(-20px)}.note-list-enter-active[data-v-7326bacf],.note-list-leave-active[data-v-7326bacf]{transition:all .3s ease}.note-list-enter-from[data-v-7326bacf],.note-list-leave-to[data-v-7326bacf]{opacity:0;transform:scale(.9)}.note-list-move[data-v-7326bacf]{transition:transform .3s ease}@media (max-width: 768px){.notes-widget[data-v-7326bacf]{padding:15px}.notes-title[data-v-7326bacf]{font-size:1.5rem}.notes-grid[data-v-7326bacf]{grid-template-columns:1fr}.notes-controls[data-v-7326bacf]{flex-direction:column;align-items:stretch}.filter-controls[data-v-7326bacf],.sort-controls[data-v-7326bacf]{width:100%}.filter-btn[data-v-7326bacf]{flex:1;text-align:center}}
|
package/dist/zen-wdg.es.js
CHANGED
|
@@ -49,7 +49,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
49
49
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
50
50
|
});
|
|
51
51
|
};
|
|
52
|
-
import { createElementBlock, openBlock, createElementVNode, createTextVNode, toDisplayString, normalizeClass, withKeys, defineComponent, ref, shallowRef, onMounted, watch, onUnmounted, h, nextTick, resolveComponent, normalizeStyle, createBlock, createCommentVNode, Fragment, renderList, createVNode, withModifiers, withDirectives, vModelText, vModelCheckbox, vModelSelect, Transition, withCtx, TransitionGroup, defineCustomElement } from "vue";
|
|
52
|
+
import { createElementBlock, openBlock, createElementVNode, createTextVNode, toDisplayString, normalizeClass, withKeys, defineComponent, ref, shallowRef, onMounted, watch, onUnmounted, h, nextTick, resolveComponent, normalizeStyle, createBlock, createCommentVNode, Fragment, renderList, createVNode, withModifiers, withDirectives, vModelText, vShow, vModelCheckbox, vModelSelect, Transition, withCtx, TransitionGroup, defineCustomElement } from "vue";
|
|
53
53
|
const _export_sfc = (sfc, props) => {
|
|
54
54
|
const target = sfc.__vccOpts || sfc;
|
|
55
55
|
for (const [key, val] of props) {
|
|
@@ -2228,6 +2228,7 @@ const _sfc_main$3 = {
|
|
|
2228
2228
|
},
|
|
2229
2229
|
data() {
|
|
2230
2230
|
const STORAGE_KEY = "bookmark_manager_state";
|
|
2231
|
+
const CATEGORIES_KEY = "bookmark_categories";
|
|
2231
2232
|
const defaultBookmarks = {
|
|
2232
2233
|
Personal: [
|
|
2233
2234
|
{
|
|
@@ -2302,10 +2303,14 @@ const _sfc_main$3 = {
|
|
|
2302
2303
|
]
|
|
2303
2304
|
};
|
|
2304
2305
|
const bookmarks = this.useStorage ? JSON.parse(localStorage.getItem(STORAGE_KEY)) || defaultBookmarks : defaultBookmarks;
|
|
2306
|
+
const storedCategories = this.useStorage ? JSON.parse(localStorage.getItem(CATEGORIES_KEY)) : null;
|
|
2307
|
+
const userCategories = storedCategories || [...this.categories];
|
|
2305
2308
|
return {
|
|
2306
2309
|
STORAGE_KEY,
|
|
2310
|
+
CATEGORIES_KEY,
|
|
2307
2311
|
bookmarks,
|
|
2308
|
-
|
|
2312
|
+
userCategories,
|
|
2313
|
+
activeTab: userCategories[0] || "Personal",
|
|
2309
2314
|
faviconAttempts: {}
|
|
2310
2315
|
};
|
|
2311
2316
|
},
|
|
@@ -2318,8 +2323,53 @@ const _sfc_main$3 = {
|
|
|
2318
2323
|
saveState() {
|
|
2319
2324
|
if (this.useStorage) {
|
|
2320
2325
|
localStorage.setItem(this.STORAGE_KEY, JSON.stringify(this.bookmarks));
|
|
2326
|
+
localStorage.setItem(this.CATEGORIES_KEY, JSON.stringify(this.userCategories));
|
|
2321
2327
|
}
|
|
2322
2328
|
},
|
|
2329
|
+
addCategoryPrompt() {
|
|
2330
|
+
return __async(this, null, function* () {
|
|
2331
|
+
const categoryName = yield window.ZenModals.showPrompt({
|
|
2332
|
+
title: "Nueva Categoría",
|
|
2333
|
+
message: "Introduce el nombre de la nueva categoría:",
|
|
2334
|
+
inputPlaceholder: "Ej: Hobbies, Finanzas, etc."
|
|
2335
|
+
});
|
|
2336
|
+
if (!categoryName || !categoryName.trim()) return;
|
|
2337
|
+
const trimmedName = categoryName.trim();
|
|
2338
|
+
if (this.userCategories.includes(trimmedName)) {
|
|
2339
|
+
alert("Esta categoría ya existe");
|
|
2340
|
+
return;
|
|
2341
|
+
}
|
|
2342
|
+
this.userCategories.push(trimmedName);
|
|
2343
|
+
if (!this.bookmarks[trimmedName]) {
|
|
2344
|
+
this.bookmarks[trimmedName] = [];
|
|
2345
|
+
}
|
|
2346
|
+
this.activeTab = trimmedName;
|
|
2347
|
+
this.saveState();
|
|
2348
|
+
});
|
|
2349
|
+
},
|
|
2350
|
+
deleteCategory(category) {
|
|
2351
|
+
return __async(this, null, function* () {
|
|
2352
|
+
var _a;
|
|
2353
|
+
if (this.userCategories.length <= 1) {
|
|
2354
|
+
alert("No puedes eliminar la única categoría. Debe existir al menos una.");
|
|
2355
|
+
return;
|
|
2356
|
+
}
|
|
2357
|
+
const bookmarkCount = ((_a = this.bookmarks[category]) == null ? void 0 : _a.length) || 0;
|
|
2358
|
+
const message = bookmarkCount > 0 ? `¿Estás seguro de eliminar la categoría "${category}"? Se eliminarán ${bookmarkCount} marcador(es).` : `¿Estás seguro de eliminar la categoría "${category}"?`;
|
|
2359
|
+
const confirmed = yield window.ZenModals.showDeleteConfirm(category, message);
|
|
2360
|
+
if (confirmed) {
|
|
2361
|
+
const index = this.userCategories.indexOf(category);
|
|
2362
|
+
if (index > -1) {
|
|
2363
|
+
this.userCategories.splice(index, 1);
|
|
2364
|
+
}
|
|
2365
|
+
delete this.bookmarks[category];
|
|
2366
|
+
if (this.activeTab === category) {
|
|
2367
|
+
this.activeTab = this.userCategories[0];
|
|
2368
|
+
}
|
|
2369
|
+
this.saveState();
|
|
2370
|
+
}
|
|
2371
|
+
});
|
|
2372
|
+
},
|
|
2323
2373
|
setActiveTab(tab) {
|
|
2324
2374
|
this.activeTab = tab;
|
|
2325
2375
|
},
|
|
@@ -2447,20 +2497,22 @@ const _sfc_main$3 = {
|
|
|
2447
2497
|
};
|
|
2448
2498
|
const _hoisted_1$3 = { class: "container-marked" };
|
|
2449
2499
|
const _hoisted_2$3 = ["onClick"];
|
|
2450
|
-
const _hoisted_3$3 =
|
|
2451
|
-
const _hoisted_4$3 = { class: "
|
|
2452
|
-
const _hoisted_5$3 =
|
|
2453
|
-
const _hoisted_6$3 =
|
|
2454
|
-
const _hoisted_7$3 = ["
|
|
2455
|
-
const _hoisted_8$3 =
|
|
2456
|
-
const _hoisted_9$3 =
|
|
2457
|
-
const _hoisted_10$3 =
|
|
2500
|
+
const _hoisted_3$3 = ["onClick"];
|
|
2501
|
+
const _hoisted_4$3 = { class: "container-tab" };
|
|
2502
|
+
const _hoisted_5$3 = { class: "grid" };
|
|
2503
|
+
const _hoisted_6$3 = { class: "option-app" };
|
|
2504
|
+
const _hoisted_7$3 = ["onClick"];
|
|
2505
|
+
const _hoisted_8$3 = ["onClick"];
|
|
2506
|
+
const _hoisted_9$3 = ["href", "target"];
|
|
2507
|
+
const _hoisted_10$3 = { class: "column" };
|
|
2508
|
+
const _hoisted_11$3 = { class: "logo-container" };
|
|
2509
|
+
const _hoisted_12$3 = ["src", "alt", "onError"];
|
|
2458
2510
|
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
2459
2511
|
return openBlock(), createElementBlock("div", _hoisted_1$3, [
|
|
2460
2512
|
createElementVNode("div", {
|
|
2461
2513
|
class: normalizeClass(["tabs", [$props.theme == "dark" ? "dark" : "light"]])
|
|
2462
2514
|
}, [
|
|
2463
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList($
|
|
2515
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList($data.userCategories, (tab) => {
|
|
2464
2516
|
return openBlock(), createElementBlock("div", {
|
|
2465
2517
|
key: tab,
|
|
2466
2518
|
class: "container-tab"
|
|
@@ -2468,43 +2520,55 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2468
2520
|
createElementVNode("button", {
|
|
2469
2521
|
class: normalizeClass(["tab", { active: tab === $data.activeTab }]),
|
|
2470
2522
|
onClick: ($event) => $options.setActiveTab(tab)
|
|
2471
|
-
}, toDisplayString(tab), 11, _hoisted_2$3)
|
|
2523
|
+
}, toDisplayString(tab), 11, _hoisted_2$3),
|
|
2524
|
+
createElementVNode("button", {
|
|
2525
|
+
class: "delete-tab",
|
|
2526
|
+
onClick: withModifiers(($event) => $options.deleteCategory(tab), ["stop"]),
|
|
2527
|
+
title: "Eliminar categoría"
|
|
2528
|
+
}, " × ", 8, _hoisted_3$3)
|
|
2472
2529
|
]);
|
|
2473
|
-
}), 128))
|
|
2530
|
+
}), 128)),
|
|
2531
|
+
createElementVNode("div", _hoisted_4$3, [
|
|
2532
|
+
createElementVNode("button", {
|
|
2533
|
+
class: "tab add-tab",
|
|
2534
|
+
onClick: _cache[0] || (_cache[0] = (...args) => $options.addCategoryPrompt && $options.addCategoryPrompt(...args)),
|
|
2535
|
+
title: "Añadir nueva categoría"
|
|
2536
|
+
}, " + ")
|
|
2537
|
+
])
|
|
2474
2538
|
], 2),
|
|
2475
|
-
createElementVNode("div",
|
|
2539
|
+
createElementVNode("div", _hoisted_5$3, [
|
|
2476
2540
|
(openBlock(true), createElementBlock(Fragment, null, renderList($options.currentBookmarks, (item, index) => {
|
|
2477
2541
|
return openBlock(), createElementBlock("div", {
|
|
2478
2542
|
key: index,
|
|
2479
2543
|
class: normalizeClass(["card", $props.small ? "small" : ""])
|
|
2480
2544
|
}, [
|
|
2481
|
-
createElementVNode("div",
|
|
2545
|
+
createElementVNode("div", _hoisted_6$3, [
|
|
2482
2546
|
createElementVNode("button", {
|
|
2483
2547
|
class: "edit-app",
|
|
2484
2548
|
onClick: withModifiers(($event) => $options.editBookmark(index), ["prevent"])
|
|
2485
|
-
}, "✏️", 8,
|
|
2549
|
+
}, "✏️", 8, _hoisted_7$3),
|
|
2486
2550
|
createElementVNode("button", {
|
|
2487
2551
|
class: "delete-app",
|
|
2488
2552
|
onClick: withModifiers(($event) => $options.deleteBookmark(index), ["prevent"])
|
|
2489
|
-
}, "🗑️", 8,
|
|
2553
|
+
}, "🗑️", 8, _hoisted_8$3)
|
|
2490
2554
|
]),
|
|
2491
2555
|
createElementVNode("a", {
|
|
2492
2556
|
href: item.url,
|
|
2493
2557
|
class: normalizeClass(["card-link", $props.theme == "dark" ? "dark" : "light"]),
|
|
2494
2558
|
target: $props.open == "Self Tab" ? "_self" : "_blank"
|
|
2495
2559
|
}, [
|
|
2496
|
-
createElementVNode("div",
|
|
2497
|
-
createElementVNode("div",
|
|
2560
|
+
createElementVNode("div", _hoisted_10$3, [
|
|
2561
|
+
createElementVNode("div", _hoisted_11$3, [
|
|
2498
2562
|
createElementVNode("img", {
|
|
2499
2563
|
src: $options.getFaviconUrl(item),
|
|
2500
2564
|
alt: item.title + " logo",
|
|
2501
2565
|
class: normalizeClass({ small: $props.small }),
|
|
2502
2566
|
onError: ($event) => $options.onImageError($event, item)
|
|
2503
|
-
}, null, 42,
|
|
2567
|
+
}, null, 42, _hoisted_12$3)
|
|
2504
2568
|
]),
|
|
2505
2569
|
createTextVNode(" " + toDisplayString(item.title), 1)
|
|
2506
2570
|
])
|
|
2507
|
-
], 10,
|
|
2571
|
+
], 10, _hoisted_9$3)
|
|
2508
2572
|
], 2);
|
|
2509
2573
|
}), 128)),
|
|
2510
2574
|
$options.currentBookmarks.length < 8 ? (openBlock(), createElementBlock("div", {
|
|
@@ -2514,8 +2578,8 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2514
2578
|
createElementVNode("a", {
|
|
2515
2579
|
href: "#",
|
|
2516
2580
|
class: normalizeClass(["card-link", $props.theme == "dark" ? "dark" : "light"]),
|
|
2517
|
-
onClick: _cache[
|
|
2518
|
-
}, _cache[
|
|
2581
|
+
onClick: _cache[1] || (_cache[1] = withModifiers((...args) => $options.addBookmarkPrompt && $options.addBookmarkPrompt(...args), ["prevent"]))
|
|
2582
|
+
}, _cache[2] || (_cache[2] = [
|
|
2519
2583
|
createElementVNode("div", { class: "column" }, [
|
|
2520
2584
|
createElementVNode("span", { class: "add" }, "+"),
|
|
2521
2585
|
createTextVNode(" Add ")
|
|
@@ -2525,7 +2589,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2525
2589
|
])
|
|
2526
2590
|
]);
|
|
2527
2591
|
}
|
|
2528
|
-
const ZMarkedWidget = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-
|
|
2592
|
+
const ZMarkedWidget = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-b33a8ba4"]]);
|
|
2529
2593
|
const _sfc_main$2 = {
|
|
2530
2594
|
name: "ZCalendarWidget",
|
|
2531
2595
|
props: {
|
|
@@ -2776,10 +2840,7 @@ const _hoisted_3$2 = ["onClick"];
|
|
|
2776
2840
|
const _hoisted_4$2 = { class: "navigation" };
|
|
2777
2841
|
const _hoisted_5$2 = { class: "current-date" };
|
|
2778
2842
|
const _hoisted_6$2 = { class: "calendar-view" };
|
|
2779
|
-
const _hoisted_7$2 = {
|
|
2780
|
-
key: 0,
|
|
2781
|
-
class: "day-view"
|
|
2782
|
-
};
|
|
2843
|
+
const _hoisted_7$2 = { class: "zcal-day-view" };
|
|
2783
2844
|
const _hoisted_8$2 = { class: "time-grid" };
|
|
2784
2845
|
const _hoisted_9$2 = { class: "hour-label" };
|
|
2785
2846
|
const _hoisted_10$2 = { class: "hour-content" };
|
|
@@ -2790,20 +2851,14 @@ const _hoisted_14$2 = {
|
|
|
2790
2851
|
key: 0,
|
|
2791
2852
|
class: "event-recurring"
|
|
2792
2853
|
};
|
|
2793
|
-
const _hoisted_15$2 = {
|
|
2794
|
-
key: 1,
|
|
2795
|
-
class: "week-view"
|
|
2796
|
-
};
|
|
2854
|
+
const _hoisted_15$2 = { class: "zcal-week-view" };
|
|
2797
2855
|
const _hoisted_16$2 = { class: "week-header" };
|
|
2798
2856
|
const _hoisted_17$2 = { class: "day-name" };
|
|
2799
2857
|
const _hoisted_18$2 = { class: "week-grid" };
|
|
2800
2858
|
const _hoisted_19$2 = { class: "week-hour-label" };
|
|
2801
2859
|
const _hoisted_20$2 = ["onClick"];
|
|
2802
2860
|
const _hoisted_21$2 = { class: "event-title" };
|
|
2803
|
-
const _hoisted_22$2 = {
|
|
2804
|
-
key: 2,
|
|
2805
|
-
class: "month-view"
|
|
2806
|
-
};
|
|
2861
|
+
const _hoisted_22$2 = { class: "zcal-month-view" };
|
|
2807
2862
|
const _hoisted_23$1 = { class: "month-header" };
|
|
2808
2863
|
const _hoisted_24$1 = { class: "month-grid" };
|
|
2809
2864
|
const _hoisted_25$1 = ["onClick"];
|
|
@@ -2867,7 +2922,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2867
2922
|
}, "+ Evento")
|
|
2868
2923
|
]),
|
|
2869
2924
|
createElementVNode("div", _hoisted_6$2, [
|
|
2870
|
-
|
|
2925
|
+
withDirectives(createElementVNode("div", _hoisted_7$2, [
|
|
2871
2926
|
createElementVNode("div", _hoisted_8$2, [
|
|
2872
2927
|
(openBlock(), createElementBlock(Fragment, null, renderList(24, (hour) => {
|
|
2873
2928
|
return createElementVNode("div", {
|
|
@@ -2892,8 +2947,10 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2892
2947
|
]);
|
|
2893
2948
|
}), 64))
|
|
2894
2949
|
])
|
|
2895
|
-
]
|
|
2896
|
-
|
|
2950
|
+
], 512), [
|
|
2951
|
+
[vShow, $data.currentView === "day"]
|
|
2952
|
+
]),
|
|
2953
|
+
withDirectives(createElementVNode("div", _hoisted_15$2, [
|
|
2897
2954
|
createElementVNode("div", _hoisted_16$2, [
|
|
2898
2955
|
_cache[15] || (_cache[15] = createElementVNode("div", { class: "week-time-label" }, null, -1)),
|
|
2899
2956
|
(openBlock(true), createElementBlock(Fragment, null, renderList($options.weekDays, (day) => {
|
|
@@ -2935,8 +2992,10 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2935
2992
|
]);
|
|
2936
2993
|
}), 64))
|
|
2937
2994
|
])
|
|
2938
|
-
]
|
|
2939
|
-
|
|
2995
|
+
], 512), [
|
|
2996
|
+
[vShow, $data.currentView === "week"]
|
|
2997
|
+
]),
|
|
2998
|
+
withDirectives(createElementVNode("div", _hoisted_22$2, [
|
|
2940
2999
|
createElementVNode("div", _hoisted_23$1, [
|
|
2941
3000
|
(openBlock(true), createElementBlock(Fragment, null, renderList($data.dayNames, (day) => {
|
|
2942
3001
|
return openBlock(), createElementBlock("div", {
|
|
@@ -2970,7 +3029,9 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2970
3029
|
], 10, _hoisted_25$1);
|
|
2971
3030
|
}), 128))
|
|
2972
3031
|
])
|
|
2973
|
-
])
|
|
3032
|
+
], 512), [
|
|
3033
|
+
[vShow, $data.currentView === "month"]
|
|
3034
|
+
])
|
|
2974
3035
|
]),
|
|
2975
3036
|
$data.showEventModal ? (openBlock(), createElementBlock("div", {
|
|
2976
3037
|
key: 0,
|
|
@@ -3081,7 +3142,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3081
3142
|
])) : createCommentVNode("", true)
|
|
3082
3143
|
], 2);
|
|
3083
3144
|
}
|
|
3084
|
-
const ZCalendarWidget = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
|
3145
|
+
const ZCalendarWidget = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-7ca6c82c"]]);
|
|
3085
3146
|
const _sfc_main$1 = {
|
|
3086
3147
|
name: "ZWeatherWidget",
|
|
3087
3148
|
data() {
|
package/dist/zen-wdg.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ZenWdg={},e.Vue)}(this,function(e,t){"use strict";var n=Object.defineProperty,o=Object.defineProperties,a=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,s=(e,t,o)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,c=(e,t)=>{for(var n in t||(t={}))l.call(t,n)&&s(e,n,t[n]);if(r)for(var n of r(t))i.call(t,n)&&s(e,n,t[n]);return e},d=(e,t)=>o(e,a(t)),u=(e,t,n)=>new Promise((o,a)=>{var r=e=>{try{i(n.next(e))}catch(t){a(t)}},l=e=>{try{i(n.throw(e))}catch(t){a(t)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,l);i((n=n.apply(e,t)).next())});const m=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},p={class:"clock-container"},h={class:"clock"},g={class:"time"},f={class:"date"};const v=m({name:"ZClockWidget",data:()=>({hours:"00",minutes:"00",seconds:"00",dayOfWeek:"",day:"",month:"",year:""}),mounted(){this.updateClock(),setInterval(this.updateClock,1e3)},methods:{updateClock(){const e=new Date;this.hours=e.getHours().toString().padStart(2,"0"),this.minutes=e.getMinutes().toString().padStart(2,"0"),this.seconds=e.getSeconds().toString().padStart(2,"0"),this.dayOfWeek=this.getDayOfWeek(e.getDay()),this.day=e.getDate(),this.month=this.getMonthName(e.getMonth()),this.year=e.getFullYear()},getDayOfWeek:e=>["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"][e],getMonthName:e=>["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"][e]}},[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",p,[t.createElementVNode("div",h,[t.createElementVNode("div",g,[t.createElementVNode("span",null,t.toDisplayString(r.hours),1),n[0]||(n[0]=t.createTextVNode(":",-1)),t.createElementVNode("span",null,t.toDisplayString(r.minutes),1)]),t.createElementVNode("div",f,[t.createElementVNode("span",null,t.toDisplayString(r.dayOfWeek)+", "+t.toDisplayString(r.day)+" "+t.toDisplayString(r.month)+" "+t.toDisplayString(r.year),1)])])])}],["__scopeId","data-v-e9445086"]]),y={data:()=>({}),props:{placeholder:String,modelValue:{type:String,default:""},round:{type:Boolean,default:!1},full:{type:Boolean},rounded:{type:Boolean,default:!1}},methods:{onInput(e){this.$emit("update:modelValue",e.target.value)},onEnter(){this.$emit("enter-pressed",this.modelValue)}}},b=["placeholder","value"];const k=m(y,[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("input",{placeholder:o.placeholder,value:o.modelValue,onInput:n[0]||(n[0]=(...e)=>l.onInput&&l.onInput(...e)),onKeydown:n[1]||(n[1]=t.withKeys((...e)=>l.onEnter&&l.onEnter(...e),["enter"])),class:t.normalizeClass([{"full-width":o.full},{round:o.round},{rounded:o.rounded}])},null,42,b)}],["__scopeId","data-v-2ad90286"]]),w=/^[a-z0-9]+(-[a-z0-9]+)*$/,E=(e,t,n,o="")=>{const a=e.split(":");if("@"===e.slice(0,1)){if(a.length<2||a.length>3)return null;o=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const e=a.pop(),n=a.pop(),r={provider:a.length>0?a[0]:o,prefix:n,name:e};return t&&!N(r)?null:r}const r=a[0],l=r.split("-");if(l.length>1){const e={provider:o,prefix:l.shift(),name:l.join("-")};return t&&!N(e)?null:e}if(n&&""===o){const e={provider:o,prefix:"",name:r};return t&&!N(e,n)?null:e}return null},N=(e,t)=>!!e&&!(!(t&&""===e.prefix||e.prefix)||!e.name),C=Object.freeze({left:0,top:0,width:16,height:16}),V=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),S=Object.freeze(c(c({},C),V)),D=Object.freeze(d(c({},S),{body:"",hidden:!1}));function x(e,t){const n=function(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const o=((e.rotate||0)+(t.rotate||0))%4;return o&&(n.rotate=o),n}(e,t);for(const o in D)o in V?o in e&&!(o in n)&&(n[o]=V[o]):o in t?n[o]=t[o]:o in e&&(n[o]=e[o]);return n}function B(e,t,n){const o=e.icons,a=e.aliases||Object.create(null);let r={};function l(e){r=x(o[e]||a[e],r)}return l(t),n.forEach(l),x(e,r)}function T(e,t){const n=[];if("object"!=typeof e||"object"!=typeof e.icons)return n;e.not_found instanceof Array&&e.not_found.forEach(e=>{t(e,null),n.push(e)});const o=function(e){const t=e.icons,n=e.aliases||Object.create(null),o=Object.create(null);return Object.keys(t).concat(Object.keys(n)).forEach(function e(a){if(t[a])return o[a]=[];if(!(a in o)){o[a]=null;const t=n[a]&&n[a].parent,r=t&&e(t);r&&(o[a]=[t].concat(r))}return o[a]}),o}(e);for(const a in o){const r=o[a];r&&(t(a,B(e,a,r)),n.push(a))}return n}const z=c({provider:"",aliases:{},not_found:{}},C);function F(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function M(e){if("object"!=typeof e||null===e)return null;const t=e;if("string"!=typeof t.prefix||!e.icons||"object"!=typeof e.icons)return null;if(!F(e,z))return null;const n=t.icons;for(const a in n){const e=n[a];if(!a||"string"!=typeof e.body||!F(e,D))return null}const o=t.aliases||Object.create(null);for(const a in o){const e=o[a],t=e.parent;if(!a||"string"!=typeof t||!n[t]&&!o[t]||!F(e,D))return null}return t}const I=Object.create(null);function O(e,t){const n=I[e]||(I[e]=Object.create(null));return n[t]||(n[t]=function(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}(e,t))}function L(e,t){return M(t)?T(t,(t,n)=>{n?e.icons[t]=n:e.missing.add(t)}):[]}let j=!1;function _(e){return"boolean"==typeof e&&(j=e),j}function A(e,t){const n=E(e,!0,j);if(!n)return!1;const o=O(n.provider,n.prefix);return t?function(e,t,n){try{if("string"==typeof n.body)return e.icons[t]=c({},n),!0}catch(o){}return!1}(o,n.name,t):(o.missing.add(n.name),!0)}const P=Object.freeze({width:null,height:null}),$=Object.freeze(c(c({},P),V)),U=/(-?[0-9.]*[0-9]+[0-9.]*)/g,W=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function R(e,t,n){if(1===t)return e;if(n=n||100,"number"==typeof e)return Math.ceil(e*t*n)/n;if("string"!=typeof e)return e;const o=e.split(U);if(null===o||!o.length)return e;const a=[];let r=o.shift(),l=W.test(r);for(;;){if(l){const e=parseFloat(r);isNaN(e)?a.push(r):a.push(Math.ceil(e*t*n)/n)}else a.push(r);if(r=o.shift(),void 0===r)return a.join("");l=!l}}const H=/\sid="(\S+)"/g,J="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16);let Z=0;const q=Object.create(null);function K(e){return q[e]||q[""]}function G(e){let t;if("string"==typeof e.resources)t=[e.resources];else if(t=e.resources,!(t instanceof Array&&t.length))return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:!0===e.random,index:e.index||0,dataAfterTimeout:!1!==e.dataAfterTimeout}}const Y=Object.create(null),Q=["https://api.simplesvg.com","https://api.unisvg.com"],X=[];for(;Q.length>0;)1===Q.length||Math.random()>.5?X.push(Q.shift()):X.push(Q.pop());function ee(e,t){const n=G(t);return null!==n&&(Y[e]=n,!0)}function te(e){return Y[e]}Y[""]=G({resources:["https://api.iconify.design"].concat(X)});let ne=(()=>{let e;try{if(e=fetch,"function"==typeof e)return e}catch(t){}})();const oe={prepare:(e,t,n)=>{const o=[],a=function(e,t){const n=te(e);if(!n)return 0;let o;if(n.maxURL){let e=0;n.resources.forEach(t=>{const n=t;e=Math.max(e,n.length)});const a=t+".json?icons=";o=n.maxURL-e-n.path.length-a.length}else o=0;return o}(e,t),r="icons";let l={type:r,provider:e,prefix:t,icons:[]},i=0;return n.forEach((n,s)=>{i+=n.length+1,i>=a&&s>0&&(o.push(l),l={type:r,provider:e,prefix:t,icons:[]},i=n.length),l.icons.push(n)}),o.push(l),o},send:(e,t,n)=>{if(!ne)return void n("abort",424);let o=function(e){if("string"==typeof e){const t=te(e);if(t)return t.path}return"/"}(t.provider);switch(t.type){case"icons":{const e=t.prefix,n=t.icons.join(",");o+=e+".json?"+new URLSearchParams({icons:n}).toString();break}case"custom":{const e=t.uri;o+="/"===e.slice(0,1)?e.slice(1):e;break}default:return void n("abort",400)}let a=503;ne(e+o).then(e=>{const t=e.status;if(200===t)return a=501,e.json();setTimeout(()=>{n(function(e){return 404===e}(t)?"abort":"next",t)})}).then(e=>{"object"==typeof e&&null!==e?setTimeout(()=>{n("success",e)}):setTimeout(()=>{404===e?n("abort",e):n("next",a)})}).catch(()=>{n("next",a)})}};function ae(e,t){e.forEach(e=>{const n=e.loaderCallbacks;n&&(e.loaderCallbacks=n.filter(e=>e.id!==t))})}let re=0;var le={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function ie(e,t,n,o){const a=e.resources.length,r=e.random?Math.floor(Math.random()*a):e.index;let l;if(e.random){let t=e.resources.slice(0);for(l=[];t.length>1;){const e=Math.floor(Math.random()*t.length);l.push(t[e]),t=t.slice(0,e).concat(t.slice(e+1))}l=l.concat(t)}else l=e.resources.slice(r).concat(e.resources.slice(0,r));const i=Date.now();let s,c="pending",d=0,u=null,m=[],p=[];function h(){u&&(clearTimeout(u),u=null)}function g(){"pending"===c&&(c="aborted"),h(),m.forEach(e=>{"pending"===e.status&&(e.status="aborted")}),m=[]}function f(e,t){t&&(p=[]),"function"==typeof e&&p.push(e)}function v(){c="failed",p.forEach(e=>{e(void 0,s)})}function y(){m.forEach(e=>{"pending"===e.status&&(e.status="aborted")}),m=[]}function b(){if("pending"!==c)return;h();const o=l.shift();if(void 0===o)return m.length?void(u=setTimeout(()=>{h(),"pending"===c&&(y(),v())},e.timeout)):void v();const a={status:"pending",resource:o,callback:(t,n)=>{!function(t,n,o){const a="success"!==n;switch(m=m.filter(e=>e!==t),c){case"pending":break;case"failed":if(a||!e.dataAfterTimeout)return;break;default:return}if("abort"===n)return s=o,void v();if(a)return s=o,void(m.length||(l.length?b():v()));if(h(),y(),!e.random){const n=e.resources.indexOf(t.resource);-1!==n&&n!==e.index&&(e.index=n)}c="completed",p.forEach(e=>{e(o)})}(a,t,n)}};m.push(a),d++,u=setTimeout(b,e.rotate),n(o,t,a.callback)}return"function"==typeof o&&p.push(o),setTimeout(b),function(){return{startTime:i,payload:t,status:c,queriesSent:d,queriesPending:m.length,subscribe:f,abort:g}}}function se(e){const t=c(c({},le),e);let n=[];function o(){n=n.filter(e=>"pending"===e().status)}return{query:function(e,a,r){const l=ie(t,e,a,(e,t)=>{o(),r&&r(e,t)});return n.push(l),l},find:function(e){return n.find(t=>e(t))||null},setIndex:e=>{t.index=e},getIndex:()=>t.index,cleanup:o}}function ce(){}const de=Object.create(null);function ue(e,t,n){let o,a;if("string"==typeof e){const t=K(e);if(!t)return n(void 0,424),ce;a=t.send;const r=function(e){if(!de[e]){const t=te(e);if(!t)return;const n={config:t,redundancy:se(t)};de[e]=n}return de[e]}(e);r&&(o=r.redundancy)}else{const t=G(e);if(t){o=se(t);const n=K(e.resources?e.resources[0]:"");n&&(a=n.send)}}return o&&a?o.query(t,a,n)().abort:(n(void 0,424),ce)}function me(){}function pe(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,function(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const o=e.provider,a=e.prefix;t.forEach(t=>{const r=t.icons,l=r.pending.length;r.pending=r.pending.filter(t=>{if(t.prefix!==a)return!0;const l=t.name;if(e.icons[l])r.loaded.push({provider:o,prefix:a,name:l});else{if(!e.missing.has(l))return n=!0,!0;r.missing.push({provider:o,prefix:a,name:l})}return!1}),r.pending.length!==l&&(n||ae([e],t.id),t.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),t.abort))})}))}(e)}))}function he(e,t,n){function o(){const n=e.pendingIcons;t.forEach(t=>{n&&n.delete(t),e.icons[t]||e.missing.add(t)})}if(n&&"object"==typeof n)try{if(!L(e,n).length)return void o()}catch(a){console.error(a)}o(),pe(e)}function ge(e,t){e instanceof Promise?e.then(e=>{t(e)}).catch(()=>{t(null)}):t(e)}function fe(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:t,prefix:n}=e,o=e.iconsToLoad;if(delete e.iconsToLoad,!o||!o.length)return;const a=e.loadIcon;if(e.loadIcons&&(o.length>1||!a))return void ge(e.loadIcons(o,n,t),t=>{he(e,o,t)});if(a)return void o.forEach(o=>{ge(a(o,n,t),t=>{he(e,[o],t?{prefix:n,icons:{[o]:t}}:null)})});const{valid:r,invalid:l}=function(e){const t=[],n=[];return e.forEach(e=>{(e.match(w)?t:n).push(e)}),{valid:t,invalid:n}}(o);if(l.length&&he(e,l,null),!r.length)return;const i=n.match(w)?K(t):null;if(!i)return void he(e,r,null);i.prepare(t,n,r).forEach(n=>{ue(t,n,t=>{he(e,n.icons,t)})})}))}const ve=(e,t)=>{const n=function(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((e,t)=>e.provider!==t.provider?e.provider.localeCompare(t.provider):e.prefix!==t.prefix?e.prefix.localeCompare(t.prefix):e.name.localeCompare(t.name));let o={provider:"",prefix:"",name:""};return e.forEach(e=>{if(o.name===e.name&&o.prefix===e.prefix&&o.provider===e.provider)return;o=e;const a=e.provider,r=e.prefix,l=e.name,i=n[a]||(n[a]=Object.create(null)),s=i[r]||(i[r]=O(a,r));let c;c=l in s.icons?t.loaded:""===r||s.missing.has(l)?t.missing:t.pending;const d={provider:a,prefix:r,name:l};c.push(d)}),t}(function(e,t=!0,n=!1){const o=[];return e.forEach(e=>{const a="string"==typeof e?E(e,t,n):e;a&&o.push(a)}),o}(e,!0,_()));if(!n.pending.length){let e=!0;return t&&setTimeout(()=>{e&&t(n.loaded,n.missing,n.pending,me)}),()=>{e=!1}}const o=Object.create(null),a=[];let r,l;return n.pending.forEach(e=>{const{provider:t,prefix:n}=e;if(n===l&&t===r)return;r=t,l=n,a.push(O(t,n));const i=o[t]||(o[t]=Object.create(null));i[n]||(i[n]=[])}),n.pending.forEach(e=>{const{provider:t,prefix:n,name:a}=e,r=O(t,n),l=r.pendingIcons||(r.pendingIcons=new Set);l.has(a)||(l.add(a),o[t][n].push(a))}),a.forEach(e=>{const t=o[e.provider][e.prefix];t.length&&fe(e,t)}),t?function(e,t,n){const o=re++,a=ae.bind(null,n,o);if(!t.pending.length)return a;const r={id:o,icons:t,callback:e,abort:a};return n.forEach(e=>{(e.loaderCallbacks||(e.loaderCallbacks=[])).push(r)}),a}(t,n,a):me};const ye=/[\s,]+/;function be(e,t){t.split(ye).forEach(t=>{switch(t.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0}})}function ke(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function o(e){for(;e<0;)e+=4;return e%4}if(""===n){const t=parseInt(e);return isNaN(t)?0:o(t)}if(n!==e){let t=0;switch(n){case"%":t=25;break;case"deg":t=90}if(t){let a=parseFloat(e.slice(0,e.length-n.length));return isNaN(a)?0:(a/=t,a%1==0?o(a):0)}}return t}const we=d(c({},$),{inline:!1}),Ee={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Ne={display:"inline-block"},Ce={backgroundColor:"currentColor"},Ve={backgroundColor:"transparent"},Se={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},De={webkitMask:Ce,mask:Ce,background:Ve};for(const Vo in De){const e=De[Vo];for(const t in Se)e[Vo+t]=Se[t]}const xe={};function Be(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}["horizontal","vertical"].forEach(e=>{const t=e.slice(0,1)+"Flip";xe[e+"-flip"]=t,xe[e.slice(0,1)+"-flip"]=t,xe[e+"Flip"]=t});const Te=(e,n)=>{const o=function(e,t){const n=c({},e);for(const o in t){const e=t[o],a=typeof e;o in P?(null===e||e&&("string"===a||"number"===a))&&(n[o]=e):a===typeof n[o]&&(n[o]="rotate"===o?e%4:e)}return n}(we,n),a=c({},Ee),r=n.mode||"svg",l={},i=n.style,s="object"!=typeof i||i instanceof Array?{}:i;for(let t in n){const e=n[t];if(void 0!==e)switch(t){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":o[t]=!0===e||"true"===e||1===e;break;case"flip":"string"==typeof e&&be(o,e);break;case"color":l.color=e;break;case"rotate":"string"==typeof e?o[t]=ke(e):"number"==typeof e&&(o[t]=e);break;case"ariaHidden":case"aria-hidden":!0!==e&&"true"!==e&&delete a["aria-hidden"];break;default:{const n=xe[t];n?!0!==e&&"true"!==e&&1!==e||(o[n]=!0):void 0===we[t]&&(a[t]=e)}}}const u=function(e,t){const n=c(c({},S),e),o=c(c({},$),t),a={left:n.left,top:n.top,width:n.width,height:n.height};let r=n.body;[n,o].forEach(e=>{const t=[],n=e.hFlip,o=e.vFlip;let l,i=e.rotate;switch(n?o?i+=2:(t.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),t.push("scale(-1 1)"),a.top=a.left=0):o&&(t.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),t.push("scale(1 -1)"),a.top=a.left=0),i<0&&(i-=4*Math.floor(i/4)),i%=4,i){case 1:l=a.height/2+a.top,t.unshift("rotate(90 "+l.toString()+" "+l.toString()+")");break;case 2:t.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:l=a.width/2+a.left,t.unshift("rotate(-90 "+l.toString()+" "+l.toString()+")")}i%2==1&&(a.left!==a.top&&(l=a.left,a.left=a.top,a.top=l),a.width!==a.height&&(l=a.width,a.width=a.height,a.height=l)),t.length&&(r=function(e,t,n){const o=function(e,t="defs"){let n="";const o=e.indexOf("<"+t);for(;o>=0;){const a=e.indexOf(">",o),r=e.indexOf("</"+t);if(-1===a||-1===r)break;const l=e.indexOf(">",r);if(-1===l)break;n+=e.slice(a+1,r).trim(),e=e.slice(0,o).trim()+e.slice(l+1)}return{defs:n,content:e}}(e);return a=o.defs,r=t+o.content+n,a?"<defs>"+a+"</defs>"+r:r;var a,r}(r,'<g transform="'+t.join(" ")+'">',"</g>"))});const l=o.width,i=o.height,s=a.width,d=a.height;let u,m;null===l?(m=null===i?"1em":"auto"===i?d:i,u=R(m,s/d)):(u="auto"===l?s:l,m=null===i?R(u,d/s):"auto"===i?d:i);const p={},h=(e,t)=>{(e=>"unset"===e||"undefined"===e||"none"===e)(t)||(p[e]=t.toString())};h("width",u),h("height",m);const g=[a.left,a.top,s,d];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:r}}(e,o),m=u.attributes;if(o.inline&&(l.verticalAlign="-0.125em"),"svg"===r){a.style=c(c({},l),s),Object.assign(a,m);let e=0,o=n.id;return"string"==typeof o&&(o=o.replace(/-/g,"_")),a.innerHTML=function(e,t=J){const n=[];let o;for(;o=H.exec(e);)n.push(o[1]);if(!n.length)return e;const a="suffix"+(16777216*Math.random()|Date.now()).toString(16);return n.forEach(n=>{const o="function"==typeof t?t(n):t+(Z++).toString(),r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+r+')([")]|\\.[a-z])',"g"),"$1"+o+a+"$3")}),e=e.replace(new RegExp(a,"g"),"")}(u.body,o?()=>o+"ID"+e++:"iconifyVue"),t.h("svg",a)}const{body:p,width:h,height:g}=e,f="mask"===r||"bg"!==r&&-1!==p.indexOf("currentColor"),v=function(e,t){let n=-1===e.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in t)n+=" "+o+'="'+t[o]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+e+"</svg>"}(p,d(c({},m),{width:h+"",height:g+""}));var y;return a.style=c(c(c(d(c({},l),{"--svg":(y=v,'url("'+function(e){return"data:image/svg+xml,"+function(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}(e)}(y)+'")'),width:Be(m.width),height:Be(m.height)}),Ne),f?Ce:Ve),s),t.h("span",a)};var ze;if(_(!0),ze=oe,q[""]=ze,"undefined"!=typeof document&&"undefined"!=typeof window){const e=window;if(void 0!==e.IconifyPreload){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";"object"==typeof t&&null!==t&&(t instanceof Array?t:[t]).forEach(e=>{try{("object"!=typeof e||null===e||e instanceof Array||"object"!=typeof e.icons||"string"!=typeof e.prefix||!function(e,t){if("object"!=typeof e)return!1;if("string"!=typeof t&&(t=e.provider||""),j&&!t&&!e.prefix){let t=!1;return M(e)&&(e.prefix="",T(e,(e,n)=>{A(e,n)&&(t=!0)})),t}const n=e.prefix;return!!N({prefix:n,name:"a"})&&!!L(O(t,n),e)}(e))&&console.error(n)}catch(t){console.error(n)}})}if(void 0!==e.IconifyProviders){const t=e.IconifyProviders;if("object"==typeof t&&null!==t)for(let e in t){const n="IconifyProviders["+e+"] is invalid.";try{const o=t[e];if("object"!=typeof o||!o||void 0===o.resources)continue;ee(e,o)||console.error(n)}catch(Co){console.error(n)}}}}const Fe=d(c({},S),{body:""});const Me=m({data:()=>({}),components:{Icon:t.defineComponent((e,{emit:n})=>{const o=t.ref(null);function a(){var e,t;o.value&&(null==(t=(e=o.value).abort)||t.call(e),o.value=null)}const r=t.ref(!!e.ssr),l=t.ref(""),i=t.shallowRef(null);function s(){const r=e.icon;if("object"==typeof r&&null!==r&&"string"==typeof r.body)return l.value="",{data:r};let i;if("string"!=typeof r||null===(i=E(r,!1,!0)))return null;let s=function(e){const t="string"==typeof e?E(e,!0,j):e;if(t){const e=O(t.provider,t.prefix),n=t.name;return e.icons[n]||(e.missing.has(n)?null:void 0)}}(i);if(!s){const e=o.value;return e&&e.name===r||(o.value=null===s?{name:r}:{name:r,abort:ve([i],u)}),null}a(),l.value!==r&&(l.value=r,t.nextTick(()=>{n("load",r)}));const c=e.customise;if(c){s=Object.assign({},s);const e=c(s.body,i.name,i.prefix,i.provider);"string"==typeof e&&(s.body=e)}const d=["iconify"];return""!==i.prefix&&d.push("iconify--"+i.prefix),""!==i.provider&&d.push("iconify--"+i.provider),{data:s,classes:d}}function u(){var e;const t=s();t?t.data!==(null==(e=i.value)?void 0:e.data)&&(i.value=t):i.value=null}return r.value?u():t.onMounted(()=>{r.value=!0,u()}),t.watch(()=>e.icon,u),t.onUnmounted(a),()=>{const t=i.value;if(!t)return Te(Fe,e);let n=e;return t.classes&&(n=d(c({},e),{class:t.classes.join(" ")})),Te(c(c({},S),t.data),n)}},{props:["icon","mode","ssr","width","height","style","color","inline","rotate","hFlip","horizontalFlip","vFlip","verticalFlip","flip","id","ariaHidden","customise","title"],emits:["load"]})},props:{title:{type:String,required:!1},bound:{type:Boolean,default:!1},bounded:{type:Boolean,default:!1},flat:{type:Boolean,default:!1},iconLeft:{type:Boolean,required:!1,default:!1},iconRight:{type:Boolean,default:!1},icon:{type:String},size:{type:String},iconSize:{type:String},wFull:{type:Boolean,default:!1},noBg:{type:Boolean,default:!1},color:String},methods:{}},[["render",function(e,n,o,a,r,l){const i=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass([{flat:o.flat},{bound:o.bound},{bounded:o.bounded},{"w-full":o.wFull},{transparent:o.noBg}]),style:t.normalizeStyle([{"font-size":o.size},{color:o.color}])},[o.iconLeft?(t.openBlock(),t.createBlock(i,{key:0,icon:o.icon,style:t.normalizeStyle({"font-size":o.iconSize})},null,8,["icon","style"])):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(o.title)+" ",1),o.icon&&!o.iconLeft?(t.openBlock(),t.createBlock(i,{key:1,icon:o.icon,width:o.iconSize,height:o.iconSize},null,8,["icon","width","height"])):t.createCommentVNode("",!0)],6)}],["__scopeId","data-v-10678914"]]),Ie={name:"Dropdown",props:{modelValue:Object,options:{type:Array,required:!0},placeholder:{type:String,default:"Seleccionar..."}},data:()=>({isOpen:!1}),created(){console.log(this.options)},computed:{selected(){return this.modelValue}},methods:{toggleDropdown(){this.isOpen=!this.isOpen},selectItem(e){this.$emit("update:modelValue",e),this.isOpen=!1,console.log(e)},selectOption(e){this.selectedOption=e,this.isOpen=!1,this.$emit("update:modelValue",e),this.$emit("change",e)},handleClickOutside(e){this.$refs.dropdown.contains(e.target)||(this.isOpen=!1)}},mounted(){document.addEventListener("click",this.handleClickOutside)},beforeUnmount(){document.removeEventListener("click",this.handleClickOutside)}},Oe={class:"container",ref:"dropdown"},Le={key:0},je=["src"],_e={key:1,class:"placeholder"},Ae={key:0,class:"column list"},Pe=["onClick"],$e={key:0},Ue=["src"],We={key:1};const Re=m(Ie,[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",Oe,[t.createElementVNode("div",{class:"row select",onClick:n[0]||(n[0]=(...e)=>l.toggleDropdown&&l.toggleDropdown(...e))},[l.selected?(t.openBlock(),t.createElementBlock("span",Le,[l.selected.logo?(t.openBlock(),t.createElementBlock("img",{key:0,src:l.selected.logo,class:"logo"},null,8,je)):t.createCommentVNode("",!0)])):(t.openBlock(),t.createElementBlock("span",_e,"Selecciona una opción"))]),r.isOpen?(t.openBlock(),t.createElementBlock("div",Ae,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.options,(e,n)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["item row",{active:e.id==l.selected.id}]),onClick:t=>l.selectItem(e)},[e.logo?(t.openBlock(),t.createElementBlock("span",$e,[t.createElementVNode("img",{src:e.logo,class:"logo"},null,8,Ue)])):t.createCommentVNode("",!0),e.label?(t.openBlock(),t.createElementBlock("span",We,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0)],10,Pe))),256))])):t.createCommentVNode("",!0)],512)}],["__scopeId","data-v-d1389195"]]),He={class:"container-search"},Je={class:"search"};const Ze=m({name:"ZSearchWidget",data:()=>({text:"",engines:[{id:1,logo:"https://s1.qwant.com/thumbr/474x474/b/c/eae6b919559217567ef067dec4aa1e425d560667e5b8e51333bea1b60f4de7/OIP.G3kcQIn5w4kJtUilFbWaigHaHa.jpg?u=https%3A%2F%2Fthf.bing.com%2Fth%2Fid%2FOIP.G3kcQIn5w4kJtUilFbWaigHaHa%3Fr%3D0%26cb%3Dthfc1%26pid%3DApi&q=0&b=1&p=0&a=0",label:"Qwant",search:"https://www.qwant.com/?l=es&q="},{id:2,logo:"https://astian.org/wp-content/uploads/2025/06/favicon-1.png",label:"AstianGO",search:"https://astiango.com/?q="}],engine:{id:1,logo:"https://s1.qwant.com/thumbr/474x474/b/c/eae6b919559217567ef067dec4aa1e425d560667e5b8e51333bea1b60f4de7/OIP.G3kcQIn5w4kJtUilFbWaigHaHa.jpg?u=https%3A%2F%2Fthf.bing.com%2Fth%2Fid%2FOIP.G3kcQIn5w4kJtUilFbWaigHaHa%3Fr%3D0%26cb%3Dthfc1%26pid%3DApi&q=0&b=1&p=0&a=0",label:"Qwant",search:"https://www.qwant.com/?l=es&q="},urls:{url:"https://www.qwant.com/?l=es&q=facebook+login&t=web"}}),props:{searchTarget:{type:String,require:!1,default:"Self Tab"},logo:{type:String,require:!1}},components:{Input:k,Button:Me,Dropdown:Re},methods:{search(){console.log(this.engine.search);const e=`${this.engine.search}${this.text}`;"New Tab"==this.searchTarget?(chrome.tabs.create({url:e}),this.text=""):"Self Tab"==this.searchTarget&&chrome.tabs.update({url:e})}}},[["render",function(e,n,o,a,r,l){const i=t.resolveComponent("Dropdown"),s=t.resolveComponent("Input"),c=t.resolveComponent("Button");return t.openBlock(),t.createElementBlock("div",He,[t.createElementVNode("div",Je,[t.createElementVNode("div",null,[t.createVNode(i,{options:r.engines,modelValue:r.engine,"onUpdate:modelValue":n[0]||(n[0]=e=>r.engine=e)},null,8,["options","modelValue"])]),t.createVNode(s,{placeholder:"Search something",full:"",class:"bg-glass",modelValue:r.text,"onUpdate:modelValue":n[1]||(n[1]=e=>r.text=e),onEnterPressed:n[2]||(n[2]=e=>l.search())},null,8,["modelValue"]),t.createVNode(c,{icon:"material-symbols-light:search-rounded",size:"25px",flat:"",class:"text-color",onClick:n[3]||(n[3]=e=>l.search())})])])}],["__scopeId","data-v-834a689a"]]),qe={class:"todo-widget"},Ke={class:"task-section"},Ge={key:0,class:"empty"},Ye={class:"actions"},Qe=["onClick"],Xe=["onClick"],et={class:"task-section completed"},tt={key:0,class:"empty"},nt={class:"done"},ot=["onClick"];const at=m({name:"ZTodoWidget",data:()=>({newTask:"",pendingTasks:[],completedTasks:[]}),methods:{addTask(){this.newTask.trim()&&(this.pendingTasks.push({text:this.newTask.trim()}),this.newTask="")},completeTask(e){const t=this.pendingTasks.splice(e,1)[0];this.completedTasks.push(t)},deleteTask(e){this.pendingTasks.splice(e,1)},deleteCompleted(e){this.completedTasks.splice(e,1)}}},[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",qe,[n[5]||(n[5]=t.createElementVNode("h2",{class:"title"},"📝 Mis Tareas",-1)),t.createElementVNode("form",{onSubmit:n[1]||(n[1]=t.withModifiers((...e)=>l.addTask&&l.addTask(...e),["prevent"])),class:"todo-form"},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=e=>r.newTask=e),type:"text",placeholder:"Escribe una nueva tarea..."},null,512),[[t.vModelText,r.newTask]]),n[2]||(n[2]=t.createElementVNode("button",{type:"submit"},"Agregar",-1))],32),t.createElementVNode("div",Ke,[n[3]||(n[3]=t.createElementVNode("h3",null,"Tareas Pendientes",-1)),0===r.pendingTasks.length?(t.openBlock(),t.createElementBlock("div",Ge,"Sin tareas.")):t.createCommentVNode("",!0),t.createElementVNode("ul",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.pendingTasks,(e,n)=>(t.openBlock(),t.createElementBlock("li",{key:n},[t.createElementVNode("span",null,t.toDisplayString(e.text),1),t.createElementVNode("div",Ye,[t.createElementVNode("button",{onClick:e=>l.completeTask(n)},"✔️",8,Qe),t.createElementVNode("button",{onClick:e=>l.deleteTask(n)},"🗑️",8,Xe)])]))),128))])]),t.createElementVNode("div",et,[n[4]||(n[4]=t.createElementVNode("h3",null,"Completadas",-1)),0===r.completedTasks.length?(t.openBlock(),t.createElementBlock("div",tt,"Ninguna aún.")):t.createCommentVNode("",!0),t.createElementVNode("ul",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.completedTasks,(e,n)=>(t.openBlock(),t.createElementBlock("li",{key:"c"+n},[t.createElementVNode("span",nt,t.toDisplayString(e.text),1),t.createElementVNode("button",{onClick:e=>l.deleteCompleted(n)},"❌",8,ot)]))),128))])])])}],["__scopeId","data-v-3560194d"]]),rt={name:"ZMarkedWidget",props:{theme:{type:String,default:"light"},small:{type:Boolean,default:!1},categories:{type:Array,default:()=>["Personal","Work","Study"]},open:{type:String,default:"Self Tab"},useStorage:{type:Boolean,default:!1}},data(){const e="bookmark_manager_state",t={Personal:[{title:"Astian",url:"https://astian.org/",domain:"astian.org"},{title:"Amazon",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM9HD56Q0VD2QZXQ2AR505&url=https%3A%2F%2Famazon.com",domain:"amazon.com"},{title:"Avast",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Favast.com%2F",domain:"avast.com"},{title:"Youtube",url:"https://youtube.com",domain:"youtube.com"},{title:"Instagram",url:"https://instagram.com",domain:"instagram.com"},{title:"Wish.com",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fwish.com",domain:"wish.com"},{title:"Prime",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fprimevideo.com",domain:"primevideo.com"},{title:"Shein",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fshein.com",domain:"shein.com"}],Work:[{title:"GitHub",url:"https://github.com",domain:"github.com"},{title:"Notion",url:"https://notion.so",domain:"notion.so"}],Study:[{title:"MDN Web Docs",url:"https://developer.mozilla.org",domain:"mozilla.org"},{title:"FreeCodeCamp",url:"https://freecodecamp.org",domain:"freecodecamp.org"},{title:"Udemy",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fudemy.com%2F",domain:"udemy.com"}]};return{STORAGE_KEY:e,bookmarks:this.useStorage&&JSON.parse(localStorage.getItem(e))||t,activeTab:"Personal",faviconAttempts:{}}},computed:{currentBookmarks(){return this.bookmarks[this.activeTab]||[]}},methods:{saveState(){this.useStorage&&localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.bookmarks))},setActiveTab(e){this.activeTab=e},openLink(e){"self"===this.open?window.location.href=e:window.open(e,"_blank")},deleteBookmark(e){return u(this,null,function*(){const t=this.bookmarks[this.activeTab][e];(yield window.ZenModals.showDeleteConfirm(t.title))&&(this.bookmarks[this.activeTab].splice(e,1),this.saveState())})},editBookmark(e){return u(this,null,function*(){const t=this.bookmarks[this.activeTab][e],n=yield window.ZenModals.showPrompt({title:"Editar Marcador",message:"Introduce el nuevo título:",inputDefaultValue:t.title,inputPlaceholder:"Título del marcador"});if(!n)return;const o=yield window.ZenModals.showPrompt({title:"Editar URL",message:"Introduce la nueva URL:",inputDefaultValue:t.url,inputType:"url",inputPlaceholder:"https://ejemplo.com"});if(o)try{t.title=n,t.url=o,t.domain=new URL(o).hostname,delete t.logo,this.saveState()}catch(a){console.error("URL inválida:",a)}})},addBookmarkPrompt(){return u(this,null,function*(){const e=yield window.ZenModals.showPrompt({title:"Nuevo Marcador",message:"Introduce el nombre del marcador:",inputPlaceholder:"Nombre del sitio"});if(!e)return;const t=yield window.ZenModals.showPrompt({title:"URL del Marcador",message:"Introduce la URL:",inputType:"url",inputPlaceholder:"https://ejemplo.com"});if(t)try{const n=new URL(t).hostname;this.bookmarks[this.activeTab].push({title:e,url:t,domain:n}),this.saveState()}catch(n){console.error("URL inválida:",n)}})},getFaviconUrl(e){if(e.logo)return e.logo;const t=e.domain||this.extractDomain(e.url),n=this.faviconAttempts[t]||0,o=[`https://icons.duckduckgo.com/ip3/${t}.ico`,`https://www.google.com/s2/favicons?domain=${t}&sz=128`,`https://logo.clearbit.com/${t}`,`https://favicons.githubusercontent.com/${t}`,`https://${t}/favicon.ico`];return o[Math.min(n,o.length-1)]},extractDomain(e){try{return new URL(e).hostname}catch(Co){return e}},onImageError(e,t){const n=e.target,o=t.domain||this.extractDomain(t.url),a=this.faviconAttempts[o]||0;if(a<4)this.faviconAttempts[o]=a+1,n.src=this.getFaviconUrl(t);else{n.style.display="none";const e=n.parentNode,o=["#066D5A","#0891b2","#7c3aed","#dc2626","#ea580c","#ca8a04","#16a34a"],a=t.title.charCodeAt(0)%o.length;e.style.backgroundColor=o[a],e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center",e.style.fontSize="1.5rem",e.style.fontWeight="bold",e.style.color="white",e.textContent=t.title.charAt(0).toUpperCase()}}},watch:{bookmarks:{handler(){this.saveState()},deep:!0}}},lt={class:"container-marked"},it=["onClick"],st={class:"grid"},ct={class:"option-app"},dt=["onClick"],ut=["onClick"],mt=["href","target"],pt={class:"column"},ht={class:"logo-container"},gt=["src","alt","onError"];const ft=m(rt,[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",lt,[t.createElementVNode("div",{class:t.normalizeClass(["tabs",["dark"==o.theme?"dark":"light"]])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.categories,e=>(t.openBlock(),t.createElementBlock("div",{key:e,class:"container-tab"},[t.createElementVNode("button",{class:t.normalizeClass(["tab",{active:e===r.activeTab}]),onClick:t=>l.setActiveTab(e)},t.toDisplayString(e),11,it)]))),128))],2),t.createElementVNode("div",st,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.currentBookmarks,(e,n)=>(t.openBlock(),t.createElementBlock("div",{key:n,class:t.normalizeClass(["card",o.small?"small":""])},[t.createElementVNode("div",ct,[t.createElementVNode("button",{class:"edit-app",onClick:t.withModifiers(e=>l.editBookmark(n),["prevent"])},"✏️",8,dt),t.createElementVNode("button",{class:"delete-app",onClick:t.withModifiers(e=>l.deleteBookmark(n),["prevent"])},"🗑️",8,ut)]),t.createElementVNode("a",{href:e.url,class:t.normalizeClass(["card-link","dark"==o.theme?"dark":"light"]),target:"Self Tab"==o.open?"_self":"_blank"},[t.createElementVNode("div",pt,[t.createElementVNode("div",ht,[t.createElementVNode("img",{src:l.getFaviconUrl(e),alt:e.title+" logo",class:t.normalizeClass({small:o.small}),onError:t=>l.onImageError(t,e)},null,42,gt)]),t.createTextVNode(" "+t.toDisplayString(e.title),1)])],10,mt)],2))),128)),l.currentBookmarks.length<8?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["card",o.small?"small":""])},[t.createElementVNode("a",{href:"#",class:t.normalizeClass(["card-link","dark"==o.theme?"dark":"light"]),onClick:n[0]||(n[0]=t.withModifiers((...e)=>l.addBookmarkPrompt&&l.addBookmarkPrompt(...e),["prevent"]))},n[1]||(n[1]=[t.createElementVNode("div",{class:"column"},[t.createElementVNode("span",{class:"add"},"+"),t.createTextVNode(" Add ")],-1)]),2)],2)):t.createCommentVNode("",!0)])])}],["__scopeId","data-v-1625b2ac"]]),vt={name:"ZCalendarWidget",props:{theme:{type:String,default:"light"},useStorage:{type:Boolean,default:!0}},data(){const e="calendar_widget_events";let t=[];if(this.useStorage){const n=localStorage.getItem(e);t=n?JSON.parse(n):[]}const n={name:"",date:(new Date).toISOString().split("T")[0],startTime:"09:00",endTime:"10:00",color:"#066D5A",isRecurring:!1,recurringType:"daily"};return{STORAGE_KEY:e,currentView:"month",currentDate:new Date,showEventModal:!1,editingEvent:null,events:t,eventForm:n,viewLabels:{day:"Día",week:"Semana",month:"Mes"},dayNames:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],colors:["#066D5A","#0891b2","#7c3aed","#dc2626","#ea580c","#ca8a04","#16a34a","#ec4899"]}},computed:{currentDateLabel(){const e=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];if("day"===this.currentView)return`${this.currentDate.getDate()} de ${e[this.currentDate.getMonth()]} ${this.currentDate.getFullYear()}`;if("week"===this.currentView){const t=this.getWeekStart(this.currentDate),n=new Date(t);return n.setDate(n.getDate()+6),`${t.getDate()} - ${n.getDate()} ${e[this.currentDate.getMonth()]} ${this.currentDate.getFullYear()}`}return`${e[this.currentDate.getMonth()]} ${this.currentDate.getFullYear()}`},weekDays(){const e=this.getWeekStart(this.currentDate),t=[];for(let n=0;n<7;n++){const o=new Date(e);o.setDate(e.getDate()+n),t.push({date:this.formatDate(o),name:this.dayNames[o.getDay()],number:o.getDate()})}return t},monthDays(){const e=this.currentDate.getFullYear(),t=this.currentDate.getMonth(),n=new Date(e,t,1),o=new Date(n);o.setDate(o.getDate()-n.getDay());const a=[],r=new Date(o);for(let l=0;l<42;l++)a.push({date:this.formatDate(r),number:r.getDate(),isCurrentMonth:r.getMonth()===t}),r.setDate(r.getDate()+1);return a}},methods:{loadEvents(){if(!this.useStorage)return[];const e=localStorage.getItem(this.STORAGE_KEY);return e?JSON.parse(e):[]},saveEvents(){this.useStorage&&localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.events))},getEmptyForm(){return{name:"",date:this.formatDate(new Date),startTime:"09:00",endTime:"10:00",color:"#066D5A",isRecurring:!1,recurringType:"daily"}},formatDate(e){const t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},formatHour:e=>`${String(e).padStart(2,"0")}:00`,isToday(e){return e===this.formatDate(new Date)},getWeekStart(e){const t=new Date(e),n=t.getDay(),o=t.getDate()-n;return new Date(t.setDate(o))},previousPeriod(){const e=new Date(this.currentDate);"day"===this.currentView?e.setDate(e.getDate()-1):"week"===this.currentView?e.setDate(e.getDate()-7):e.setMonth(e.getMonth()-1),this.currentDate=e},nextPeriod(){const e=new Date(this.currentDate);"day"===this.currentView?e.setDate(e.getDate()+1):"week"===this.currentView?e.setDate(e.getDate()+7):e.setMonth(e.getMonth()+1),this.currentDate=e},goToToday(){this.currentDate=new Date},selectDay(e){this.currentDate=new Date(e),this.currentView="day"},getEventsForDay(e){return this.events.filter(t=>{if(t.date===e)return!0;if(t.isRecurring){const n=new Date(t.date),o=new Date(e);if(o<n)return!1;if("daily"===t.recurringType)return!0;if("weekly"===t.recurringType)return n.getDay()===o.getDay();if("monthly"===t.recurringType)return n.getDate()===o.getDate()}return!1})},getEventsForHour(e,t){return this.getEventsForDay(e).filter(e=>{const n=parseInt(e.startTime.split(":")[0]),o=parseInt(e.endTime.split(":")[0]);return t>=n&&t<o})},saveEvent(){return u(this,null,function*(){if(this.eventForm.name){if(this.editingEvent){const e=this.events.findIndex(e=>e.id===this.editingEvent.id);this.events[e]=d(c({},this.eventForm),{id:this.editingEvent.id})}else this.events.push(d(c({},this.eventForm),{id:Date.now()+Math.random()}));this.saveEvents(),this.closeModal()}else yield window.ZenModals.showWarning({title:"Nombre requerido",message:"Por favor, ingresa un nombre para el evento"})})},editEvent(e){this.editingEvent=e,this.eventForm=c({},e),this.showEventModal=!0},deleteEvent(){return u(this,null,function*(){(yield window.ZenModals.showDeleteConfirm("este evento"))&&(this.events=this.events.filter(e=>e.id!==this.editingEvent.id),this.saveEvents(),this.closeModal())})},closeModal(){this.showEventModal=!1,this.editingEvent=null,this.eventForm=this.getEmptyForm()}}},yt={class:"calendar-header"},bt={class:"view-selector"},kt=["onClick"],wt={class:"navigation"},Et={class:"current-date"},Nt={class:"calendar-view"},Ct={key:0,class:"day-view"},Vt={class:"time-grid"},St={class:"hour-label"},Dt={class:"hour-content"},xt=["onClick"],Bt={class:"event-title"},Tt={class:"event-time"},zt={key:0,class:"event-recurring"},Ft={key:1,class:"week-view"},Mt={class:"week-header"},It={class:"day-name"},Ot={class:"week-grid"},Lt={class:"week-hour-label"},jt=["onClick"],_t={class:"event-title"},At={key:2,class:"month-view"},Pt={class:"month-header"},$t={class:"month-grid"},Ut=["onClick"],Wt={class:"day-number"},Rt={class:"day-events"},Ht=["title"],Jt={key:0,class:"more-events"},Zt={class:"modal-content"},qt={class:"modal-header"},Kt={class:"modal-body"},Gt={class:"form-group"},Yt={class:"form-group"},Qt={class:"form-row"},Xt={class:"form-group"},en={class:"form-group"},tn={class:"form-group"},nn={class:"color-picker"},on=["onClick"],an={class:"form-group"},rn={class:"checkbox-label"},ln={key:0,class:"form-group"},sn={class:"modal-footer"};const cn=m(vt,[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["calendar-container","dark"===o.theme?"dark":"light"])},[t.createElementVNode("div",yt,[t.createElementVNode("div",bt,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(["day","week","month"],e=>t.createElementVNode("button",{key:e,class:t.normalizeClass(["view-btn",{active:r.currentView===e}]),onClick:t=>r.currentView=e},t.toDisplayString(r.viewLabels[e]),11,kt)),64))]),t.createElementVNode("div",wt,[t.createElementVNode("button",{onClick:n[0]||(n[0]=(...e)=>l.previousPeriod&&l.previousPeriod(...e)),class:"nav-btn"},"‹"),t.createElementVNode("span",Et,t.toDisplayString(l.currentDateLabel),1),t.createElementVNode("button",{onClick:n[1]||(n[1]=(...e)=>l.nextPeriod&&l.nextPeriod(...e)),class:"nav-btn"},"›"),t.createElementVNode("button",{onClick:n[2]||(n[2]=(...e)=>l.goToToday&&l.goToToday(...e)),class:"today-btn"},"Hoy")]),t.createElementVNode("button",{onClick:n[3]||(n[3]=e=>r.showEventModal=!0),class:"add-event-btn"},"+ Evento")]),t.createElementVNode("div",Nt,["day"===r.currentView?(t.openBlock(),t.createElementBlock("div",Ct,[t.createElementVNode("div",Vt,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(24,e=>t.createElementVNode("div",{key:e,class:"hour-slot"},[t.createElementVNode("div",St,t.toDisplayString(l.formatHour(e-1)),1),t.createElementVNode("div",Dt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.getEventsForHour(l.formatDate(r.currentDate),e-1),e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"event-card",style:t.normalizeStyle({backgroundColor:e.color}),onClick:t=>l.editEvent(e)},[t.createElementVNode("div",Bt,t.toDisplayString(e.name),1),t.createElementVNode("div",Tt,t.toDisplayString(e.startTime)+" - "+t.toDisplayString(e.endTime),1),e.isRecurring?(t.openBlock(),t.createElementBlock("div",zt,"🔁")):t.createCommentVNode("",!0)],12,xt))),128))])])),64))])])):t.createCommentVNode("",!0),"week"===r.currentView?(t.openBlock(),t.createElementBlock("div",Ft,[t.createElementVNode("div",Mt,[n[15]||(n[15]=t.createElementVNode("div",{class:"week-time-label"},null,-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.weekDays,e=>(t.openBlock(),t.createElementBlock("div",{key:e.date,class:"week-day-header"},[t.createElementVNode("div",It,t.toDisplayString(e.name),1),t.createElementVNode("div",{class:t.normalizeClass(["day-number",{today:l.isToday(e.date)}])},t.toDisplayString(e.number),3)]))),128))]),t.createElementVNode("div",Ot,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(24,e=>t.createElementVNode("div",{key:e,class:"week-hour-row"},[t.createElementVNode("div",Lt,t.toDisplayString(l.formatHour(e-1)),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.weekDays,n=>(t.openBlock(),t.createElementBlock("div",{key:n.date,class:"week-hour-cell"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.getEventsForHour(n.date,e-1),e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"event-card small",style:t.normalizeStyle({backgroundColor:e.color}),onClick:t=>l.editEvent(e)},[t.createElementVNode("div",_t,t.toDisplayString(e.name),1)],12,jt))),128))]))),128))])),64))])])):t.createCommentVNode("",!0),"month"===r.currentView?(t.openBlock(),t.createElementBlock("div",At,[t.createElementVNode("div",Pt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.dayNames,e=>(t.openBlock(),t.createElementBlock("div",{key:e,class:"month-day-name"},t.toDisplayString(e),1))),128))]),t.createElementVNode("div",$t,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.monthDays,e=>(t.openBlock(),t.createElementBlock("div",{key:e.date,class:t.normalizeClass(["month-day",{"other-month":!e.isCurrentMonth,today:l.isToday(e.date)}]),onClick:t=>l.selectDay(e.date)},[t.createElementVNode("div",Wt,t.toDisplayString(e.number),1),t.createElementVNode("div",Rt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.getEventsForDay(e.date).slice(0,3),e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"event-dot",style:t.normalizeStyle({backgroundColor:e.color}),title:e.name},null,12,Ht))),128)),l.getEventsForDay(e.date).length>3?(t.openBlock(),t.createElementBlock("div",Jt," +"+t.toDisplayString(l.getEventsForDay(e.date).length-3),1)):t.createCommentVNode("",!0)])],10,Ut))),128))])])):t.createCommentVNode("",!0)]),r.showEventModal?(t.openBlock(),t.createElementBlock("div",{key:0,class:"modal-overlay",onClick:n[14]||(n[14]=t.withModifiers((...e)=>l.closeModal&&l.closeModal(...e),["self"]))},[t.createElementVNode("div",Zt,[t.createElementVNode("div",qt,[t.createElementVNode("h3",null,t.toDisplayString(r.editingEvent?"Editar Evento":"Nuevo Evento"),1),t.createElementVNode("button",{onClick:n[4]||(n[4]=(...e)=>l.closeModal&&l.closeModal(...e)),class:"close-btn"},"✕")]),t.createElementVNode("div",Kt,[t.createElementVNode("div",Gt,[n[16]||(n[16]=t.createElementVNode("label",null,"Nombre del evento",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[5]||(n[5]=e=>r.eventForm.name=e),type:"text",placeholder:"Ej: Reunión con el equipo"},null,512),[[t.vModelText,r.eventForm.name]])]),t.createElementVNode("div",Yt,[n[17]||(n[17]=t.createElementVNode("label",null,"Fecha",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[6]||(n[6]=e=>r.eventForm.date=e),type:"date"},null,512),[[t.vModelText,r.eventForm.date]])]),t.createElementVNode("div",Qt,[t.createElementVNode("div",Xt,[n[18]||(n[18]=t.createElementVNode("label",null,"Hora de inicio",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[7]||(n[7]=e=>r.eventForm.startTime=e),type:"time"},null,512),[[t.vModelText,r.eventForm.startTime]])]),t.createElementVNode("div",en,[n[19]||(n[19]=t.createElementVNode("label",null,"Hora de fin",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[8]||(n[8]=e=>r.eventForm.endTime=e),type:"time"},null,512),[[t.vModelText,r.eventForm.endTime]])])]),t.createElementVNode("div",tn,[n[20]||(n[20]=t.createElementVNode("label",null,"Color",-1)),t.createElementVNode("div",nn,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.colors,e=>(t.openBlock(),t.createElementBlock("div",{key:e,class:t.normalizeClass(["color-option",{selected:r.eventForm.color===e}]),style:t.normalizeStyle({backgroundColor:e}),onClick:t=>r.eventForm.color=e},null,14,on))),128))])]),t.createElementVNode("div",an,[t.createElementVNode("label",rn,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[9]||(n[9]=e=>r.eventForm.isRecurring=e),type:"checkbox"},null,512),[[t.vModelCheckbox,r.eventForm.isRecurring]]),n[21]||(n[21]=t.createTextVNode(" Evento repetitivo ",-1))])]),r.eventForm.isRecurring?(t.openBlock(),t.createElementBlock("div",ln,[n[23]||(n[23]=t.createElementVNode("label",null,"Frecuencia",-1)),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":n[10]||(n[10]=e=>r.eventForm.recurringType=e)},n[22]||(n[22]=[t.createElementVNode("option",{value:"daily"},"Diario",-1),t.createElementVNode("option",{value:"weekly"},"Semanal",-1),t.createElementVNode("option",{value:"monthly"},"Mensual",-1)]),512),[[t.vModelSelect,r.eventForm.recurringType]])])):t.createCommentVNode("",!0)]),t.createElementVNode("div",sn,[r.editingEvent?(t.openBlock(),t.createElementBlock("button",{key:0,onClick:n[11]||(n[11]=(...e)=>l.deleteEvent&&l.deleteEvent(...e)),class:"delete-btn"},"Eliminar")):t.createCommentVNode("",!0),t.createElementVNode("button",{onClick:n[12]||(n[12]=(...e)=>l.closeModal&&l.closeModal(...e)),class:"cancel-btn"},"Cancelar"),t.createElementVNode("button",{onClick:n[13]||(n[13]=(...e)=>l.saveEvent&&l.saveEvent(...e)),class:"save-btn"},t.toDisplayString(r.editingEvent?"Guardar":"Crear"),1)])])])):t.createCommentVNode("",!0)],2)}],["__scopeId","data-v-b191092b"]]),dn={class:"weather-container"},un={class:"weather-widget"},mn={key:0,class:"weather-loading"},pn={key:1,class:"weather-error"},hn={key:2,class:"weather-content"},gn={class:"weather-header"},fn={class:"location"},vn={class:"location-name"},yn={class:"weather-main"},bn={class:"temperature"},kn={class:"temp-value"},wn={class:"weather-icon"},En={class:"weather-description"},Nn={class:"weather-details"},Cn={class:"detail-item"},Vn={class:"detail-value"},Sn={class:"detail-item"},Dn={class:"detail-value"},xn={class:"detail-item"},Bn={class:"detail-value"},Tn={class:"weather-footer"},zn={class:"last-update"};const Fn=m({name:"ZWeatherWidget",data:()=>({loading:!0,error:null,weatherData:null,locationName:"",latitude:null,longitude:null,lastUpdate:"",updateInterval:null}),mounted(){this.getLocation(),this.updateInterval=setInterval(()=>{this.latitude&&this.longitude&&this.fetchWeather(this.latitude,this.longitude)},6e5)},beforeUnmount(){this.updateInterval&&clearInterval(this.updateInterval)},methods:{getLocation(){if(this.loading=!0,this.error=null,!navigator.geolocation)return this.error="La geolocalización no está disponible en tu navegador",void(this.loading=!1);navigator.geolocation.getCurrentPosition(e=>{this.latitude=e.coords.latitude,this.longitude=e.coords.longitude,this.fetchWeather(this.latitude,this.longitude),this.fetchLocationName(this.latitude,this.longitude)},e=>{switch(this.loading=!1,e.code){case e.PERMISSION_DENIED:this.error="Permiso de ubicación denegado. Activa la ubicación para usar este widget.";break;case e.POSITION_UNAVAILABLE:this.error="Información de ubicación no disponible.";break;case e.TIMEOUT:this.error="Tiempo de espera agotado al obtener la ubicación.";break;default:this.error="Error desconocido al obtener la ubicación."}})},fetchWeather(e,t){return u(this,null,function*(){try{const n=`https://api.open-meteo.com/v1/forecast?latitude=${e}&longitude=${t}¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,wind_speed_10m&timezone=auto`,o=yield fetch(n);if(!o.ok)throw new Error("Error al obtener datos del clima");this.weatherData=yield o.json(),this.updateLastUpdateTime(),this.loading=!1}catch(n){this.error="No se pudo obtener la información del clima",this.loading=!1}})},fetchLocationName(e,t){return u(this,null,function*(){try{const n=this.generateCacheKey(e,t),o=this.getLocationFromCache(n);if(o)return this.locationName=o,void console.log("📦 Ubicación obtenida del cache:",o);console.log("🌐 Consultando Nominatim para ubicación...");const a=`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&zoom=10`,r=yield fetch(a,{headers:{"User-Agent":"ZenWDG-WeatherWidget/1.0"}});if(r.ok){const e=yield r.json(),t=e.address.city||e.address.town||e.address.village||e.address.state||"Tu ubicación";this.locationName=t,this.saveLocationToCache(n,t),console.log("💾 Ubicación guardada en cache:",t)}else this.locationName="Tu ubicación"}catch(n){this.locationName="Tu ubicación"}})},generateCacheKey:(e,t)=>`${Math.round(100*e)/100},${Math.round(100*t)/100}`,getLocationFromCache(e){try{const t=localStorage.getItem("weather_location_cache");if(!t)return null;const n=JSON.parse(t),o=n[e];if(!o)return null;const a=Date.now()-o.timestamp;return a>2592e6?(delete n[e],localStorage.setItem("weather_location_cache",JSON.stringify(n)),null):o.name}catch(t){return console.warn("Error al leer cache de ubicaciones:",t),null}},saveLocationToCache(e,t){try{let n={};const o=localStorage.getItem("weather_location_cache");o&&(n=JSON.parse(o)),n[e]={name:t,timestamp:Date.now()};const a=Object.entries(n);a.length>100&&(a.sort((e,t)=>t[1].timestamp-e[1].timestamp),n=Object.fromEntries(a.slice(0,100))),localStorage.setItem("weather_location_cache",JSON.stringify(n))}catch(n){console.warn("Error al guardar en cache de ubicaciones:",n)}},refreshWeather(){this.latitude&&this.longitude?(this.loading=!0,this.fetchWeather(this.latitude,this.longitude)):this.getLocation()},updateLastUpdateTime(){const e=new Date;this.lastUpdate=`${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`},getWeatherIcon:e=>({0:"☀️",1:"🌤️",2:"⛅",3:"☁️",45:"🌫️",48:"🌫️",51:"🌦️",53:"🌦️",55:"🌧️",61:"🌧️",63:"🌧️",65:"🌧️",71:"🌨️",73:"🌨️",75:"❄️",77:"🌨️",80:"🌦️",81:"🌧️",82:"⛈️",85:"🌨️",86:"❄️",95:"⛈️",96:"⛈️",99:"⛈️"}[e]||"🌤️"),getWeatherDescription:e=>({0:"Cielo despejado",1:"Principalmente despejado",2:"Parcialmente nublado",3:"Nublado",45:"Niebla",48:"Niebla con escarcha",51:"Llovizna ligera",53:"Llovizna moderada",55:"Llovizna densa",61:"Lluvia ligera",63:"Lluvia moderada",65:"Lluvia fuerte",71:"Nevada ligera",73:"Nevada moderada",75:"Nevada fuerte",77:"Granizo",80:"Chubascos ligeros",81:"Chubascos moderados",82:"Chubascos violentos",85:"Chubascos de nieve ligeros",86:"Chubascos de nieve fuertes",95:"Tormenta eléctrica",96:"Tormenta con granizo ligero",99:"Tormenta con granizo fuerte"}[e]||"Condición desconocida")}},[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",dn,[t.createElementVNode("div",un,[r.loading?(t.openBlock(),t.createElementBlock("div",mn,n[2]||(n[2]=[t.createElementVNode("div",{class:"spinner"},null,-1),t.createElementVNode("p",null,"Obteniendo ubicación...",-1)]))):r.error?(t.openBlock(),t.createElementBlock("div",pn,[n[3]||(n[3]=t.createElementVNode("span",{class:"error-icon"},"⚠️",-1)),t.createElementVNode("p",null,t.toDisplayString(r.error),1),t.createElementVNode("button",{onClick:n[0]||(n[0]=(...e)=>l.getLocation&&l.getLocation(...e)),class:"retry-btn"},"Reintentar")])):r.weatherData?(t.openBlock(),t.createElementBlock("div",hn,[t.createElementVNode("div",gn,[t.createElementVNode("div",fn,[n[4]||(n[4]=t.createElementVNode("span",{class:"location-icon"},"📍",-1)),t.createElementVNode("span",vn,t.toDisplayString(r.locationName),1)])]),t.createElementVNode("div",yn,[t.createElementVNode("div",bn,[t.createElementVNode("span",kn,t.toDisplayString(Math.round(r.weatherData.current.temperature_2m)),1),n[5]||(n[5]=t.createElementVNode("span",{class:"temp-unit"},"°C",-1))]),t.createElementVNode("div",wn,t.toDisplayString(l.getWeatherIcon(r.weatherData.current.weather_code)),1)]),t.createElementVNode("div",En,t.toDisplayString(l.getWeatherDescription(r.weatherData.current.weather_code)),1),t.createElementVNode("div",Nn,[t.createElementVNode("div",Cn,[n[6]||(n[6]=t.createElementVNode("span",{class:"detail-icon"},"💨",-1)),n[7]||(n[7]=t.createElementVNode("span",{class:"detail-label"},"Viento",-1)),t.createElementVNode("span",Vn,t.toDisplayString(Math.round(r.weatherData.current.wind_speed_10m))+" km/h",1)]),t.createElementVNode("div",Sn,[n[8]||(n[8]=t.createElementVNode("span",{class:"detail-icon"},"💧",-1)),n[9]||(n[9]=t.createElementVNode("span",{class:"detail-label"},"Humedad",-1)),t.createElementVNode("span",Dn,t.toDisplayString(r.weatherData.current.relative_humidity_2m)+"%",1)]),t.createElementVNode("div",xn,[n[10]||(n[10]=t.createElementVNode("span",{class:"detail-icon"},"🌡️",-1)),n[11]||(n[11]=t.createElementVNode("span",{class:"detail-label"},"Sensación",-1)),t.createElementVNode("span",Bn,t.toDisplayString(Math.round(r.weatherData.current.apparent_temperature))+"°C",1)])]),t.createElementVNode("div",Tn,[t.createElementVNode("span",zn,"Actualizado: "+t.toDisplayString(r.lastUpdate),1),t.createElementVNode("button",{onClick:n[1]||(n[1]=(...e)=>l.refreshWeather&&l.refreshWeather(...e)),class:"refresh-btn"},"🔄")])])):t.createCommentVNode("",!0)])])}],["__scopeId","data-v-5f11c261"]]),Mn={class:"notes-widget"},In={class:"notes-header"},On={class:"header-actions"},Ln={class:"modal-header"},jn={class:"modal-body"},_n={class:"category-form"},An={class:"categories-list"},Pn={class:"category-name"},$n=["onClick"],Un={key:0,class:"new-note-form"},Wn={class:"note-form-actions"},Rn=["value"],Hn={class:"form-buttons"},Jn={class:"notes-controls"},Zn={class:"filter-controls"},qn=["onClick"],Kn={class:"sort-controls"},Gn={class:"notes-list"},Yn={key:0,class:"empty-state"},Qn={class:"note-card-header"},Xn=["onClick"],eo=["onClick"],to={class:"note-title"},no={class:"note-content"},oo={class:"note-footer"},ao={class:"note-date"},ro={class:"notes-stats"},lo={key:0};const io=m({name:"ZNotesWidget",data:()=>({notes:[],categories:[{id:"default",name:"Sin categoría",color:"#6b7280"}],showNewNoteForm:!1,showCategoryManager:!1,newNote:{title:"",content:"",categoryId:""},newCategoryName:"",newCategoryColor:"#3b82f6",filterCategory:null,sortBy:"date",storageKey:"zen-notes-widget",categoriesKey:"zen-notes-categories"}),computed:{filteredNotes(){let e=[...this.notes];return"pinned"===this.filterCategory?e=e.filter(e=>e.isPinned):this.filterCategory&&(e=e.filter(e=>e.categoryId===this.filterCategory)),e.sort((e,t)=>{if("date"===this.sortBy)return new Date(t.createdAt)-new Date(e.createdAt);if("title"===this.sortBy)return(e.title||"").localeCompare(t.title||"");if("category"===this.sortBy){const n=this.getCategoryName(e.categoryId),o=this.getCategoryName(t.categoryId);return n.localeCompare(o)}return 0}),e.sort((e,t)=>e.isPinned&&!t.isPinned?-1:!e.isPinned&&t.isPinned?1:0)},pinnedNotesCount(){return this.notes.filter(e=>e.isPinned).length}},methods:{toggleNewNote(){this.showNewNoteForm=!this.showNewNoteForm,this.showNewNoteForm&&this.$nextTick(()=>{var e;null==(e=this.$refs.titleInput)||e.focus()})},saveNote(){if(!this.newNote.content.trim())return;const e={id:Date.now().toString(),title:this.newNote.title.trim(),content:this.newNote.content.trim(),categoryId:this.newNote.categoryId,isPinned:!1,createdAt:(new Date).toISOString()};this.notes.unshift(e),this.saveToStorage(),this.cancelNewNote()},cancelNewNote(){this.newNote={title:"",content:"",categoryId:""},this.showNewNoteForm=!1},deleteNote(e){return u(this,null,function*(){(yield window.ZenModals.showDeleteConfirm("esta nota"))&&(this.notes=this.notes.filter(t=>t.id!==e),this.saveToStorage())})},togglePin(e){const t=this.notes.find(t=>t.id===e);t&&(t.isPinned=!t.isPinned,this.saveToStorage())},addCategory(){if(!this.newCategoryName.trim())return;const e={id:Date.now().toString(),name:this.newCategoryName.trim(),color:this.newCategoryColor};this.categories.push(e),this.saveCategoriesToStorage(),this.newCategoryName="",this.newCategoryColor="#3b82f6"},deleteCategory(e){return u(this,null,function*(){(yield window.ZenModals.showConfirm({title:"¿Eliminar categoría?",message:"Las notas de esta categoría no se eliminarán, solo la categoría.",confirmText:"Eliminar",cancelText:"Cancelar",confirmButtonClass:"danger"}))&&(this.categories=this.categories.filter(t=>t.id!==e),this.saveCategoriesToStorage())})},getCategoryName(e){const t=this.categories.find(t=>t.id===e);return t?t.name:"Sin categoría"},getCategoryColor(e){const t=this.categories.find(t=>t.id===e);return t?t.color:"#6b7280"},getNoteColor(e){return e.categoryId?this.getCategoryColor(e.categoryId):"#6b7280"},formatDate(e){const t=new Date(e),n=new Date,o=n-t,a=Math.floor(o/864e5);if(0===a){const e=Math.floor(o/36e5);if(0===e){const e=Math.floor(o/6e4);return 0===e?"Ahora":`Hace ${e}m`}return`Hace ${e}h`}return 1===a?"Ayer":a<7?`Hace ${a} días`:t.toLocaleDateString("es-ES",{day:"numeric",month:"short",year:t.getFullYear()!==n.getFullYear()?"numeric":void 0})},exportNotes(){if(0===this.notes.length)return void alert("No hay notas para exportar");let e="# MIS NOTAS\n";e+=`# Exportado el ${(new Date).toLocaleString("es-ES")}\n\n`,e+="═".repeat(60)+"\n\n";const t={};this.notes.forEach(e=>{const n=this.getCategoryName(e.categoryId);t[n]||(t[n]=[]),t[n].push(e)}),Object.keys(t).sort().forEach(n=>{e+=`## 🏷️ ${n.toUpperCase()}\n`,e+="─".repeat(60)+"\n\n",t[n].forEach(t=>{e+=`### ${t.title||"Sin título"}`,t.isPinned&&(e+=" 📌"),e+="\n",e+=`Fecha: ${new Date(t.createdAt).toLocaleString("es-ES")}\n\n`,e+=`${t.content}\n\n`,e+="─".repeat(60)+"\n\n"})}),e+="\n═".repeat(60)+"\n",e+=`Total de notas: ${this.notes.length}\n`,e+=`Notas fijadas: ${this.pinnedNotesCount}\n`;const n=new Blob([e],{type:"text/plain;charset=utf-8"}),o=URL.createObjectURL(n),a=document.createElement("a");a.href=o,a.download=`notas_${(new Date).toISOString().split("T")[0]}.txt`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(o),alert("✅ Notas exportadas exitosamente")},saveToStorage(){try{localStorage.setItem(this.storageKey,JSON.stringify(this.notes))}catch(Co){console.error("Error al guardar notas:",Co)}},loadFromStorage(){try{const e=localStorage.getItem(this.storageKey);e&&(this.notes=JSON.parse(e))}catch(Co){console.error("Error al cargar notas:",Co)}},saveCategoriesToStorage(){try{localStorage.setItem(this.categoriesKey,JSON.stringify(this.categories))}catch(Co){console.error("Error al guardar categorías:",Co)}},loadCategoriesFromStorage(){try{const e=localStorage.getItem(this.categoriesKey);if(e){const t=JSON.parse(e);t.find(e=>"default"===e.id)||t.unshift({id:"default",name:"Sin categoría",color:"#6b7280"}),this.categories=t}}catch(Co){console.error("Error al cargar categorías:",Co)}}},mounted(){this.loadCategoriesFromStorage(),this.loadFromStorage()}},[["render",function(e,n,o,a,r,l){return t.openBlock(),t.createElementBlock("div",Mn,[t.createElementVNode("div",In,[n[19]||(n[19]=t.createElementVNode("h2",{class:"notes-title"},"📝 Notas",-1)),t.createElementVNode("div",On,[t.createElementVNode("button",{onClick:n[0]||(n[0]=e=>r.showCategoryManager=!r.showCategoryManager),class:"icon-btn",title:"Gestionar Categorías"}," 🏷️ "),t.createElementVNode("button",{onClick:n[1]||(n[1]=(...e)=>l.exportNotes&&l.exportNotes(...e)),class:"icon-btn",title:"Exportar Notas"}," 💾 "),t.createElementVNode("button",{onClick:n[2]||(n[2]=(...e)=>l.toggleNewNote&&l.toggleNewNote(...e)),class:"icon-btn add-btn",title:"Nueva Nota"}," ➕ ")])]),t.createVNode(t.Transition,{name:"modal"},{default:t.withCtx(()=>[r.showCategoryManager?(t.openBlock(),t.createElementBlock("div",{key:0,class:"modal-overlay",onClick:n[9]||(n[9]=e=>r.showCategoryManager=!1)},[t.createElementVNode("div",{class:"modal-content",onClick:n[8]||(n[8]=t.withModifiers(()=>{},["stop"]))},[t.createElementVNode("div",Ln,[n[20]||(n[20]=t.createElementVNode("h3",null,"🏷️ Gestionar Categorías",-1)),t.createElementVNode("button",{onClick:n[3]||(n[3]=e=>r.showCategoryManager=!1),class:"close-btn"},"✕")]),t.createElementVNode("div",jn,[t.createElementVNode("div",_n,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[4]||(n[4]=e=>r.newCategoryName=e),onKeypress:n[5]||(n[5]=t.withKeys((...e)=>l.addCategory&&l.addCategory(...e),["enter"])),placeholder:"Nombre de categoría",class:"category-input"},null,544),[[t.vModelText,r.newCategoryName]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[6]||(n[6]=e=>r.newCategoryColor=e),type:"color",class:"color-picker"},null,512),[[t.vModelText,r.newCategoryColor]]),t.createElementVNode("button",{onClick:n[7]||(n[7]=(...e)=>l.addCategory&&l.addCategory(...e)),class:"add-category-btn"},"Agregar")]),t.createElementVNode("div",An,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.categories,e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"category-item"},[t.createElementVNode("span",{class:"category-color-preview",style:t.normalizeStyle({backgroundColor:e.color})},null,4),t.createElementVNode("span",Pn,t.toDisplayString(e.name),1),"default"!==e.id?(t.openBlock(),t.createElementBlock("button",{key:0,onClick:t=>l.deleteCategory(e.id),class:"delete-category-btn",title:"Eliminar"}," 🗑️ ",8,$n)):t.createCommentVNode("",!0)]))),128))])])])])):t.createCommentVNode("",!0)]),_:1}),t.createVNode(t.Transition,{name:"slide"},{default:t.withCtx(()=>[r.showNewNoteForm?(t.openBlock(),t.createElementBlock("div",Un,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[10]||(n[10]=e=>r.newNote.title=e),placeholder:"Título de la nota...",class:"note-title-input",ref:"titleInput"},null,512),[[t.vModelText,r.newNote.title]]),t.withDirectives(t.createElementVNode("textarea",{"onUpdate:modelValue":n[11]||(n[11]=e=>r.newNote.content=e),placeholder:"Escribe tu nota aquí...",class:"note-content-input",rows:"4"},null,512),[[t.vModelText,r.newNote.content]]),t.createElementVNode("div",Wn,[t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":n[12]||(n[12]=e=>r.newNote.categoryId=e),class:"category-select"},[n[21]||(n[21]=t.createElementVNode("option",{value:""},"Sin categoría",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.categories.filter(e=>"default"!==e.id),e=>(t.openBlock(),t.createElementBlock("option",{key:e.id,value:e.id},t.toDisplayString(e.name),9,Rn))),128))],512),[[t.vModelSelect,r.newNote.categoryId]]),t.createElementVNode("div",Hn,[t.createElementVNode("button",{onClick:n[13]||(n[13]=(...e)=>l.cancelNewNote&&l.cancelNewNote(...e)),class:"cancel-btn"},"Cancelar"),t.createElementVNode("button",{onClick:n[14]||(n[14]=(...e)=>l.saveNote&&l.saveNote(...e)),class:"save-btn"},"Guardar")])])])):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("div",Jn,[t.createElementVNode("div",Zn,[t.createElementVNode("button",{onClick:n[15]||(n[15]=e=>r.filterCategory=null),class:t.normalizeClass(["filter-btn",{active:null===r.filterCategory}])}," 📋 Todas ",2),t.createElementVNode("button",{onClick:n[16]||(n[16]=e=>r.filterCategory="pinned"),class:t.normalizeClass(["filter-btn",{active:"pinned"===r.filterCategory}])}," 📌 Fijadas ",2),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.categories.filter(e=>"default"!==e.id),e=>(t.openBlock(),t.createElementBlock("button",{key:e.id,onClick:t=>r.filterCategory=e.id,class:t.normalizeClass(["filter-btn",{active:r.filterCategory===e.id}]),style:t.normalizeStyle({borderColor:e.color,color:r.filterCategory===e.id?e.color:""})},t.toDisplayString(e.name),15,qn))),128))]),t.createElementVNode("div",Kn,[t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":n[17]||(n[17]=e=>r.sortBy=e),class:"sort-select"},n[22]||(n[22]=[t.createElementVNode("option",{value:"date"},"📅 Fecha",-1),t.createElementVNode("option",{value:"title"},"🔤 Título",-1),t.createElementVNode("option",{value:"category"},"🏷️ Categoría",-1)]),512),[[t.vModelSelect,r.sortBy]])])]),t.createElementVNode("div",Gn,[0===l.filteredNotes.length?(t.openBlock(),t.createElementBlock("div",Yn,[n[23]||(n[23]=t.createElementVNode("div",{class:"empty-icon"},"📭",-1)),n[24]||(n[24]=t.createElementVNode("p",null,"No hay notas",-1)),t.createElementVNode("button",{onClick:n[18]||(n[18]=(...e)=>l.toggleNewNote&&l.toggleNewNote(...e)),class:"create-first-note-btn"}," Crear primera nota ")])):t.createCommentVNode("",!0),t.createVNode(t.TransitionGroup,{name:"note-list",tag:"div",class:"notes-grid"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.filteredNotes,e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:t.normalizeClass(["note-card",{pinned:e.isPinned}]),style:t.normalizeStyle({borderLeftColor:l.getNoteColor(e)})},[t.createElementVNode("div",Qn,[t.createElementVNode("button",{onClick:t=>l.togglePin(e.id),class:t.normalizeClass(["pin-btn",{pinned:e.isPinned}]),title:"Fijar/Desfijar"},t.toDisplayString(e.isPinned?"📌":"📍"),11,Xn),t.createElementVNode("button",{onClick:t=>l.deleteNote(e.id),class:"delete-btn",title:"Eliminar"}," 🗑️ ",8,eo)]),t.createElementVNode("h3",to,t.toDisplayString(e.title||"Sin título"),1),t.createElementVNode("p",no,t.toDisplayString(e.content),1),t.createElementVNode("div",oo,[e.categoryId?(t.openBlock(),t.createElementBlock("span",{key:0,class:"note-category",style:t.normalizeStyle({backgroundColor:l.getCategoryColor(e.categoryId),color:"white"})},t.toDisplayString(l.getCategoryName(e.categoryId)),5)):t.createCommentVNode("",!0),t.createElementVNode("span",ao,t.toDisplayString(l.formatDate(e.createdAt)),1)])],6))),128))]),_:1})]),t.createElementVNode("div",ro,[t.createElementVNode("span",null,"Total: "+t.toDisplayString(r.notes.length)+" notas",1),l.pinnedNotesCount>0?(t.openBlock(),t.createElementBlock("span",lo,"📌 "+t.toDisplayString(l.pinnedNotesCount)+" fijadas",1)):t.createCommentVNode("",!0)])])}],["__scopeId","data-v-7326bacf"]]);const so=new class{constructor(){this.currentModal=null,this.resolveCallback=null,this.rejectCallback=null}createModalHTML(e){const{title:t="",message:n="",type:o="confirm",confirmText:a="Confirmar",cancelText:r="Cancelar",showCancel:l=!0,showIcon:i=!0,inputLabel:s="",inputPlaceholder:c="",inputType:d="text",inputDefaultValue:u="",confirmButtonClass:m=""}=e,p={confirm:"⚠️",success:"✅",error:"❌",info:"ℹ️",warning:"⚠️",prompt:""};return`\n <div class="z-modal-overlay" data-action="overlay">\n <div class="z-modal-container ${{confirm:"modal-bg-confirm",prompt:"modal-bg-prompt",success:"modal-bg-success",error:"modal-bg-error",warning:"modal-bg-warning",info:"modal-bg-info"}[o]} z-modal-size-medium">\n ${t?`\n <div class="z-modal-header">\n <h3 class="z-modal-title">${t}</h3>\n <button class="z-modal-close" data-action="close" aria-label="Cerrar">\n <svg width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M15 5L5 15M5 5l10 10" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>\n </svg>\n </button>\n </div>\n `:""}\n \n <div class="z-modal-body">\n ${i&&p[o]?`<div class="z-modal-icon">${p[o]}</div>`:""}\n ${n?`<p class="z-modal-message">${n}</p>`:""}\n ${"prompt"===o?`\n <div class="z-modal-input-group">\n ${s?`<label class="z-modal-label">${s}</label>`:""}\n <input \n type="${d}" \n class="z-modal-input" \n placeholder="${c}"\n value="${u}"\n id="z-modal-input"\n />\n </div>\n `:""}\n </div>\n \n <div class="z-modal-footer">\n ${l?`<button class="z-modal-btn z-modal-btn-cancel" data-action="cancel">${r}</button>`:""}\n <button class="z-modal-btn z-modal-btn-confirm ${m}" data-action="confirm">\n ${a}\n </button>\n </div>\n </div>\n </div>\n `}show(e){return new Promise((t,n)=>{this.currentModal&&this.close(),this.resolveCallback=t,this.rejectCallback=n;const o=document.createElement("div");o.innerHTML=this.createModalHTML(e),this.currentModal=o.firstElementChild,document.body.appendChild(this.currentModal),this.injectStyles(),this.setupEventListeners(e.type),requestAnimationFrame(()=>{this.currentModal.classList.add("z-modal-show")}),"prompt"===e.type&&setTimeout(()=>{const e=document.getElementById("z-modal-input");e&&e.focus()},100)})}setupEventListeners(e){const t=t=>{var n;const o=null==(n=t.target.closest("[data-action]"))?void 0:n.dataset.action;if("confirm"===o)if("prompt"===e){const e=document.getElementById("z-modal-input");this.resolve(e?e.value:"")}else this.resolve(!0);else("cancel"===o||"close"===o||"overlay"===o)&&this.resolve(!1)},n=t=>{if("Escape"===t.key)this.resolve(!1);else if("Enter"===t.key&&"prompt"===e){const e=document.getElementById("z-modal-input");this.resolve(e?e.value:"")}};this.currentModal.addEventListener("click",t),document.addEventListener("keydown",n),this.currentModal._handleClick=t,this.currentModal._handleKeydown=n}resolve(e){this.resolveCallback&&this.resolveCallback(e),this.close()}close(){this.currentModal&&(this.currentModal._handleClick&&this.currentModal.removeEventListener("click",this.currentModal._handleClick),this.currentModal._handleKeydown&&document.removeEventListener("keydown",this.currentModal._handleKeydown),this.currentModal.classList.remove("z-modal-show"),setTimeout(()=>{this.currentModal&&this.currentModal.parentNode&&this.currentModal.parentNode.removeChild(this.currentModal),this.currentModal=null,this.resolveCallback=null,this.rejectCallback=null},300))}injectStyles(){if(document.getElementById("z-modal-styles"))return;const e=document.createElement("style");e.id="z-modal-styles",e.textContent="\n .z-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 99999;\n padding: 20px;\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .z-modal-overlay.z-modal-show {\n opacity: 1;\n }\n\n .z-modal-overlay.z-modal-show .z-modal-container {\n transform: translateY(0) scale(1);\n opacity: 1;\n }\n\n .z-modal-container {\n background: rgba(30, 30, 35, 0.95);\n backdrop-filter: blur(20px) saturate(180%);\n -webkit-backdrop-filter: blur(20px) saturate(180%);\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 20px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n color: #fff;\n transform: translateY(-30px) scale(0.95);\n opacity: 0;\n transition: all 0.3s ease;\n }\n\n .z-modal-size-medium {\n width: 450px;\n }\n\n .z-modal-bg-success {\n background: rgba(16, 185, 129, 0.95);\n }\n\n .z-modal-bg-error, .z-modal-bg-warning {\n background: rgba(239, 68, 68, 0.95);\n }\n\n .z-modal-bg-info {\n background: rgba(59, 130, 246, 0.95);\n }\n\n .z-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 24px 24px 16px 24px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n .z-modal-title {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n .z-modal-close {\n background: none;\n border: none;\n width: 32px;\n height: 32px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: currentColor;\n transition: all 0.2s ease;\n opacity: 0.7;\n }\n\n .z-modal-close:hover {\n background: rgba(255, 255, 255, 0.1);\n opacity: 1;\n }\n\n .z-modal-body {\n padding: 24px;\n text-align: center;\n }\n\n .z-modal-icon {\n font-size: 3rem;\n margin-bottom: 16px;\n animation: z-modal-icon-bounce 0.5s ease-out;\n }\n\n @keyframes z-modal-icon-bounce {\n 0% { transform: scale(0); }\n 50% { transform: scale(1.1); }\n 100% { transform: scale(1); }\n }\n\n .z-modal-message {\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n opacity: 0.95;\n }\n\n .z-modal-input-group {\n margin-top: 20px;\n text-align: left;\n }\n\n .z-modal-label {\n display: block;\n margin-bottom: 8px;\n font-size: 0.9rem;\n font-weight: 500;\n opacity: 0.9;\n }\n\n .z-modal-input {\n width: 100%;\n padding: 12px 16px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 10px;\n background: rgba(255, 255, 255, 0.1);\n color: #fff;\n font-size: 1rem;\n transition: all 0.2s ease;\n box-sizing: border-box;\n }\n\n .z-modal-input:focus {\n outline: none;\n border-color: rgba(255, 255, 255, 0.4);\n background: rgba(255, 255, 255, 0.15);\n }\n\n .z-modal-input::placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n\n .z-modal-footer {\n display: flex;\n gap: 12px;\n padding: 16px 24px 24px 24px;\n justify-content: flex-end;\n }\n\n .z-modal-btn {\n padding: 12px 24px;\n border: none;\n border-radius: 10px;\n font-size: 1rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n min-width: 100px;\n }\n\n .z-modal-btn-cancel {\n background: rgba(255, 255, 255, 0.1);\n color: currentColor;\n border: 1px solid rgba(255, 255, 255, 0.2);\n }\n\n .z-modal-btn-cancel:hover {\n background: rgba(255, 255, 255, 0.2);\n transform: translateY(-1px);\n }\n\n .z-modal-btn-confirm {\n background: rgba(255, 255, 255, 0.9);\n color: #1a1a1a;\n }\n\n .z-modal-btn-confirm:hover {\n background: #fff;\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n .z-modal-btn-confirm.danger {\n background: #ef4444;\n color: white;\n }\n\n .z-modal-btn-confirm.danger:hover {\n background: #dc2626;\n }\n\n @media (max-width: 768px) {\n .z-modal-container {\n width: 100% !important;\n max-width: 400px;\n }\n\n .z-modal-footer {\n flex-direction: column-reverse;\n }\n\n .z-modal-btn {\n width: 100%;\n }\n }\n ",document.head.appendChild(e)}};function co(e={}){return so.show(c({type:"confirm",showCancel:!0,showIcon:!0,confirmText:"Confirmar",cancelText:"Cancelar"},e))}function uo(e={}){const t=e,{type:n="info"}=t,o=((e,t)=>{var n={};for(var o in e)l.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&r)for(var o of r(e))t.indexOf(o)<0&&i.call(e,o)&&(n[o]=e[o]);return n})(t,["type"]);return so.show(c({type:n,showCancel:!1,showIcon:!0,confirmText:"Entendido"},o))}function mo(e={}){return so.show(c({type:"prompt",showCancel:!0,showIcon:!1,confirmText:"Aceptar",cancelText:"Cancelar",inputType:"text",inputDefaultValue:""},e))}function po(e={}){return uo(c({type:"success",title:"¡Éxito!",message:"Operación completada correctamente"},e))}function ho(e={}){return uo(c({type:"error",title:"Error",message:"Ha ocurrido un error"},e))}function go(e={}){return uo(c({type:"warning",title:"Advertencia"},e))}function fo(e="este elemento"){return co({title:"¿Eliminar?",message:`¿Estás seguro de que deseas eliminar ${e}?`,confirmText:"Eliminar",cancelText:"Cancelar",confirmButtonClass:"danger"})}"undefined"!=typeof window&&(window.ZenModals={showConfirm:co,showAlert:uo,showPrompt:mo,showSuccess:po,showError:ho,showWarning:go,showDeleteConfirm:fo});const vo=t.defineCustomElement(v),yo=t.defineCustomElement(Ze),bo=t.defineCustomElement(at),ko=t.defineCustomElement(ft),wo=t.defineCustomElement(cn),Eo=t.defineCustomElement(Fn),No=t.defineCustomElement(io);customElements.get("z-clock-widget")||customElements.define("z-clock-widget",vo),customElements.get("z-search-widget")||customElements.define("z-search-widget",yo),customElements.get("z-todo-widget")||customElements.define("z-todo-widget",bo),customElements.get("z-marked-widget")||customElements.define("z-marked-widget",ko),customElements.get("z-calendar-widget")||customElements.define("z-calendar-widget",wo),customElements.get("z-weather-widget")||customElements.define("z-weather-widget",Eo),customElements.get("z-notes-widget")||customElements.define("z-notes-widget",No),e.ZCalendarWidget=cn,e.ZClockWidget=v,e.ZMarkedWidget=ft,e.ZNotesWidget=io,e.ZSearchWidget=Ze,e.ZTodoWidget=at,e.ZWeatherWidget=Fn,e.showAlert=uo,e.showConfirm=co,e.showDeleteConfirm=fo,e.showError=ho,e.showPrompt=mo,e.showSuccess=po,e.showWarning=go,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ZenWdg={},e.Vue)}(this,function(e,t){"use strict";var n=Object.defineProperty,o=Object.defineProperties,a=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,s=(e,t,o)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,c=(e,t)=>{for(var n in t||(t={}))i.call(t,n)&&s(e,n,t[n]);if(r)for(var n of r(t))l.call(t,n)&&s(e,n,t[n]);return e},d=(e,t)=>o(e,a(t)),u=(e,t,n)=>new Promise((o,a)=>{var r=e=>{try{l(n.next(e))}catch(t){a(t)}},i=e=>{try{l(n.throw(e))}catch(t){a(t)}},l=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,i);l((n=n.apply(e,t)).next())});const m=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},p={class:"clock-container"},h={class:"clock"},g={class:"time"},f={class:"date"};const v=m({name:"ZClockWidget",data:()=>({hours:"00",minutes:"00",seconds:"00",dayOfWeek:"",day:"",month:"",year:""}),mounted(){this.updateClock(),setInterval(this.updateClock,1e3)},methods:{updateClock(){const e=new Date;this.hours=e.getHours().toString().padStart(2,"0"),this.minutes=e.getMinutes().toString().padStart(2,"0"),this.seconds=e.getSeconds().toString().padStart(2,"0"),this.dayOfWeek=this.getDayOfWeek(e.getDay()),this.day=e.getDate(),this.month=this.getMonthName(e.getMonth()),this.year=e.getFullYear()},getDayOfWeek:e=>["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"][e],getMonthName:e=>["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"][e]}},[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",p,[t.createElementVNode("div",h,[t.createElementVNode("div",g,[t.createElementVNode("span",null,t.toDisplayString(r.hours),1),n[0]||(n[0]=t.createTextVNode(":",-1)),t.createElementVNode("span",null,t.toDisplayString(r.minutes),1)]),t.createElementVNode("div",f,[t.createElementVNode("span",null,t.toDisplayString(r.dayOfWeek)+", "+t.toDisplayString(r.day)+" "+t.toDisplayString(r.month)+" "+t.toDisplayString(r.year),1)])])])}],["__scopeId","data-v-e9445086"]]),y={data:()=>({}),props:{placeholder:String,modelValue:{type:String,default:""},round:{type:Boolean,default:!1},full:{type:Boolean},rounded:{type:Boolean,default:!1}},methods:{onInput(e){this.$emit("update:modelValue",e.target.value)},onEnter(){this.$emit("enter-pressed",this.modelValue)}}},b=["placeholder","value"];const k=m(y,[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("input",{placeholder:o.placeholder,value:o.modelValue,onInput:n[0]||(n[0]=(...e)=>i.onInput&&i.onInput(...e)),onKeydown:n[1]||(n[1]=t.withKeys((...e)=>i.onEnter&&i.onEnter(...e),["enter"])),class:t.normalizeClass([{"full-width":o.full},{round:o.round},{rounded:o.rounded}])},null,42,b)}],["__scopeId","data-v-2ad90286"]]),w=/^[a-z0-9]+(-[a-z0-9]+)*$/,E=(e,t,n,o="")=>{const a=e.split(":");if("@"===e.slice(0,1)){if(a.length<2||a.length>3)return null;o=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const e=a.pop(),n=a.pop(),r={provider:a.length>0?a[0]:o,prefix:n,name:e};return t&&!N(r)?null:r}const r=a[0],i=r.split("-");if(i.length>1){const e={provider:o,prefix:i.shift(),name:i.join("-")};return t&&!N(e)?null:e}if(n&&""===o){const e={provider:o,prefix:"",name:r};return t&&!N(e,n)?null:e}return null},N=(e,t)=>!!e&&!(!(t&&""===e.prefix||e.prefix)||!e.name),C=Object.freeze({left:0,top:0,width:16,height:16}),V=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),S=Object.freeze(c(c({},C),V)),D=Object.freeze(d(c({},S),{body:"",hidden:!1}));function x(e,t){const n=function(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const o=((e.rotate||0)+(t.rotate||0))%4;return o&&(n.rotate=o),n}(e,t);for(const o in D)o in V?o in e&&!(o in n)&&(n[o]=V[o]):o in t?n[o]=t[o]:o in e&&(n[o]=e[o]);return n}function B(e,t,n){const o=e.icons,a=e.aliases||Object.create(null);let r={};function i(e){r=x(o[e]||a[e],r)}return i(t),n.forEach(i),x(e,r)}function T(e,t){const n=[];if("object"!=typeof e||"object"!=typeof e.icons)return n;e.not_found instanceof Array&&e.not_found.forEach(e=>{t(e,null),n.push(e)});const o=function(e){const t=e.icons,n=e.aliases||Object.create(null),o=Object.create(null);return Object.keys(t).concat(Object.keys(n)).forEach(function e(a){if(t[a])return o[a]=[];if(!(a in o)){o[a]=null;const t=n[a]&&n[a].parent,r=t&&e(t);r&&(o[a]=[t].concat(r))}return o[a]}),o}(e);for(const a in o){const r=o[a];r&&(t(a,B(e,a,r)),n.push(a))}return n}const z=c({provider:"",aliases:{},not_found:{}},C);function F(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function M(e){if("object"!=typeof e||null===e)return null;const t=e;if("string"!=typeof t.prefix||!e.icons||"object"!=typeof e.icons)return null;if(!F(e,z))return null;const n=t.icons;for(const a in n){const e=n[a];if(!a||"string"!=typeof e.body||!F(e,D))return null}const o=t.aliases||Object.create(null);for(const a in o){const e=o[a],t=e.parent;if(!a||"string"!=typeof t||!n[t]&&!o[t]||!F(e,D))return null}return t}const I=Object.create(null);function O(e,t){const n=I[e]||(I[e]=Object.create(null));return n[t]||(n[t]=function(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}(e,t))}function L(e,t){return M(t)?T(t,(t,n)=>{n?e.icons[t]=n:e.missing.add(t)}):[]}let j=!1;function _(e){return"boolean"==typeof e&&(j=e),j}function P(e,t){const n=E(e,!0,j);if(!n)return!1;const o=O(n.provider,n.prefix);return t?function(e,t,n){try{if("string"==typeof n.body)return e.icons[t]=c({},n),!0}catch(o){}return!1}(o,n.name,t):(o.missing.add(n.name),!0)}const A=Object.freeze({width:null,height:null}),$=Object.freeze(c(c({},A),V)),U=/(-?[0-9.]*[0-9]+[0-9.]*)/g,W=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function R(e,t,n){if(1===t)return e;if(n=n||100,"number"==typeof e)return Math.ceil(e*t*n)/n;if("string"!=typeof e)return e;const o=e.split(U);if(null===o||!o.length)return e;const a=[];let r=o.shift(),i=W.test(r);for(;;){if(i){const e=parseFloat(r);isNaN(e)?a.push(r):a.push(Math.ceil(e*t*n)/n)}else a.push(r);if(r=o.shift(),void 0===r)return a.join("");i=!i}}const H=/\sid="(\S+)"/g,J="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16);let Z=0;const q=Object.create(null);function K(e){return q[e]||q[""]}function G(e){let t;if("string"==typeof e.resources)t=[e.resources];else if(t=e.resources,!(t instanceof Array&&t.length))return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:!0===e.random,index:e.index||0,dataAfterTimeout:!1!==e.dataAfterTimeout}}const Y=Object.create(null),Q=["https://api.simplesvg.com","https://api.unisvg.com"],X=[];for(;Q.length>0;)1===Q.length||Math.random()>.5?X.push(Q.shift()):X.push(Q.pop());function ee(e,t){const n=G(t);return null!==n&&(Y[e]=n,!0)}function te(e){return Y[e]}Y[""]=G({resources:["https://api.iconify.design"].concat(X)});let ne=(()=>{let e;try{if(e=fetch,"function"==typeof e)return e}catch(t){}})();const oe={prepare:(e,t,n)=>{const o=[],a=function(e,t){const n=te(e);if(!n)return 0;let o;if(n.maxURL){let e=0;n.resources.forEach(t=>{const n=t;e=Math.max(e,n.length)});const a=t+".json?icons=";o=n.maxURL-e-n.path.length-a.length}else o=0;return o}(e,t),r="icons";let i={type:r,provider:e,prefix:t,icons:[]},l=0;return n.forEach((n,s)=>{l+=n.length+1,l>=a&&s>0&&(o.push(i),i={type:r,provider:e,prefix:t,icons:[]},l=n.length),i.icons.push(n)}),o.push(i),o},send:(e,t,n)=>{if(!ne)return void n("abort",424);let o=function(e){if("string"==typeof e){const t=te(e);if(t)return t.path}return"/"}(t.provider);switch(t.type){case"icons":{const e=t.prefix,n=t.icons.join(",");o+=e+".json?"+new URLSearchParams({icons:n}).toString();break}case"custom":{const e=t.uri;o+="/"===e.slice(0,1)?e.slice(1):e;break}default:return void n("abort",400)}let a=503;ne(e+o).then(e=>{const t=e.status;if(200===t)return a=501,e.json();setTimeout(()=>{n(function(e){return 404===e}(t)?"abort":"next",t)})}).then(e=>{"object"==typeof e&&null!==e?setTimeout(()=>{n("success",e)}):setTimeout(()=>{404===e?n("abort",e):n("next",a)})}).catch(()=>{n("next",a)})}};function ae(e,t){e.forEach(e=>{const n=e.loaderCallbacks;n&&(e.loaderCallbacks=n.filter(e=>e.id!==t))})}let re=0;var ie={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function le(e,t,n,o){const a=e.resources.length,r=e.random?Math.floor(Math.random()*a):e.index;let i;if(e.random){let t=e.resources.slice(0);for(i=[];t.length>1;){const e=Math.floor(Math.random()*t.length);i.push(t[e]),t=t.slice(0,e).concat(t.slice(e+1))}i=i.concat(t)}else i=e.resources.slice(r).concat(e.resources.slice(0,r));const l=Date.now();let s,c="pending",d=0,u=null,m=[],p=[];function h(){u&&(clearTimeout(u),u=null)}function g(){"pending"===c&&(c="aborted"),h(),m.forEach(e=>{"pending"===e.status&&(e.status="aborted")}),m=[]}function f(e,t){t&&(p=[]),"function"==typeof e&&p.push(e)}function v(){c="failed",p.forEach(e=>{e(void 0,s)})}function y(){m.forEach(e=>{"pending"===e.status&&(e.status="aborted")}),m=[]}function b(){if("pending"!==c)return;h();const o=i.shift();if(void 0===o)return m.length?void(u=setTimeout(()=>{h(),"pending"===c&&(y(),v())},e.timeout)):void v();const a={status:"pending",resource:o,callback:(t,n)=>{!function(t,n,o){const a="success"!==n;switch(m=m.filter(e=>e!==t),c){case"pending":break;case"failed":if(a||!e.dataAfterTimeout)return;break;default:return}if("abort"===n)return s=o,void v();if(a)return s=o,void(m.length||(i.length?b():v()));if(h(),y(),!e.random){const n=e.resources.indexOf(t.resource);-1!==n&&n!==e.index&&(e.index=n)}c="completed",p.forEach(e=>{e(o)})}(a,t,n)}};m.push(a),d++,u=setTimeout(b,e.rotate),n(o,t,a.callback)}return"function"==typeof o&&p.push(o),setTimeout(b),function(){return{startTime:l,payload:t,status:c,queriesSent:d,queriesPending:m.length,subscribe:f,abort:g}}}function se(e){const t=c(c({},ie),e);let n=[];function o(){n=n.filter(e=>"pending"===e().status)}return{query:function(e,a,r){const i=le(t,e,a,(e,t)=>{o(),r&&r(e,t)});return n.push(i),i},find:function(e){return n.find(t=>e(t))||null},setIndex:e=>{t.index=e},getIndex:()=>t.index,cleanup:o}}function ce(){}const de=Object.create(null);function ue(e,t,n){let o,a;if("string"==typeof e){const t=K(e);if(!t)return n(void 0,424),ce;a=t.send;const r=function(e){if(!de[e]){const t=te(e);if(!t)return;const n={config:t,redundancy:se(t)};de[e]=n}return de[e]}(e);r&&(o=r.redundancy)}else{const t=G(e);if(t){o=se(t);const n=K(e.resources?e.resources[0]:"");n&&(a=n.send)}}return o&&a?o.query(t,a,n)().abort:(n(void 0,424),ce)}function me(){}function pe(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,function(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const o=e.provider,a=e.prefix;t.forEach(t=>{const r=t.icons,i=r.pending.length;r.pending=r.pending.filter(t=>{if(t.prefix!==a)return!0;const i=t.name;if(e.icons[i])r.loaded.push({provider:o,prefix:a,name:i});else{if(!e.missing.has(i))return n=!0,!0;r.missing.push({provider:o,prefix:a,name:i})}return!1}),r.pending.length!==i&&(n||ae([e],t.id),t.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),t.abort))})}))}(e)}))}function he(e,t,n){function o(){const n=e.pendingIcons;t.forEach(t=>{n&&n.delete(t),e.icons[t]||e.missing.add(t)})}if(n&&"object"==typeof n)try{if(!L(e,n).length)return void o()}catch(a){console.error(a)}o(),pe(e)}function ge(e,t){e instanceof Promise?e.then(e=>{t(e)}).catch(()=>{t(null)}):t(e)}function fe(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:t,prefix:n}=e,o=e.iconsToLoad;if(delete e.iconsToLoad,!o||!o.length)return;const a=e.loadIcon;if(e.loadIcons&&(o.length>1||!a))return void ge(e.loadIcons(o,n,t),t=>{he(e,o,t)});if(a)return void o.forEach(o=>{ge(a(o,n,t),t=>{he(e,[o],t?{prefix:n,icons:{[o]:t}}:null)})});const{valid:r,invalid:i}=function(e){const t=[],n=[];return e.forEach(e=>{(e.match(w)?t:n).push(e)}),{valid:t,invalid:n}}(o);if(i.length&&he(e,i,null),!r.length)return;const l=n.match(w)?K(t):null;if(!l)return void he(e,r,null);l.prepare(t,n,r).forEach(n=>{ue(t,n,t=>{he(e,n.icons,t)})})}))}const ve=(e,t)=>{const n=function(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((e,t)=>e.provider!==t.provider?e.provider.localeCompare(t.provider):e.prefix!==t.prefix?e.prefix.localeCompare(t.prefix):e.name.localeCompare(t.name));let o={provider:"",prefix:"",name:""};return e.forEach(e=>{if(o.name===e.name&&o.prefix===e.prefix&&o.provider===e.provider)return;o=e;const a=e.provider,r=e.prefix,i=e.name,l=n[a]||(n[a]=Object.create(null)),s=l[r]||(l[r]=O(a,r));let c;c=i in s.icons?t.loaded:""===r||s.missing.has(i)?t.missing:t.pending;const d={provider:a,prefix:r,name:i};c.push(d)}),t}(function(e,t=!0,n=!1){const o=[];return e.forEach(e=>{const a="string"==typeof e?E(e,t,n):e;a&&o.push(a)}),o}(e,!0,_()));if(!n.pending.length){let e=!0;return t&&setTimeout(()=>{e&&t(n.loaded,n.missing,n.pending,me)}),()=>{e=!1}}const o=Object.create(null),a=[];let r,i;return n.pending.forEach(e=>{const{provider:t,prefix:n}=e;if(n===i&&t===r)return;r=t,i=n,a.push(O(t,n));const l=o[t]||(o[t]=Object.create(null));l[n]||(l[n]=[])}),n.pending.forEach(e=>{const{provider:t,prefix:n,name:a}=e,r=O(t,n),i=r.pendingIcons||(r.pendingIcons=new Set);i.has(a)||(i.add(a),o[t][n].push(a))}),a.forEach(e=>{const t=o[e.provider][e.prefix];t.length&&fe(e,t)}),t?function(e,t,n){const o=re++,a=ae.bind(null,n,o);if(!t.pending.length)return a;const r={id:o,icons:t,callback:e,abort:a};return n.forEach(e=>{(e.loaderCallbacks||(e.loaderCallbacks=[])).push(r)}),a}(t,n,a):me};const ye=/[\s,]+/;function be(e,t){t.split(ye).forEach(t=>{switch(t.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0}})}function ke(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function o(e){for(;e<0;)e+=4;return e%4}if(""===n){const t=parseInt(e);return isNaN(t)?0:o(t)}if(n!==e){let t=0;switch(n){case"%":t=25;break;case"deg":t=90}if(t){let a=parseFloat(e.slice(0,e.length-n.length));return isNaN(a)?0:(a/=t,a%1==0?o(a):0)}}return t}const we=d(c({},$),{inline:!1}),Ee={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Ne={display:"inline-block"},Ce={backgroundColor:"currentColor"},Ve={backgroundColor:"transparent"},Se={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},De={webkitMask:Ce,mask:Ce,background:Ve};for(const Do in De){const e=De[Do];for(const t in Se)e[Do+t]=Se[t]}const xe={};function Be(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}["horizontal","vertical"].forEach(e=>{const t=e.slice(0,1)+"Flip";xe[e+"-flip"]=t,xe[e.slice(0,1)+"-flip"]=t,xe[e+"Flip"]=t});const Te=(e,n)=>{const o=function(e,t){const n=c({},e);for(const o in t){const e=t[o],a=typeof e;o in A?(null===e||e&&("string"===a||"number"===a))&&(n[o]=e):a===typeof n[o]&&(n[o]="rotate"===o?e%4:e)}return n}(we,n),a=c({},Ee),r=n.mode||"svg",i={},l=n.style,s="object"!=typeof l||l instanceof Array?{}:l;for(let t in n){const e=n[t];if(void 0!==e)switch(t){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":o[t]=!0===e||"true"===e||1===e;break;case"flip":"string"==typeof e&&be(o,e);break;case"color":i.color=e;break;case"rotate":"string"==typeof e?o[t]=ke(e):"number"==typeof e&&(o[t]=e);break;case"ariaHidden":case"aria-hidden":!0!==e&&"true"!==e&&delete a["aria-hidden"];break;default:{const n=xe[t];n?!0!==e&&"true"!==e&&1!==e||(o[n]=!0):void 0===we[t]&&(a[t]=e)}}}const u=function(e,t){const n=c(c({},S),e),o=c(c({},$),t),a={left:n.left,top:n.top,width:n.width,height:n.height};let r=n.body;[n,o].forEach(e=>{const t=[],n=e.hFlip,o=e.vFlip;let i,l=e.rotate;switch(n?o?l+=2:(t.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),t.push("scale(-1 1)"),a.top=a.left=0):o&&(t.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),t.push("scale(1 -1)"),a.top=a.left=0),l<0&&(l-=4*Math.floor(l/4)),l%=4,l){case 1:i=a.height/2+a.top,t.unshift("rotate(90 "+i.toString()+" "+i.toString()+")");break;case 2:t.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:i=a.width/2+a.left,t.unshift("rotate(-90 "+i.toString()+" "+i.toString()+")")}l%2==1&&(a.left!==a.top&&(i=a.left,a.left=a.top,a.top=i),a.width!==a.height&&(i=a.width,a.width=a.height,a.height=i)),t.length&&(r=function(e,t,n){const o=function(e,t="defs"){let n="";const o=e.indexOf("<"+t);for(;o>=0;){const a=e.indexOf(">",o),r=e.indexOf("</"+t);if(-1===a||-1===r)break;const i=e.indexOf(">",r);if(-1===i)break;n+=e.slice(a+1,r).trim(),e=e.slice(0,o).trim()+e.slice(i+1)}return{defs:n,content:e}}(e);return a=o.defs,r=t+o.content+n,a?"<defs>"+a+"</defs>"+r:r;var a,r}(r,'<g transform="'+t.join(" ")+'">',"</g>"))});const i=o.width,l=o.height,s=a.width,d=a.height;let u,m;null===i?(m=null===l?"1em":"auto"===l?d:l,u=R(m,s/d)):(u="auto"===i?s:i,m=null===l?R(u,d/s):"auto"===l?d:l);const p={},h=(e,t)=>{(e=>"unset"===e||"undefined"===e||"none"===e)(t)||(p[e]=t.toString())};h("width",u),h("height",m);const g=[a.left,a.top,s,d];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:r}}(e,o),m=u.attributes;if(o.inline&&(i.verticalAlign="-0.125em"),"svg"===r){a.style=c(c({},i),s),Object.assign(a,m);let e=0,o=n.id;return"string"==typeof o&&(o=o.replace(/-/g,"_")),a.innerHTML=function(e,t=J){const n=[];let o;for(;o=H.exec(e);)n.push(o[1]);if(!n.length)return e;const a="suffix"+(16777216*Math.random()|Date.now()).toString(16);return n.forEach(n=>{const o="function"==typeof t?t(n):t+(Z++).toString(),r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+r+')([")]|\\.[a-z])',"g"),"$1"+o+a+"$3")}),e=e.replace(new RegExp(a,"g"),"")}(u.body,o?()=>o+"ID"+e++:"iconifyVue"),t.h("svg",a)}const{body:p,width:h,height:g}=e,f="mask"===r||"bg"!==r&&-1!==p.indexOf("currentColor"),v=function(e,t){let n=-1===e.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in t)n+=" "+o+'="'+t[o]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+e+"</svg>"}(p,d(c({},m),{width:h+"",height:g+""}));var y;return a.style=c(c(c(d(c({},i),{"--svg":(y=v,'url("'+function(e){return"data:image/svg+xml,"+function(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}(e)}(y)+'")'),width:Be(m.width),height:Be(m.height)}),Ne),f?Ce:Ve),s),t.h("span",a)};var ze;if(_(!0),ze=oe,q[""]=ze,"undefined"!=typeof document&&"undefined"!=typeof window){const e=window;if(void 0!==e.IconifyPreload){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";"object"==typeof t&&null!==t&&(t instanceof Array?t:[t]).forEach(e=>{try{("object"!=typeof e||null===e||e instanceof Array||"object"!=typeof e.icons||"string"!=typeof e.prefix||!function(e,t){if("object"!=typeof e)return!1;if("string"!=typeof t&&(t=e.provider||""),j&&!t&&!e.prefix){let t=!1;return M(e)&&(e.prefix="",T(e,(e,n)=>{P(e,n)&&(t=!0)})),t}const n=e.prefix;return!!N({prefix:n,name:"a"})&&!!L(O(t,n),e)}(e))&&console.error(n)}catch(t){console.error(n)}})}if(void 0!==e.IconifyProviders){const t=e.IconifyProviders;if("object"==typeof t&&null!==t)for(let e in t){const n="IconifyProviders["+e+"] is invalid.";try{const o=t[e];if("object"!=typeof o||!o||void 0===o.resources)continue;ee(e,o)||console.error(n)}catch(So){console.error(n)}}}}const Fe=d(c({},S),{body:""});const Me=m({data:()=>({}),components:{Icon:t.defineComponent((e,{emit:n})=>{const o=t.ref(null);function a(){var e,t;o.value&&(null==(t=(e=o.value).abort)||t.call(e),o.value=null)}const r=t.ref(!!e.ssr),i=t.ref(""),l=t.shallowRef(null);function s(){const r=e.icon;if("object"==typeof r&&null!==r&&"string"==typeof r.body)return i.value="",{data:r};let l;if("string"!=typeof r||null===(l=E(r,!1,!0)))return null;let s=function(e){const t="string"==typeof e?E(e,!0,j):e;if(t){const e=O(t.provider,t.prefix),n=t.name;return e.icons[n]||(e.missing.has(n)?null:void 0)}}(l);if(!s){const e=o.value;return e&&e.name===r||(o.value=null===s?{name:r}:{name:r,abort:ve([l],u)}),null}a(),i.value!==r&&(i.value=r,t.nextTick(()=>{n("load",r)}));const c=e.customise;if(c){s=Object.assign({},s);const e=c(s.body,l.name,l.prefix,l.provider);"string"==typeof e&&(s.body=e)}const d=["iconify"];return""!==l.prefix&&d.push("iconify--"+l.prefix),""!==l.provider&&d.push("iconify--"+l.provider),{data:s,classes:d}}function u(){var e;const t=s();t?t.data!==(null==(e=l.value)?void 0:e.data)&&(l.value=t):l.value=null}return r.value?u():t.onMounted(()=>{r.value=!0,u()}),t.watch(()=>e.icon,u),t.onUnmounted(a),()=>{const t=l.value;if(!t)return Te(Fe,e);let n=e;return t.classes&&(n=d(c({},e),{class:t.classes.join(" ")})),Te(c(c({},S),t.data),n)}},{props:["icon","mode","ssr","width","height","style","color","inline","rotate","hFlip","horizontalFlip","vFlip","verticalFlip","flip","id","ariaHidden","customise","title"],emits:["load"]})},props:{title:{type:String,required:!1},bound:{type:Boolean,default:!1},bounded:{type:Boolean,default:!1},flat:{type:Boolean,default:!1},iconLeft:{type:Boolean,required:!1,default:!1},iconRight:{type:Boolean,default:!1},icon:{type:String},size:{type:String},iconSize:{type:String},wFull:{type:Boolean,default:!1},noBg:{type:Boolean,default:!1},color:String},methods:{}},[["render",function(e,n,o,a,r,i){const l=t.resolveComponent("Icon");return t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass([{flat:o.flat},{bound:o.bound},{bounded:o.bounded},{"w-full":o.wFull},{transparent:o.noBg}]),style:t.normalizeStyle([{"font-size":o.size},{color:o.color}])},[o.iconLeft?(t.openBlock(),t.createBlock(l,{key:0,icon:o.icon,style:t.normalizeStyle({"font-size":o.iconSize})},null,8,["icon","style"])):t.createCommentVNode("",!0),t.createTextVNode(" "+t.toDisplayString(o.title)+" ",1),o.icon&&!o.iconLeft?(t.openBlock(),t.createBlock(l,{key:1,icon:o.icon,width:o.iconSize,height:o.iconSize},null,8,["icon","width","height"])):t.createCommentVNode("",!0)],6)}],["__scopeId","data-v-10678914"]]),Ie={name:"Dropdown",props:{modelValue:Object,options:{type:Array,required:!0},placeholder:{type:String,default:"Seleccionar..."}},data:()=>({isOpen:!1}),created(){console.log(this.options)},computed:{selected(){return this.modelValue}},methods:{toggleDropdown(){this.isOpen=!this.isOpen},selectItem(e){this.$emit("update:modelValue",e),this.isOpen=!1,console.log(e)},selectOption(e){this.selectedOption=e,this.isOpen=!1,this.$emit("update:modelValue",e),this.$emit("change",e)},handleClickOutside(e){this.$refs.dropdown.contains(e.target)||(this.isOpen=!1)}},mounted(){document.addEventListener("click",this.handleClickOutside)},beforeUnmount(){document.removeEventListener("click",this.handleClickOutside)}},Oe={class:"container",ref:"dropdown"},Le={key:0},je=["src"],_e={key:1,class:"placeholder"},Pe={key:0,class:"column list"},Ae=["onClick"],$e={key:0},Ue=["src"],We={key:1};const Re=m(Ie,[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",Oe,[t.createElementVNode("div",{class:"row select",onClick:n[0]||(n[0]=(...e)=>i.toggleDropdown&&i.toggleDropdown(...e))},[i.selected?(t.openBlock(),t.createElementBlock("span",Le,[i.selected.logo?(t.openBlock(),t.createElementBlock("img",{key:0,src:i.selected.logo,class:"logo"},null,8,je)):t.createCommentVNode("",!0)])):(t.openBlock(),t.createElementBlock("span",_e,"Selecciona una opción"))]),r.isOpen?(t.openBlock(),t.createElementBlock("div",Pe,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(o.options,(e,n)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["item row",{active:e.id==i.selected.id}]),onClick:t=>i.selectItem(e)},[e.logo?(t.openBlock(),t.createElementBlock("span",$e,[t.createElementVNode("img",{src:e.logo,class:"logo"},null,8,Ue)])):t.createCommentVNode("",!0),e.label?(t.openBlock(),t.createElementBlock("span",We,t.toDisplayString(e.label),1)):t.createCommentVNode("",!0)],10,Ae))),256))])):t.createCommentVNode("",!0)],512)}],["__scopeId","data-v-d1389195"]]),He={class:"container-search"},Je={class:"search"};const Ze=m({name:"ZSearchWidget",data:()=>({text:"",engines:[{id:1,logo:"https://s1.qwant.com/thumbr/474x474/b/c/eae6b919559217567ef067dec4aa1e425d560667e5b8e51333bea1b60f4de7/OIP.G3kcQIn5w4kJtUilFbWaigHaHa.jpg?u=https%3A%2F%2Fthf.bing.com%2Fth%2Fid%2FOIP.G3kcQIn5w4kJtUilFbWaigHaHa%3Fr%3D0%26cb%3Dthfc1%26pid%3DApi&q=0&b=1&p=0&a=0",label:"Qwant",search:"https://www.qwant.com/?l=es&q="},{id:2,logo:"https://astian.org/wp-content/uploads/2025/06/favicon-1.png",label:"AstianGO",search:"https://astiango.com/?q="}],engine:{id:1,logo:"https://s1.qwant.com/thumbr/474x474/b/c/eae6b919559217567ef067dec4aa1e425d560667e5b8e51333bea1b60f4de7/OIP.G3kcQIn5w4kJtUilFbWaigHaHa.jpg?u=https%3A%2F%2Fthf.bing.com%2Fth%2Fid%2FOIP.G3kcQIn5w4kJtUilFbWaigHaHa%3Fr%3D0%26cb%3Dthfc1%26pid%3DApi&q=0&b=1&p=0&a=0",label:"Qwant",search:"https://www.qwant.com/?l=es&q="},urls:{url:"https://www.qwant.com/?l=es&q=facebook+login&t=web"}}),props:{searchTarget:{type:String,require:!1,default:"Self Tab"},logo:{type:String,require:!1}},components:{Input:k,Button:Me,Dropdown:Re},methods:{search(){console.log(this.engine.search);const e=`${this.engine.search}${this.text}`;"New Tab"==this.searchTarget?(chrome.tabs.create({url:e}),this.text=""):"Self Tab"==this.searchTarget&&chrome.tabs.update({url:e})}}},[["render",function(e,n,o,a,r,i){const l=t.resolveComponent("Dropdown"),s=t.resolveComponent("Input"),c=t.resolveComponent("Button");return t.openBlock(),t.createElementBlock("div",He,[t.createElementVNode("div",Je,[t.createElementVNode("div",null,[t.createVNode(l,{options:r.engines,modelValue:r.engine,"onUpdate:modelValue":n[0]||(n[0]=e=>r.engine=e)},null,8,["options","modelValue"])]),t.createVNode(s,{placeholder:"Search something",full:"",class:"bg-glass",modelValue:r.text,"onUpdate:modelValue":n[1]||(n[1]=e=>r.text=e),onEnterPressed:n[2]||(n[2]=e=>i.search())},null,8,["modelValue"]),t.createVNode(c,{icon:"material-symbols-light:search-rounded",size:"25px",flat:"",class:"text-color",onClick:n[3]||(n[3]=e=>i.search())})])])}],["__scopeId","data-v-834a689a"]]),qe={class:"todo-widget"},Ke={class:"task-section"},Ge={key:0,class:"empty"},Ye={class:"actions"},Qe=["onClick"],Xe=["onClick"],et={class:"task-section completed"},tt={key:0,class:"empty"},nt={class:"done"},ot=["onClick"];const at=m({name:"ZTodoWidget",data:()=>({newTask:"",pendingTasks:[],completedTasks:[]}),methods:{addTask(){this.newTask.trim()&&(this.pendingTasks.push({text:this.newTask.trim()}),this.newTask="")},completeTask(e){const t=this.pendingTasks.splice(e,1)[0];this.completedTasks.push(t)},deleteTask(e){this.pendingTasks.splice(e,1)},deleteCompleted(e){this.completedTasks.splice(e,1)}}},[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",qe,[n[5]||(n[5]=t.createElementVNode("h2",{class:"title"},"📝 Mis Tareas",-1)),t.createElementVNode("form",{onSubmit:n[1]||(n[1]=t.withModifiers((...e)=>i.addTask&&i.addTask(...e),["prevent"])),class:"todo-form"},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=e=>r.newTask=e),type:"text",placeholder:"Escribe una nueva tarea..."},null,512),[[t.vModelText,r.newTask]]),n[2]||(n[2]=t.createElementVNode("button",{type:"submit"},"Agregar",-1))],32),t.createElementVNode("div",Ke,[n[3]||(n[3]=t.createElementVNode("h3",null,"Tareas Pendientes",-1)),0===r.pendingTasks.length?(t.openBlock(),t.createElementBlock("div",Ge,"Sin tareas.")):t.createCommentVNode("",!0),t.createElementVNode("ul",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.pendingTasks,(e,n)=>(t.openBlock(),t.createElementBlock("li",{key:n},[t.createElementVNode("span",null,t.toDisplayString(e.text),1),t.createElementVNode("div",Ye,[t.createElementVNode("button",{onClick:e=>i.completeTask(n)},"✔️",8,Qe),t.createElementVNode("button",{onClick:e=>i.deleteTask(n)},"🗑️",8,Xe)])]))),128))])]),t.createElementVNode("div",et,[n[4]||(n[4]=t.createElementVNode("h3",null,"Completadas",-1)),0===r.completedTasks.length?(t.openBlock(),t.createElementBlock("div",tt,"Ninguna aún.")):t.createCommentVNode("",!0),t.createElementVNode("ul",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.completedTasks,(e,n)=>(t.openBlock(),t.createElementBlock("li",{key:"c"+n},[t.createElementVNode("span",nt,t.toDisplayString(e.text),1),t.createElementVNode("button",{onClick:e=>i.deleteCompleted(n)},"❌",8,ot)]))),128))])])])}],["__scopeId","data-v-3560194d"]]),rt={name:"ZMarkedWidget",props:{theme:{type:String,default:"light"},small:{type:Boolean,default:!1},categories:{type:Array,default:()=>["Personal","Work","Study"]},open:{type:String,default:"Self Tab"},useStorage:{type:Boolean,default:!1}},data(){const e="bookmark_manager_state",t="bookmark_categories",n={Personal:[{title:"Astian",url:"https://astian.org/",domain:"astian.org"},{title:"Amazon",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM9HD56Q0VD2QZXQ2AR505&url=https%3A%2F%2Famazon.com",domain:"amazon.com"},{title:"Avast",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Favast.com%2F",domain:"avast.com"},{title:"Youtube",url:"https://youtube.com",domain:"youtube.com"},{title:"Instagram",url:"https://instagram.com",domain:"instagram.com"},{title:"Wish.com",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fwish.com",domain:"wish.com"},{title:"Prime",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fprimevideo.com",domain:"primevideo.com"},{title:"Shein",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fshein.com",domain:"shein.com"}],Work:[{title:"GitHub",url:"https://github.com",domain:"github.com"},{title:"Notion",url:"https://notion.so",domain:"notion.so"}],Study:[{title:"MDN Web Docs",url:"https://developer.mozilla.org",domain:"mozilla.org"},{title:"FreeCodeCamp",url:"https://freecodecamp.org",domain:"freecodecamp.org"},{title:"Udemy",url:"https://r.v2i8b.com/api/v1/bid/redirect?campaign_id=01JVSM8H9350F4CBP07A8V7C5T&url=http%3A%2F%2Fudemy.com%2F",domain:"udemy.com"}]},o=this.useStorage&&JSON.parse(localStorage.getItem(e))||n,a=(this.useStorage?JSON.parse(localStorage.getItem(t)):null)||[...this.categories];return{STORAGE_KEY:e,CATEGORIES_KEY:t,bookmarks:o,userCategories:a,activeTab:a[0]||"Personal",faviconAttempts:{}}},computed:{currentBookmarks(){return this.bookmarks[this.activeTab]||[]}},methods:{saveState(){this.useStorage&&(localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.bookmarks)),localStorage.setItem(this.CATEGORIES_KEY,JSON.stringify(this.userCategories)))},addCategoryPrompt(){return u(this,null,function*(){const e=yield window.ZenModals.showPrompt({title:"Nueva Categoría",message:"Introduce el nombre de la nueva categoría:",inputPlaceholder:"Ej: Hobbies, Finanzas, etc."});if(!e||!e.trim())return;const t=e.trim();this.userCategories.includes(t)?alert("Esta categoría ya existe"):(this.userCategories.push(t),this.bookmarks[t]||(this.bookmarks[t]=[]),this.activeTab=t,this.saveState())})},deleteCategory(e){return u(this,null,function*(){var t;if(this.userCategories.length<=1)return void alert("No puedes eliminar la única categoría. Debe existir al menos una.");const n=(null==(t=this.bookmarks[e])?void 0:t.length)||0,o=n>0?`¿Estás seguro de eliminar la categoría "${e}"? Se eliminarán ${n} marcador(es).`:`¿Estás seguro de eliminar la categoría "${e}"?`;if(yield window.ZenModals.showDeleteConfirm(e,o)){const t=this.userCategories.indexOf(e);t>-1&&this.userCategories.splice(t,1),delete this.bookmarks[e],this.activeTab===e&&(this.activeTab=this.userCategories[0]),this.saveState()}})},setActiveTab(e){this.activeTab=e},openLink(e){"self"===this.open?window.location.href=e:window.open(e,"_blank")},deleteBookmark(e){return u(this,null,function*(){const t=this.bookmarks[this.activeTab][e];(yield window.ZenModals.showDeleteConfirm(t.title))&&(this.bookmarks[this.activeTab].splice(e,1),this.saveState())})},editBookmark(e){return u(this,null,function*(){const t=this.bookmarks[this.activeTab][e],n=yield window.ZenModals.showPrompt({title:"Editar Marcador",message:"Introduce el nuevo título:",inputDefaultValue:t.title,inputPlaceholder:"Título del marcador"});if(!n)return;const o=yield window.ZenModals.showPrompt({title:"Editar URL",message:"Introduce la nueva URL:",inputDefaultValue:t.url,inputType:"url",inputPlaceholder:"https://ejemplo.com"});if(o)try{t.title=n,t.url=o,t.domain=new URL(o).hostname,delete t.logo,this.saveState()}catch(a){console.error("URL inválida:",a)}})},addBookmarkPrompt(){return u(this,null,function*(){const e=yield window.ZenModals.showPrompt({title:"Nuevo Marcador",message:"Introduce el nombre del marcador:",inputPlaceholder:"Nombre del sitio"});if(!e)return;const t=yield window.ZenModals.showPrompt({title:"URL del Marcador",message:"Introduce la URL:",inputType:"url",inputPlaceholder:"https://ejemplo.com"});if(t)try{const n=new URL(t).hostname;this.bookmarks[this.activeTab].push({title:e,url:t,domain:n}),this.saveState()}catch(n){console.error("URL inválida:",n)}})},getFaviconUrl(e){if(e.logo)return e.logo;const t=e.domain||this.extractDomain(e.url),n=this.faviconAttempts[t]||0,o=[`https://icons.duckduckgo.com/ip3/${t}.ico`,`https://www.google.com/s2/favicons?domain=${t}&sz=128`,`https://logo.clearbit.com/${t}`,`https://favicons.githubusercontent.com/${t}`,`https://${t}/favicon.ico`];return o[Math.min(n,o.length-1)]},extractDomain(e){try{return new URL(e).hostname}catch(So){return e}},onImageError(e,t){const n=e.target,o=t.domain||this.extractDomain(t.url),a=this.faviconAttempts[o]||0;if(a<4)this.faviconAttempts[o]=a+1,n.src=this.getFaviconUrl(t);else{n.style.display="none";const e=n.parentNode,o=["#066D5A","#0891b2","#7c3aed","#dc2626","#ea580c","#ca8a04","#16a34a"],a=t.title.charCodeAt(0)%o.length;e.style.backgroundColor=o[a],e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center",e.style.fontSize="1.5rem",e.style.fontWeight="bold",e.style.color="white",e.textContent=t.title.charAt(0).toUpperCase()}}},watch:{bookmarks:{handler(){this.saveState()},deep:!0}}},it={class:"container-marked"},lt=["onClick"],st=["onClick"],ct={class:"container-tab"},dt={class:"grid"},ut={class:"option-app"},mt=["onClick"],pt=["onClick"],ht=["href","target"],gt={class:"column"},ft={class:"logo-container"},vt=["src","alt","onError"];const yt=m(rt,[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",it,[t.createElementVNode("div",{class:t.normalizeClass(["tabs",["dark"==o.theme?"dark":"light"]])},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.userCategories,e=>(t.openBlock(),t.createElementBlock("div",{key:e,class:"container-tab"},[t.createElementVNode("button",{class:t.normalizeClass(["tab",{active:e===r.activeTab}]),onClick:t=>i.setActiveTab(e)},t.toDisplayString(e),11,lt),t.createElementVNode("button",{class:"delete-tab",onClick:t.withModifiers(t=>i.deleteCategory(e),["stop"]),title:"Eliminar categoría"}," × ",8,st)]))),128)),t.createElementVNode("div",ct,[t.createElementVNode("button",{class:"tab add-tab",onClick:n[0]||(n[0]=(...e)=>i.addCategoryPrompt&&i.addCategoryPrompt(...e)),title:"Añadir nueva categoría"}," + ")])],2),t.createElementVNode("div",dt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.currentBookmarks,(e,n)=>(t.openBlock(),t.createElementBlock("div",{key:n,class:t.normalizeClass(["card",o.small?"small":""])},[t.createElementVNode("div",ut,[t.createElementVNode("button",{class:"edit-app",onClick:t.withModifiers(e=>i.editBookmark(n),["prevent"])},"✏️",8,mt),t.createElementVNode("button",{class:"delete-app",onClick:t.withModifiers(e=>i.deleteBookmark(n),["prevent"])},"🗑️",8,pt)]),t.createElementVNode("a",{href:e.url,class:t.normalizeClass(["card-link","dark"==o.theme?"dark":"light"]),target:"Self Tab"==o.open?"_self":"_blank"},[t.createElementVNode("div",gt,[t.createElementVNode("div",ft,[t.createElementVNode("img",{src:i.getFaviconUrl(e),alt:e.title+" logo",class:t.normalizeClass({small:o.small}),onError:t=>i.onImageError(t,e)},null,42,vt)]),t.createTextVNode(" "+t.toDisplayString(e.title),1)])],10,ht)],2))),128)),i.currentBookmarks.length<8?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["card",o.small?"small":""])},[t.createElementVNode("a",{href:"#",class:t.normalizeClass(["card-link","dark"==o.theme?"dark":"light"]),onClick:n[1]||(n[1]=t.withModifiers((...e)=>i.addBookmarkPrompt&&i.addBookmarkPrompt(...e),["prevent"]))},n[2]||(n[2]=[t.createElementVNode("div",{class:"column"},[t.createElementVNode("span",{class:"add"},"+"),t.createTextVNode(" Add ")],-1)]),2)],2)):t.createCommentVNode("",!0)])])}],["__scopeId","data-v-b33a8ba4"]]),bt={name:"ZCalendarWidget",props:{theme:{type:String,default:"light"},useStorage:{type:Boolean,default:!0}},data(){const e="calendar_widget_events";let t=[];if(this.useStorage){const n=localStorage.getItem(e);t=n?JSON.parse(n):[]}const n={name:"",date:(new Date).toISOString().split("T")[0],startTime:"09:00",endTime:"10:00",color:"#066D5A",isRecurring:!1,recurringType:"daily"};return{STORAGE_KEY:e,currentView:"month",currentDate:new Date,showEventModal:!1,editingEvent:null,events:t,eventForm:n,viewLabels:{day:"Día",week:"Semana",month:"Mes"},dayNames:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],colors:["#066D5A","#0891b2","#7c3aed","#dc2626","#ea580c","#ca8a04","#16a34a","#ec4899"]}},computed:{currentDateLabel(){const e=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];if("day"===this.currentView)return`${this.currentDate.getDate()} de ${e[this.currentDate.getMonth()]} ${this.currentDate.getFullYear()}`;if("week"===this.currentView){const t=this.getWeekStart(this.currentDate),n=new Date(t);return n.setDate(n.getDate()+6),`${t.getDate()} - ${n.getDate()} ${e[this.currentDate.getMonth()]} ${this.currentDate.getFullYear()}`}return`${e[this.currentDate.getMonth()]} ${this.currentDate.getFullYear()}`},weekDays(){const e=this.getWeekStart(this.currentDate),t=[];for(let n=0;n<7;n++){const o=new Date(e);o.setDate(e.getDate()+n),t.push({date:this.formatDate(o),name:this.dayNames[o.getDay()],number:o.getDate()})}return t},monthDays(){const e=this.currentDate.getFullYear(),t=this.currentDate.getMonth(),n=new Date(e,t,1),o=new Date(n);o.setDate(o.getDate()-n.getDay());const a=[],r=new Date(o);for(let i=0;i<42;i++)a.push({date:this.formatDate(r),number:r.getDate(),isCurrentMonth:r.getMonth()===t}),r.setDate(r.getDate()+1);return a}},methods:{loadEvents(){if(!this.useStorage)return[];const e=localStorage.getItem(this.STORAGE_KEY);return e?JSON.parse(e):[]},saveEvents(){this.useStorage&&localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.events))},getEmptyForm(){return{name:"",date:this.formatDate(new Date),startTime:"09:00",endTime:"10:00",color:"#066D5A",isRecurring:!1,recurringType:"daily"}},formatDate(e){const t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},formatHour:e=>`${String(e).padStart(2,"0")}:00`,isToday(e){return e===this.formatDate(new Date)},getWeekStart(e){const t=new Date(e),n=t.getDay(),o=t.getDate()-n;return new Date(t.setDate(o))},previousPeriod(){const e=new Date(this.currentDate);"day"===this.currentView?e.setDate(e.getDate()-1):"week"===this.currentView?e.setDate(e.getDate()-7):e.setMonth(e.getMonth()-1),this.currentDate=e},nextPeriod(){const e=new Date(this.currentDate);"day"===this.currentView?e.setDate(e.getDate()+1):"week"===this.currentView?e.setDate(e.getDate()+7):e.setMonth(e.getMonth()+1),this.currentDate=e},goToToday(){this.currentDate=new Date},selectDay(e){this.currentDate=new Date(e),this.currentView="day"},getEventsForDay(e){return this.events.filter(t=>{if(t.date===e)return!0;if(t.isRecurring){const n=new Date(t.date),o=new Date(e);if(o<n)return!1;if("daily"===t.recurringType)return!0;if("weekly"===t.recurringType)return n.getDay()===o.getDay();if("monthly"===t.recurringType)return n.getDate()===o.getDate()}return!1})},getEventsForHour(e,t){return this.getEventsForDay(e).filter(e=>{const n=parseInt(e.startTime.split(":")[0]),o=parseInt(e.endTime.split(":")[0]);return t>=n&&t<o})},saveEvent(){return u(this,null,function*(){if(this.eventForm.name){if(this.editingEvent){const e=this.events.findIndex(e=>e.id===this.editingEvent.id);this.events[e]=d(c({},this.eventForm),{id:this.editingEvent.id})}else this.events.push(d(c({},this.eventForm),{id:Date.now()+Math.random()}));this.saveEvents(),this.closeModal()}else yield window.ZenModals.showWarning({title:"Nombre requerido",message:"Por favor, ingresa un nombre para el evento"})})},editEvent(e){this.editingEvent=e,this.eventForm=c({},e),this.showEventModal=!0},deleteEvent(){return u(this,null,function*(){(yield window.ZenModals.showDeleteConfirm("este evento"))&&(this.events=this.events.filter(e=>e.id!==this.editingEvent.id),this.saveEvents(),this.closeModal())})},closeModal(){this.showEventModal=!1,this.editingEvent=null,this.eventForm=this.getEmptyForm()}}},kt={class:"calendar-header"},wt={class:"view-selector"},Et=["onClick"],Nt={class:"navigation"},Ct={class:"current-date"},Vt={class:"calendar-view"},St={class:"zcal-day-view"},Dt={class:"time-grid"},xt={class:"hour-label"},Bt={class:"hour-content"},Tt=["onClick"],zt={class:"event-title"},Ft={class:"event-time"},Mt={key:0,class:"event-recurring"},It={class:"zcal-week-view"},Ot={class:"week-header"},Lt={class:"day-name"},jt={class:"week-grid"},_t={class:"week-hour-label"},Pt=["onClick"],At={class:"event-title"},$t={class:"zcal-month-view"},Ut={class:"month-header"},Wt={class:"month-grid"},Rt=["onClick"],Ht={class:"day-number"},Jt={class:"day-events"},Zt=["title"],qt={key:0,class:"more-events"},Kt={class:"modal-content"},Gt={class:"modal-header"},Yt={class:"modal-body"},Qt={class:"form-group"},Xt={class:"form-group"},en={class:"form-row"},tn={class:"form-group"},nn={class:"form-group"},on={class:"form-group"},an={class:"color-picker"},rn=["onClick"],ln={class:"form-group"},sn={class:"checkbox-label"},cn={key:0,class:"form-group"},dn={class:"modal-footer"};const un=m(bt,[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["calendar-container","dark"===o.theme?"dark":"light"])},[t.createElementVNode("div",kt,[t.createElementVNode("div",wt,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(["day","week","month"],e=>t.createElementVNode("button",{key:e,class:t.normalizeClass(["view-btn",{active:r.currentView===e}]),onClick:t=>r.currentView=e},t.toDisplayString(r.viewLabels[e]),11,Et)),64))]),t.createElementVNode("div",Nt,[t.createElementVNode("button",{onClick:n[0]||(n[0]=(...e)=>i.previousPeriod&&i.previousPeriod(...e)),class:"nav-btn"},"‹"),t.createElementVNode("span",Ct,t.toDisplayString(i.currentDateLabel),1),t.createElementVNode("button",{onClick:n[1]||(n[1]=(...e)=>i.nextPeriod&&i.nextPeriod(...e)),class:"nav-btn"},"›"),t.createElementVNode("button",{onClick:n[2]||(n[2]=(...e)=>i.goToToday&&i.goToToday(...e)),class:"today-btn"},"Hoy")]),t.createElementVNode("button",{onClick:n[3]||(n[3]=e=>r.showEventModal=!0),class:"add-event-btn"},"+ Evento")]),t.createElementVNode("div",Vt,[t.withDirectives(t.createElementVNode("div",St,[t.createElementVNode("div",Dt,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(24,e=>t.createElementVNode("div",{key:e,class:"hour-slot"},[t.createElementVNode("div",xt,t.toDisplayString(i.formatHour(e-1)),1),t.createElementVNode("div",Bt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.getEventsForHour(i.formatDate(r.currentDate),e-1),e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"event-card",style:t.normalizeStyle({backgroundColor:e.color}),onClick:t=>i.editEvent(e)},[t.createElementVNode("div",zt,t.toDisplayString(e.name),1),t.createElementVNode("div",Ft,t.toDisplayString(e.startTime)+" - "+t.toDisplayString(e.endTime),1),e.isRecurring?(t.openBlock(),t.createElementBlock("div",Mt,"🔁")):t.createCommentVNode("",!0)],12,Tt))),128))])])),64))])],512),[[t.vShow,"day"===r.currentView]]),t.withDirectives(t.createElementVNode("div",It,[t.createElementVNode("div",Ot,[n[15]||(n[15]=t.createElementVNode("div",{class:"week-time-label"},null,-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.weekDays,e=>(t.openBlock(),t.createElementBlock("div",{key:e.date,class:"week-day-header"},[t.createElementVNode("div",Lt,t.toDisplayString(e.name),1),t.createElementVNode("div",{class:t.normalizeClass(["day-number",{today:i.isToday(e.date)}])},t.toDisplayString(e.number),3)]))),128))]),t.createElementVNode("div",jt,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(24,e=>t.createElementVNode("div",{key:e,class:"week-hour-row"},[t.createElementVNode("div",_t,t.toDisplayString(i.formatHour(e-1)),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.weekDays,n=>(t.openBlock(),t.createElementBlock("div",{key:n.date,class:"week-hour-cell"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.getEventsForHour(n.date,e-1),e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"event-card small",style:t.normalizeStyle({backgroundColor:e.color}),onClick:t=>i.editEvent(e)},[t.createElementVNode("div",At,t.toDisplayString(e.name),1)],12,Pt))),128))]))),128))])),64))])],512),[[t.vShow,"week"===r.currentView]]),t.withDirectives(t.createElementVNode("div",$t,[t.createElementVNode("div",Ut,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.dayNames,e=>(t.openBlock(),t.createElementBlock("div",{key:e,class:"month-day-name"},t.toDisplayString(e),1))),128))]),t.createElementVNode("div",Wt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.monthDays,e=>(t.openBlock(),t.createElementBlock("div",{key:e.date,class:t.normalizeClass(["month-day",{"other-month":!e.isCurrentMonth,today:i.isToday(e.date)}]),onClick:t=>i.selectDay(e.date)},[t.createElementVNode("div",Ht,t.toDisplayString(e.number),1),t.createElementVNode("div",Jt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.getEventsForDay(e.date).slice(0,3),e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"event-dot",style:t.normalizeStyle({backgroundColor:e.color}),title:e.name},null,12,Zt))),128)),i.getEventsForDay(e.date).length>3?(t.openBlock(),t.createElementBlock("div",qt," +"+t.toDisplayString(i.getEventsForDay(e.date).length-3),1)):t.createCommentVNode("",!0)])],10,Rt))),128))])],512),[[t.vShow,"month"===r.currentView]])]),r.showEventModal?(t.openBlock(),t.createElementBlock("div",{key:0,class:"modal-overlay",onClick:n[14]||(n[14]=t.withModifiers((...e)=>i.closeModal&&i.closeModal(...e),["self"]))},[t.createElementVNode("div",Kt,[t.createElementVNode("div",Gt,[t.createElementVNode("h3",null,t.toDisplayString(r.editingEvent?"Editar Evento":"Nuevo Evento"),1),t.createElementVNode("button",{onClick:n[4]||(n[4]=(...e)=>i.closeModal&&i.closeModal(...e)),class:"close-btn"},"✕")]),t.createElementVNode("div",Yt,[t.createElementVNode("div",Qt,[n[16]||(n[16]=t.createElementVNode("label",null,"Nombre del evento",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[5]||(n[5]=e=>r.eventForm.name=e),type:"text",placeholder:"Ej: Reunión con el equipo"},null,512),[[t.vModelText,r.eventForm.name]])]),t.createElementVNode("div",Xt,[n[17]||(n[17]=t.createElementVNode("label",null,"Fecha",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[6]||(n[6]=e=>r.eventForm.date=e),type:"date"},null,512),[[t.vModelText,r.eventForm.date]])]),t.createElementVNode("div",en,[t.createElementVNode("div",tn,[n[18]||(n[18]=t.createElementVNode("label",null,"Hora de inicio",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[7]||(n[7]=e=>r.eventForm.startTime=e),type:"time"},null,512),[[t.vModelText,r.eventForm.startTime]])]),t.createElementVNode("div",nn,[n[19]||(n[19]=t.createElementVNode("label",null,"Hora de fin",-1)),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[8]||(n[8]=e=>r.eventForm.endTime=e),type:"time"},null,512),[[t.vModelText,r.eventForm.endTime]])])]),t.createElementVNode("div",on,[n[20]||(n[20]=t.createElementVNode("label",null,"Color",-1)),t.createElementVNode("div",an,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.colors,e=>(t.openBlock(),t.createElementBlock("div",{key:e,class:t.normalizeClass(["color-option",{selected:r.eventForm.color===e}]),style:t.normalizeStyle({backgroundColor:e}),onClick:t=>r.eventForm.color=e},null,14,rn))),128))])]),t.createElementVNode("div",ln,[t.createElementVNode("label",sn,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[9]||(n[9]=e=>r.eventForm.isRecurring=e),type:"checkbox"},null,512),[[t.vModelCheckbox,r.eventForm.isRecurring]]),n[21]||(n[21]=t.createTextVNode(" Evento repetitivo ",-1))])]),r.eventForm.isRecurring?(t.openBlock(),t.createElementBlock("div",cn,[n[23]||(n[23]=t.createElementVNode("label",null,"Frecuencia",-1)),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":n[10]||(n[10]=e=>r.eventForm.recurringType=e)},n[22]||(n[22]=[t.createElementVNode("option",{value:"daily"},"Diario",-1),t.createElementVNode("option",{value:"weekly"},"Semanal",-1),t.createElementVNode("option",{value:"monthly"},"Mensual",-1)]),512),[[t.vModelSelect,r.eventForm.recurringType]])])):t.createCommentVNode("",!0)]),t.createElementVNode("div",dn,[r.editingEvent?(t.openBlock(),t.createElementBlock("button",{key:0,onClick:n[11]||(n[11]=(...e)=>i.deleteEvent&&i.deleteEvent(...e)),class:"delete-btn"},"Eliminar")):t.createCommentVNode("",!0),t.createElementVNode("button",{onClick:n[12]||(n[12]=(...e)=>i.closeModal&&i.closeModal(...e)),class:"cancel-btn"},"Cancelar"),t.createElementVNode("button",{onClick:n[13]||(n[13]=(...e)=>i.saveEvent&&i.saveEvent(...e)),class:"save-btn"},t.toDisplayString(r.editingEvent?"Guardar":"Crear"),1)])])])):t.createCommentVNode("",!0)],2)}],["__scopeId","data-v-7ca6c82c"]]),mn={class:"weather-container"},pn={class:"weather-widget"},hn={key:0,class:"weather-loading"},gn={key:1,class:"weather-error"},fn={key:2,class:"weather-content"},vn={class:"weather-header"},yn={class:"location"},bn={class:"location-name"},kn={class:"weather-main"},wn={class:"temperature"},En={class:"temp-value"},Nn={class:"weather-icon"},Cn={class:"weather-description"},Vn={class:"weather-details"},Sn={class:"detail-item"},Dn={class:"detail-value"},xn={class:"detail-item"},Bn={class:"detail-value"},Tn={class:"detail-item"},zn={class:"detail-value"},Fn={class:"weather-footer"},Mn={class:"last-update"};const In=m({name:"ZWeatherWidget",data:()=>({loading:!0,error:null,weatherData:null,locationName:"",latitude:null,longitude:null,lastUpdate:"",updateInterval:null}),mounted(){this.getLocation(),this.updateInterval=setInterval(()=>{this.latitude&&this.longitude&&this.fetchWeather(this.latitude,this.longitude)},6e5)},beforeUnmount(){this.updateInterval&&clearInterval(this.updateInterval)},methods:{getLocation(){if(this.loading=!0,this.error=null,!navigator.geolocation)return this.error="La geolocalización no está disponible en tu navegador",void(this.loading=!1);navigator.geolocation.getCurrentPosition(e=>{this.latitude=e.coords.latitude,this.longitude=e.coords.longitude,this.fetchWeather(this.latitude,this.longitude),this.fetchLocationName(this.latitude,this.longitude)},e=>{switch(this.loading=!1,e.code){case e.PERMISSION_DENIED:this.error="Permiso de ubicación denegado. Activa la ubicación para usar este widget.";break;case e.POSITION_UNAVAILABLE:this.error="Información de ubicación no disponible.";break;case e.TIMEOUT:this.error="Tiempo de espera agotado al obtener la ubicación.";break;default:this.error="Error desconocido al obtener la ubicación."}})},fetchWeather(e,t){return u(this,null,function*(){try{const n=`https://api.open-meteo.com/v1/forecast?latitude=${e}&longitude=${t}¤t=temperature_2m,relative_humidity_2m,apparent_temperature,weather_code,wind_speed_10m&timezone=auto`,o=yield fetch(n);if(!o.ok)throw new Error("Error al obtener datos del clima");this.weatherData=yield o.json(),this.updateLastUpdateTime(),this.loading=!1}catch(n){this.error="No se pudo obtener la información del clima",this.loading=!1}})},fetchLocationName(e,t){return u(this,null,function*(){try{const n=this.generateCacheKey(e,t),o=this.getLocationFromCache(n);if(o)return this.locationName=o,void console.log("📦 Ubicación obtenida del cache:",o);console.log("🌐 Consultando Nominatim para ubicación...");const a=`https://nominatim.openstreetmap.org/reverse?format=json&lat=${e}&lon=${t}&zoom=10`,r=yield fetch(a,{headers:{"User-Agent":"ZenWDG-WeatherWidget/1.0"}});if(r.ok){const e=yield r.json(),t=e.address.city||e.address.town||e.address.village||e.address.state||"Tu ubicación";this.locationName=t,this.saveLocationToCache(n,t),console.log("💾 Ubicación guardada en cache:",t)}else this.locationName="Tu ubicación"}catch(n){this.locationName="Tu ubicación"}})},generateCacheKey:(e,t)=>`${Math.round(100*e)/100},${Math.round(100*t)/100}`,getLocationFromCache(e){try{const t=localStorage.getItem("weather_location_cache");if(!t)return null;const n=JSON.parse(t),o=n[e];if(!o)return null;const a=Date.now()-o.timestamp;return a>2592e6?(delete n[e],localStorage.setItem("weather_location_cache",JSON.stringify(n)),null):o.name}catch(t){return console.warn("Error al leer cache de ubicaciones:",t),null}},saveLocationToCache(e,t){try{let n={};const o=localStorage.getItem("weather_location_cache");o&&(n=JSON.parse(o)),n[e]={name:t,timestamp:Date.now()};const a=Object.entries(n);a.length>100&&(a.sort((e,t)=>t[1].timestamp-e[1].timestamp),n=Object.fromEntries(a.slice(0,100))),localStorage.setItem("weather_location_cache",JSON.stringify(n))}catch(n){console.warn("Error al guardar en cache de ubicaciones:",n)}},refreshWeather(){this.latitude&&this.longitude?(this.loading=!0,this.fetchWeather(this.latitude,this.longitude)):this.getLocation()},updateLastUpdateTime(){const e=new Date;this.lastUpdate=`${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`},getWeatherIcon:e=>({0:"☀️",1:"🌤️",2:"⛅",3:"☁️",45:"🌫️",48:"🌫️",51:"🌦️",53:"🌦️",55:"🌧️",61:"🌧️",63:"🌧️",65:"🌧️",71:"🌨️",73:"🌨️",75:"❄️",77:"🌨️",80:"🌦️",81:"🌧️",82:"⛈️",85:"🌨️",86:"❄️",95:"⛈️",96:"⛈️",99:"⛈️"}[e]||"🌤️"),getWeatherDescription:e=>({0:"Cielo despejado",1:"Principalmente despejado",2:"Parcialmente nublado",3:"Nublado",45:"Niebla",48:"Niebla con escarcha",51:"Llovizna ligera",53:"Llovizna moderada",55:"Llovizna densa",61:"Lluvia ligera",63:"Lluvia moderada",65:"Lluvia fuerte",71:"Nevada ligera",73:"Nevada moderada",75:"Nevada fuerte",77:"Granizo",80:"Chubascos ligeros",81:"Chubascos moderados",82:"Chubascos violentos",85:"Chubascos de nieve ligeros",86:"Chubascos de nieve fuertes",95:"Tormenta eléctrica",96:"Tormenta con granizo ligero",99:"Tormenta con granizo fuerte"}[e]||"Condición desconocida")}},[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",mn,[t.createElementVNode("div",pn,[r.loading?(t.openBlock(),t.createElementBlock("div",hn,n[2]||(n[2]=[t.createElementVNode("div",{class:"spinner"},null,-1),t.createElementVNode("p",null,"Obteniendo ubicación...",-1)]))):r.error?(t.openBlock(),t.createElementBlock("div",gn,[n[3]||(n[3]=t.createElementVNode("span",{class:"error-icon"},"⚠️",-1)),t.createElementVNode("p",null,t.toDisplayString(r.error),1),t.createElementVNode("button",{onClick:n[0]||(n[0]=(...e)=>i.getLocation&&i.getLocation(...e)),class:"retry-btn"},"Reintentar")])):r.weatherData?(t.openBlock(),t.createElementBlock("div",fn,[t.createElementVNode("div",vn,[t.createElementVNode("div",yn,[n[4]||(n[4]=t.createElementVNode("span",{class:"location-icon"},"📍",-1)),t.createElementVNode("span",bn,t.toDisplayString(r.locationName),1)])]),t.createElementVNode("div",kn,[t.createElementVNode("div",wn,[t.createElementVNode("span",En,t.toDisplayString(Math.round(r.weatherData.current.temperature_2m)),1),n[5]||(n[5]=t.createElementVNode("span",{class:"temp-unit"},"°C",-1))]),t.createElementVNode("div",Nn,t.toDisplayString(i.getWeatherIcon(r.weatherData.current.weather_code)),1)]),t.createElementVNode("div",Cn,t.toDisplayString(i.getWeatherDescription(r.weatherData.current.weather_code)),1),t.createElementVNode("div",Vn,[t.createElementVNode("div",Sn,[n[6]||(n[6]=t.createElementVNode("span",{class:"detail-icon"},"💨",-1)),n[7]||(n[7]=t.createElementVNode("span",{class:"detail-label"},"Viento",-1)),t.createElementVNode("span",Dn,t.toDisplayString(Math.round(r.weatherData.current.wind_speed_10m))+" km/h",1)]),t.createElementVNode("div",xn,[n[8]||(n[8]=t.createElementVNode("span",{class:"detail-icon"},"💧",-1)),n[9]||(n[9]=t.createElementVNode("span",{class:"detail-label"},"Humedad",-1)),t.createElementVNode("span",Bn,t.toDisplayString(r.weatherData.current.relative_humidity_2m)+"%",1)]),t.createElementVNode("div",Tn,[n[10]||(n[10]=t.createElementVNode("span",{class:"detail-icon"},"🌡️",-1)),n[11]||(n[11]=t.createElementVNode("span",{class:"detail-label"},"Sensación",-1)),t.createElementVNode("span",zn,t.toDisplayString(Math.round(r.weatherData.current.apparent_temperature))+"°C",1)])]),t.createElementVNode("div",Fn,[t.createElementVNode("span",Mn,"Actualizado: "+t.toDisplayString(r.lastUpdate),1),t.createElementVNode("button",{onClick:n[1]||(n[1]=(...e)=>i.refreshWeather&&i.refreshWeather(...e)),class:"refresh-btn"},"🔄")])])):t.createCommentVNode("",!0)])])}],["__scopeId","data-v-5f11c261"]]),On={class:"notes-widget"},Ln={class:"notes-header"},jn={class:"header-actions"},_n={class:"modal-header"},Pn={class:"modal-body"},An={class:"category-form"},$n={class:"categories-list"},Un={class:"category-name"},Wn=["onClick"],Rn={key:0,class:"new-note-form"},Hn={class:"note-form-actions"},Jn=["value"],Zn={class:"form-buttons"},qn={class:"notes-controls"},Kn={class:"filter-controls"},Gn=["onClick"],Yn={class:"sort-controls"},Qn={class:"notes-list"},Xn={key:0,class:"empty-state"},eo={class:"note-card-header"},to=["onClick"],no=["onClick"],oo={class:"note-title"},ao={class:"note-content"},ro={class:"note-footer"},io={class:"note-date"},lo={class:"notes-stats"},so={key:0};const co=m({name:"ZNotesWidget",data:()=>({notes:[],categories:[{id:"default",name:"Sin categoría",color:"#6b7280"}],showNewNoteForm:!1,showCategoryManager:!1,newNote:{title:"",content:"",categoryId:""},newCategoryName:"",newCategoryColor:"#3b82f6",filterCategory:null,sortBy:"date",storageKey:"zen-notes-widget",categoriesKey:"zen-notes-categories"}),computed:{filteredNotes(){let e=[...this.notes];return"pinned"===this.filterCategory?e=e.filter(e=>e.isPinned):this.filterCategory&&(e=e.filter(e=>e.categoryId===this.filterCategory)),e.sort((e,t)=>{if("date"===this.sortBy)return new Date(t.createdAt)-new Date(e.createdAt);if("title"===this.sortBy)return(e.title||"").localeCompare(t.title||"");if("category"===this.sortBy){const n=this.getCategoryName(e.categoryId),o=this.getCategoryName(t.categoryId);return n.localeCompare(o)}return 0}),e.sort((e,t)=>e.isPinned&&!t.isPinned?-1:!e.isPinned&&t.isPinned?1:0)},pinnedNotesCount(){return this.notes.filter(e=>e.isPinned).length}},methods:{toggleNewNote(){this.showNewNoteForm=!this.showNewNoteForm,this.showNewNoteForm&&this.$nextTick(()=>{var e;null==(e=this.$refs.titleInput)||e.focus()})},saveNote(){if(!this.newNote.content.trim())return;const e={id:Date.now().toString(),title:this.newNote.title.trim(),content:this.newNote.content.trim(),categoryId:this.newNote.categoryId,isPinned:!1,createdAt:(new Date).toISOString()};this.notes.unshift(e),this.saveToStorage(),this.cancelNewNote()},cancelNewNote(){this.newNote={title:"",content:"",categoryId:""},this.showNewNoteForm=!1},deleteNote(e){return u(this,null,function*(){(yield window.ZenModals.showDeleteConfirm("esta nota"))&&(this.notes=this.notes.filter(t=>t.id!==e),this.saveToStorage())})},togglePin(e){const t=this.notes.find(t=>t.id===e);t&&(t.isPinned=!t.isPinned,this.saveToStorage())},addCategory(){if(!this.newCategoryName.trim())return;const e={id:Date.now().toString(),name:this.newCategoryName.trim(),color:this.newCategoryColor};this.categories.push(e),this.saveCategoriesToStorage(),this.newCategoryName="",this.newCategoryColor="#3b82f6"},deleteCategory(e){return u(this,null,function*(){(yield window.ZenModals.showConfirm({title:"¿Eliminar categoría?",message:"Las notas de esta categoría no se eliminarán, solo la categoría.",confirmText:"Eliminar",cancelText:"Cancelar",confirmButtonClass:"danger"}))&&(this.categories=this.categories.filter(t=>t.id!==e),this.saveCategoriesToStorage())})},getCategoryName(e){const t=this.categories.find(t=>t.id===e);return t?t.name:"Sin categoría"},getCategoryColor(e){const t=this.categories.find(t=>t.id===e);return t?t.color:"#6b7280"},getNoteColor(e){return e.categoryId?this.getCategoryColor(e.categoryId):"#6b7280"},formatDate(e){const t=new Date(e),n=new Date,o=n-t,a=Math.floor(o/864e5);if(0===a){const e=Math.floor(o/36e5);if(0===e){const e=Math.floor(o/6e4);return 0===e?"Ahora":`Hace ${e}m`}return`Hace ${e}h`}return 1===a?"Ayer":a<7?`Hace ${a} días`:t.toLocaleDateString("es-ES",{day:"numeric",month:"short",year:t.getFullYear()!==n.getFullYear()?"numeric":void 0})},exportNotes(){if(0===this.notes.length)return void alert("No hay notas para exportar");let e="# MIS NOTAS\n";e+=`# Exportado el ${(new Date).toLocaleString("es-ES")}\n\n`,e+="═".repeat(60)+"\n\n";const t={};this.notes.forEach(e=>{const n=this.getCategoryName(e.categoryId);t[n]||(t[n]=[]),t[n].push(e)}),Object.keys(t).sort().forEach(n=>{e+=`## 🏷️ ${n.toUpperCase()}\n`,e+="─".repeat(60)+"\n\n",t[n].forEach(t=>{e+=`### ${t.title||"Sin título"}`,t.isPinned&&(e+=" 📌"),e+="\n",e+=`Fecha: ${new Date(t.createdAt).toLocaleString("es-ES")}\n\n`,e+=`${t.content}\n\n`,e+="─".repeat(60)+"\n\n"})}),e+="\n═".repeat(60)+"\n",e+=`Total de notas: ${this.notes.length}\n`,e+=`Notas fijadas: ${this.pinnedNotesCount}\n`;const n=new Blob([e],{type:"text/plain;charset=utf-8"}),o=URL.createObjectURL(n),a=document.createElement("a");a.href=o,a.download=`notas_${(new Date).toISOString().split("T")[0]}.txt`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(o),alert("✅ Notas exportadas exitosamente")},saveToStorage(){try{localStorage.setItem(this.storageKey,JSON.stringify(this.notes))}catch(So){console.error("Error al guardar notas:",So)}},loadFromStorage(){try{const e=localStorage.getItem(this.storageKey);e&&(this.notes=JSON.parse(e))}catch(So){console.error("Error al cargar notas:",So)}},saveCategoriesToStorage(){try{localStorage.setItem(this.categoriesKey,JSON.stringify(this.categories))}catch(So){console.error("Error al guardar categorías:",So)}},loadCategoriesFromStorage(){try{const e=localStorage.getItem(this.categoriesKey);if(e){const t=JSON.parse(e);t.find(e=>"default"===e.id)||t.unshift({id:"default",name:"Sin categoría",color:"#6b7280"}),this.categories=t}}catch(So){console.error("Error al cargar categorías:",So)}}},mounted(){this.loadCategoriesFromStorage(),this.loadFromStorage()}},[["render",function(e,n,o,a,r,i){return t.openBlock(),t.createElementBlock("div",On,[t.createElementVNode("div",Ln,[n[19]||(n[19]=t.createElementVNode("h2",{class:"notes-title"},"📝 Notas",-1)),t.createElementVNode("div",jn,[t.createElementVNode("button",{onClick:n[0]||(n[0]=e=>r.showCategoryManager=!r.showCategoryManager),class:"icon-btn",title:"Gestionar Categorías"}," 🏷️ "),t.createElementVNode("button",{onClick:n[1]||(n[1]=(...e)=>i.exportNotes&&i.exportNotes(...e)),class:"icon-btn",title:"Exportar Notas"}," 💾 "),t.createElementVNode("button",{onClick:n[2]||(n[2]=(...e)=>i.toggleNewNote&&i.toggleNewNote(...e)),class:"icon-btn add-btn",title:"Nueva Nota"}," ➕ ")])]),t.createVNode(t.Transition,{name:"modal"},{default:t.withCtx(()=>[r.showCategoryManager?(t.openBlock(),t.createElementBlock("div",{key:0,class:"modal-overlay",onClick:n[9]||(n[9]=e=>r.showCategoryManager=!1)},[t.createElementVNode("div",{class:"modal-content",onClick:n[8]||(n[8]=t.withModifiers(()=>{},["stop"]))},[t.createElementVNode("div",_n,[n[20]||(n[20]=t.createElementVNode("h3",null,"🏷️ Gestionar Categorías",-1)),t.createElementVNode("button",{onClick:n[3]||(n[3]=e=>r.showCategoryManager=!1),class:"close-btn"},"✕")]),t.createElementVNode("div",Pn,[t.createElementVNode("div",An,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[4]||(n[4]=e=>r.newCategoryName=e),onKeypress:n[5]||(n[5]=t.withKeys((...e)=>i.addCategory&&i.addCategory(...e),["enter"])),placeholder:"Nombre de categoría",class:"category-input"},null,544),[[t.vModelText,r.newCategoryName]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[6]||(n[6]=e=>r.newCategoryColor=e),type:"color",class:"color-picker"},null,512),[[t.vModelText,r.newCategoryColor]]),t.createElementVNode("button",{onClick:n[7]||(n[7]=(...e)=>i.addCategory&&i.addCategory(...e)),class:"add-category-btn"},"Agregar")]),t.createElementVNode("div",$n,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.categories,e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:"category-item"},[t.createElementVNode("span",{class:"category-color-preview",style:t.normalizeStyle({backgroundColor:e.color})},null,4),t.createElementVNode("span",Un,t.toDisplayString(e.name),1),"default"!==e.id?(t.openBlock(),t.createElementBlock("button",{key:0,onClick:t=>i.deleteCategory(e.id),class:"delete-category-btn",title:"Eliminar"}," 🗑️ ",8,Wn)):t.createCommentVNode("",!0)]))),128))])])])])):t.createCommentVNode("",!0)]),_:1}),t.createVNode(t.Transition,{name:"slide"},{default:t.withCtx(()=>[r.showNewNoteForm?(t.openBlock(),t.createElementBlock("div",Rn,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":n[10]||(n[10]=e=>r.newNote.title=e),placeholder:"Título de la nota...",class:"note-title-input",ref:"titleInput"},null,512),[[t.vModelText,r.newNote.title]]),t.withDirectives(t.createElementVNode("textarea",{"onUpdate:modelValue":n[11]||(n[11]=e=>r.newNote.content=e),placeholder:"Escribe tu nota aquí...",class:"note-content-input",rows:"4"},null,512),[[t.vModelText,r.newNote.content]]),t.createElementVNode("div",Hn,[t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":n[12]||(n[12]=e=>r.newNote.categoryId=e),class:"category-select"},[n[21]||(n[21]=t.createElementVNode("option",{value:""},"Sin categoría",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.categories.filter(e=>"default"!==e.id),e=>(t.openBlock(),t.createElementBlock("option",{key:e.id,value:e.id},t.toDisplayString(e.name),9,Jn))),128))],512),[[t.vModelSelect,r.newNote.categoryId]]),t.createElementVNode("div",Zn,[t.createElementVNode("button",{onClick:n[13]||(n[13]=(...e)=>i.cancelNewNote&&i.cancelNewNote(...e)),class:"cancel-btn"},"Cancelar"),t.createElementVNode("button",{onClick:n[14]||(n[14]=(...e)=>i.saveNote&&i.saveNote(...e)),class:"save-btn"},"Guardar")])])])):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("div",qn,[t.createElementVNode("div",Kn,[t.createElementVNode("button",{onClick:n[15]||(n[15]=e=>r.filterCategory=null),class:t.normalizeClass(["filter-btn",{active:null===r.filterCategory}])}," 📋 Todas ",2),t.createElementVNode("button",{onClick:n[16]||(n[16]=e=>r.filterCategory="pinned"),class:t.normalizeClass(["filter-btn",{active:"pinned"===r.filterCategory}])}," 📌 Fijadas ",2),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.categories.filter(e=>"default"!==e.id),e=>(t.openBlock(),t.createElementBlock("button",{key:e.id,onClick:t=>r.filterCategory=e.id,class:t.normalizeClass(["filter-btn",{active:r.filterCategory===e.id}]),style:t.normalizeStyle({borderColor:e.color,color:r.filterCategory===e.id?e.color:""})},t.toDisplayString(e.name),15,Gn))),128))]),t.createElementVNode("div",Yn,[t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":n[17]||(n[17]=e=>r.sortBy=e),class:"sort-select"},n[22]||(n[22]=[t.createElementVNode("option",{value:"date"},"📅 Fecha",-1),t.createElementVNode("option",{value:"title"},"🔤 Título",-1),t.createElementVNode("option",{value:"category"},"🏷️ Categoría",-1)]),512),[[t.vModelSelect,r.sortBy]])])]),t.createElementVNode("div",Qn,[0===i.filteredNotes.length?(t.openBlock(),t.createElementBlock("div",Xn,[n[23]||(n[23]=t.createElementVNode("div",{class:"empty-icon"},"📭",-1)),n[24]||(n[24]=t.createElementVNode("p",null,"No hay notas",-1)),t.createElementVNode("button",{onClick:n[18]||(n[18]=(...e)=>i.toggleNewNote&&i.toggleNewNote(...e)),class:"create-first-note-btn"}," Crear primera nota ")])):t.createCommentVNode("",!0),t.createVNode(t.TransitionGroup,{name:"note-list",tag:"div",class:"notes-grid"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(i.filteredNotes,e=>(t.openBlock(),t.createElementBlock("div",{key:e.id,class:t.normalizeClass(["note-card",{pinned:e.isPinned}]),style:t.normalizeStyle({borderLeftColor:i.getNoteColor(e)})},[t.createElementVNode("div",eo,[t.createElementVNode("button",{onClick:t=>i.togglePin(e.id),class:t.normalizeClass(["pin-btn",{pinned:e.isPinned}]),title:"Fijar/Desfijar"},t.toDisplayString(e.isPinned?"📌":"📍"),11,to),t.createElementVNode("button",{onClick:t=>i.deleteNote(e.id),class:"delete-btn",title:"Eliminar"}," 🗑️ ",8,no)]),t.createElementVNode("h3",oo,t.toDisplayString(e.title||"Sin título"),1),t.createElementVNode("p",ao,t.toDisplayString(e.content),1),t.createElementVNode("div",ro,[e.categoryId?(t.openBlock(),t.createElementBlock("span",{key:0,class:"note-category",style:t.normalizeStyle({backgroundColor:i.getCategoryColor(e.categoryId),color:"white"})},t.toDisplayString(i.getCategoryName(e.categoryId)),5)):t.createCommentVNode("",!0),t.createElementVNode("span",io,t.toDisplayString(i.formatDate(e.createdAt)),1)])],6))),128))]),_:1})]),t.createElementVNode("div",lo,[t.createElementVNode("span",null,"Total: "+t.toDisplayString(r.notes.length)+" notas",1),i.pinnedNotesCount>0?(t.openBlock(),t.createElementBlock("span",so,"📌 "+t.toDisplayString(i.pinnedNotesCount)+" fijadas",1)):t.createCommentVNode("",!0)])])}],["__scopeId","data-v-7326bacf"]]);const uo=new class{constructor(){this.currentModal=null,this.resolveCallback=null,this.rejectCallback=null}createModalHTML(e){const{title:t="",message:n="",type:o="confirm",confirmText:a="Confirmar",cancelText:r="Cancelar",showCancel:i=!0,showIcon:l=!0,inputLabel:s="",inputPlaceholder:c="",inputType:d="text",inputDefaultValue:u="",confirmButtonClass:m=""}=e,p={confirm:"⚠️",success:"✅",error:"❌",info:"ℹ️",warning:"⚠️",prompt:""};return`\n <div class="z-modal-overlay" data-action="overlay">\n <div class="z-modal-container ${{confirm:"modal-bg-confirm",prompt:"modal-bg-prompt",success:"modal-bg-success",error:"modal-bg-error",warning:"modal-bg-warning",info:"modal-bg-info"}[o]} z-modal-size-medium">\n ${t?`\n <div class="z-modal-header">\n <h3 class="z-modal-title">${t}</h3>\n <button class="z-modal-close" data-action="close" aria-label="Cerrar">\n <svg width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M15 5L5 15M5 5l10 10" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>\n </svg>\n </button>\n </div>\n `:""}\n \n <div class="z-modal-body">\n ${l&&p[o]?`<div class="z-modal-icon">${p[o]}</div>`:""}\n ${n?`<p class="z-modal-message">${n}</p>`:""}\n ${"prompt"===o?`\n <div class="z-modal-input-group">\n ${s?`<label class="z-modal-label">${s}</label>`:""}\n <input \n type="${d}" \n class="z-modal-input" \n placeholder="${c}"\n value="${u}"\n id="z-modal-input"\n />\n </div>\n `:""}\n </div>\n \n <div class="z-modal-footer">\n ${i?`<button class="z-modal-btn z-modal-btn-cancel" data-action="cancel">${r}</button>`:""}\n <button class="z-modal-btn z-modal-btn-confirm ${m}" data-action="confirm">\n ${a}\n </button>\n </div>\n </div>\n </div>\n `}show(e){return new Promise((t,n)=>{this.currentModal&&this.close(),this.resolveCallback=t,this.rejectCallback=n;const o=document.createElement("div");o.innerHTML=this.createModalHTML(e),this.currentModal=o.firstElementChild,document.body.appendChild(this.currentModal),this.injectStyles(),this.setupEventListeners(e.type),requestAnimationFrame(()=>{this.currentModal.classList.add("z-modal-show")}),"prompt"===e.type&&setTimeout(()=>{const e=document.getElementById("z-modal-input");e&&e.focus()},100)})}setupEventListeners(e){const t=t=>{var n;const o=null==(n=t.target.closest("[data-action]"))?void 0:n.dataset.action;if("confirm"===o)if("prompt"===e){const e=document.getElementById("z-modal-input");this.resolve(e?e.value:"")}else this.resolve(!0);else("cancel"===o||"close"===o||"overlay"===o)&&this.resolve(!1)},n=t=>{if("Escape"===t.key)this.resolve(!1);else if("Enter"===t.key&&"prompt"===e){const e=document.getElementById("z-modal-input");this.resolve(e?e.value:"")}};this.currentModal.addEventListener("click",t),document.addEventListener("keydown",n),this.currentModal._handleClick=t,this.currentModal._handleKeydown=n}resolve(e){this.resolveCallback&&this.resolveCallback(e),this.close()}close(){this.currentModal&&(this.currentModal._handleClick&&this.currentModal.removeEventListener("click",this.currentModal._handleClick),this.currentModal._handleKeydown&&document.removeEventListener("keydown",this.currentModal._handleKeydown),this.currentModal.classList.remove("z-modal-show"),setTimeout(()=>{this.currentModal&&this.currentModal.parentNode&&this.currentModal.parentNode.removeChild(this.currentModal),this.currentModal=null,this.resolveCallback=null,this.rejectCallback=null},300))}injectStyles(){if(document.getElementById("z-modal-styles"))return;const e=document.createElement("style");e.id="z-modal-styles",e.textContent="\n .z-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 99999;\n padding: 20px;\n opacity: 0;\n transition: opacity 0.3s ease;\n }\n\n .z-modal-overlay.z-modal-show {\n opacity: 1;\n }\n\n .z-modal-overlay.z-modal-show .z-modal-container {\n transform: translateY(0) scale(1);\n opacity: 1;\n }\n\n .z-modal-container {\n background: rgba(30, 30, 35, 0.95);\n backdrop-filter: blur(20px) saturate(180%);\n -webkit-backdrop-filter: blur(20px) saturate(180%);\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 20px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n max-width: 90vw;\n max-height: 90vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n color: #fff;\n transform: translateY(-30px) scale(0.95);\n opacity: 0;\n transition: all 0.3s ease;\n }\n\n .z-modal-size-medium {\n width: 450px;\n }\n\n .z-modal-bg-success {\n background: rgba(16, 185, 129, 0.95);\n }\n\n .z-modal-bg-error, .z-modal-bg-warning {\n background: rgba(239, 68, 68, 0.95);\n }\n\n .z-modal-bg-info {\n background: rgba(59, 130, 246, 0.95);\n }\n\n .z-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 24px 24px 16px 24px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n }\n\n .z-modal-title {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n }\n\n .z-modal-close {\n background: none;\n border: none;\n width: 32px;\n height: 32px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: currentColor;\n transition: all 0.2s ease;\n opacity: 0.7;\n }\n\n .z-modal-close:hover {\n background: rgba(255, 255, 255, 0.1);\n opacity: 1;\n }\n\n .z-modal-body {\n padding: 24px;\n text-align: center;\n }\n\n .z-modal-icon {\n font-size: 3rem;\n margin-bottom: 16px;\n animation: z-modal-icon-bounce 0.5s ease-out;\n }\n\n @keyframes z-modal-icon-bounce {\n 0% { transform: scale(0); }\n 50% { transform: scale(1.1); }\n 100% { transform: scale(1); }\n }\n\n .z-modal-message {\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n opacity: 0.95;\n }\n\n .z-modal-input-group {\n margin-top: 20px;\n text-align: left;\n }\n\n .z-modal-label {\n display: block;\n margin-bottom: 8px;\n font-size: 0.9rem;\n font-weight: 500;\n opacity: 0.9;\n }\n\n .z-modal-input {\n width: 100%;\n padding: 12px 16px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 10px;\n background: rgba(255, 255, 255, 0.1);\n color: #fff;\n font-size: 1rem;\n transition: all 0.2s ease;\n box-sizing: border-box;\n }\n\n .z-modal-input:focus {\n outline: none;\n border-color: rgba(255, 255, 255, 0.4);\n background: rgba(255, 255, 255, 0.15);\n }\n\n .z-modal-input::placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n\n .z-modal-footer {\n display: flex;\n gap: 12px;\n padding: 16px 24px 24px 24px;\n justify-content: flex-end;\n }\n\n .z-modal-btn {\n padding: 12px 24px;\n border: none;\n border-radius: 10px;\n font-size: 1rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n min-width: 100px;\n }\n\n .z-modal-btn-cancel {\n background: rgba(255, 255, 255, 0.1);\n color: currentColor;\n border: 1px solid rgba(255, 255, 255, 0.2);\n }\n\n .z-modal-btn-cancel:hover {\n background: rgba(255, 255, 255, 0.2);\n transform: translateY(-1px);\n }\n\n .z-modal-btn-confirm {\n background: rgba(255, 255, 255, 0.9);\n color: #1a1a1a;\n }\n\n .z-modal-btn-confirm:hover {\n background: #fff;\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n .z-modal-btn-confirm.danger {\n background: #ef4444;\n color: white;\n }\n\n .z-modal-btn-confirm.danger:hover {\n background: #dc2626;\n }\n\n @media (max-width: 768px) {\n .z-modal-container {\n width: 100% !important;\n max-width: 400px;\n }\n\n .z-modal-footer {\n flex-direction: column-reverse;\n }\n\n .z-modal-btn {\n width: 100%;\n }\n }\n ",document.head.appendChild(e)}};function mo(e={}){return uo.show(c({type:"confirm",showCancel:!0,showIcon:!0,confirmText:"Confirmar",cancelText:"Cancelar"},e))}function po(e={}){const t=e,{type:n="info"}=t,o=((e,t)=>{var n={};for(var o in e)i.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&r)for(var o of r(e))t.indexOf(o)<0&&l.call(e,o)&&(n[o]=e[o]);return n})(t,["type"]);return uo.show(c({type:n,showCancel:!1,showIcon:!0,confirmText:"Entendido"},o))}function ho(e={}){return uo.show(c({type:"prompt",showCancel:!0,showIcon:!1,confirmText:"Aceptar",cancelText:"Cancelar",inputType:"text",inputDefaultValue:""},e))}function go(e={}){return po(c({type:"success",title:"¡Éxito!",message:"Operación completada correctamente"},e))}function fo(e={}){return po(c({type:"error",title:"Error",message:"Ha ocurrido un error"},e))}function vo(e={}){return po(c({type:"warning",title:"Advertencia"},e))}function yo(e="este elemento"){return mo({title:"¿Eliminar?",message:`¿Estás seguro de que deseas eliminar ${e}?`,confirmText:"Eliminar",cancelText:"Cancelar",confirmButtonClass:"danger"})}"undefined"!=typeof window&&(window.ZenModals={showConfirm:mo,showAlert:po,showPrompt:ho,showSuccess:go,showError:fo,showWarning:vo,showDeleteConfirm:yo});const bo=t.defineCustomElement(v),ko=t.defineCustomElement(Ze),wo=t.defineCustomElement(at),Eo=t.defineCustomElement(yt),No=t.defineCustomElement(un),Co=t.defineCustomElement(In),Vo=t.defineCustomElement(co);customElements.get("z-clock-widget")||customElements.define("z-clock-widget",bo),customElements.get("z-search-widget")||customElements.define("z-search-widget",ko),customElements.get("z-todo-widget")||customElements.define("z-todo-widget",wo),customElements.get("z-marked-widget")||customElements.define("z-marked-widget",Eo),customElements.get("z-calendar-widget")||customElements.define("z-calendar-widget",No),customElements.get("z-weather-widget")||customElements.define("z-weather-widget",Co),customElements.get("z-notes-widget")||customElements.define("z-notes-widget",Vo),e.ZCalendarWidget=un,e.ZClockWidget=v,e.ZMarkedWidget=yt,e.ZNotesWidget=co,e.ZSearchWidget=Ze,e.ZTodoWidget=at,e.ZWeatherWidget=In,e.showAlert=po,e.showConfirm=mo,e.showDeleteConfirm=yo,e.showError=fo,e.showPrompt=ho,e.showSuccess=go,e.showWarning=vo,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<!-- Vista del calendario -->
|
|
25
25
|
<div class="calendar-view">
|
|
26
26
|
<!-- Vista de Día -->
|
|
27
|
-
<div v-
|
|
27
|
+
<div v-show="currentView === 'day'" class="zcal-day-view">
|
|
28
28
|
<div class="time-grid">
|
|
29
29
|
<div v-for="hour in 24" :key="hour" class="hour-slot">
|
|
30
30
|
<div class="hour-label">{{ formatHour(hour - 1) }}</div>
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
</div>
|
|
47
47
|
|
|
48
48
|
<!-- Vista de Semana -->
|
|
49
|
-
<div v-
|
|
49
|
+
<div v-show="currentView === 'week'" class="zcal-week-view">
|
|
50
50
|
<div class="week-header">
|
|
51
51
|
<div class="week-time-label"></div>
|
|
52
52
|
<div v-for="day in weekDays" :key="day.date" class="week-day-header">
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
</div>
|
|
74
74
|
|
|
75
75
|
<!-- Vista de Mes -->
|
|
76
|
-
<div v-
|
|
76
|
+
<div v-show="currentView === 'month'" class="zcal-month-view">
|
|
77
77
|
<div class="month-header">
|
|
78
78
|
<div v-for="day in dayNames" :key="day" class="month-day-name">{{ day }}</div>
|
|
79
79
|
</div>
|
|
@@ -429,13 +429,14 @@ export default {
|
|
|
429
429
|
border-radius: 1rem;
|
|
430
430
|
backdrop-filter: blur(10px) saturate(180%);
|
|
431
431
|
-webkit-backdrop-filter: blur(10px) saturate(180%);
|
|
432
|
-
background: rgba(255, 255, 255, 0.
|
|
432
|
+
background: rgba(255, 255, 255, 0.85);
|
|
433
433
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
434
434
|
color: #202020;
|
|
435
|
+
isolation: isolate;
|
|
435
436
|
}
|
|
436
437
|
|
|
437
438
|
.calendar-container.dark {
|
|
438
|
-
background: rgba(20, 20, 20, 0.
|
|
439
|
+
background: rgba(20, 20, 20, 0.85);
|
|
439
440
|
color: #dfdfdf;
|
|
440
441
|
}
|
|
441
442
|
|
|
@@ -468,7 +469,7 @@ export default {
|
|
|
468
469
|
}
|
|
469
470
|
|
|
470
471
|
.view-btn.active {
|
|
471
|
-
background:
|
|
472
|
+
background: #066D5A;
|
|
472
473
|
color: white;
|
|
473
474
|
}
|
|
474
475
|
|
|
@@ -537,8 +538,15 @@ export default {
|
|
|
537
538
|
}
|
|
538
539
|
|
|
539
540
|
/* Vista de Día */
|
|
540
|
-
.day-view {
|
|
541
|
+
.zcal-day-view {
|
|
541
542
|
height: 100%;
|
|
543
|
+
display: none;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
.zcal-day-view[style*="display: block"],
|
|
547
|
+
.zcal-day-view:not([style*="display: none"]) {
|
|
548
|
+
display: flex;
|
|
549
|
+
flex-direction: column;
|
|
542
550
|
}
|
|
543
551
|
|
|
544
552
|
.time-grid {
|
|
@@ -570,12 +578,17 @@ export default {
|
|
|
570
578
|
}
|
|
571
579
|
|
|
572
580
|
/* Vista de Semana */
|
|
573
|
-
.week-view {
|
|
581
|
+
.zcal-week-view {
|
|
574
582
|
height: 100%;
|
|
575
|
-
display:
|
|
583
|
+
display: none;
|
|
576
584
|
flex-direction: column;
|
|
577
585
|
}
|
|
578
586
|
|
|
587
|
+
.zcal-week-view[style*="display: block"],
|
|
588
|
+
.zcal-week-view:not([style*="display: none"]) {
|
|
589
|
+
display: flex;
|
|
590
|
+
}
|
|
591
|
+
|
|
579
592
|
.week-header {
|
|
580
593
|
display: grid;
|
|
581
594
|
grid-template-columns: 60px repeat(7, 1fr);
|
|
@@ -647,12 +660,17 @@ export default {
|
|
|
647
660
|
}
|
|
648
661
|
|
|
649
662
|
/* Vista de Mes */
|
|
650
|
-
.month-view {
|
|
663
|
+
.zcal-month-view {
|
|
651
664
|
height: 100%;
|
|
652
|
-
display:
|
|
665
|
+
display: none;
|
|
653
666
|
flex-direction: column;
|
|
654
667
|
}
|
|
655
668
|
|
|
669
|
+
.zcal-month-view[style*="display: block"],
|
|
670
|
+
.zcal-month-view:not([style*="display: none"]) {
|
|
671
|
+
display: flex;
|
|
672
|
+
}
|
|
673
|
+
|
|
656
674
|
.month-header {
|
|
657
675
|
display: grid;
|
|
658
676
|
grid-template-columns: repeat(7, 1fr);
|
|
@@ -779,13 +797,14 @@ export default {
|
|
|
779
797
|
}
|
|
780
798
|
|
|
781
799
|
.modal-content {
|
|
782
|
-
background:
|
|
800
|
+
background: #ffffff;
|
|
783
801
|
border-radius: 1rem;
|
|
784
802
|
width: 90%;
|
|
785
803
|
max-width: 500px;
|
|
786
804
|
max-height: 90vh;
|
|
787
805
|
overflow-y: auto;
|
|
788
806
|
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
|
|
807
|
+
isolation: isolate;
|
|
789
808
|
}
|
|
790
809
|
|
|
791
810
|
.dark .modal-content {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="container-marked">
|
|
3
3
|
<div class="tabs" :class="[theme == 'dark' ? 'dark' : 'light']">
|
|
4
|
-
<div v-for="tab in
|
|
4
|
+
<div v-for="tab in userCategories" :key="tab" class="container-tab" >
|
|
5
5
|
<button
|
|
6
6
|
class="tab"
|
|
7
7
|
:class="{ active: tab === activeTab }"
|
|
@@ -9,6 +9,22 @@
|
|
|
9
9
|
>
|
|
10
10
|
{{ tab }}
|
|
11
11
|
</button>
|
|
12
|
+
<button
|
|
13
|
+
class="delete-tab"
|
|
14
|
+
@click.stop="deleteCategory(tab)"
|
|
15
|
+
title="Eliminar categoría"
|
|
16
|
+
>
|
|
17
|
+
×
|
|
18
|
+
</button>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="container-tab">
|
|
21
|
+
<button
|
|
22
|
+
class="tab add-tab"
|
|
23
|
+
@click="addCategoryPrompt"
|
|
24
|
+
title="Añadir nueva categoría"
|
|
25
|
+
>
|
|
26
|
+
+
|
|
27
|
+
</button>
|
|
12
28
|
</div>
|
|
13
29
|
</div>
|
|
14
30
|
|
|
@@ -83,6 +99,7 @@ export default {
|
|
|
83
99
|
},
|
|
84
100
|
data() {
|
|
85
101
|
const STORAGE_KEY = 'bookmark_manager_state';
|
|
102
|
+
const CATEGORIES_KEY = 'bookmark_categories';
|
|
86
103
|
|
|
87
104
|
const defaultBookmarks = {
|
|
88
105
|
Personal: [
|
|
@@ -162,10 +179,18 @@ export default {
|
|
|
162
179
|
? JSON.parse(localStorage.getItem(STORAGE_KEY)) || defaultBookmarks
|
|
163
180
|
: defaultBookmarks;
|
|
164
181
|
|
|
182
|
+
const storedCategories = this.useStorage
|
|
183
|
+
? JSON.parse(localStorage.getItem(CATEGORIES_KEY))
|
|
184
|
+
: null;
|
|
185
|
+
|
|
186
|
+
const userCategories = storedCategories || [...this.categories];
|
|
187
|
+
|
|
165
188
|
return {
|
|
166
189
|
STORAGE_KEY,
|
|
190
|
+
CATEGORIES_KEY,
|
|
167
191
|
bookmarks,
|
|
168
|
-
|
|
192
|
+
userCategories,
|
|
193
|
+
activeTab: userCategories[0] || 'Personal',
|
|
169
194
|
faviconAttempts: {}
|
|
170
195
|
};
|
|
171
196
|
},
|
|
@@ -178,6 +203,69 @@ export default {
|
|
|
178
203
|
saveState() {
|
|
179
204
|
if (this.useStorage) {
|
|
180
205
|
localStorage.setItem(this.STORAGE_KEY, JSON.stringify(this.bookmarks));
|
|
206
|
+
localStorage.setItem(this.CATEGORIES_KEY, JSON.stringify(this.userCategories));
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
async addCategoryPrompt() {
|
|
210
|
+
const categoryName = await window.ZenModals.showPrompt({
|
|
211
|
+
title: 'Nueva Categoría',
|
|
212
|
+
message: 'Introduce el nombre de la nueva categoría:',
|
|
213
|
+
inputPlaceholder: 'Ej: Hobbies, Finanzas, etc.'
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
if (!categoryName || !categoryName.trim()) return;
|
|
217
|
+
|
|
218
|
+
const trimmedName = categoryName.trim();
|
|
219
|
+
|
|
220
|
+
// Verificar si ya existe
|
|
221
|
+
if (this.userCategories.includes(trimmedName)) {
|
|
222
|
+
alert('Esta categoría ya existe');
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Añadir la nueva categoría
|
|
227
|
+
this.userCategories.push(trimmedName);
|
|
228
|
+
|
|
229
|
+
// Inicializar con array vacío de bookmarks
|
|
230
|
+
if (!this.bookmarks[trimmedName]) {
|
|
231
|
+
this.bookmarks[trimmedName] = [];
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Cambiar a la nueva categoría
|
|
235
|
+
this.activeTab = trimmedName;
|
|
236
|
+
|
|
237
|
+
this.saveState();
|
|
238
|
+
},
|
|
239
|
+
async deleteCategory(category) {
|
|
240
|
+
// No permitir eliminar si es la única categoría que queda
|
|
241
|
+
if (this.userCategories.length <= 1) {
|
|
242
|
+
alert('No puedes eliminar la única categoría. Debe existir al menos una.');
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
const bookmarkCount = this.bookmarks[category]?.length || 0;
|
|
247
|
+
const message = bookmarkCount > 0
|
|
248
|
+
? `¿Estás seguro de eliminar la categoría "${category}"? Se eliminarán ${bookmarkCount} marcador(es).`
|
|
249
|
+
: `¿Estás seguro de eliminar la categoría "${category}"?`;
|
|
250
|
+
|
|
251
|
+
const confirmed = await window.ZenModals.showDeleteConfirm(category, message);
|
|
252
|
+
|
|
253
|
+
if (confirmed) {
|
|
254
|
+
// Eliminar la categoría del array
|
|
255
|
+
const index = this.userCategories.indexOf(category);
|
|
256
|
+
if (index > -1) {
|
|
257
|
+
this.userCategories.splice(index, 1);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Eliminar los bookmarks de esa categoría
|
|
261
|
+
delete this.bookmarks[category];
|
|
262
|
+
|
|
263
|
+
// Si era la categoría activa, cambiar a la primera disponible
|
|
264
|
+
if (this.activeTab === category) {
|
|
265
|
+
this.activeTab = this.userCategories[0];
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
this.saveState();
|
|
181
269
|
}
|
|
182
270
|
},
|
|
183
271
|
setActiveTab(tab) {
|
|
@@ -355,6 +443,53 @@ export default {
|
|
|
355
443
|
|
|
356
444
|
.container-tab {
|
|
357
445
|
position: relative;
|
|
446
|
+
display: flex;
|
|
447
|
+
align-items: center;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.delete-tab {
|
|
451
|
+
position: absolute;
|
|
452
|
+
top: -6px;
|
|
453
|
+
right: -6px;
|
|
454
|
+
width: 18px;
|
|
455
|
+
height: 18px;
|
|
456
|
+
border-radius: 50%;
|
|
457
|
+
border: none;
|
|
458
|
+
background-color: #dc2626;
|
|
459
|
+
color: white;
|
|
460
|
+
font-size: 14px;
|
|
461
|
+
font-weight: bold;
|
|
462
|
+
cursor: pointer;
|
|
463
|
+
display: flex;
|
|
464
|
+
align-items: center;
|
|
465
|
+
justify-content: center;
|
|
466
|
+
padding: 0;
|
|
467
|
+
line-height: 1;
|
|
468
|
+
opacity: 0;
|
|
469
|
+
transition: opacity 0.2s;
|
|
470
|
+
z-index: 10;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.container-tab:hover .delete-tab {
|
|
474
|
+
opacity: 1;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
.delete-tab:hover {
|
|
478
|
+
background-color: #b91c1c;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.add-tab {
|
|
482
|
+
background: linear-gradient(135deg, #066D5A 0%, #0891b2 100%);
|
|
483
|
+
color: white;
|
|
484
|
+
font-size: 1.2rem;
|
|
485
|
+
font-weight: bold;
|
|
486
|
+
padding: 8px 1.2rem !important;
|
|
487
|
+
transition: all 0.3s ease;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.add-tab:hover {
|
|
491
|
+
transform: scale(1.05);
|
|
492
|
+
box-shadow: 0 4px 12px rgba(6, 109, 90, 0.4);
|
|
358
493
|
}
|
|
359
494
|
|
|
360
495
|
|