SamDNX commited on
Commit
199a1f1
·
1 Parent(s): 186e6f5

Deploy 2026-07-27T11:28:32Z

Browse files
assets/{index-7NgnZhs6.css → index-BuRRuYzQ.css} RENAMED
@@ -1 +1 @@
1
- :root,:root[data-theme=dark]{--bg: #0f172a;--surface: #1e293b;--surface-2: #273449;--border: #334155;--text: #e2e8f0;--muted: #94a3b8;--green: #16a34a;--green-bright: #22c55e;--danger: #ef4444;--radius: 14px;color-scheme:dark}:root[data-theme=light]{--bg: #f8fafc;--surface: #ffffff;--surface-2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--green: #16a34a;--green-bright: #15803d;--danger: #dc2626;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;min-height:100dvh;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.app{max-width:620px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,12px)}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:max(env(safe-area-inset-top,0px),14px) 16px 12px;background:linear-gradient(180deg,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:10px}.logo{width:40px;height:40px;border-radius:10px;display:block}.app-header h1{margin:0;font-size:22px;letter-spacing:-.02em}.subtitle{margin:0;font-size:13px;color:var(--muted)}.sync-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.sync-status .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.sync-status.ok .dot{background:var(--green-bright)}.sync-status.syncing .dot{background:#f59e0b;animation:pulse 1s infinite}.sync-status.offline .dot{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.icon-btn{border:1px solid var(--border);background:var(--surface);border-radius:999px;width:34px;height:34px;font-size:16px;display:inline-flex;align-items:center;justify-content:center}.header-top{display:flex;gap:8px;align-items:center}.tools{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 22px}.tool-btn{padding:9px 14px;font-size:13px;font-weight:600;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.tool-btn:active{border-color:var(--green-bright)}.cat-title{cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;background:none;border:none;text-align:left}.cat-caret{margin-left:auto;transition:transform .15s;font-size:18px;padding:4px 6px;color:var(--muted)}.cat-caret.collapsed{transform:rotate(-90deg)}.row-wrap{position:relative;overflow:hidden;border-radius:var(--radius)}.row-actions{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:space-between;align-items:center;padding:0 20px;font-size:18px}.row-actions .act-check{color:#fff}.row-actions .act-del{color:#fff;margin-left:auto}.row-wrap.swipe-check .row-actions{background:var(--green)}.row-wrap.swipe-del .row-actions{background:var(--danger)}.row{position:relative;touch-action:pan-y;transition:transform .15s ease}.qty-stepper{display:inline-flex;align-items:center;gap:8px}.qty-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:20px;line-height:1}.qty-val{min-width:30px;text-align:center;font-size:15px;font-weight:600}.row-unit{font-size:12px;color:var(--muted);margin-left:2px}.row-actions-btns{display:flex;align-items:center;gap:4px}.mini-btn{border:none;background:var(--surface-2);color:var(--muted);font-size:16px;width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.mini-btn.active{color:var(--green-bright)}.row-note{font-size:12px;color:var(--muted);font-style:italic}.row-claim{font-size:11px;color:#a855f7}.note-input{width:100%;margin-top:6px;padding:8px 10px;font-size:13px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.row-expand{padding:0 14px 12px}.budget-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);font-weight:600}.budget-total .amount{color:var(--green-bright)}.staple-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.staple-row:last-child{border-bottom:none}.staple-add{display:flex;gap:8px;margin-top:12px}.modal-list{max-height:50vh;overflow-y:auto}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.user-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-btn:active{border-color:var(--green-bright)}.row-text{display:flex;flex-direction:column;gap:4px}.row-by{font-size:11px;color:var(--muted)}.row.done .row-by{opacity:.6}.row-price{font-size:12px;color:var(--green-bright);margin-left:6px;font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.modal h2{margin:0 0 6px;font-size:20px}.modal-sub{margin:0 0 16px;font-size:13px;color:var(--muted)}.modal-input{width:100%;padding:13px 14px;font-size:16px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.modal-input:focus{outline:none;border-color:var(--green-bright)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-btn{padding:11px 18px;font-size:15px;font-weight:600;border:none;border-radius:12px;background:var(--green);color:#fff}.modal-btn:disabled{opacity:.5}.modal-btn.ghost{background:none;border:1px solid var(--border);color:var(--muted)}.banner{margin:0 16px 8px;padding:10px 12px;font-size:13px;background:#422006;border:1px solid #854d0e;color:#fde68a;border-radius:var(--radius)}.banner code{background:#0000004d;padding:1px 5px;border-radius:5px}.app-main{padding:10px 18px 32px;flex:1}.addbar{position:relative;margin-bottom:20px}.addbar-form{display:flex;gap:8px;position:relative}.addbar-input{flex:1;padding:14px 16px;font-size:16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text)}.addbar-input:focus{outline:none;border-color:var(--green-bright)}.addbar-btn{padding:0 20px;font-size:15px;font-weight:600;border:none;border-radius:var(--radius);background:var(--green);color:#fff}.addbar-btn:active{background:var(--green-bright)}.suggest-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);z-index:20;box-shadow:0 12px 30px #0006}.suggest-row{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:none;border:none;color:var(--text);font-size:15px;border-radius:10px;text-align:left}.suggest-row:active{background:var(--surface)}.suggest-cat{font-size:12px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.chips-label{font-size:12px;color:var(--muted);width:100%}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.chip:active{border-color:var(--green-bright)}.chip-ai{border-color:#7c3aed;background:#2e1065}.chip-cat{font-size:11px;color:var(--muted)}.smart{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.smart-btn{padding:10px 16px;font-size:14px;font-weight:600;border-radius:999px;border:1px solid #7c3aed;background:linear-gradient(135deg,#6d28d9,#7c3aed);color:#fff}.smart-btn:disabled{opacity:.5}.smart-hint,.smart-error{font-size:12px;color:var(--muted)}.smart-error{color:#fca5a5}.smart-chips{width:100%}.cat-group{margin-bottom:28px}.cat-title{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px 2px;padding:4px 0}.cat-count{font-size:11px;background:var(--surface-2);color:var(--muted);padding:1px 8px;border-radius:999px}.cat-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 10px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.row-main{display:flex;align-items:center;gap:12px;flex:1 1 58%;min-width:55%;cursor:pointer}.row-main input[type=checkbox]{width:24px;height:24px;accent-color:var(--green-bright);flex-shrink:0}.row-controls{display:flex;align-items:center;gap:6px;margin-left:auto}.row-name{font-size:16px}.row-qty{font-size:13px;color:var(--muted)}.row.done .row-name{text-decoration:line-through;color:var(--muted)}.row-del{border:none;background:none;color:var(--muted);font-size:16px;padding:6px 8px;border-radius:8px}.row-del:active{color:var(--danger);background:var(--surface-2)}.clear-btn{width:100%;margin-top:8px;padding:12px;font-size:14px;border-radius:var(--radius);border:1px dashed var(--border);background:none;color:var(--muted)}.listbar{margin-bottom:16px}.search-input{width:100%;padding:12px 14px;font-size:15px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);margin-bottom:10px}.search-input:focus{outline:none;border-color:var(--green-bright)}.filter-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.filter-chip{padding:7px 12px;font-size:12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);min-height:34px}.filter-chip.on{background:var(--green);color:#fff;border-color:var(--green)}.filter-sep{width:1px;height:20px;background:var(--border);margin:0 2px}.toast-wrap{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px;z-index:60;pointer-events:none}.toast{pointer-events:auto;max-width:480px;width:fit-content;padding:12px 16px;border-radius:12px;font-size:14px;border:1px solid var(--border);color:#fff;box-shadow:0 10px 30px #0006}.toast-error{background:#7f1d1d;border-color:#b91c1c}.toast-info{background:var(--surface-2);color:var(--text)}.toast-success{background:#14532d;border-color:#166534}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty-emoji{font-size:46px;margin:0 0 8px}.empty p{margin:4px 0}.empty-hint{font-size:13px}
 
1
+ :root,:root[data-theme=dark]{--bg: #0f172a;--surface: #1e293b;--surface-2: #273449;--border: #334155;--text: #e2e8f0;--muted: #94a3b8;--green: #16a34a;--green-bright: #22c55e;--danger: #ef4444;--radius: 14px;color-scheme:dark}:root[data-theme=light]{--bg: #f8fafc;--surface: #ffffff;--surface-2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--green: #16a34a;--green-bright: #15803d;--danger: #dc2626;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;min-height:100dvh;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.app{max-width:620px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,12px)}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:max(env(safe-area-inset-top,0px),14px) 16px 12px;background:linear-gradient(180deg,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:10px}.logo{width:40px;height:40px;border-radius:10px;display:block}.app-header h1{margin:0;font-size:22px;letter-spacing:-.02em}.subtitle{margin:0;font-size:13px;color:var(--muted)}.sync-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.sync-status .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.sync-status.ok .dot{background:var(--green-bright)}.sync-status.syncing .dot{background:#f59e0b;animation:pulse 1s infinite}.sync-status.offline .dot{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.icon-btn{border:1px solid var(--border);background:var(--surface);border-radius:999px;width:34px;height:34px;font-size:16px;display:inline-flex;align-items:center;justify-content:center}.header-top{display:flex;gap:8px;align-items:center}.tools{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 22px}.tool-btn{padding:9px 14px;font-size:13px;font-weight:600;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.tool-btn:active{border-color:var(--green-bright)}.cat-title{cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;background:none;border:none;text-align:left}.cat-caret{margin-left:auto;transition:transform .15s;font-size:18px;padding:4px 6px;color:var(--muted)}.cat-caret.collapsed{transform:rotate(-90deg)}.row-wrap{position:relative;overflow:hidden;border-radius:var(--radius)}.row-actions{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:space-between;align-items:center;padding:0 20px;font-size:18px}.row-actions .act-check{color:#fff}.row-actions .act-del{color:#fff;margin-left:auto}.row-wrap.swipe-check .row-actions{background:var(--green)}.row-wrap.swipe-del .row-actions{background:var(--danger)}.row{position:relative;touch-action:pan-y;transition:transform .15s ease}.qty-stepper{display:inline-flex;align-items:center;gap:8px}.qty-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:20px;line-height:1}.qty-val{min-width:30px;text-align:center;font-size:15px;font-weight:600}.row-unit{font-size:12px;color:var(--muted);margin-left:2px}.row-actions-btns{display:flex;align-items:center;gap:4px}.mini-btn{border:none;background:var(--surface-2);color:var(--muted);font-size:16px;width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.mini-btn.active{color:var(--green-bright)}.row-note{font-size:12px;color:var(--muted);font-style:italic}.row-claim{font-size:11px;color:#a855f7}.note-input{width:100%;margin-top:6px;padding:8px 10px;font-size:13px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.row-expand{padding:0 14px 12px}.budget-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);font-weight:600}.budget-total .amount{color:var(--green-bright)}.staple-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.staple-row:last-child{border-bottom:none}.staple-add{display:flex;gap:8px;margin-top:12px}.modal-list{max-height:50vh;overflow-y:auto}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.user-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-btn:active{border-color:var(--green-bright)}.row-text{display:flex;flex-direction:column;gap:4px}.row-by{font-size:11px;color:var(--muted)}.row.done .row-by{opacity:.6}.row-price{font-size:12px;color:var(--green-bright);margin-left:6px;font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.modal h2{margin:0 0 6px;font-size:20px}.modal-sub{margin:0 0 16px;font-size:13px;color:var(--muted)}.modal-input{width:100%;padding:13px 14px;font-size:16px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.modal-input:focus{outline:none;border-color:var(--green-bright)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-btn{padding:11px 18px;font-size:15px;font-weight:600;border:none;border-radius:12px;background:var(--green);color:#fff}.modal-btn:disabled{opacity:.5}.modal-btn.ghost{background:none;border:1px solid var(--border);color:var(--muted)}.banner{margin:0 16px 8px;padding:10px 12px;font-size:13px;background:#422006;border:1px solid #854d0e;color:#fde68a;border-radius:var(--radius)}.banner code{background:#0000004d;padding:1px 5px;border-radius:5px}.app-main{padding:10px 18px 32px;flex:1}.addbar{position:relative;margin-bottom:20px}.addbar-form{display:flex;gap:8px;position:relative}.addbar-input{flex:1;padding:14px 16px;font-size:16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text)}.addbar-input:focus{outline:none;border-color:var(--green-bright)}.addbar-btn{padding:0 20px;font-size:15px;font-weight:600;border:none;border-radius:var(--radius);background:var(--green);color:#fff}.addbar-btn:active{background:var(--green-bright)}.suggest-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);z-index:20;box-shadow:0 12px 30px #0006}.suggest-row{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:none;border:none;color:var(--text);font-size:15px;border-radius:10px;text-align:left}.suggest-row:active{background:var(--surface)}.suggest-cat{font-size:12px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.chips-label{font-size:12px;color:var(--muted);width:100%}.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.chip:active{border-color:var(--green-bright)}.chip-ai{border-color:#7c3aed;background:#2e1065}.chip-cat{font-size:11px;color:var(--muted)}.smart{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.smart-btn{padding:10px 16px;font-size:14px;font-weight:600;border-radius:999px;border:1px solid #7c3aed;background:linear-gradient(135deg,#6d28d9,#7c3aed);color:#fff}.smart-btn:disabled{opacity:.5}.smart-hint,.smart-error{font-size:12px;color:var(--muted)}.smart-error{color:#fca5a5}.smart-chips{width:100%}.cat-group{margin-bottom:28px}.cat-title{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px 2px;padding:4px 0}.cat-count{font-size:11px;background:var(--surface-2);color:var(--muted);padding:1px 8px;border-radius:999px}.cat-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 10px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.row-main{display:flex;align-items:center;gap:12px;flex:1 1 58%;min-width:55%;cursor:pointer}.row-main input[type=checkbox]{width:24px;height:24px;accent-color:var(--green-bright);flex-shrink:0}.row-controls{display:flex;align-items:center;gap:6px;margin-left:auto}.row-name{font-size:16px}.row-qty{font-size:13px;color:var(--muted)}.row.done .row-name{text-decoration:line-through;color:var(--muted)}.row-del{border:none;background:none;color:var(--muted);font-size:16px;padding:6px 8px;border-radius:8px}.row-del:active{color:var(--danger);background:var(--surface-2)}.clear-btn{width:100%;margin-top:8px;padding:12px;font-size:14px;border-radius:var(--radius);border:1px dashed var(--border);background:none;color:var(--muted)}.search-toggle{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;font-size:13px;font-weight:600;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);margin-bottom:14px}.search-toggle.open{color:var(--text);border-color:var(--green-bright)}.listbar{margin-bottom:16px}.search-input{width:100%;padding:12px 14px;font-size:15px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);margin-bottom:10px}.search-input:focus{outline:none;border-color:var(--green-bright)}.filter-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.filter-chip{padding:7px 12px;font-size:12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);min-height:34px}.filter-chip.on{background:var(--green);color:#fff;border-color:var(--green)}.filter-sep{width:1px;height:20px;background:var(--border);margin:0 2px}.toast-wrap{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px;z-index:60;pointer-events:none}.toast{pointer-events:auto;max-width:480px;width:fit-content;padding:12px 16px;border-radius:12px;font-size:14px;border:1px solid var(--border);color:#fff;box-shadow:0 10px 30px #0006}.toast-error{background:#7f1d1d;border-color:#b91c1c}.toast-info{background:var(--surface-2);color:var(--text)}.toast-success{background:#14532d;border-color:#166534}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty-emoji{font-size:46px;margin:0 0 8px}.empty p{margin:4px 0}.empty-hint{font-size:13px}
assets/{index-CB4EHFsl.js → index-D9fP3xj3.js} RENAMED
The diff for this file is too large to render. See raw diff
 
assets/{web-CKtdNl3J.js → web-CQQjoge6.js} RENAMED
@@ -1 +1 @@
1
- import{W as p}from"./index-CB4EHFsl.js";class f extends p{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}export{f as PreferencesWeb};
 
1
+ import{W as p}from"./index-D9fP3xj3.js";class f extends p{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}export{f as PreferencesWeb};
assets/{web-BZOf0cU8.js → web-Dqj3s2T8.js} RENAMED
@@ -1 +1 @@
1
- import{W as s}from"./index-CB4EHFsl.js";class c extends s{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!("Notification"in window)||!Notification.requestPermission)return!1;if(Notification.permission!=="granted")try{new Notification("")}catch(i){if(i.name=="TypeError")return!1}return!0}}async getDeliveredNotifications(){const i=[];for(const t of this.deliveredNotifications){const e={title:t.title,id:parseInt(t.tag),body:t.body};i.push(e)}return{notifications:i}}async removeDeliveredNotifications(i){for(const t of i.notifications){const e=this.deliveredNotifications.find(n=>n.tag===String(t.id));e==null||e.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(const i of this.deliveredNotifications)i.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented("Not implemented on web.")}async deleteChannel(){throw this.unimplemented("Not implemented on web.")}async listChannels(){throw this.unimplemented("Not implemented on web.")}async schedule(i){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");for(const t of i.notifications)this.sendNotification(t);return{notifications:i.notifications.map(t=>({id:t.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented("Not implemented on web.")}async cancel(i){this.pending=this.pending.filter(t=>!i.notifications.find(e=>e.id===t.id))}async areEnabled(){const{display:i}=await this.checkPermissions();return{value:i==="granted"}}async changeExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async checkExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(i){switch(i){case"granted":return"granted";case"denied":return"denied";default:return"prompt"}}sendPending(){var i;const t=[],e=new Date().getTime();for(const n of this.pending)!((i=n.schedule)===null||i===void 0)&&i.at&&n.schedule.at.getTime()<=e&&(this.buildNotification(n),t.push(n));this.pending=this.pending.filter(n=>!t.find(o=>o===n))}sendNotification(i){var t;if(!((t=i.schedule)===null||t===void 0)&&t.at){const e=i.schedule.at.getTime()-new Date().getTime();this.pending.push(i),setTimeout(()=>{this.sendPending()},e);return}this.buildNotification(i)}buildNotification(i){const t=new Notification(i.title,{body:i.body,tag:String(i.id)});return t.addEventListener("click",this.onClick.bind(this,i),!1),t.addEventListener("show",this.onShow.bind(this,i),!1),t.addEventListener("close",()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(i){const t={actionId:"tap",notification:i};this.notifyListeners("localNotificationActionPerformed",t)}onShow(i){this.notifyListeners("localNotificationReceived",i)}}export{c as LocalNotificationsWeb};
 
1
+ import{W as s}from"./index-D9fP3xj3.js";class c extends s{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!("Notification"in window)||!Notification.requestPermission)return!1;if(Notification.permission!=="granted")try{new Notification("")}catch(i){if(i.name=="TypeError")return!1}return!0}}async getDeliveredNotifications(){const i=[];for(const t of this.deliveredNotifications){const e={title:t.title,id:parseInt(t.tag),body:t.body};i.push(e)}return{notifications:i}}async removeDeliveredNotifications(i){for(const t of i.notifications){const e=this.deliveredNotifications.find(n=>n.tag===String(t.id));e==null||e.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(const i of this.deliveredNotifications)i.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented("Not implemented on web.")}async deleteChannel(){throw this.unimplemented("Not implemented on web.")}async listChannels(){throw this.unimplemented("Not implemented on web.")}async schedule(i){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");for(const t of i.notifications)this.sendNotification(t);return{notifications:i.notifications.map(t=>({id:t.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented("Not implemented on web.")}async cancel(i){this.pending=this.pending.filter(t=>!i.notifications.find(e=>e.id===t.id))}async areEnabled(){const{display:i}=await this.checkPermissions();return{value:i==="granted"}}async changeExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async checkExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(i){switch(i){case"granted":return"granted";case"denied":return"denied";default:return"prompt"}}sendPending(){var i;const t=[],e=new Date().getTime();for(const n of this.pending)!((i=n.schedule)===null||i===void 0)&&i.at&&n.schedule.at.getTime()<=e&&(this.buildNotification(n),t.push(n));this.pending=this.pending.filter(n=>!t.find(o=>o===n))}sendNotification(i){var t;if(!((t=i.schedule)===null||t===void 0)&&t.at){const e=i.schedule.at.getTime()-new Date().getTime();this.pending.push(i),setTimeout(()=>{this.sendPending()},e);return}this.buildNotification(i)}buildNotification(i){const t=new Notification(i.title,{body:i.body,tag:String(i.id)});return t.addEventListener("click",this.onClick.bind(this,i),!1),t.addEventListener("show",this.onShow.bind(this,i),!1),t.addEventListener("close",()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(i){const t={actionId:"tap",notification:i};this.notifyListeners("localNotificationActionPerformed",t)}onShow(i){this.notifyListeners("localNotificationReceived",i)}}export{c as LocalNotificationsWeb};
assets/{web-9dXX6WvN.js → web-gbozUJhT.js} RENAMED
@@ -1 +1 @@
1
- import{W as a,I as i,N as r}from"./index-CB4EHFsl.js";class o extends a{constructor(){super(...arguments),this.selectionStarted=!1}async impact(t){const e=this.patternForImpact(t==null?void 0:t.style);this.vibrateWithPattern(e)}async notification(t){const e=this.patternForNotification(t==null?void 0:t.type);this.vibrateWithPattern(e)}async vibrate(t){const e=(t==null?void 0:t.duration)||300;this.vibrateWithPattern([e])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(t=i.Heavy){return t===i.Medium?[43]:t===i.Light?[20]:[61]}patternForNotification(t=r.Success){return t===r.Warning?[30,40,30,50,60]:t===r.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(t){if(navigator.vibrate)navigator.vibrate(t);else throw this.unavailable("Browser does not support the vibrate API")}}export{o as HapticsWeb};
 
1
+ import{W as a,I as i,N as r}from"./index-D9fP3xj3.js";class o extends a{constructor(){super(...arguments),this.selectionStarted=!1}async impact(t){const e=this.patternForImpact(t==null?void 0:t.style);this.vibrateWithPattern(e)}async notification(t){const e=this.patternForNotification(t==null?void 0:t.type);this.vibrateWithPattern(e)}async vibrate(t){const e=(t==null?void 0:t.duration)||300;this.vibrateWithPattern([e])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(t=i.Heavy){return t===i.Medium?[43]:t===i.Light?[20]:[61]}patternForNotification(t=r.Success){return t===r.Warning?[30,40,30,50,60]:t===r.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(t){if(navigator.vibrate)navigator.vibrate(t);else throw this.unavailable("Browser does not support the vibrate API")}}export{o as HapticsWeb};
index.html CHANGED
@@ -6,8 +6,8 @@
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, maximum-scale=1.0, user-scalable=no" />
7
  <meta name="theme-color" content="#16a34a" />
8
  <title>Adone groceries</title>
9
- <script type="module" crossorigin src="./assets/index-CB4EHFsl.js"></script>
10
- <link rel="stylesheet" crossorigin href="./assets/index-7NgnZhs6.css">
11
  <link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="./registerSW.js"></script></head>
12
  <body>
13
  <div id="root"></div>
 
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, maximum-scale=1.0, user-scalable=no" />
7
  <meta name="theme-color" content="#16a34a" />
8
  <title>Adone groceries</title>
9
+ <script type="module" crossorigin src="./assets/index-D9fP3xj3.js"></script>
10
+ <link rel="stylesheet" crossorigin href="./assets/index-BuRRuYzQ.css">
11
  <link rel="manifest" href="./manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="./registerSW.js"></script></head>
12
  <body>
13
  <div id="root"></div>
sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let o={};const l=e=>i(e,c),f={module:{uri:c},exports:o,require:l};s[c]=Promise.all(n.map(e=>f[e]||l(e))).then(e=>(r(...e),o))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"index.html",revision:"d8f6dcfd60ee2f93da2472dce9cce2fe"},{url:"icon-512.png",revision:"0da36094ac81c0173ca5e666ff6b1f88"},{url:"icon-192.png",revision:"c5fb76499dc16b3a6fbc9fc04d6d4535"},{url:"favicon.svg",revision:"33a66a4588d5846878eab7f2592bc113"},{url:"assets/web-CKtdNl3J.js",revision:null},{url:"assets/web-BZOf0cU8.js",revision:null},{url:"assets/web-9dXX6WvN.js",revision:null},{url:"assets/index-CB4EHFsl.js",revision:null},{url:"assets/index-7NgnZhs6.css",revision:null},{url:"favicon.svg",revision:"33a66a4588d5846878eab7f2592bc113"},{url:"icon-192.png",revision:"c5fb76499dc16b3a6fbc9fc04d6d4535"},{url:"icon-512.png",revision:"0da36094ac81c0173ca5e666ff6b1f88"},{url:"manifest.webmanifest",revision:"1f98270c21d28b8b0f18e5d29efe0ef4"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});
 
1
+ if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let c={};const l=e=>i(e,o),f={module:{uri:o},exports:c,require:l};s[o]=Promise.all(n.map(e=>f[e]||l(e))).then(e=>(r(...e),c))}}define(["./workbox-9c191d2f"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"index.html",revision:"4a1d964418617f134da8d491c01291f3"},{url:"icon-512.png",revision:"0da36094ac81c0173ca5e666ff6b1f88"},{url:"icon-192.png",revision:"c5fb76499dc16b3a6fbc9fc04d6d4535"},{url:"favicon.svg",revision:"33a66a4588d5846878eab7f2592bc113"},{url:"assets/web-gbozUJhT.js",revision:null},{url:"assets/web-Dqj3s2T8.js",revision:null},{url:"assets/web-CQQjoge6.js",revision:null},{url:"assets/index-D9fP3xj3.js",revision:null},{url:"assets/index-BuRRuYzQ.css",revision:null},{url:"favicon.svg",revision:"33a66a4588d5846878eab7f2592bc113"},{url:"icon-192.png",revision:"c5fb76499dc16b3a6fbc9fc04d6d4535"},{url:"icon-512.png",revision:"0da36094ac81c0173ca5e666ff6b1f88"},{url:"manifest.webmanifest",revision:"1f98270c21d28b8b0f18e5d29efe0ef4"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});