pdfn 0.8.7 → 0.8.9
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/cli.js +152 -2
- package/dist/cli.js.map +1 -1
- package/package.json +3 -3
- package/templates/inline/contract.tsx +6 -6
- package/templates/inline/invoice.tsx +4 -4
- package/templates/inline/letter.tsx +1 -2
- package/templates/inline/report.tsx +4 -12
- package/templates/tailwind/contract.tsx +6 -6
- package/templates/tailwind/invoice.tsx +4 -4
- package/templates/tailwind/letter.tsx +1 -2
- package/templates/tailwind/report.tsx +4 -12
package/dist/cli.js
CHANGED
|
@@ -600,6 +600,19 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
600
600
|
border-right: 1px solid var(--border);
|
|
601
601
|
padding: 16px;
|
|
602
602
|
overflow-y: auto;
|
|
603
|
+
transition: width 0.15s ease, padding 0.15s ease;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.sidebar.collapsed {
|
|
607
|
+
width: 40px;
|
|
608
|
+
padding: 8px 0;
|
|
609
|
+
overflow: hidden;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
.sidebar.collapsed .sidebar-title,
|
|
613
|
+
.sidebar.collapsed .template-btn,
|
|
614
|
+
.sidebar.collapsed .empty-state {
|
|
615
|
+
display: none;
|
|
603
616
|
}
|
|
604
617
|
|
|
605
618
|
.sidebar-title {
|
|
@@ -771,6 +784,17 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
771
784
|
display: flex;
|
|
772
785
|
flex-direction: column;
|
|
773
786
|
overflow-y: auto;
|
|
787
|
+
transition: width 0.15s ease;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
.inspector-panel.collapsed {
|
|
791
|
+
width: 40px;
|
|
792
|
+
overflow: hidden;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
.inspector-panel.collapsed .inspector-title,
|
|
796
|
+
.inspector-panel.collapsed .inspector-content {
|
|
797
|
+
display: none;
|
|
774
798
|
}
|
|
775
799
|
|
|
776
800
|
.inspector-title {
|
|
@@ -1179,6 +1203,52 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1179
1203
|
word-break: break-all;
|
|
1180
1204
|
}
|
|
1181
1205
|
|
|
1206
|
+
/* Panel toggle buttons */
|
|
1207
|
+
.panel-toggle {
|
|
1208
|
+
width: 40px;
|
|
1209
|
+
height: 32px;
|
|
1210
|
+
display: flex;
|
|
1211
|
+
align-items: center;
|
|
1212
|
+
justify-content: center;
|
|
1213
|
+
background: transparent;
|
|
1214
|
+
border: none;
|
|
1215
|
+
color: var(--text-muted);
|
|
1216
|
+
cursor: pointer;
|
|
1217
|
+
flex-shrink: 0;
|
|
1218
|
+
transition: color 0.15s;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
.panel-toggle:hover {
|
|
1222
|
+
color: var(--text);
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.sidebar .panel-toggle {
|
|
1226
|
+
margin: -8px -8px 8px -8px;
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
.sidebar.collapsed .panel-toggle {
|
|
1230
|
+
margin: 0 auto 0 auto;
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
.inspector-panel .panel-toggle {
|
|
1234
|
+
margin-left: auto;
|
|
1235
|
+
margin-right: 4px;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
.inspector-panel.collapsed .panel-toggle {
|
|
1239
|
+
margin: 4px auto;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
.inspector-toggle-row {
|
|
1243
|
+
display: flex;
|
|
1244
|
+
align-items: center;
|
|
1245
|
+
border-bottom: 1px solid var(--border);
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
.inspector-panel.collapsed .inspector-toggle-row {
|
|
1249
|
+
border-bottom: none;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1182
1252
|
/* Buttons */
|
|
1183
1253
|
.btn {
|
|
1184
1254
|
padding: 6px 10px;
|
|
@@ -1280,7 +1350,12 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1280
1350
|
</header>
|
|
1281
1351
|
|
|
1282
1352
|
<div class="container">
|
|
1283
|
-
<aside class="sidebar">
|
|
1353
|
+
<aside class="sidebar" id="sidebar">
|
|
1354
|
+
<button class="panel-toggle" id="sidebar-toggle" title="Toggle sidebar (${"`"}Cmd+B${"`"})">
|
|
1355
|
+
<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
1356
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
|
|
1357
|
+
</svg>
|
|
1358
|
+
</button>
|
|
1284
1359
|
<div class="sidebar-title">Templates</div>
|
|
1285
1360
|
${templates.length > 0 ? templateList : '<div class="empty-state"><p>No templates found</p><code>pdfn add invoice</code></div>'}
|
|
1286
1361
|
</aside>
|
|
@@ -1340,6 +1415,13 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1340
1415
|
|
|
1341
1416
|
<!-- Inspector panel: right side -->
|
|
1342
1417
|
<aside class="inspector-panel" id="inspector-panel">
|
|
1418
|
+
<div class="inspector-toggle-row">
|
|
1419
|
+
<button class="panel-toggle" id="inspector-toggle" title="Toggle inspector (${"`"}Cmd+J${"`"})">
|
|
1420
|
+
<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
1421
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
|
|
1422
|
+
</svg>
|
|
1423
|
+
</button>
|
|
1424
|
+
</div>
|
|
1343
1425
|
<div class="inspector-title">Inspector</div>
|
|
1344
1426
|
<div class="inspector-content">
|
|
1345
1427
|
<div class="inspector-section">
|
|
@@ -1463,7 +1545,9 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1463
1545
|
breaks: false,
|
|
1464
1546
|
},
|
|
1465
1547
|
a11yExpanded: true,
|
|
1466
|
-
consoleExpanded: true
|
|
1548
|
+
consoleExpanded: true,
|
|
1549
|
+
sidebarCollapsed: false,
|
|
1550
|
+
inspectorCollapsed: false
|
|
1467
1551
|
};
|
|
1468
1552
|
|
|
1469
1553
|
// Console messages
|
|
@@ -1516,6 +1600,10 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1516
1600
|
consoleContent.style.display = 'none';
|
|
1517
1601
|
consoleToggle.classList.add('collapsed');
|
|
1518
1602
|
}
|
|
1603
|
+
|
|
1604
|
+
// Panel collapsed state
|
|
1605
|
+
applySidebarState();
|
|
1606
|
+
applyInspectorState();
|
|
1519
1607
|
}
|
|
1520
1608
|
|
|
1521
1609
|
// Toggle accessibility expanded state
|
|
@@ -1532,6 +1620,48 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1532
1620
|
applyState();
|
|
1533
1621
|
}
|
|
1534
1622
|
|
|
1623
|
+
// Toggle sidebar collapsed state
|
|
1624
|
+
function toggleSidebar() {
|
|
1625
|
+
inspectorState.sidebarCollapsed = !inspectorState.sidebarCollapsed;
|
|
1626
|
+
saveState();
|
|
1627
|
+
applySidebarState();
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
// Toggle inspector collapsed state
|
|
1631
|
+
function toggleInspector() {
|
|
1632
|
+
inspectorState.inspectorCollapsed = !inspectorState.inspectorCollapsed;
|
|
1633
|
+
saveState();
|
|
1634
|
+
applyInspectorState();
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
function applySidebarState() {
|
|
1638
|
+
const sidebar = document.getElementById('sidebar');
|
|
1639
|
+
const toggleBtn = document.getElementById('sidebar-toggle');
|
|
1640
|
+
if (inspectorState.sidebarCollapsed) {
|
|
1641
|
+
sidebar.classList.add('collapsed');
|
|
1642
|
+
toggleBtn.innerHTML = '<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>';
|
|
1643
|
+
toggleBtn.title = 'Expand sidebar (Cmd+B)';
|
|
1644
|
+
} else {
|
|
1645
|
+
sidebar.classList.remove('collapsed');
|
|
1646
|
+
toggleBtn.innerHTML = '<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/></svg>';
|
|
1647
|
+
toggleBtn.title = 'Collapse sidebar (Cmd+B)';
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
function applyInspectorState() {
|
|
1652
|
+
const panel = document.getElementById('inspector-panel');
|
|
1653
|
+
const toggleBtn = document.getElementById('inspector-toggle');
|
|
1654
|
+
if (inspectorState.inspectorCollapsed) {
|
|
1655
|
+
panel.classList.add('collapsed');
|
|
1656
|
+
toggleBtn.innerHTML = '<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/></svg>';
|
|
1657
|
+
toggleBtn.title = 'Expand inspector (Cmd+J)';
|
|
1658
|
+
} else {
|
|
1659
|
+
panel.classList.remove('collapsed');
|
|
1660
|
+
toggleBtn.innerHTML = '<svg width="16" height="16" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>';
|
|
1661
|
+
toggleBtn.title = 'Collapse inspector (Cmd+J)';
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1535
1665
|
// Add console message
|
|
1536
1666
|
function addConsoleMessage(type, message) {
|
|
1537
1667
|
consoleMessages.push({ type, message });
|
|
@@ -1623,10 +1753,12 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
1623
1753
|
// Update template list in sidebar (called when templates are added/removed)
|
|
1624
1754
|
function updateTemplateList(templates) {
|
|
1625
1755
|
const sidebar = document.querySelector('.sidebar');
|
|
1756
|
+
const toggleBtn = document.getElementById('sidebar-toggle');
|
|
1626
1757
|
const titleEl = sidebar.querySelector('.sidebar-title');
|
|
1627
1758
|
|
|
1628
1759
|
// Clear existing buttons
|
|
1629
1760
|
sidebar.innerHTML = '';
|
|
1761
|
+
sidebar.appendChild(toggleBtn);
|
|
1630
1762
|
sidebar.appendChild(titleEl);
|
|
1631
1763
|
|
|
1632
1764
|
if (templates.length === 0) {
|
|
@@ -2006,6 +2138,24 @@ function createPreviewHTML(templates, activeTemplate, hasCloudAccess) {
|
|
|
2006
2138
|
// Console header click handler
|
|
2007
2139
|
document.getElementById('console-header').onclick = toggleConsole;
|
|
2008
2140
|
|
|
2141
|
+
// Panel toggle click handlers
|
|
2142
|
+
document.getElementById('sidebar-toggle').onclick = toggleSidebar;
|
|
2143
|
+
document.getElementById('inspector-toggle').onclick = toggleInspector;
|
|
2144
|
+
|
|
2145
|
+
// Keyboard shortcuts for panel toggles
|
|
2146
|
+
document.addEventListener('keydown', function(e) {
|
|
2147
|
+
// Cmd/Ctrl+B \u2014 toggle sidebar
|
|
2148
|
+
if ((e.metaKey || e.ctrlKey) && e.key === 'b') {
|
|
2149
|
+
e.preventDefault();
|
|
2150
|
+
toggleSidebar();
|
|
2151
|
+
}
|
|
2152
|
+
// Cmd/Ctrl+J \u2014 toggle inspector
|
|
2153
|
+
if ((e.metaKey || e.ctrlKey) && e.key === 'j') {
|
|
2154
|
+
e.preventDefault();
|
|
2155
|
+
toggleInspector();
|
|
2156
|
+
}
|
|
2157
|
+
});
|
|
2158
|
+
|
|
2009
2159
|
let resizeTimeout;
|
|
2010
2160
|
window.addEventListener('resize', () => {
|
|
2011
2161
|
clearTimeout(resizeTimeout);
|