pelagora 0.2.0 → 0.2.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/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +129 -91
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
- package/footer-brand.png +0 -0
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAe9B,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAe9B,wBAAgB,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CA2G9D"}
|
package/dist/api/index.js
CHANGED
|
@@ -65,6 +65,8 @@ function createApp(localToken) {
|
|
|
65
65
|
app.get('/favicon.ico', (_req, res) => { res.type('image/x-icon').sendFile(path_1.default.join(__dirname, '../../favicon.ico')); });
|
|
66
66
|
app.get('/footer-brand.png', (_req, res) => { res.sendFile(path_1.default.join(__dirname, '../../footer-brand.png')); });
|
|
67
67
|
app.get('/header-logo.png', (_req, res) => { res.sendFile(path_1.default.join(__dirname, '../../header-logo.png')); });
|
|
68
|
+
app.get('/pelagora-logo.png', (_req, res) => { res.sendFile(path_1.default.join(__dirname, '../../pelagora-logo.png')); });
|
|
69
|
+
app.get('/pelagora-logo-reverse.png', (_req, res) => { res.sendFile(path_1.default.join(__dirname, '../../pelagora-logo_reverse.png')); });
|
|
68
70
|
app.get('/', (_req, res) => {
|
|
69
71
|
res.type('html').send((0, ui_1.renderUI)(localToken));
|
|
70
72
|
});
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;AAeA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAGA,wBAAgB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAyhPpD"}
|
package/dist/ui.js
CHANGED
|
@@ -39,8 +39,11 @@ function renderUI(localToken) {
|
|
|
39
39
|
h1 { font-family: 'Fira Sans', sans-serif; font-size: 1.25rem; font-weight: 700; color: #1A1A2E; margin: 0; }
|
|
40
40
|
|
|
41
41
|
/* App Header — sticky bar */
|
|
42
|
-
.app-header { position: sticky; top: 0; z-index: 100; background: #1A1A2E; border-bottom: 3px solid #D4602A; padding: 0 24px; }
|
|
43
|
-
.app-header
|
|
42
|
+
.app-header { position: sticky; top: 0; z-index: 100; background: #1A1A2E; border-bottom: 3px solid #D4602A; padding: 0 24px; margin-left: 240px; width: calc(100% - 240px); transition: margin-left 0.3s, width 0.3s; }
|
|
43
|
+
body.sidebar-collapsed .app-header { margin-left: 60px; width: calc(100% - 60px); }
|
|
44
|
+
.app-header .app-header-logo { display: none; }
|
|
45
|
+
.app-header-inner { display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 16px; transition: height 0.25s; }
|
|
46
|
+
.app-header.search-expanded .app-header-inner { height: 80px; }
|
|
44
47
|
.app-header-logo { display: flex; align-items: center; gap: 10px; cursor: pointer; flex-shrink: 0; }
|
|
45
48
|
.app-header-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
|
|
46
49
|
.header-settings-btn { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; position: relative; color: rgba(255,255,255,0.6); }
|
|
@@ -212,10 +215,10 @@ function renderUI(localToken) {
|
|
|
212
215
|
/* Badges — status.sass: inline-block, 12px bold uppercase, 13px radius, 26px line-height */
|
|
213
216
|
.badge { display: inline-block; font-size: 12px; font-weight: 600; padding: 4px 14px; border-radius: 20px; line-height: 1; text-transform: uppercase; letter-spacing: 0.06em; }
|
|
214
217
|
.badge-cat { background: #EDE8E3; color: #4A5568; }
|
|
215
|
-
.badge-private { background: #
|
|
216
|
-
.badge-for-sale { background: #
|
|
217
|
-
.badge-willing { background: #
|
|
218
|
-
.badge-for-rent { background: #
|
|
218
|
+
.badge-private { background: #1A1A2E; color: #FFFFFF; }
|
|
219
|
+
.badge-for-sale { background: #2D8A6E; color: #FFFFFF; }
|
|
220
|
+
.badge-willing { background: #D4922A; color: #FFFFFF; }
|
|
221
|
+
.badge-for-rent { background: #4A90D9; color: #FFFFFF; }
|
|
219
222
|
.card-price { font-size: 16px; font-weight: 700; color: #2D8A6E; margin-top: 4px; }
|
|
220
223
|
.card-qty { font-size: 12px; color: #4A5568; margin-top: 4px; font-weight: 500; }
|
|
221
224
|
.card-desc { font-size: 14px; color: #4A5568; margin-top: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.71; }
|
|
@@ -223,10 +226,16 @@ function renderUI(localToken) {
|
|
|
223
226
|
/* Status segmented control */
|
|
224
227
|
.status-segmented { display:flex; border-radius:12px; overflow:hidden; border:1px solid #CBD5E0; margin-bottom:14px; }
|
|
225
228
|
.status-segmented button { flex:1; padding:8px 12px; border:none; font-size:12px; font-weight:600; cursor:pointer; transition:all 0.2s; background:transparent; color:#4A5568; text-align:center; white-space:nowrap; font-family:'DM Sans',sans-serif; }
|
|
226
|
-
.seg-active-private { background:#
|
|
227
|
-
.seg-active-for_sale { background:#
|
|
228
|
-
.seg-active-willing_to_sell { background:#
|
|
229
|
-
.seg-active-for_rent { background:#
|
|
229
|
+
.seg-active-private { background:#1A1A2E !important; color:#fff !important; }
|
|
230
|
+
.seg-active-for_sale { background:#16A34A !important; color:#fff !important; }
|
|
231
|
+
.seg-active-willing_to_sell { background:#D97706 !important; color:#fff !important; }
|
|
232
|
+
.seg-active-for_rent { background:#2563EB !important; color:#fff !important; }
|
|
233
|
+
|
|
234
|
+
/* Fieldset chevrons */
|
|
235
|
+
details > summary .chevron-indicator { transition: transform 0.3s; }
|
|
236
|
+
details[open] > summary .chevron-indicator { transform: rotate(180deg); }
|
|
237
|
+
details > summary { list-style: none; }
|
|
238
|
+
details > summary::-webkit-details-marker { display: none; }
|
|
230
239
|
|
|
231
240
|
/* Price estimate card */
|
|
232
241
|
.price-estimate-card { background: linear-gradient(135deg, #E6F5F3 0%, #E6F5F3 100%); border: 1px solid #B2DFD8; border-left: 3px solid #1A8A7D; border-radius: 12px; padding: 14px 14px 14px 16px; margin-bottom: 14px; }
|
|
@@ -584,7 +593,17 @@ function renderUI(localToken) {
|
|
|
584
593
|
|
|
585
594
|
/* Dashboard layout */
|
|
586
595
|
.dashboard-layout { display: flex; min-height: calc(100dvh - 64px); }
|
|
587
|
-
.sidebar { width: 240px; background: #FFFFFF; border-right: 1px solid #CBD5E0; position: fixed; top:
|
|
596
|
+
.sidebar { width: 240px; background: #FFFFFF; border-right: 1px solid #CBD5E0; position: fixed; top: 0; left: 0; height: 100dvh; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; -ms-overflow-style: none; flex-shrink: 0; transition: all 0.3s; z-index: 110; padding: 16px 0; }
|
|
597
|
+
.sidebar.collapsed { width: 60px; }
|
|
598
|
+
.sidebar.collapsed .sidebar-section-title { display: none; }
|
|
599
|
+
.sidebar.collapsed .sidebar-nav-item { padding: 10px 0; justify-content: center; font-size: 0; }
|
|
600
|
+
.sidebar.collapsed .sidebar-nav-item svg { margin: 0; }
|
|
601
|
+
.sidebar.collapsed .sidebar-divider { margin: 4px 8px; }
|
|
602
|
+
.sidebar.collapsed .sidebar-logo-text { display: none; }
|
|
603
|
+
.sidebar.collapsed .sidebar-logo-img { height: 24px; }
|
|
604
|
+
body.sidebar-collapsed .sidebar-logo-text { display: none; }
|
|
605
|
+
body.sidebar-collapsed .sidebar-logo-img { height: 24px; }
|
|
606
|
+
.sidebar.collapsed .sidebar-collapse-btn { position: static; margin: 4px auto; right: auto; transform: none; }
|
|
588
607
|
.sidebar::-webkit-scrollbar { display: none; }
|
|
589
608
|
.sidebar-section-title { padding: 16px 20px 6px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #4A5568; }
|
|
590
609
|
.sidebar-nav-item { display: flex; align-items: center; gap: 10px; padding: 10px 20px; font-size: 14px; font-weight: 500; color: #1A1A2E; cursor: pointer; transition: all 0.15s; border-left: 3px solid transparent; text-decoration: none; font-family: 'DM Sans', sans-serif; border-top: none; border-right: none; border-bottom: none; background: none; width: 100%; text-align: left; }
|
|
@@ -593,15 +612,20 @@ function renderUI(localToken) {
|
|
|
593
612
|
.sidebar-nav-item svg { flex-shrink: 0; width: 18px; height: 18px; }
|
|
594
613
|
.sidebar-divider { height: 1px; background: #CBD5E0; margin: 8px 20px; }
|
|
595
614
|
.sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(20,20,22,0.3); z-index: 89; }
|
|
596
|
-
.dashboard-main { flex: 1; min-width: 0; margin-left: 240px; }
|
|
615
|
+
.dashboard-main { flex: 1; min-width: 0; margin-left: 240px; transition: margin-left 0.3s; }
|
|
616
|
+
body.sidebar-collapsed .dashboard-main { margin-left: 60px; }
|
|
597
617
|
.sidebar-toggle { display: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.2); background: transparent; cursor: pointer; align-items: center; justify-content: center; color: rgba(255,255,255,0.6); transition: all 0.2s; }
|
|
598
618
|
.sidebar-toggle:hover { border-color: rgba(255,255,255,0.6); color: #FFFFFF; }
|
|
599
619
|
@media (max-width: 768px) {
|
|
600
|
-
.sidebar { transform: translateX(-100%); z-index:
|
|
620
|
+
.sidebar { transform: translateX(-100%); z-index: 111; box-shadow: 4px 0 16px rgba(0,0,0,0.1); }
|
|
601
621
|
.sidebar.open { transform: translateX(0); }
|
|
602
622
|
.sidebar-overlay.open { display: block; }
|
|
603
623
|
.sidebar-toggle { display: flex; }
|
|
604
|
-
.dashboard-main { margin-left: 0; }
|
|
624
|
+
.dashboard-main { margin-left: 0 !important; }
|
|
625
|
+
.app-header { margin-left: 0 !important; width: 100% !important; }
|
|
626
|
+
.app-header .app-header-logo { display: flex !important; }
|
|
627
|
+
.sidebar-collapse-btn { display: none !important; }
|
|
628
|
+
.sidebar-logo-overlay { display: none !important; }
|
|
605
629
|
}
|
|
606
630
|
|
|
607
631
|
/* Dashboard stat cards */
|
|
@@ -643,7 +667,11 @@ function renderUI(localToken) {
|
|
|
643
667
|
.ai-quickstart-llm-btn { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 16px; border-radius: 8px; border: 1px solid #CBD5E0; background: #FFFFFF; font-size: 13px; font-weight: 500; color: #1A1A2E; cursor: pointer; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
|
|
644
668
|
.ai-quickstart-llm-btn:hover { border-color: #0A5E8A; color: #0A5E8A; }
|
|
645
669
|
.ai-quickstart-llm-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
|
|
646
|
-
.ai-quickstart-sidebar-card { margin: 16px 16px 8px; padding: 12px; border-radius: 12px; border: 1px solid rgba(10,94,138,0.2); background: linear-gradient(135deg, rgba(10,94,138,0.04), rgba(10,94,138,0.04)); cursor: pointer; transition: all 0.2s; }
|
|
670
|
+
.ai-quickstart-sidebar-card { margin: 16px 16px 8px; padding: 12px; border-radius: 12px; border: 1px solid rgba(10,94,138,0.2); background: linear-gradient(135deg, rgba(10,94,138,0.04), rgba(10,94,138,0.04)); cursor: pointer; transition: all 0.2s; overflow: hidden; }
|
|
671
|
+
.sidebar.collapsed .ai-quickstart-sidebar-card { margin: 4px 8px; padding: 8px; border-radius: 8px; border: none; background: transparent; }
|
|
672
|
+
.sidebar.collapsed .ai-quickstart-sidebar-card .qs-title { justify-content: center; margin: 0; font-size: 0; color: transparent; }
|
|
673
|
+
.sidebar.collapsed .ai-quickstart-sidebar-card .qs-title svg { width: 18px; height: 18px; }
|
|
674
|
+
.sidebar.collapsed .ai-quickstart-sidebar-card .qs-sub { display: none; }
|
|
647
675
|
.ai-quickstart-sidebar-card:hover { border-color: rgba(10,94,138,0.4); box-shadow: 0 2px 8px rgba(10,94,138,0.08); }
|
|
648
676
|
.ai-quickstart-sidebar-card .qs-title { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #1A1A2E; margin-bottom: 2px; }
|
|
649
677
|
.ai-quickstart-sidebar-card .qs-sub { font-size: 11px; color: #4A5568; }
|
|
@@ -735,7 +763,8 @@ function renderUI(localToken) {
|
|
|
735
763
|
.neg-group-back:hover { color: #B8521F; }
|
|
736
764
|
|
|
737
765
|
/* Footer */
|
|
738
|
-
.app-footer { border-top: 1px solid #CBD5E0; background: #FFFFFF; padding: 0; margin-left: 240px; }
|
|
766
|
+
.app-footer { border-top: 1px solid #CBD5E0; background: #FFFFFF; padding: 0; margin-left: 240px; transition: margin-left 0.3s; }
|
|
767
|
+
body.sidebar-collapsed .app-footer { margin-left: 60px; }
|
|
739
768
|
.app-footer-inner { max-width: 1100px; margin: 0 auto; padding: 48px 24px; }
|
|
740
769
|
.app-footer-grid { display: grid; grid-template-columns: 140px 1fr 1fr 1fr; gap: 40px; }
|
|
741
770
|
.app-footer-brand { display: flex; flex-direction: column; gap: 16px; }
|
|
@@ -826,26 +855,26 @@ function renderUI(localToken) {
|
|
|
826
855
|
<!-- Header search bar -->
|
|
827
856
|
<div id="headerSearchWrapper" style="flex:1;display:flex;justify-content:center;max-width:620px;margin:0 16px;position:relative;">
|
|
828
857
|
<!-- Collapsed pill -->
|
|
829
|
-
<div id="headerSearchPill" onclick="expandHeaderSearch()" style="display:flex;align-items:center;gap:8px;height:
|
|
830
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.6)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
|
|
831
|
-
<span style="font-size:13px;color:rgba(255,255,255,0.5);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">Search network...</span>
|
|
858
|
+
<div id="headerSearchPill" onclick="expandHeaderSearch()" style="display:flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:19px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);cursor:pointer;transition:all 0.2s;width:100%;max-width:360px;" onmouseover="this.style.background='rgba(255,255,255,0.15)';this.style.borderColor='rgba(255,255,255,0.35)'" onmouseout="this.style.background='rgba(255,255,255,0.1)';this.style.borderColor='rgba(255,255,255,0.2)'">
|
|
859
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.6)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
|
|
860
|
+
<span style="font-size:13px;color:rgba(255,255,255,0.5);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:38px;">Search network...</span>
|
|
832
861
|
</div>
|
|
833
862
|
<!-- Expanded full search bar -->
|
|
834
863
|
<div id="headerSearchExpanded" style="display:none;width:100%;max-width:620px;">
|
|
835
|
-
<div style="display:flex;align-items:center;background:#FFFFFF;border-radius:28px;box-shadow:0 4px 16px rgba(0,0,0,0.15);
|
|
836
|
-
<div style="display:flex;align-items:center;gap:6px;padding:0 14px;
|
|
837
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4A5568" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 1118 0z"/><circle cx="12" cy="10" r="3"/></svg>
|
|
838
|
-
<input id="hdrSearchLoc" placeholder="Where?" style="border:none;outline:none;background:transparent;font-size:13px;font-family:'DM Sans',sans-serif;color:#1A1A2E;width:80px;" onkeydown="if(event.key==='Enter')runHeaderSearch()">
|
|
864
|
+
<div style="display:flex;align-items:center;background:#FFFFFF;border-radius:28px;box-shadow:0 4px 16px rgba(0,0,0,0.15);height:48px;padding:0 6px 0 0;">
|
|
865
|
+
<div style="display:flex;align-items:center;gap:6px;padding:0 14px;white-space:nowrap;">
|
|
866
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4A5568" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;display:block;"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 1118 0z"/><circle cx="12" cy="10" r="3"/></svg>
|
|
867
|
+
<input id="hdrSearchLoc" placeholder="Where?" style="border:none;outline:none;background:transparent;font-size:13px;font-family:'DM Sans',sans-serif;color:#1A1A2E;width:80px;padding:0;margin:0;line-height:1;" onkeydown="if(event.key==='Enter')runHeaderSearch()">
|
|
839
868
|
</div>
|
|
840
869
|
<span style="width:1px;height:24px;background:#E2E8F0;flex-shrink:0;"></span>
|
|
841
|
-
<div style="display:flex;align-items:center;gap:6px;padding:0 14px;
|
|
842
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4A5568" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
|
|
843
|
-
<select id="hdrSearchCat" style="border:none;outline:none;background:transparent;font-size:13px;font-family:'DM Sans',sans-serif;color:#1A1A2E;cursor:pointer;-webkit-appearance:none;appearance:none;padding:0;"><option value="">All</option></select>
|
|
870
|
+
<div style="display:flex;align-items:center;gap:6px;padding:0 14px;white-space:nowrap;">
|
|
871
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4A5568" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;display:block;"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
|
|
872
|
+
<select id="hdrSearchCat" style="border:none;outline:none;background:transparent;font-size:13px;font-family:'DM Sans',sans-serif;color:#1A1A2E;cursor:pointer;-webkit-appearance:none;appearance:none;padding:0;margin:0;line-height:1;"><option value="">All</option></select>
|
|
844
873
|
</div>
|
|
845
874
|
<span style="width:1px;height:24px;background:#E2E8F0;flex-shrink:0;"></span>
|
|
846
|
-
<div style="display:flex;align-items:center;gap:6px;padding:0 14px;
|
|
847
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4A5568" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
|
|
848
|
-
<input id="hdrSearchQ" placeholder="Search..." style="border:none;outline:none;background:transparent;font-size:13px;font-family:'DM Sans',sans-serif;color:#1A1A2E;flex:1;min-width:0;" onkeydown="if(event.key==='Enter')runHeaderSearch()">
|
|
875
|
+
<div style="display:flex;align-items:center;gap:6px;padding:0 14px;flex:1;min-width:0;">
|
|
876
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#4A5568" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;display:block;"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
|
|
877
|
+
<input id="hdrSearchQ" placeholder="Search..." style="border:none;outline:none;background:transparent;font-size:13px;font-family:'DM Sans',sans-serif;color:#1A1A2E;flex:1;min-width:0;padding:0;margin:0;line-height:1;" onkeydown="if(event.key==='Enter')runHeaderSearch()">
|
|
849
878
|
</div>
|
|
850
879
|
<button onclick="runHeaderSearch()" style="flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#0A5E8A;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;" onmouseover="this.style.background='#084A6E'" onmouseout="this.style.background='#0A5E8A'">
|
|
851
880
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
|
|
@@ -899,26 +928,28 @@ function renderUI(localToken) {
|
|
|
899
928
|
|
|
900
929
|
<div class="app-content">
|
|
901
930
|
<div class="dashboard-layout">
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
<div style="padding:
|
|
905
|
-
<
|
|
906
|
-
<
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
</div>
|
|
913
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.5)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:auto;flex-shrink:0;"><polyline points="9 18 15 12 9 6"/></svg>
|
|
914
|
-
</div>
|
|
931
|
+
<!-- Sidebar collapse toggle — outside aside so overflow doesn't clip -->
|
|
932
|
+
<div id="sidebarLogoOverlay" class="sidebar-logo-overlay" style="position:fixed;top:0;left:0;z-index:112;transition:width 0.3s;pointer-events:none;width:240px;">
|
|
933
|
+
<div style="position:relative;display:flex;align-items:center;padding:14px 16px 12px;gap:8px;pointer-events:auto;">
|
|
934
|
+
<a onclick="sidebarNav('home')" style="cursor:pointer;display:flex;align-items:center;gap:6px;text-decoration:none;">
|
|
935
|
+
<img src="/pelagora-logo.png" alt="Pelagora" class="sidebar-logo-img" style="height:28px;width:auto;">
|
|
936
|
+
<span class="sidebar-logo-text" style="font-family:'Fira Sans',sans-serif;font-size:18px;font-weight:700;color:#1A1A2E;">Pelagora</span>
|
|
937
|
+
</a>
|
|
938
|
+
<button type="button" onclick="toggleSidebarCollapse()" class="sidebar-collapse-btn" title="Collapse sidebar" style="position:absolute;right:-12px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;border:1px solid #CBD5E0;background:#FFFFFF;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#4A5568;box-shadow:0 1px 4px rgba(0,0,0,0.08);transition:all 0.2s;">
|
|
939
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="collapseChevron" style="transition:transform 0.3s;"><polyline points="15 18 9 12 15 6"/></svg>
|
|
940
|
+
</button>
|
|
915
941
|
</div>
|
|
916
|
-
|
|
942
|
+
</div>
|
|
943
|
+
<aside class="sidebar" id="sidebar" style="padding-top:52px;">
|
|
917
944
|
<div class="sidebar-section-title">Actions</div>
|
|
918
945
|
<button class="sidebar-nav-item" data-sidebar="list" onclick="sidebarNav('list')">
|
|
919
|
-
<svg viewBox="0 0 24 24" fill="none" stroke="
|
|
946
|
+
<span style="width:18px;height:18px;border-radius:4px;background:linear-gradient(135deg,#0A5E8A 0%,#1A8A7D 100%);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg></span>
|
|
920
947
|
Create New Listing
|
|
921
948
|
</button>
|
|
949
|
+
<button class="sidebar-nav-item" data-sidebar="inventory" onclick="sidebarNav('inventory')">
|
|
950
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 002 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>
|
|
951
|
+
Add to My Inventory
|
|
952
|
+
</button>
|
|
922
953
|
<div class="sidebar-divider"></div>
|
|
923
954
|
<div class="sidebar-section-title">Manage</div>
|
|
924
955
|
<button class="sidebar-nav-item active" data-sidebar="home" onclick="sidebarNav('home')">
|
|
@@ -1784,16 +1815,16 @@ function renderUI(localToken) {
|
|
|
1784
1815
|
</div>
|
|
1785
1816
|
<h3 style="margin:0 0 20px;font-size:1.5rem;font-weight:700;">List a Ref</h3>
|
|
1786
1817
|
</div>
|
|
1787
|
-
<section style="max-width:1100px;margin:0 auto;padding:0 24px
|
|
1818
|
+
<section style="max-width:1100px;margin:0 auto;padding:0 24px 60px;">
|
|
1788
1819
|
<div style="padding-top:30px;">
|
|
1789
1820
|
<div id="listMsg"></div>
|
|
1790
1821
|
<form id="listForm">
|
|
1791
|
-
<input type="hidden" id="refListingStatus" name="listingStatus" value="
|
|
1822
|
+
<input type="hidden" id="refListingStatus" name="listingStatus" value="for_sale">
|
|
1792
1823
|
|
|
1793
1824
|
<!-- Segmented status control -->
|
|
1794
1825
|
<div class="status-segmented" id="createStatusSegment">
|
|
1795
|
-
<button type="button"
|
|
1796
|
-
<button type="button" onclick="selectCreateStatus('for_sale')">For Sale</button>
|
|
1826
|
+
<button type="button" onclick="selectCreateStatus('private')">Private</button>
|
|
1827
|
+
<button type="button" class="seg-active-for_sale" onclick="selectCreateStatus('for_sale')">For Sale</button>
|
|
1797
1828
|
<button type="button" onclick="selectCreateStatus('willing_to_sell')">Willing to Sell</button>
|
|
1798
1829
|
<button type="button" onclick="selectCreateStatus('for_rent')">For Rent</button>
|
|
1799
1830
|
</div>
|
|
@@ -1848,10 +1879,10 @@ function renderUI(localToken) {
|
|
|
1848
1879
|
</div>
|
|
1849
1880
|
</div>
|
|
1850
1881
|
|
|
1851
|
-
<div id="createPriceSection" style="display:
|
|
1882
|
+
<div id="createPriceSection" style="display:block;">
|
|
1852
1883
|
<div class="row">
|
|
1853
1884
|
<div>
|
|
1854
|
-
<label for="refPrice">Price</label>
|
|
1885
|
+
<label for="refPrice">Listing Price</label>
|
|
1855
1886
|
<input id="refPrice" name="price" type="number" min="0" step="0.01" placeholder="0.00">
|
|
1856
1887
|
</div>
|
|
1857
1888
|
<div>
|
|
@@ -1867,6 +1898,7 @@ function renderUI(localToken) {
|
|
|
1867
1898
|
</div>
|
|
1868
1899
|
</div>
|
|
1869
1900
|
</div>
|
|
1901
|
+
<div id="createPriceEstimate"></div>
|
|
1870
1902
|
|
|
1871
1903
|
<div id="rentalFieldsCreate" style="display:none;margin-bottom:14px;border:2px solid #E8F0FA;border-radius:12px;padding:14px;background:#E8F0FA;">
|
|
1872
1904
|
<div style="font-size:12px;font-weight:600;color:#4A90D9;text-transform:uppercase;letter-spacing:0.02em;margin-bottom:10px;">Rental Details</div>
|
|
@@ -1889,10 +1921,11 @@ function renderUI(localToken) {
|
|
|
1889
1921
|
<label for="refSku">SKU</label>
|
|
1890
1922
|
<input id="refSku" name="sku" placeholder="Optional SKU or part number">
|
|
1891
1923
|
|
|
1892
|
-
<details style="margin-bottom:14px;border:2px solid #CBD5E0;border-radius:12px;padding:14px;">
|
|
1893
|
-
<summary style="cursor:pointer;font-size:12px;font-weight:600;color:#4A5568;text-transform:uppercase;letter-spacing:0.02em;display:flex;align-items:center;gap:6px;
|
|
1924
|
+
<details open style="margin-bottom:14px;border:2px solid #CBD5E0;border-radius:12px;padding:14px;">
|
|
1925
|
+
<summary style="cursor:pointer;font-size:12px;font-weight:600;color:#4A5568;text-transform:uppercase;letter-spacing:0.02em;display:flex;align-items:center;gap:6px;">
|
|
1894
1926
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z"/></svg>
|
|
1895
|
-
Location
|
|
1927
|
+
Location & Selling Scope
|
|
1928
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-indicator" style="margin-left:auto;flex-shrink:0;"><path d="m6 9 6 6 6-6"/></svg>
|
|
1896
1929
|
</summary>
|
|
1897
1930
|
<p style="font-size:12px;color:#718096;margin:8px 0;">Leave blank to use your default location from Settings.</p>
|
|
1898
1931
|
<div class="row">
|
|
@@ -1921,10 +1954,11 @@ function renderUI(localToken) {
|
|
|
1921
1954
|
</div>
|
|
1922
1955
|
</details>
|
|
1923
1956
|
|
|
1924
|
-
<details style="margin-bottom:14px;border:2px solid #CBD5E0;border-radius:12px;padding:14px;" id="createPaymentMethodsSection">
|
|
1925
|
-
<summary style="cursor:pointer;font-size:12px;font-weight:600;color:#4A5568;text-transform:uppercase;letter-spacing:0.02em;display:flex;align-items:center;gap:6px;
|
|
1957
|
+
<details open style="margin-bottom:14px;border:2px solid #CBD5E0;border-radius:12px;padding:14px;" id="createPaymentMethodsSection">
|
|
1958
|
+
<summary style="cursor:pointer;font-size:12px;font-weight:600;color:#4A5568;text-transform:uppercase;letter-spacing:0.02em;display:flex;align-items:center;gap:6px;">
|
|
1926
1959
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="flex-shrink:0;"><circle cx="12" cy="12" r="10"/><path d="M16 8h-6a2 2 0 100 4h4a2 2 0 010 4H8"/><path d="M12 18V6"/></svg>
|
|
1927
1960
|
Accepted Payment Methods
|
|
1961
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-indicator" style="margin-left:auto;flex-shrink:0;"><path d="m6 9 6 6 6-6"/></svg>
|
|
1928
1962
|
</summary>
|
|
1929
1963
|
<p style="font-size:12px;color:#718096;margin:8px 0;">Pre-filled from your defaults. Override per listing.</p>
|
|
1930
1964
|
<div class="payment-pills" id="createPaymentPills"></div>
|
|
@@ -1941,7 +1975,6 @@ function renderUI(localToken) {
|
|
|
1941
1975
|
<div id="aiSuggestedImage"></div>
|
|
1942
1976
|
|
|
1943
1977
|
<div style="margin-top:20px;"></div>
|
|
1944
|
-
<div id="createPriceEstimate"></div>
|
|
1945
1978
|
|
|
1946
1979
|
<div style="display:flex;gap:10px;justify-content:flex-end;align-items:center;">
|
|
1947
1980
|
<button type="button" class="btn-secondary" onclick="closeListRefModal()">Cancel</button>
|
|
@@ -2286,7 +2319,7 @@ Website = https://reffo.ai</pre>
|
|
|
2286
2319
|
<div class="app-footer-grid">
|
|
2287
2320
|
<!-- Col 1: Logo -->
|
|
2288
2321
|
<div class="app-footer-brand">
|
|
2289
|
-
<img src="/
|
|
2322
|
+
<img src="/pelagora-logo.png" alt="Pelagora" style="height: 40px; width: auto;">
|
|
2290
2323
|
<button id="footerUpdateBtn" class="button-gradient" style="display:none;height:32px;padding:0 16px;font-size:12px;border-radius:16px;" onclick="switchTab('settings')">⬆ Update</button>
|
|
2291
2324
|
</div>
|
|
2292
2325
|
|
|
@@ -2555,6 +2588,18 @@ Website = https://reffo.ai</pre>
|
|
|
2555
2588
|
if (tab === 'favorites') loadFavorites();
|
|
2556
2589
|
}
|
|
2557
2590
|
|
|
2591
|
+
// ===== Sidebar collapse =====
|
|
2592
|
+
window.toggleSidebarCollapse = function() {
|
|
2593
|
+
var sidebar = document.getElementById('sidebar');
|
|
2594
|
+
var chevron = document.getElementById('collapseChevron');
|
|
2595
|
+
var overlay = document.getElementById('sidebarLogoOverlay');
|
|
2596
|
+
sidebar.classList.toggle('collapsed');
|
|
2597
|
+
document.body.classList.toggle('sidebar-collapsed');
|
|
2598
|
+
var isCollapsed = sidebar.classList.contains('collapsed');
|
|
2599
|
+
chevron.style.transform = isCollapsed ? 'rotate(180deg)' : '';
|
|
2600
|
+
overlay.style.width = isCollapsed ? '74px' : '240px';
|
|
2601
|
+
};
|
|
2602
|
+
|
|
2558
2603
|
// ===== Sidebar navigation =====
|
|
2559
2604
|
function sidebarNav(target) {
|
|
2560
2605
|
closeSidebar();
|
|
@@ -2566,7 +2611,8 @@ Website = https://reffo.ai</pre>
|
|
|
2566
2611
|
if (target === 'inbox') { if (currentOpenConversationId) { currentOpenConversationId = null; stopChatPolling(); } switchTab('inbox'); return; }
|
|
2567
2612
|
if (target === 'scan') { switchTab('scan'); return; }
|
|
2568
2613
|
if (target === 'collections') { switchTab('collections'); return; }
|
|
2569
|
-
if (target === 'list') { switchTab('list'); return; }
|
|
2614
|
+
if (target === 'list') { switchTab('list'); selectCreateStatus('for_sale'); return; }
|
|
2615
|
+
if (target === 'inventory') { switchTab('list'); selectCreateStatus('private'); return; }
|
|
2570
2616
|
if (target === 'search') { switchTab('search'); return; }
|
|
2571
2617
|
if (target === 'settings') { switchTab('settings'); return; }
|
|
2572
2618
|
}
|
|
@@ -3221,7 +3267,8 @@ Website = https://reffo.ai</pre>
|
|
|
3221
3267
|
function fmtCurrency(amount, currency) {
|
|
3222
3268
|
currency = currency || 'USD';
|
|
3223
3269
|
try {
|
|
3224
|
-
|
|
3270
|
+
var locale = currency === 'EUR' ? 'de-DE' : 'en-US';
|
|
3271
|
+
return new Intl.NumberFormat(locale, { style: 'currency', currency: currency }).format(amount);
|
|
3225
3272
|
} catch(e) {
|
|
3226
3273
|
return currency + ' ' + Number(amount).toFixed(2);
|
|
3227
3274
|
}
|
|
@@ -3590,7 +3637,7 @@ Website = https://reffo.ai</pre>
|
|
|
3590
3637
|
document.getElementById('refSubcat').innerHTML = '<option value="">Select...</option>';
|
|
3591
3638
|
document.getElementById('createCategoryFields').innerHTML = '';
|
|
3592
3639
|
// Reset segmented control to Private
|
|
3593
|
-
selectCreateStatus('
|
|
3640
|
+
selectCreateStatus('for_sale');
|
|
3594
3641
|
document.getElementById('createPriceEstimate').innerHTML = '';
|
|
3595
3642
|
selectedPhotos = [];
|
|
3596
3643
|
selectedVideo = null;
|
|
@@ -3878,8 +3925,10 @@ Website = https://reffo.ai</pre>
|
|
|
3878
3925
|
html += '<button title="Save"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg></button>';
|
|
3879
3926
|
html += '</div></div>';
|
|
3880
3927
|
html += '<div class="detail-posted-line">';
|
|
3881
|
-
|
|
3882
|
-
html += '<span
|
|
3928
|
+
var dn = window._myDisplayName || 'You';
|
|
3929
|
+
html += '<span style="color:#4A5568;font-weight:500;font-size:14px;">Listed by:</span>';
|
|
3930
|
+
html += '<div class="avatar-sm">' + dn[0].toUpperCase() + '</div>';
|
|
3931
|
+
html += '<span class="poster-name">' + dn + '</span>';
|
|
3883
3932
|
if (ref.networkPublished) {
|
|
3884
3933
|
html += '<span class="badge" style="background:#1A8A7D;color:#fff;font-size:11px;">Published</span>';
|
|
3885
3934
|
}
|
|
@@ -3940,7 +3989,7 @@ Website = https://reffo.ai</pre>
|
|
|
3940
3989
|
html += '</div></div></div></div>';
|
|
3941
3990
|
html += '<div id="detailAutofillCard"></div>';
|
|
3942
3991
|
html += '<div id="detailCategoryFields"></div>';
|
|
3943
|
-
html += '<div class="row"><div><label>Price</label><input id="dPrice" type="number" min="0" step="0.01" value="' + (activeOffer ? activeOffer.price : '') + '"></div>';
|
|
3992
|
+
html += '<div class="row"><div><label>Listing Price</label><input id="dPrice" type="number" min="0" step="0.01" value="' + (activeOffer ? activeOffer.price : '') + '"></div>';
|
|
3944
3993
|
html += '<div><label>Currency</label><select id="dCurrency"><option value="USD"' + ((activeOffer && activeOffer.priceCurrency === 'USD') || !activeOffer ? ' selected' : '') + '>USD</option><option value="EUR"' + (activeOffer && activeOffer.priceCurrency === 'EUR' ? ' selected' : '') + '>EUR</option><option value="GBP"' + (activeOffer && activeOffer.priceCurrency === 'GBP' ? ' selected' : '') + '>GBP</option></select></div></div>';
|
|
3945
3994
|
html += '<div class="row"><div><label>Quantity</label><input id="dQty" type="number" min="1" value="' + ref.quantity + '"></div>';
|
|
3946
3995
|
html += '<div><label>SKU</label><input id="dSku" value="' + escapeHtml(ref.sku || '') + '"></div></div>';
|
|
@@ -3973,8 +4022,8 @@ Website = https://reffo.ai</pre>
|
|
|
3973
4022
|
// Purchase info fields
|
|
3974
4023
|
html += '<details style="margin-bottom:14px;border:2px solid #CBD5E0;border-radius:12px;padding:14px;" ' + (ref.purchaseDate || ref.purchasePrice ? 'open' : '') + '>';
|
|
3975
4024
|
html += '<summary style="cursor:pointer;font-size:12px;font-weight:600;color:#4A5568;text-transform:uppercase;letter-spacing:0.02em;">Purchase Info</summary>';
|
|
3976
|
-
html += '<div class="row"><div><label>Purchase Date</label><input id="dPurchaseDate" type="date" value="' + escapeHtml(ref.purchaseDate || '') + '"></div>';
|
|
3977
|
-
html += '<div><label>Purchase Price</label><input id="dPurchasePrice" type="number" min="0" step="0.01" value="' + (ref.purchasePrice || '') + '"></div></div>';
|
|
4025
|
+
html += '<div class="row"><div><label>Purchase Date</label><input id="dPurchaseDate" type="date" value="' + escapeHtml(ref.purchaseDate || '') + '" max="' + new Date().toISOString().split('T')[0] + '" min="1900-01-01"></div>';
|
|
4026
|
+
html += '<div><label>Original Purchase Price</label><input id="dPurchasePrice" type="number" min="0" step="0.01" value="' + (ref.purchasePrice || '') + '"></div></div>';
|
|
3978
4027
|
html += '</details>';
|
|
3979
4028
|
html += '</form>';
|
|
3980
4029
|
html += '</div>';
|
|
@@ -4015,32 +4064,16 @@ Website = https://reffo.ai</pre>
|
|
|
4015
4064
|
html += '<div class="detail-right">';
|
|
4016
4065
|
html += '<div class="payment-card">';
|
|
4017
4066
|
|
|
4018
|
-
// Row 1: Price + Edit
|
|
4067
|
+
// Row 1: Price + Edit button
|
|
4019
4068
|
html += '<div style="display:flex;align-items:center;justify-content:space-between;padding:20px 20px 4px;">';
|
|
4020
4069
|
html += '<div id="cardPriceHeader" style="font-size:24px;font-weight:700;color:#1A1A2E;">' + (ref.listingStatus === 'private' ? 'My Item' : priceDisplay) + '</div>';
|
|
4021
|
-
html += '<
|
|
4022
|
-
html += '<
|
|
4023
|
-
html += '
|
|
4024
|
-
html += '</button>';
|
|
4025
|
-
html += '<button style="width:32px;height:32px;border-radius:50%;border:1px solid #CBD5E0;background:#FFFFFF;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#4A5568;padding:0;" onclick="';
|
|
4026
|
-
const shareUrl2 = ref.shareUrl
|
|
4027
|
-
|| (ref.reffoSynced && ref.reffoRefId ? ((typeof window !== 'undefined' && window._reffoUrl) || 'https://reffo.ai') + '/items/' + ref.reffoRefId : '');
|
|
4028
|
-
if (shareUrl2) {
|
|
4029
|
-
html += 'navigator.clipboard.writeText(\\'' + shareUrl2 + '\\').then(function(){ showToast(\\'Link copied!\\',\\'\\'); })';
|
|
4030
|
-
} else {
|
|
4031
|
-
html += 'showToast(\\'List publicly to get a shareable link\\',\\'\\')';
|
|
4032
|
-
}
|
|
4033
|
-
html += '" title="Share">';
|
|
4034
|
-
html += '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg>';
|
|
4035
|
-
html += '</button>';
|
|
4036
|
-
html += '</div></div>';
|
|
4037
|
-
|
|
4038
|
-
// Row 2: Avatar + "Your Beacon"
|
|
4039
|
-
html += '<div style="display:flex;align-items:center;gap:10px;padding:8px 20px 16px;">';
|
|
4040
|
-
html += '<div style="width:32px;height:32px;border-radius:50%;background:#0A5E8A;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;">Y</div>';
|
|
4041
|
-
html += '<span style="font-size:14px;font-weight:600;color:#1A1A2E;">Your Beacon</span>';
|
|
4070
|
+
html += '<button style="display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 14px;border-radius:8px;background:#1A1A2E;color:#fff;border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;flex-shrink:0;" onclick="document.getElementById(\\'editFormSection\\').style.display=\\'block\\';document.querySelectorAll(\\'.media-edit-only\\').forEach(function(el){el.style.display=\\'\\';});document.querySelectorAll(\\'.card-edit-only\\').forEach(function(el){var sw=el.getAttribute(\\'data-show-when\\');el.style.display=sw||\\'\\';}); document.getElementById(\\'editFormSection\\').scrollIntoView({behavior:\\'smooth\\'})">';
|
|
4071
|
+
html += '<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>';
|
|
4072
|
+
html += 'Edit</button>';
|
|
4042
4073
|
html += '</div>';
|
|
4043
4074
|
|
|
4075
|
+
// (avatar/seller row removed — now in detail-posted-line)
|
|
4076
|
+
|
|
4044
4077
|
// Private item: completeness checklist
|
|
4045
4078
|
if (ref.listingStatus === 'private') {
|
|
4046
4079
|
const hasPhoto = media.filter(m => m.mediaType === 'photo').length > 0;
|
|
@@ -4092,7 +4125,7 @@ Website = https://reffo.ai</pre>
|
|
|
4092
4125
|
|
|
4093
4126
|
html += '<div id="cardPriceFields" class="card-edit-only" style="display:none;padding:0 20px 10px;" data-show-when="' + _showPrice + '">';
|
|
4094
4127
|
html += '<div style="display:flex;gap:8px;">';
|
|
4095
|
-
html += '<input type="number" id="cardPrice" placeholder="Price" value="' + _initPrice + '" style="flex:1;height:40px;padding:0 12px;border:2px solid #CBD5E0;border-radius:12px;font-size:14px;font-weight:500;background:#FFFFFF;font-family:inherit;" oninput="checkCardDirty()">';
|
|
4128
|
+
html += '<input type="number" id="cardPrice" placeholder="Listing Price" value="' + _initPrice + '" style="flex:1;height:40px;padding:0 12px;border:2px solid #CBD5E0;border-radius:12px;font-size:14px;font-weight:500;background:#FFFFFF;font-family:inherit;" oninput="checkCardDirty()">';
|
|
4096
4129
|
html += '<select id="cardCurrency" style="width:80px;height:40px;padding:0 8px;border:2px solid #CBD5E0;border-radius:12px;font-size:13px;font-weight:600;background:#FFFFFF;font-family:inherit;cursor:pointer;" onchange="checkCardDirty()">';
|
|
4097
4130
|
html += '<option value="USD"' + (_initCurrency === 'USD' ? ' selected' : '') + '>USD</option><option value="EUR"' + (_initCurrency === 'EUR' ? ' selected' : '') + '>EUR</option><option value="GBP"' + (_initCurrency === 'GBP' ? ' selected' : '') + '>GBP</option>';
|
|
4098
4131
|
html += '</select>';
|
|
@@ -4127,7 +4160,8 @@ Website = https://reffo.ai</pre>
|
|
|
4127
4160
|
// Invoice rows — category added as first row
|
|
4128
4161
|
const catParts = [ref.category, ref.subcategory].filter(Boolean);
|
|
4129
4162
|
if (catParts.length > 0) {
|
|
4130
|
-
html += '<div class="invoice-row"><span class="invoice-label">Category</span><span class="invoice-value">' + escapeHtml(
|
|
4163
|
+
if (ref.category) html += '<div class="invoice-row"><span class="invoice-label">Category</span><span class="invoice-value">' + escapeHtml(ref.category) + '</span></div>';
|
|
4164
|
+
if (ref.subcategory) html += '<div class="invoice-row"><span class="invoice-label">Subcategory</span><span class="invoice-value">' + escapeHtml(ref.subcategory) + '</span></div>';
|
|
4131
4165
|
}
|
|
4132
4166
|
if (conditionDisplay) {
|
|
4133
4167
|
html += '<div class="invoice-row"><span class="invoice-label">Condition</span><span class="invoice-value">' + escapeHtml(conditionDisplay) + '</span></div>';
|
|
@@ -4157,7 +4191,7 @@ Website = https://reffo.ai</pre>
|
|
|
4157
4191
|
html += '<div class="invoice-row"><span class="invoice-label">Purchased</span><span class="invoice-value">' + new Date(ref.purchaseDate).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }) + '</span></div>';
|
|
4158
4192
|
}
|
|
4159
4193
|
if (ref.purchasePrice) {
|
|
4160
|
-
html += '<div class="invoice-row"><span class="invoice-label">Purchase Price</span><span class="invoice-value">' + fmtCurrency(ref.purchasePrice, 'USD') + '</span></div>';
|
|
4194
|
+
html += '<div class="invoice-row"><span class="invoice-label">Original Purchase Price</span><span class="invoice-value">' + fmtCurrency(ref.purchasePrice, 'USD') + '</span></div>';
|
|
4161
4195
|
}
|
|
4162
4196
|
|
|
4163
4197
|
// Hidden invoice rows (future use)
|
|
@@ -4853,6 +4887,7 @@ Website = https://reffo.ai</pre>
|
|
|
4853
4887
|
_headerSearchExpanded = true;
|
|
4854
4888
|
document.getElementById('headerSearchPill').style.display = 'none';
|
|
4855
4889
|
document.getElementById('headerSearchExpanded').style.display = '';
|
|
4890
|
+
document.querySelector('.app-header').classList.add('search-expanded');
|
|
4856
4891
|
// Populate category dropdown from taxonomy
|
|
4857
4892
|
var catSelect = document.getElementById('hdrSearchCat');
|
|
4858
4893
|
if (catSelect && catSelect.options.length <= 1) {
|
|
@@ -4875,6 +4910,7 @@ Website = https://reffo.ai</pre>
|
|
|
4875
4910
|
_headerSearchExpanded = false;
|
|
4876
4911
|
document.getElementById('headerSearchPill').style.display = '';
|
|
4877
4912
|
document.getElementById('headerSearchExpanded').style.display = 'none';
|
|
4913
|
+
document.querySelector('.app-header').classList.remove('search-expanded');
|
|
4878
4914
|
};
|
|
4879
4915
|
|
|
4880
4916
|
window.runHeaderSearch = function() {
|
|
@@ -5266,7 +5302,8 @@ Website = https://reffo.ai</pre>
|
|
|
5266
5302
|
// Invoice rows — category added
|
|
5267
5303
|
const remoteCatParts = [item.category, item.subcategory].filter(Boolean);
|
|
5268
5304
|
if (remoteCatParts.length > 0) {
|
|
5269
|
-
html += '<div class="invoice-row"><span class="invoice-label">Category</span><span class="invoice-value">' + escapeHtml(
|
|
5305
|
+
if (item.category) html += '<div class="invoice-row"><span class="invoice-label">Category</span><span class="invoice-value">' + escapeHtml(item.category) + '</span></div>';
|
|
5306
|
+
if (item.subcategory) html += '<div class="invoice-row"><span class="invoice-label">Subcategory</span><span class="invoice-value">' + escapeHtml(item.subcategory) + '</span></div>';
|
|
5270
5307
|
}
|
|
5271
5308
|
if (offer) {
|
|
5272
5309
|
html += '<div class="invoice-row"><span class="invoice-label">Item Price</span><span class="invoice-value">' + escapeHtml(fmtCurrency(offer.price, offer.priceCurrency)) + '</span></div>';
|
|
@@ -6030,6 +6067,7 @@ Website = https://reffo.ai</pre>
|
|
|
6030
6067
|
const res = await fetch('/settings');
|
|
6031
6068
|
const data = await res.json();
|
|
6032
6069
|
window._myBeaconId = data.beaconId || '';
|
|
6070
|
+
window._myDisplayName = data.displayName || 'You';
|
|
6033
6071
|
document.getElementById('settingsBeaconId').textContent = data.beaconId || '';
|
|
6034
6072
|
document.getElementById('settingsVersion').textContent = data.version || '';
|
|
6035
6073
|
const uptime = data.uptime || 0;
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":";;AAGA,4BAyhPC;AA5hPD,yCAAsC;AACtC,yDAA0D;AAE1D,SAAgB,QAAQ,CAAC,UAAmB;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAQ,CAAC,CAAC;IAE9C,+EAA+E;IAC/E,MAAM,YAAY,GAAgM,EAAE,CAAC;IACrN,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,+BAAgB,CAAC,EAAE,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,GAAG;YAClB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACzK,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,GAAG,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC7G,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAExD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+1EH,UAAU,CAAC,CAAC,CAAC;;;qBAGE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;KAqB1C,CAAC,CAAC,CAAC,EAAE;uBACa,YAAY;kCACD,kBAAkB;gCACpB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgpK1D,CAAC;AACT,CAAC"}
|
package/package.json
CHANGED
package/footer-brand.png
DELETED
|
Binary file
|