@nice2dev/ui-printing 1.0.28

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.
Files changed (49) hide show
  1. package/README.md +56 -0
  2. package/dist/index.cjs +2 -0
  3. package/dist/index.d.ts +15 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.mjs +3085 -0
  6. package/dist/print-button/NicePrintButton.d.ts +5 -0
  7. package/dist/print-button/NicePrintButton.d.ts.map +1 -0
  8. package/dist/print-button/index.d.ts +2 -0
  9. package/dist/print-button/index.d.ts.map +1 -0
  10. package/dist/print-preview/NicePrintPreview.d.ts +5 -0
  11. package/dist/print-preview/NicePrintPreview.d.ts.map +1 -0
  12. package/dist/print-preview/index.d.ts +2 -0
  13. package/dist/print-preview/index.d.ts.map +1 -0
  14. package/dist/print-queue/NicePrintQueue.d.ts +5 -0
  15. package/dist/print-queue/NicePrintQueue.d.ts.map +1 -0
  16. package/dist/print-queue/index.d.ts +2 -0
  17. package/dist/print-queue/index.d.ts.map +1 -0
  18. package/dist/style.css +1 -0
  19. package/dist/template-browser/NiceTemplateBrowser.d.ts +5 -0
  20. package/dist/template-browser/NiceTemplateBrowser.d.ts.map +1 -0
  21. package/dist/template-browser/index.d.ts +2 -0
  22. package/dist/template-browser/index.d.ts.map +1 -0
  23. package/dist/template-editor/NiceTemplateEditor.d.ts +6 -0
  24. package/dist/template-editor/NiceTemplateEditor.d.ts.map +1 -0
  25. package/dist/template-editor/index.d.ts +2 -0
  26. package/dist/template-editor/index.d.ts.map +1 -0
  27. package/dist/types/printingTypes.d.ts +249 -0
  28. package/dist/types/printingTypes.d.ts.map +1 -0
  29. package/package.json +66 -0
  30. package/src/globals.d.ts +9 -0
  31. package/src/index.ts +69 -0
  32. package/src/print-button/NicePrintButton.tsx +182 -0
  33. package/src/print-button/PrintButton.module.css +167 -0
  34. package/src/print-button/index.ts +1 -0
  35. package/src/print-preview/NicePrintPreview.tsx +417 -0
  36. package/src/print-preview/PrintPreview.module.css +122 -0
  37. package/src/print-preview/index.ts +1 -0
  38. package/src/print-queue/NicePrintQueue.tsx +350 -0
  39. package/src/print-queue/PrintQueue.module.css +203 -0
  40. package/src/print-queue/index.ts +1 -0
  41. package/src/template-browser/NiceTemplateBrowser.tsx +221 -0
  42. package/src/template-browser/TemplateBrowser.module.css +277 -0
  43. package/src/template-browser/index.ts +1 -0
  44. package/src/template-editor/NiceTemplateEditor.tsx +2386 -0
  45. package/src/template-editor/NiceTemplateEditor.tsx.first +1011 -0
  46. package/src/template-editor/NiceTemplateEditor.tsx.tmp +392 -0
  47. package/src/template-editor/TemplateEditor.module.css +1462 -0
  48. package/src/template-editor/index.ts +1 -0
  49. package/src/types/printingTypes.ts +301 -0
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { NicePrintButtonProps } from '../types/printingTypes';
3
+
4
+ export declare const NicePrintButton: React.FC<NicePrintButtonProps>;
5
+ //# sourceMappingURL=NicePrintButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NicePrintButton.d.ts","sourceRoot":"","sources":["../../src/print-button/NicePrintButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,KAAK,EAAgD,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAIjH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+K1D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NicePrintButton } from './NicePrintButton';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/print-button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { NicePrintPreviewProps } from '../types/printingTypes';
3
+
4
+ export declare const NicePrintPreview: React.FC<NicePrintPreviewProps>;
5
+ //# sourceMappingURL=NicePrintPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NicePrintPreview.d.ts","sourceRoot":"","sources":["../../src/print-preview/NicePrintPreview.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,KAAK,EAKV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AA6NhC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAyL5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NicePrintPreview } from './NicePrintPreview';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/print-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { NicePrintQueueProps } from '../types/printingTypes';
3
+
4
+ export declare const NicePrintQueue: React.FC<NicePrintQueueProps>;
5
+ //# sourceMappingURL=NicePrintQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NicePrintQueue.d.ts","sourceRoot":"","sources":["../../src/print-queue/NicePrintQueue.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAqNzF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsIxD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NicePrintQueue } from './NicePrintQueue';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/print-queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ ._root_552wg_3{display:flex;flex-direction:column;height:100%;min-height:0;font-family:system-ui,sans-serif;font-size:12px;background:var(--nice-bg-secondary, #f8fafc);color:var(--nice-text, #1e293b);overflow:hidden}._dark_552wg_27{background:var(--nice-text, #0f172a);color:var(--nice-border, #e2e8f0)}._toolbar_552wg_39{display:flex;align-items:center;flex-wrap:wrap;gap:var(--nice-space-1-5, 6px);padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);background:var(--nice-bg, #FFFFFF);border-bottom:1px solid var(--nice-border, #e2e8f0);box-shadow:0 1px 3px var(--nice-overlay-6, rgba(0, 0, 0, .06));flex-shrink:0;z-index:10}._dark_552wg_27 ._toolbar_552wg_39{background:var(--nice-text, #1e293b);border-bottom-color:var(--nice-text, #334155)}._toolbarGroup_552wg_75{display:flex;align-items:center;gap:var(--nice-space-0-5, 2px);padding:0 var(--nice-space-1-5, 6px);border-right:1px solid var(--nice-border, #e2e8f0)}._dark_552wg_27 ._toolbarGroup_552wg_75{border-right-color:var(--nice-text, #334155)}._toolbarGroup_552wg_75:last-child{border-right:none}._toolbarBtn_552wg_107{display:inline-flex;align-items:center;justify-content:center;padding:var(--nice-space-1, 4px) var(--nice-space-1-75, 7px);border:1px solid transparent;border-radius:var(--nice-radius-md, 5px);background:transparent;color:inherit;cursor:pointer;font-size:12px;min-width:28px;white-space:nowrap;transition:background .15s,border-color .15s}._toolbarBtn_552wg_107:hover:not(:disabled){background:var(--nice-bg-secondary, #f1f5f9);border-color:var(--nice-border, #cbd5e1)}._dark_552wg_27 ._toolbarBtn_552wg_107:hover:not(:disabled){background:var(--nice-text, #334155)}._toolbarBtn_552wg_107:disabled{opacity:.35;cursor:not-allowed}._toolbarBtnActive_552wg_167{background:var(--nice-primary-bg, #dbeafe);border-color:var(--nice-primary-light, #93c5fd);color:var(--nice-primary-dark, #1d4ed8)}._dark_552wg_27 ._toolbarBtnActive_552wg_167{background:var(--nice-primary-dark, #1e3a5f);border-color:var(--nice-primary, #3b82f6);color:var(--nice-primary-light, #93c5fd)}._toolbarBtnDanger_552wg_191:hover:not(:disabled){background:var(--nice-danger-bg, #fee2e2);border-color:var(--nice-danger-bg, #fca5a5);color:var(--nice-danger-dark, #dc2626)}._toolbarSelect_552wg_203{padding:var(--nice-space-0-75, 3px) var(--nice-space-1-5, 6px);border:1px solid var(--nice-border, #cbd5e1);border-radius:var(--nice-radius-md, 5px);background:var(--nice-bg-secondary, #f8fafc);color:inherit;font-size:12px;cursor:pointer}._dark_552wg_27 ._toolbarSelect_552wg_203{background:var(--nice-text, #1e293b);border-color:var(--nice-text-secondary, #475569)}._toolbarSep_552wg_233{display:inline-block;width:1px;height:16px;background:var(--nice-border, #e2e8f0);margin:0 var(--nice-space-0-5, 2px)}._dark_552wg_27 ._toolbarSep_552wg_233{background:var(--nice-text, #334155)}._insertWrapper_552wg_259{position:relative}._insertBtn_552wg_267{font-weight:500;color:var(--nice-primary-hover, #2563eb);border-color:var(--nice-primary-bg, #bfdbfe);background:var(--nice-primary-bg, #eff6ff)}._insertBtn_552wg_267:hover{background:var(--nice-primary-bg, #dbeafe)}._insertDropdown_552wg_289{position:absolute;top:calc(100% + 4px);left:0;background:var(--nice-bg, #FFFFFF);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 8px);box-shadow:0 8px 24px var(--nice-overlay-12, rgba(0, 0, 0, .12));min-width:180px;z-index:100;padding:var(--nice-space-1, 4px);display:flex;flex-direction:column}._dark_552wg_27 ._insertDropdown_552wg_289{background:var(--nice-text, #1e293b);border-color:var(--nice-text, #334155)}._insertCategory_552wg_329{padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px) var(--nice-space-0-5, 2px);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--nice-text-muted, #94a3b8)}._insertItem_552wg_347{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);border:none;background:transparent;cursor:pointer;font-size:12px;color:inherit;border-radius:var(--nice-radius-md, 5px);text-align:left}._insertItem_552wg_347:hover{background:var(--nice-bg-secondary, #f1f5f9)}._dark_552wg_27 ._insertItem_552wg_347:hover{background:var(--nice-text, #334155)}._insertIcon_552wg_391{font-size:13px;width:18px;text-align:center}._zoomSelect_552wg_405{padding:var(--nice-space-0-75, 3px) var(--nice-space-1, 4px);border:1px solid var(--nice-border, #cbd5e1);border-radius:var(--nice-radius-md, 5px);background:var(--nice-bg-secondary, #f8fafc);color:inherit;font-size:12px;width:60px}._dark_552wg_27 ._zoomSelect_552wg_405{background:var(--nice-text, #1e293b);border-color:var(--nice-text-secondary, #475569)}._saveBtn_552wg_437{margin-left:auto;padding:var(--nice-space-1-25, 5px) var(--nice-space-3-5, 14px);background:var(--nice-primary-hover, #2563eb);color:var(--nice-bg, #FFF);border:none;border-radius:var(--nice-radius-md, 6px);cursor:pointer;font-size:12px;font-weight:500;transition:background .15s}._saveBtn_552wg_437:hover{background:var(--nice-primary-dark, #1d4ed8)}._editorBody_552wg_473{display:flex;flex:1;min-height:0;overflow:hidden}._leftPanel_552wg_489{display:flex;flex-direction:column;width:220px;flex-shrink:0;border-right:1px solid var(--nice-border, #e2e8f0);background:var(--nice-bg, #FFFFFF);overflow:hidden}._dark_552wg_27 ._leftPanel_552wg_489{background:var(--nice-text, #1e293b);border-right-color:var(--nice-text, #334155)}._leftTabs_552wg_519{display:flex;border-bottom:1px solid var(--nice-border, #e2e8f0);flex-shrink:0}._dark_552wg_27 ._leftTabs_552wg_519{border-bottom-color:var(--nice-text, #334155)}._leftTab_552wg_519{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--nice-space-0-5, 2px);padding:var(--nice-space-2, 8px) var(--nice-space-0-5, 2px);border:none;background:transparent;color:var(--nice-text-secondary, #64748b);cursor:pointer;font-size:10px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s,background .15s}._leftTab_552wg_519:hover{background:var(--nice-bg-secondary, #f8fafc);color:var(--nice-text, #1e293b)}._dark_552wg_27 ._leftTab_552wg_519:hover{background:var(--nice-text, #0f172a);color:var(--nice-border, #e2e8f0)}._leftTabActive_552wg_591{color:var(--nice-primary-hover, #2563eb);border-bottom-color:var(--nice-primary-hover, #2563eb);background:var(--nice-primary-bg, #eff6ff)}._dark_552wg_27 ._leftTabActive_552wg_591{background:var(--nice-primary-dark, #1e3a5f)}._leftTabIcon_552wg_611{font-size:14px}._leftTabLabel_552wg_619{font-size:9px;font-weight:500}._leftContent_552wg_629{flex:1;overflow-y:auto;padding:var(--nice-space-2, 8px) 0}._panelHeader_552wg_643{padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px) var(--nice-space-1, 4px);font-size:11px;font-weight:600;color:var(--nice-text-secondary, #475569);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:var(--nice-space-1-5, 6px)}._panelHeaderIcon_552wg_667{font-size:13px}._panelHeaderName_552wg_675{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._searchBox_552wg_689{padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px) var(--nice-space-1-5, 6px)}._searchInput_552wg_697{width:100%;padding:var(--nice-space-1-25, 5px) var(--nice-space-2, 8px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);font-size:12px;background:var(--nice-bg-secondary, #f8fafc);color:inherit;box-sizing:border-box}._dark_552wg_27 ._searchInput_552wg_697{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._searchInput_552wg_697:focus{outline:2px solid var(--nice-primary, #3b82f6);outline-offset:-1px}._fieldList_552wg_743{display:flex;flex-direction:column}._fieldItem_552wg_753{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);cursor:grab;border-radius:0;transition:background .12s}._fieldItem_552wg_753:hover{background:var(--nice-bg-secondary, #f1f5f9)}._dark_552wg_27 ._fieldItem_552wg_753:hover{background:var(--nice-text, #334155)}._fieldItem_552wg_753:active{cursor:grabbing}._fieldItemIcon_552wg_797{font-size:13px;width:18px;text-align:center;flex-shrink:0}._fieldItemInfo_552wg_811{flex:1;min-width:0}._fieldItemLabel_552wg_821{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fieldItemPath_552wg_837{font-size:10px;color:var(--nice-text-muted, #94a3b8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._fieldItemType_552wg_853{font-size:9px;background:var(--nice-border, #e2e8f0);color:var(--nice-text-secondary, #475569);padding:var(--nice-space-px, 1px) var(--nice-space-1-25, 5px);border-radius:var(--nice-radius-sm, 3px);flex-shrink:0}._layerList_552wg_873{display:flex;flex-direction:column;padding:var(--nice-space-0-5, 2px) 0}._layerItem_552wg_885{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-1-25, 5px) var(--nice-space-2-5, 10px) var(--nice-space-1-25, 5px) var(--nice-space-3, 12px);cursor:pointer;transition:background .12s}._layerItem_552wg_885:hover{background:var(--nice-bg-secondary, #f1f5f9)}._dark_552wg_27 ._layerItem_552wg_885:hover{background:var(--nice-text, #334155)}._layerItemSelected_552wg_919{background:var(--nice-primary-bg, #eff6ff);border-left:2px solid var(--nice-primary-hover, #2563eb)}._dark_552wg_27 ._layerItemSelected_552wg_919{background:var(--nice-primary-dark, #1e3a5f)}._layerIcon_552wg_937{font-size:12px;width:16px;text-align:center}._layerName_552wg_949{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._layerActions_552wg_965{display:flex;gap:var(--nice-space-0-5, 2px);opacity:0;transition:opacity .15s}._layerItem_552wg_885:hover ._layerActions_552wg_965{opacity:1}._layerBtn_552wg_987{padding:var(--nice-space-0-5, 2px) var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 3px);background:transparent;cursor:pointer;font-size:11px;color:inherit;line-height:1}._layerBtn_552wg_987:hover{background:var(--nice-bg-secondary, #f1f5f9)}._wmList_552wg_1019{padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px)}._wmItem_552wg_1027{background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 8px);padding:var(--nice-space-2, 8px) var(--nice-space-2-5, 10px);margin-bottom:var(--nice-space-2, 8px)}._dark_552wg_27 ._wmItem_552wg_1027{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155)}._wmRow_552wg_1053{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1-25, 5px)}._wmLabel_552wg_1067{font-size:11px;color:var(--nice-text-secondary, #64748b);min-width:52px}._wmInput_552wg_1079{flex:1;padding:var(--nice-space-1, 4px) var(--nice-space-1-5, 6px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._wmInput_552wg_1079{background:var(--nice-text, #1e293b);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._wmInputNum_552wg_1111{width:54px;padding:var(--nice-space-1, 4px) var(--nice-space-1-5, 6px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._wmSelect_552wg_1131{flex:1;padding:var(--nice-space-1, 4px) var(--nice-space-1-5, 6px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._wmSelect_552wg_1131{background:var(--nice-text, #1e293b);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._wmSlider_552wg_1163{flex:1;accent-color:var(--nice-primary-hover, #2563eb)}._wmValue_552wg_1173{font-size:11px;color:var(--nice-text-secondary, #64748b);min-width:32px;text-align:right}._wmUnit_552wg_1187{font-size:11px;color:var(--nice-text-muted, #94a3b8)}._wmDelete_552wg_1197{width:100%;margin-top:var(--nice-space-1, 4px);padding:var(--nice-space-1, 4px);border:1px solid var(--nice-danger-bg, #fca5a5);border-radius:var(--nice-radius-md, 5px);background:var(--nice-bg, #FFF);color:var(--nice-danger, #ef4444);font-size:11px;cursor:pointer}._wmDelete_552wg_1197:hover{background:var(--nice-danger-bg, #fee2e2)}._addBtn_552wg_1229{width:100%;padding:var(--nice-space-1-75, 7px);border:1px dashed var(--nice-border, #cbd5e1);border-radius:var(--nice-radius-md, 6px);background:transparent;color:var(--nice-primary-hover, #2563eb);font-size:12px;cursor:pointer;margin-top:var(--nice-space-1, 4px)}._addBtn_552wg_1229:hover{background:var(--nice-primary-bg, #eff6ff);border-color:var(--nice-primary-light, #93c5fd)}._settingsForm_552wg_1265{padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px)}._settingsRow_552wg_1273{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1-75, 7px)}._settingsLabel_552wg_1287{font-size:11px;color:var(--nice-text-secondary, #64748b);min-width:60px}._settingsInput_552wg_1299{flex:1;padding:var(--nice-space-1, 4px) var(--nice-space-1-75, 7px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 5px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._settingsInput_552wg_1299{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._settingsInputNum_552wg_1331{width:56px;padding:var(--nice-space-1, 4px) var(--nice-space-1-75, 7px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 5px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._settingsInputNum_552wg_1331{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._settingsTextarea_552wg_1363{flex:1;padding:var(--nice-space-1, 4px) var(--nice-space-1-75, 7px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 5px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit;resize:vertical}._dark_552wg_27 ._settingsTextarea_552wg_1363{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._settingsDivider_552wg_1397{margin:var(--nice-space-2-5, 10px) 0 var(--nice-space-1-5, 6px);padding:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--nice-text-muted, #94a3b8)}._settingsUnit_552wg_1417{font-size:11px;color:var(--nice-text-muted, #94a3b8)}._emptyMsg_552wg_1429{padding:var(--nice-space-4, 16px) var(--nice-space-3, 12px);font-size:11px;color:var(--nice-text-muted, #94a3b8);text-align:center;line-height:1.5}._canvasArea_552wg_1447{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--nice-bg-secondary, #f1f5f9)}._dark_552wg_27 ._canvasArea_552wg_1447{background:var(--nice-text, #0f172a)}._testDataBar_552wg_1473{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-1-25, 5px) var(--nice-space-3, 12px);background:var(--nice-warning-bg, #fffbeb);border-bottom:1px solid var(--nice-warning-light, #fcd34d);font-size:11px;flex-shrink:0}._dark_552wg_27 ._testDataBar_552wg_1473{background:#1c1709;border-bottom-color:var(--nice-warning-dark, #78350f)}._testDataLabel_552wg_1505{font-weight:500;color:var(--nice-warning-dark, #92400e)}._testDataSelect_552wg_1515{padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);border:1px solid var(--nice-warning-light, #fcd34d);border-radius:var(--nice-radius-sm, 4px);font-size:11px;background:var(--nice-bg, #FFF);color:inherit}._rulerWrapper_552wg_1535{position:relative;display:flex;flex-shrink:0;pointer-events:none;padding-left:var(--nice-space-5, 20px)}._rulerCorner_552wg_1551{position:absolute;top:0;left:0;width:20px;height:20px;background:var(--nice-border, #e2e8f0);z-index:5;border-right:1px solid var(--nice-border, #cbd5e1);border-bottom:1px solid var(--nice-border, #cbd5e1)}._dark_552wg_27 ._rulerCorner_552wg_1551{background:var(--nice-text, #334155);border-color:var(--nice-text-secondary, #475569)}._ruler_552wg_1535{position:relative;background:var(--nice-bg-secondary, #f8fafc);border-bottom:1px solid var(--nice-border, #e2e8f0);overflow:hidden}._dark_552wg_27 ._ruler_552wg_1535{background:var(--nice-text, #1e293b);border-bottom-color:var(--nice-text, #334155)}._ruler_h_552wg_1609{width:100%;height:20px}._ruler_v_552wg_1619{position:absolute;left:0;top:20px;width:20px;height:calc(100% - 20px);border-right:1px solid var(--nice-border, #e2e8f0);border-bottom:none}._rulerTick_552wg_1639{position:absolute;top:auto;bottom:0;width:1px;height:5px;background:var(--nice-text-muted, #94a3b8);transform:translate(-50%)}._ruler_v_552wg_1619 ._rulerTick_552wg_1639{top:0;bottom:auto;left:auto;right:0;width:5px;height:1px;transform:translateY(-50%)}._rulerTickMajor_552wg_1679{height:10px;background:var(--nice-text-secondary, #64748b)}._ruler_v_552wg_1619 ._rulerTickMajor_552wg_1679{height:1px;width:10px}._rulerLabel_552wg_1699{position:absolute;bottom:12px;left:2px;font-size:8px;color:var(--nice-text-secondary, #64748b);-webkit-user-select:none;user-select:none;white-space:nowrap}._ruler_v_552wg_1619 ._rulerLabel_552wg_1699{bottom:auto;top:2px;left:-2px;transform:rotate(-90deg) translate(50%);transform-origin:left top}._paperScroll_552wg_1737{flex:1;overflow:auto;padding:var(--nice-space-6, 24px);display:flex;justify-content:center;align-items:flex-start}._paperShadow_552wg_1755{position:relative;background:var(--nice-bg, #FFFFFF);box-shadow:0 4px 24px var(--nice-overlay-20, rgba(0, 0, 0, .18)),0 1px 4px var(--nice-overlay-8, rgba(0, 0, 0, .08));flex-shrink:0}._dark_552wg_27 ._paperShadow_552wg_1755{background:var(--nice-bg-secondary, #f8fafc)}._marginGuide_552wg_1779{position:absolute;pointer-events:none;border:1px dashed rgba(59,130,246,.35);z-index:0}._watermark_552wg_1795{position:absolute;top:50%;left:50%;pointer-events:none;font-weight:900;white-space:nowrap;-webkit-user-select:none;user-select:none;letter-spacing:.1em;z-index:0}._sectionCanvas_552wg_1821{position:relative;width:100%;transition:box-shadow .15s;box-sizing:border-box}._sectionCanvasOver_552wg_1835{box-shadow:inset 0 0 0 2px var(--nice-primary, #3b82f6)}._sectionTypeChip_552wg_1843{position:absolute;top:3px;left:3px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:var(--nice-space-px, 1px) var(--nice-space-1-25, 5px);border-radius:var(--nice-radius-sm, 3px);background:#94a3b840;color:var(--nice-text-secondary, #64748b);pointer-events:none;z-index:50}._sectionResizeBar_552wg_1875{position:absolute;bottom:0;left:0;right:0;height:6px;cursor:ns-resize;display:flex;align-items:center;justify-content:center;z-index:20}._sectionResizeBar_552wg_1875:hover{background:var(--nice-primary-tint-15, rgba(59, 130, 246, .15))}._sectionResizeGrip_552wg_1909{width:40px;height:3px;border-radius:var(--nice-radius-full, 99px);background:var(--nice-border, #cbd5e1)}._fieldImagePlaceholder_552wg_1925{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--nice-bg-secondary, #f1f5f9);color:var(--nice-text-muted, #94a3b8);font-size:18px}._fieldBarcodePlaceholder_552wg_1947{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--nice-bg-secondary, #f8fafc);color:var(--nice-text-secondary, #64748b);font-size:10px;font-family:monospace;letter-spacing:.05em;border:1px solid var(--nice-border, #e2e8f0)}._fieldSignaturePlaceholder_552wg_1975{width:100%;height:100%;display:flex;align-items:flex-end;padding:var(--nice-space-1, 4px);border-bottom:1px solid var(--nice-text, #1e293b);color:var(--nice-text-muted, #94a3b8);font-size:10px;box-sizing:border-box}._resizeHandle_552wg_2001{position:absolute;width:8px;height:8px;background:var(--nice-primary-hover, #2563eb);border:1.5px solid var(--nice-bg, #FFF);border-radius:var(--nice-radius-sm, 2px);z-index:100}._handle_n_552wg_2021{top:-4px;left:50%;transform:translate(-50%);cursor:n-resize}._handle_s_552wg_2023{bottom:-4px;left:50%;transform:translate(-50%);cursor:s-resize}._handle_e_552wg_2025{right:-4px;top:50%;transform:translateY(-50%);cursor:e-resize}._handle_w_552wg_2027{left:-4px;top:50%;transform:translateY(-50%);cursor:w-resize}._handle_ne_552wg_2029{top:-4px;right:-4px;cursor:ne-resize}._handle_nw_552wg_2031{top:-4px;left:-4px;cursor:nw-resize}._handle_se_552wg_2033{bottom:-4px;right:-4px;cursor:se-resize}._handle_sw_552wg_2035{bottom:-4px;left:-4px;cursor:sw-resize}._rightPanel_552wg_2041{width:240px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--nice-border, #e2e8f0);background:var(--nice-bg, #FFFFFF);overflow:hidden}._dark_552wg_27 ._rightPanel_552wg_2041{background:var(--nice-text, #1e293b);border-left-color:var(--nice-text, #334155)}._rightTabs_552wg_2071{display:flex;border-bottom:1px solid var(--nice-border, #e2e8f0);flex-shrink:0}._dark_552wg_27 ._rightTabs_552wg_2071{border-bottom-color:var(--nice-text, #334155)}._rightTab_552wg_2071{flex:1;padding:var(--nice-space-1-75, 7px) var(--nice-space-1, 4px);border:none;background:transparent;color:var(--nice-text-secondary, #64748b);cursor:pointer;font-size:11px;border-bottom:2px solid transparent;transition:color .12s,border-color .12s,background .12s}._rightTab_552wg_2071:hover{background:var(--nice-bg-secondary, #f8fafc);color:var(--nice-text, #1e293b)}._dark_552wg_27 ._rightTab_552wg_2071:hover{background:var(--nice-text, #0f172a);color:var(--nice-border, #e2e8f0)}._rightTabActive_552wg_2135{color:var(--nice-primary-hover, #2563eb);border-bottom-color:var(--nice-primary-hover, #2563eb);font-weight:500}._propsBody_552wg_2147{flex:1;overflow-y:auto;padding:var(--nice-space-2, 8px) var(--nice-space-2-5, 10px)}._propsEmpty_552wg_2159{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-6, 24px) var(--nice-space-4, 16px);color:var(--nice-text-muted, #94a3b8)}._propsEmptyIcon_552wg_2181{font-size:36px;opacity:.4}._propsEmptyText_552wg_2191{font-size:12px;text-align:center}._posGrid_552wg_2203{display:grid;grid-template-columns:1fr 1fr;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-2-5, 10px)}._posCell_552wg_2217{display:flex;align-items:center;gap:var(--nice-space-0-75, 3px)}._posLabel_552wg_2229{font-size:10px;color:var(--nice-text-secondary, #64748b);min-width:28px}._posInput_552wg_2241{width:54px;padding:var(--nice-space-1, 4px) var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._posInput_552wg_2241{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._posInput_552wg_2241:focus{outline:2px solid var(--nice-primary, #3b82f6);outline-offset:-1px}._posUnit_552wg_2283{font-size:10px;color:var(--nice-text-muted, #94a3b8)}._snapSection_552wg_2295{margin-top:var(--nice-space-2, 8px)}._snapTitle_552wg_2303{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--nice-text-muted, #94a3b8);margin-bottom:var(--nice-space-1-25, 5px)}._snapRow_552wg_2321{display:flex;gap:var(--nice-space-1, 4px)}._snapBtn_552wg_2331{flex:1;padding:var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 5px);background:var(--nice-bg-secondary, #f8fafc);color:inherit;font-size:13px;cursor:pointer}._snapBtn_552wg_2331:hover{background:var(--nice-primary-bg, #eff6ff);border-color:var(--nice-primary-light, #93c5fd)}._styleGroup_552wg_2365{margin-bottom:var(--nice-space-2-5, 10px)}._styleGroupTitle_552wg_2373{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--nice-text-muted, #94a3b8);margin-bottom:var(--nice-space-1-5, 6px);padding-bottom:var(--nice-space-1, 4px);border-bottom:1px solid var(--nice-bg-secondary, #f1f5f9)}._dark_552wg_27 ._styleGroupTitle_552wg_2373{border-bottom-color:var(--nice-text, #334155)}._styleRow_552wg_2403{display:flex;align-items:center;gap:var(--nice-space-1-25, 5px);margin-bottom:var(--nice-space-1-25, 5px)}._styleLabel_552wg_2417{font-size:11px;color:var(--nice-text-secondary, #64748b);min-width:50px;flex-shrink:0}._styleSelect_552wg_2431{padding:var(--nice-space-0-75, 3px) var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._styleSelect_552wg_2431{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._styleSelectFull_552wg_2461{flex:1;padding:var(--nice-space-0-75, 3px) var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._styleSelectFull_552wg_2461{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._styleSelectSm_552wg_2493{width:50px;padding:var(--nice-space-0-75, 3px) var(--nice-space-1, 4px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._styleSelectXs_552wg_2513{width:42px;padding:var(--nice-space-0-75, 3px) var(--nice-space-1, 4px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:11px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._styleSelectXs_552wg_2513{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._styleInput_552wg_2545{width:52px;padding:var(--nice-space-0-75, 3px) var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._styleInput_552wg_2545{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._styleInputFull_552wg_2577{flex:1;padding:var(--nice-space-0-75, 3px) var(--nice-space-1-75, 7px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._styleInputFull_552wg_2577{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._styleUnit_552wg_2609{font-size:10px;color:var(--nice-text-muted, #94a3b8);flex-shrink:0}._styleValue_552wg_2621{font-size:11px;color:var(--nice-text-secondary, #64748b);min-width:32px;text-align:right}._toggleGroup_552wg_2635{display:flex;gap:var(--nice-space-0-5, 2px)}._toggleBtn_552wg_2645{padding:var(--nice-space-0-75, 3px) var(--nice-space-2, 8px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);background:var(--nice-bg-secondary, #f8fafc);color:inherit;font-size:12px;cursor:pointer;transition:background .12s,border-color .12s}._toggleBtn_552wg_2645:hover{background:var(--nice-border, #e2e8f0)}._toggleBtnActive_552wg_2675{background:var(--nice-primary-bg, #dbeafe);border-color:var(--nice-primary-light, #93c5fd);color:var(--nice-primary-dark, #1d4ed8)}._colorPicker_552wg_2689{width:28px;height:26px;padding:var(--nice-space-px, 1px) var(--nice-space-0-5, 2px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);cursor:pointer}._colorHex_552wg_2707{width:68px;padding:var(--nice-space-0-75, 3px) var(--nice-space-1-25, 5px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);font-size:12px;font-family:monospace;background:var(--nice-bg, #FFF);color:inherit}._dark_552wg_27 ._colorHex_552wg_2707{background:var(--nice-text, #0f172a);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._clearBtn_552wg_2741{padding:var(--nice-space-0-75, 3px) var(--nice-space-1-75, 7px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);background:transparent;color:var(--nice-text-muted, #94a3b8);font-size:12px;cursor:pointer}._clearBtn_552wg_2741:hover{background:var(--nice-danger-bg, #fee2e2);color:var(--nice-danger, #ef4444);border-color:var(--nice-danger-bg, #fca5a5)}._sliderInput_552wg_2773{flex:1;accent-color:var(--nice-primary-hover, #2563eb)}._conditionalHint_552wg_2785{font-size:11px;color:var(--nice-text-secondary, #64748b);background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);padding:var(--nice-space-1-75, 7px) var(--nice-space-2-5, 10px);margin-bottom:var(--nice-space-2-5, 10px);line-height:1.5}._dark_552wg_27 ._conditionalHint_552wg_2785{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155)}._clearConditionalBtn_552wg_2817{margin-top:var(--nice-space-2, 8px);padding:var(--nice-space-1-25, 5px) var(--nice-space-2-5, 10px);border:1px solid var(--nice-danger-bg, #fca5a5);border-radius:var(--nice-radius-md, 5px);background:transparent;color:var(--nice-danger, #ef4444);font-size:11px;cursor:pointer}._clearConditionalBtn_552wg_2817:hover{background:var(--nice-danger-bg, #fee2e2)}._shortcutGrid_552wg_2849{display:grid;grid-template-columns:1fr 1fr;gap:var(--nice-space-1-25, 5px);width:100%}._shortcutChip_552wg_2863{display:flex;flex-direction:column;align-items:center;gap:var(--nice-space-0-75, 3px);padding:var(--nice-space-1-5, 6px) var(--nice-space-2, 8px);background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px)}._dark_552wg_27 ._shortcutChip_552wg_2863{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155)}._shortcutKeys_552wg_2895{font-size:10px;font-weight:700;font-family:monospace;color:var(--nice-primary-dark, #1d4ed8);background:var(--nice-primary-bg, #dbeafe);padding:var(--nice-space-px, 1px) var(--nice-space-1-25, 5px);border-radius:var(--nice-radius-sm, 3px)}._shortcutLabel_552wg_2915{font-size:9px;color:var(--nice-text-secondary, #64748b);text-align:center}._root_6hwvk_1{display:flex;flex-direction:column;height:100%;font-family:inherit;font-size:13px;background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 8px);overflow:hidden}._dark_6hwvk_25{background:var(--nice-text, #0f172a);color:var(--nice-border, #e2e8f0);border-color:var(--nice-text, #1e293b)}._topBar_6hwvk_31{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);background:var(--nice-bg, #FFF);border-bottom:1px solid var(--nice-border, #e2e8f0);flex-shrink:0}._dark_6hwvk_25 ._topBar_6hwvk_31{background:var(--nice-text, #1e293b);border-bottom-color:var(--nice-text, #334155)}._searchInput_6hwvk_55{flex:1;padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);font-size:13px;background:var(--nice-bg-secondary, #f8fafc);color:var(--nice-text, #1e293b);outline:none}._searchInput_6hwvk_55:focus{border-color:var(--nice-primary-light, #93c5fd);background:var(--nice-bg, #FFF)}._dark_6hwvk_25 ._searchInput_6hwvk_55{background:var(--nice-text, #334155);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._actionBtn_6hwvk_83{padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);background:var(--nice-bg, #FFF);cursor:pointer;font-size:12px;font-weight:500;color:var(--nice-text-secondary, #475569);white-space:nowrap;transition:all .1s}._actionBtn_6hwvk_83:hover{background:var(--nice-bg-secondary, #f1f5f9)}._dark_6hwvk_25 ._actionBtn_6hwvk_83{background:var(--nice-text, #334155);border-color:var(--nice-text-secondary, #475569);color:var(--nice-border, #e2e8f0)}._categoryRow_6hwvk_117{display:flex;gap:var(--nice-space-1-5, 6px);padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);border-bottom:1px solid var(--nice-bg-secondary, #f1f5f9);flex-wrap:wrap;flex-shrink:0;background:var(--nice-bg, #FFF)}._dark_6hwvk_25 ._categoryRow_6hwvk_117{background:var(--nice-text, #1e293b);border-bottom-color:var(--nice-text, #334155)}._catChip_6hwvk_141{padding:var(--nice-space-0-75, 3px) var(--nice-space-2-5, 10px);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-xl, 14px);background:var(--nice-bg, #FFF);cursor:pointer;font-size:12px;color:var(--nice-text-secondary, #64748b);transition:all .1s}._catChip_6hwvk_141:hover{background:var(--nice-bg-secondary, #f1f5f9)}._catChipActive_6hwvk_167{background:var(--nice-primary-hover, #2563eb);border-color:var(--nice-primary-hover, #2563eb);color:var(--nice-bg, #FFF)}._grid_6hwvk_181{display:flex;flex-wrap:wrap;gap:var(--nice-space-3, 12px);padding:var(--nice-space-3, 12px);overflow-y:auto;flex:1;align-content:flex-start}._card_6hwvk_203{flex:0 0 auto;width:180px;background:var(--nice-bg, #FFF);border:2px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 8px);overflow:hidden;cursor:pointer;transition:all .15s}._card_6hwvk_203:hover{border-color:var(--nice-primary-light, #93c5fd);box-shadow:0 2px 8px var(--nice-overlay-8, rgba(0, 0, 0, .08))}._cardSelected_6hwvk_235{border-color:var(--nice-primary-hover, #2563eb)!important;box-shadow:0 0 0 3px var(--nice-primary-tint-15, rgba(37, 99, 235, .15))}._dark_6hwvk_25 ._card_6hwvk_203{background:var(--nice-text, #1e293b);border-color:var(--nice-text, #334155)}._thumbnail_6hwvk_251{position:relative;height:120px;background:var(--nice-bg-secondary, #f1f5f9);overflow:hidden}._thumbnailImg_6hwvk_265{width:100%;height:100%;object-fit:cover}._thumbnailPlaceholder_6hwvk_277{display:flex;align-items:center;justify-content:center;height:100%}._paperMini_6hwvk_291{width:70px;background:var(--nice-bg, #FFF);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 2px);padding:var(--nice-space-2, 8px) var(--nice-space-1-5, 6px);display:flex;flex-direction:column;gap:var(--nice-space-1, 4px);box-shadow:0 1px 4px var(--nice-overlay-8, rgba(0, 0, 0, .08))}._paperLine_6hwvk_315{height:4px;background:var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 2px)}._cardOverlay_6hwvk_329{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nice-overlay-35, rgba(0, 0, 0, .35));display:flex;align-items:center;justify-content:center;gap:var(--nice-space-2, 8px)}._overlayBtn_6hwvk_349{width:32px;height:32px;background:var(--nice-bg, #FFF);border:none;border-radius:var(--nice-radius-full, 50%);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .1s}._overlayBtn_6hwvk_349:hover{background:var(--nice-primary-bg, #e0f2fe)}._overlayBtnDanger_6hwvk_381{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--nice-overlay-light-90, rgba(255, 255, 255, .9));border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);cursor:pointer;font-size:14px;color:var(--nice-danger, #ef4444);transition:all .1s}._overlayBtnDanger_6hwvk_381:hover{background:var(--nice-danger-bg, #fee2e2)!important}._cardBody_6hwvk_411{padding:var(--nice-space-2, 8px) var(--nice-space-2-5, 10px)}._cardName_6hwvk_415{font-weight:600;font-size:13px;color:var(--nice-text, #0f172a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--nice-space-0-5, 2px)}._dark_6hwvk_25 ._cardName_6hwvk_415{color:var(--nice-bg-secondary, #f1f5f9)}._cardDesc_6hwvk_439{font-size:11px;color:var(--nice-text-secondary, #64748b);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--nice-space-1, 4px)}._cardMeta_6hwvk_461{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1, 4px)}._cardSize_6hwvk_475{font-size:10px;color:var(--nice-text-muted, #94a3b8);padding:var(--nice-space-px, 1px) var(--nice-space-1-25, 5px);background:var(--nice-bg-secondary, #f1f5f9);border-radius:var(--nice-radius-sm, 4px)}._cardCat_6hwvk_491{font-size:10px;color:var(--nice-primary-hover, #2563eb);background:var(--nice-primary-bg, #eff6ff);padding:var(--nice-space-px, 1px) var(--nice-space-1-25, 5px);border-radius:var(--nice-radius-sm, 4px)}._cardTags_6hwvk_507{display:flex;gap:var(--nice-space-0-75, 3px);flex-wrap:wrap}._cardTag_6hwvk_507{font-size:9px;color:var(--nice-text-muted, #94a3b8);background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-px, 1px) var(--nice-space-1, 4px)}._emptyState_6hwvk_531{width:100%;padding:var(--nice-space-12, 48px);display:flex;flex-direction:column;align-items:center;gap:var(--nice-space-2, 8px);color:var(--nice-text-muted, #94a3b8);font-size:14px}._emptyIcon_6hwvk_553{font-size:40px}._root_1grye_1{display:flex;flex-direction:column;height:100%;background:var(--nice-bg-secondary, #f1f5f9);font-family:system-ui,sans-serif;font-size:14px;color:var(--nice-text, #1e293b)}._dark_1grye_19{background:var(--nice-text, #1e293b);color:var(--nice-bg-secondary, #f1f5f9)}._headerBar_1grye_25{display:flex;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);background:var(--nice-bg, #FFF);border-bottom:1px solid var(--nice-border, #e2e8f0);flex-shrink:0}._dark_1grye_19 ._headerBar_1grye_25{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155)}._entityNav_1grye_47{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px)}._navBtn_1grye_49{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:16px;line-height:1;color:var(--nice-text-secondary, #475569)}._navBtn_1grye_49:disabled{opacity:.4;cursor:default}._navBtn_1grye_49:not(:disabled):hover{background:var(--nice-border, #e2e8f0)}._navLabel_1grye_73{color:var(--nice-text-secondary, #64748b);font-size:13px;min-width:48px;text-align:center}._sampleBadge_1grye_77{padding:var(--nice-space-0-75, 3px) var(--nice-space-2-5, 10px);background:var(--nice-warning-bg, #fef9c3);border:1px solid #fde047;border-radius:var(--nice-radius-xl, 12px);font-size:12px;color:var(--nice-warning-dark, #854d0e)}._zoomBar_1grye_95{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-left:auto}._zoomBtn_1grye_97{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:15px;color:var(--nice-text-secondary, #475569)}._zoomBtn_1grye_97:hover{background:var(--nice-border, #e2e8f0)}._zoomLabel_1grye_119{font-size:13px;min-width:42px;text-align:center;color:var(--nice-text-secondary, #64748b)}._printBtn_1grye_123{padding:var(--nice-space-1-5, 6px) var(--nice-space-4, 16px);background:var(--nice-primary-hover, #2563eb);color:var(--nice-bg, #FFF);border:none;border-radius:var(--nice-radius-md, 6px);cursor:pointer;font-size:13px;font-weight:500}._printBtn_1grye_123:hover{background:var(--nice-primary-dark, #1d4ed8)}._canvas_1grye_149{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:var(--nice-space-8, 32px)}._page_1grye_169{position:relative;background:var(--nice-bg, #FFF);box-shadow:0 4px 32px var(--nice-overlay-20, rgba(0, 0, 0, .18));border-radius:var(--nice-radius-sm, 2px);overflow:hidden;flex-shrink:0}._dark_1grye_19 ._page_1grye_169{box-shadow:0 4px 32px var(--nice-overlay-60, rgba(0, 0, 0, .6))}._watermark_1grye_191{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--nice-text-muted, #94a3b8);font-weight:700;letter-spacing:.05em;z-index:100;white-space:nowrap}._footerBar_1grye_221{display:flex;align-items:center;gap:var(--nice-space-4, 16px);padding:var(--nice-space-1-5, 6px) var(--nice-space-4, 16px);background:var(--nice-bg, #FFF);border-top:1px solid var(--nice-border, #e2e8f0);font-size:12px;color:var(--nice-text-muted, #94a3b8);flex-shrink:0}._dark_1grye_19 ._footerBar_1grye_221{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155)}._root_18ftw_1{display:flex;flex-direction:column;background:var(--nice-bg, #FFF);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-xl, 12px);overflow:hidden;font-family:system-ui,sans-serif;font-size:14px;color:var(--nice-text, #1e293b)}._dark_18ftw_23{background:var(--nice-text, #1e293b);border-color:var(--nice-text, #334155);color:var(--nice-bg-secondary, #f1f5f9)}._statsBar_18ftw_29{display:flex;align-items:center;gap:var(--nice-space-5, 20px);padding:var(--nice-space-2-5, 10px) var(--nice-space-4, 16px);background:var(--nice-bg-secondary, #f8fafc);border-bottom:1px solid var(--nice-border, #e2e8f0)}._dark_18ftw_23 ._statsBar_18ftw_29{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155)}._stat_18ftw_29{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);font-size:13px}._dot_18ftw_51{width:8px;height:8px;border-radius:var(--nice-radius-full, 50%);display:inline-block}._statPrinting_18ftw_53 ._dot_18ftw_51{background:var(--nice-primary-hover, #2563eb)}._statQueued_18ftw_55 ._dot_18ftw_51{background:var(--nice-text-secondary, #64748b)}._statDone_18ftw_57 ._dot_18ftw_51{background:var(--nice-success-dark, #16a34a)}._statError_18ftw_59 ._dot_18ftw_51{background:var(--nice-danger-dark, #dc2626)}._toolbar_18ftw_65{display:flex;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);border-bottom:1px solid var(--nice-border, #e2e8f0);flex-wrap:wrap}._dark_18ftw_23 ._toolbar_18ftw_65{border-color:var(--nice-text, #334155)}._filterTabs_18ftw_85{display:flex;gap:var(--nice-space-1, 4px)}._filterTab_18ftw_85{display:flex;align-items:center;gap:var(--nice-space-1-25, 5px);padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px);background:none;border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);cursor:pointer;font-size:12px;color:var(--nice-text-secondary, #475569)}._filterTab_18ftw_85:hover{background:var(--nice-bg-secondary, #f1f5f9)}._filterTabActive_18ftw_109{background:var(--nice-primary-bg, #eff6ff);border-color:var(--nice-primary-hover, #2563eb);color:var(--nice-primary-hover, #2563eb)}._filterCount_18ftw_111{background:var(--nice-bg-secondary, #f1f5f9);padding:var(--nice-space-px, 1px) var(--nice-space-1-25, 5px);border-radius:var(--nice-radius-lg, 8px);font-size:11px;color:var(--nice-text-secondary, #64748b)}._filterTabActive_18ftw_109 ._filterCount_18ftw_111{background:var(--nice-primary-bg, #dbeafe);color:var(--nice-primary-hover, #2563eb)}._bulkActions_18ftw_123{display:flex;align-items:center;gap:var(--nice-space-2, 8px);margin-left:auto}._bulkCount_18ftw_125{font-size:13px;color:var(--nice-text-secondary, #64748b)}._bulkBtn_18ftw_127{padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px);border-radius:var(--nice-radius-md, 6px);border:1px solid var(--nice-border, #e2e8f0);cursor:pointer;font-size:12px;background:var(--nice-bg, #FFF);color:var(--nice-text, #1e293b)}._bulkBtn_18ftw_127:hover{background:var(--nice-bg-secondary, #f1f5f9)}._bulkBtnRemove_18ftw_147{color:var(--nice-danger-dark, #dc2626);border-color:var(--nice-danger-bg, #fecaca)}._bulkBtnRemove_18ftw_147:hover{background:var(--nice-danger-bg, #fef2f2)}._jobList_18ftw_155{overflow-y:auto}._listHeader_18ftw_159{display:grid;grid-template-columns:40px 1fr min-content min-content;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);font-size:12px;font-weight:600;color:var(--nice-text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--nice-bg-secondary, #f1f5f9)}._dark_18ftw_23 ._listHeader_18ftw_159{border-color:var(--nice-text, #1e293b)}._headerLabel_18ftw_187{white-space:nowrap}._jobRow_18ftw_193{display:grid;grid-template-columns:40px auto 1fr min-content min-content;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-2-5, 10px) var(--nice-space-4, 16px);border-bottom:1px solid var(--nice-bg-secondary, #f1f5f9);transition:background .1s}._dark_18ftw_23 ._jobRow_18ftw_193{border-color:var(--nice-text, #334155)}._jobRow_18ftw_193:hover{background:var(--nice-bg-secondary, #f8fafc)}._dark_18ftw_23 ._jobRow_18ftw_193:hover{background:var(--nice-text, #0f172a)}._jobRowSelected_18ftw_217{background:var(--nice-primary-bg, #eff6ff)!important}._dark_18ftw_23 ._jobRowSelected_18ftw_217{background:#172554!important}._jobCheckbox_18ftw_223{cursor:pointer;width:16px;height:16px}._statusBadge_18ftw_229{display:inline-flex;align-items:center;padding:var(--nice-space-0-75, 3px) var(--nice-space-2, 8px);border-radius:var(--nice-radius-xl, 12px);font-size:11px;font-weight:500;white-space:nowrap}._badge-queued_18ftw_247{background:var(--nice-bg-secondary, #f1f5f9);color:var(--nice-text-secondary, #64748b)}._badge-printing_18ftw_249{background:var(--nice-primary-bg, #dbeafe);color:var(--nice-primary-dark, #1d4ed8);animation:_pulse_18ftw_1 1.5s ease-in-out infinite}._badge-done_18ftw_251{background:var(--nice-success-bg, #dcfce7);color:var(--nice-success-dark, #16a34a)}._badge-error_18ftw_253{background:var(--nice-danger-bg, #fee2e2);color:var(--nice-danger-dark, #dc2626)}._badge-paused_18ftw_255{background:var(--nice-warning-bg, #fef9c3);color:var(--nice-warning-dark, #854d0e)}._badge-cancelled_18ftw_257{background:var(--nice-bg-secondary, #f1f5f9);color:var(--nice-text-muted, #94a3b8)}@keyframes _pulse_18ftw_1{0%,to{opacity:1}50%{opacity:.7}}._jobInfo_18ftw_267{min-width:0}._jobName_18ftw_269{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._jobMeta_18ftw_271{display:flex;align-items:center;gap:var(--nice-space-2, 8px);font-size:12px;color:var(--nice-text-muted, #94a3b8);margin-top:var(--nice-space-0-5, 2px)}._jobTime_18ftw_281{color:var(--nice-text-secondary, #64748b)}._jobDuration_18ftw_283{color:var(--nice-warning, #f59e0b)}._jobError_18ftw_285{font-size:12px;color:var(--nice-danger-dark, #dc2626);margin-top:var(--nice-space-1, 4px)}._progressBar_18ftw_291{height:3px;background:var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 2px);margin-top:var(--nice-space-1-5, 6px);overflow:hidden}._progressFill_18ftw_305{height:100%;background:var(--nice-primary-hover, #2563eb);border-radius:var(--nice-radius-sm, 2px);transition:width .3s}._copiesEditor_18ftw_321{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);white-space:nowrap}._copiesBtn_18ftw_333{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:14px;color:var(--nice-text-secondary, #475569)}._copiesBtn_18ftw_333:disabled{opacity:.4;cursor:default}._copiesBtn_18ftw_333:not(:disabled):hover{background:var(--nice-border, #e2e8f0)}._copiesValue_18ftw_357{min-width:20px;text-align:center;font-size:13px}._jobActions_18ftw_363{display:flex;align-items:center;gap:var(--nice-space-1, 4px)}._actionBtn_18ftw_365{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);cursor:pointer;font-size:13px;color:var(--nice-text-secondary, #475569)}._actionBtn_18ftw_365:hover{background:var(--nice-bg-secondary, #f1f5f9)}._removeBtn_18ftw_387{color:var(--nice-danger, #ef4444);border-color:var(--nice-danger-bg, #fecaca)}._removeBtn_18ftw_387:hover{background:var(--nice-danger-bg, #fef2f2)}._emptyState_18ftw_395{text-align:center;padding:var(--nice-space-10, 40px) var(--nice-space-6, 24px);color:var(--nice-text-muted, #94a3b8);font-size:14px}._container_yzbyh_1{position:relative;display:inline-flex;flex-direction:column;font-family:system-ui,sans-serif;font-size:14px}._buttonGroup_yzbyh_19{display:flex;align-items:stretch}._trigger_yzbyh_31{display:inline-flex;align-items:center;justify-content:center;gap:var(--nice-space-1-5, 6px);border:none;cursor:pointer;font-weight:500;transition:background .15s,opacity .15s;white-space:nowrap}._triggerDisabled_yzbyh_53{opacity:.5;cursor:not-allowed}._variant-primary_yzbyh_59{background:var(--nice-primary-hover, #2563eb);color:var(--nice-bg, #FFF)}._variant-primary_yzbyh_59:not(._triggerDisabled_yzbyh_53):hover{background:var(--nice-primary-dark, #1d4ed8)}._variant-secondary_yzbyh_63{background:var(--nice-bg-secondary, #f8fafc);color:var(--nice-text, #1e293b);border:1px solid var(--nice-border, #e2e8f0)}._variant-secondary_yzbyh_63:not(._triggerDisabled_yzbyh_53):hover{background:var(--nice-border, #e2e8f0)}._variant-ghost_yzbyh_67{background:transparent;color:var(--nice-primary-hover, #2563eb)}._variant-ghost_yzbyh_67:not(._triggerDisabled_yzbyh_53):hover{background:var(--nice-primary-bg, #eff6ff)}._size-sm_yzbyh_75{padding:var(--nice-space-1-25, 5px) var(--nice-space-2-5, 10px);font-size:12px;border-radius:var(--nice-radius-md, 6px) 0 0 var(--nice-radius-md, 6px)}._size-md_yzbyh_77{padding:var(--nice-space-2, 8px) var(--nice-space-3-5, 14px);font-size:14px;border-radius:var(--nice-radius-lg, 8px) 0 0 var(--nice-radius-lg, 8px)}._size-lg_yzbyh_79{padding:var(--nice-space-2-5, 10px) 18px;font-size:15px;border-radius:var(--nice-radius-lg, 10px) 0 0 var(--nice-radius-lg, 10px)}._mainAction_yzbyh_85{flex:1;border-right:1px solid var(--nice-overlay-light-20, rgba(255, 255, 255, .2))}._variant-secondary_yzbyh_63 ._mainAction_yzbyh_85{border-right-color:var(--nice-border, #e2e8f0)}._variant-ghost_yzbyh_67 ._mainAction_yzbyh_85{border-right-color:var(--nice-primary-bg, #dbeafe)}._dropdownToggle_yzbyh_95{padding:0 var(--nice-space-2, 8px)!important}._size-sm_yzbyh_75._dropdownToggle_yzbyh_95{border-radius:0 var(--nice-radius-md, 6px) var(--nice-radius-md, 6px) 0}._size-md_yzbyh_77._dropdownToggle_yzbyh_95{border-radius:0 var(--nice-radius-lg, 8px) var(--nice-radius-lg, 8px) 0}._size-lg_yzbyh_79._dropdownToggle_yzbyh_95{border-radius:0 var(--nice-radius-lg, 10px) var(--nice-radius-lg, 10px) 0}._chevron_yzbyh_109{display:inline-block;transition:transform .2s;font-size:12px}._chevronUp_yzbyh_111{transform:scaleY(-1)}._dropdown_yzbyh_95{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:var(--nice-bg, #FFF);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-lg, 10px);box-shadow:0 8px 32px var(--nice-overlay-12, rgba(0, 0, 0, .12));z-index:1000;overflow:hidden}._dark_yzbyh_141 ._dropdown_yzbyh_95{background:var(--nice-text, #1e293b);border-color:var(--nice-text, #334155);box-shadow:0 8px 32px var(--nice-overlay-50, rgba(0, 0, 0, .5))}._section_yzbyh_145{padding:var(--nice-space-3, 12px) var(--nice-space-3-5, 14px)}._sectionLabel_yzbyh_147{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--nice-text-muted, #94a3b8);margin-bottom:var(--nice-space-2, 8px)}._divider_yzbyh_167{height:1px;background:var(--nice-bg-secondary, #f1f5f9)}._dark_yzbyh_141 ._divider_yzbyh_167{background:var(--nice-text, #334155)}._copiesRow_yzbyh_175{display:flex;align-items:center;gap:var(--nice-space-2-5, 10px)}._copiesBtn_yzbyh_185{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);cursor:pointer;font-size:16px;color:var(--nice-text-secondary, #475569)}._copiesBtn_yzbyh_185:disabled{opacity:.4;cursor:default}._copiesBtn_yzbyh_185:not(:disabled):hover{background:var(--nice-border, #e2e8f0)}._copiesValue_yzbyh_209{flex:1;text-align:center;font-size:18px;font-weight:600;color:var(--nice-text, #1e293b)}._dark_yzbyh_141 ._copiesValue_yzbyh_209{color:var(--nice-bg-secondary, #f1f5f9)}._printerSelect_yzbyh_229{width:100%;padding:var(--nice-space-1-75, 7px) var(--nice-space-2-5, 10px);background:var(--nice-bg-secondary, #f8fafc);border:1px solid var(--nice-border, #e2e8f0);border-radius:var(--nice-radius-md, 6px);font-size:13px;color:var(--nice-text, #1e293b);cursor:pointer}._dark_yzbyh_141 ._printerSelect_yzbyh_229{background:var(--nice-text, #0f172a);border-color:var(--nice-text, #334155);color:var(--nice-bg-secondary, #f1f5f9)}._printerSelect_yzbyh_229:focus{outline:none;border-color:var(--nice-primary-hover, #2563eb)}._printerStatus_yzbyh_255{display:flex;align-items:center;gap:var(--nice-space-1-25, 5px);margin-top:var(--nice-space-1-5, 6px);font-size:12px}._printerDot_yzbyh_269{width:7px;height:7px;border-radius:var(--nice-radius-full, 50%)}._dot-ready_yzbyh_271{background:var(--nice-success-dark, #16a34a)}._dot-busy_yzbyh_273{background:var(--nice-warning, #f59e0b)}._dot-offline_yzbyh_275{background:var(--nice-text-muted, #94a3b8)}._dot-error_yzbyh_277{background:var(--nice-danger-dark, #dc2626)}._printerStatusLabel_yzbyh_279{color:var(--nice-text-secondary, #64748b)}._submitBtn_yzbyh_285{width:100%;padding:9px var(--nice-space-3-5, 14px);background:var(--nice-primary-hover, #2563eb);color:var(--nice-bg, #FFF);border:none;border-radius:var(--nice-radius-lg, 8px);cursor:pointer;font-size:14px;font-weight:600;text-align:center}._submitBtn_yzbyh_285:hover:not(:disabled){background:var(--nice-primary-dark, #1d4ed8)}._submitBtn_yzbyh_285:disabled{opacity:.5;cursor:not-allowed}._spinner_yzbyh_317{display:inline-block;width:14px;height:14px;border:2px solid var(--nice-overlay-light-30, rgba(255, 255, 255, .3));border-top-color:var(--nice-bg, #FFF);border-radius:var(--nice-radius-full, 50%);animation:_spin_yzbyh_317 .7s linear infinite}@keyframes _spin_yzbyh_317{to{transform:rotate(360deg)}}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { NiceTemplateBrowserProps } from '../types/printingTypes';
3
+
4
+ export declare const NiceTemplateBrowser: React.FC<NiceTemplateBrowserProps>;
5
+ //# sourceMappingURL=NiceTemplateBrowser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiceTemplateBrowser.d.ts","sourceRoot":"","sources":["../../src/template-browser/NiceTemplateBrowser.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AA8BjH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA2LlE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NiceTemplateBrowser } from './NiceTemplateBrowser';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template-browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { NiceTemplateEditorProps } from '../types/printingTypes';
3
+
4
+ export declare const NiceTemplateEditor: React.FC<NiceTemplateEditorProps>;
5
+ export default NiceTemplateEditor;
6
+ //# sourceMappingURL=NiceTemplateEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NiceTemplateEditor.d.ts","sourceRoot":"","sources":["../../src/template-editor/NiceTemplateEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmF,MAAM,OAAO,CAAC;AAExG,OAAO,KAAK,EAUV,uBAAuB,EAKxB,MAAM,wBAAwB,CAAC;AA6rDhC,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgoBhE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NiceTemplateEditor } from './NiceTemplateEditor';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,249 @@
1
+ import { CSSProperties } from 'react';
2
+ export type TemplateId = string;
3
+ export type PrintJobId = string;
4
+ export type PrinterId = string;
5
+ export type FieldId = string;
6
+ export type PaperSize = 'A3' | 'A4' | 'A5' | 'A6' | 'Letter' | 'Legal' | 'Tabloid' | 'custom';
7
+ export type PaperOrientation = 'portrait' | 'landscape';
8
+ export interface PaperMargins {
9
+ top: number;
10
+ right: number;
11
+ bottom: number;
12
+ left: number;
13
+ }
14
+ export interface CustomPaperSize {
15
+ widthMm: number;
16
+ heightMm: number;
17
+ }
18
+ export type PrintFieldType = 'text' | 'number' | 'currency' | 'date' | 'datetime' | 'boolean' | 'image' | 'barcode' | 'qr' | 'signature' | 'static_text' | 'static_image' | 'line' | 'rect' | 'page_number' | 'total_pages' | 'print_date';
19
+ export type BarcodeType = 'ean13' | 'ean8' | 'code128' | 'code39' | 'upc' | 'itf14' | 'datamatrix';
20
+ export interface FieldPosition {
21
+ x: number;
22
+ y: number;
23
+ width: number;
24
+ height: number;
25
+ zIndex?: number;
26
+ }
27
+ export interface FieldStyle {
28
+ fontFamily?: string;
29
+ fontSize?: number;
30
+ fontWeight?: 'normal' | 'bold';
31
+ fontStyle?: 'normal' | 'italic';
32
+ color?: string;
33
+ backgroundColor?: string;
34
+ textAlign?: 'left' | 'center' | 'right' | 'justify';
35
+ verticalAlign?: 'top' | 'middle' | 'bottom';
36
+ borderWidth?: number;
37
+ borderColor?: string;
38
+ borderStyle?: 'solid' | 'dashed' | 'dotted';
39
+ borderRadius?: number;
40
+ padding?: number;
41
+ lineHeight?: number;
42
+ letterSpacing?: number;
43
+ opacity?: number;
44
+ rotation?: number;
45
+ }
46
+ export interface PrintDataField {
47
+ id: FieldId;
48
+ name: string;
49
+ label: string;
50
+ type: PrintFieldType;
51
+ dataPath: string;
52
+ format?: string;
53
+ fallback?: string;
54
+ barcodeType?: BarcodeType;
55
+ position: FieldPosition;
56
+ style: FieldStyle;
57
+ conditional?: {
58
+ field: string;
59
+ operator: 'eq' | 'neq' | 'gt' | 'lt' | 'contains';
60
+ value: unknown;
61
+ };
62
+ }
63
+ export type WatermarkType = 'text' | 'image';
64
+ export interface PrintWatermark {
65
+ id: string;
66
+ type: WatermarkType;
67
+ text?: string;
68
+ imageUrl?: string;
69
+ opacity: number;
70
+ angle: number;
71
+ fontSize?: number;
72
+ color?: string;
73
+ repeat?: boolean;
74
+ position?: 'center' | 'diagonal' | 'tile' | {
75
+ x: number;
76
+ y: number;
77
+ };
78
+ }
79
+ export interface PrintSignature {
80
+ id: string;
81
+ label: string;
82
+ position: FieldPosition;
83
+ signerName?: string;
84
+ signerEmail?: string;
85
+ showDate?: boolean;
86
+ showLine?: boolean;
87
+ style?: FieldStyle;
88
+ }
89
+ export type SectionType = 'header' | 'body' | 'footer' | 'background';
90
+ export interface PrintSection {
91
+ id: string;
92
+ type: SectionType;
93
+ heightMm?: number;
94
+ fields: PrintDataField[];
95
+ repeatForEach?: string;
96
+ showOnFirstPage?: boolean;
97
+ showOnLastPage?: boolean;
98
+ }
99
+ export interface PrintTemplate {
100
+ id: TemplateId;
101
+ name: string;
102
+ description?: string;
103
+ category?: string;
104
+ tags?: string[];
105
+ paperSize: PaperSize;
106
+ customSize?: CustomPaperSize;
107
+ orientation: PaperOrientation;
108
+ margins: PaperMargins;
109
+ sections: PrintSection[];
110
+ watermarks?: PrintWatermark[];
111
+ signatures?: PrintSignature[];
112
+ dataSchema?: DataSourceSchema;
113
+ previewImageUrl?: string;
114
+ createdAt?: string;
115
+ updatedAt?: string;
116
+ version?: number;
117
+ }
118
+ export interface DataSourceField {
119
+ path: string;
120
+ label: string;
121
+ type: 'string' | 'number' | 'boolean' | 'date' | 'image' | 'array' | 'object';
122
+ description?: string;
123
+ example?: unknown;
124
+ }
125
+ export interface DataSourceSchema {
126
+ entityName: string;
127
+ entityLabel: string;
128
+ fields: DataSourceField[];
129
+ }
130
+ export interface TemplateSampleData {
131
+ entityName: string;
132
+ label?: string;
133
+ data: Record<string, unknown>;
134
+ }
135
+ export interface PrinterCapabilities {
136
+ color: boolean;
137
+ duplex: boolean;
138
+ paperSizes: PaperSize[];
139
+ maxCopies?: number;
140
+ dpi?: number[];
141
+ }
142
+ export interface PrinterInfo {
143
+ id: PrinterId;
144
+ name: string;
145
+ isDefault: boolean;
146
+ isOnline: boolean;
147
+ status?: 'ready' | 'busy' | 'offline' | 'error';
148
+ location?: string;
149
+ capabilities: PrinterCapabilities;
150
+ }
151
+ export type PrintJobStatus = 'queued' | 'printing' | 'done' | 'error' | 'paused' | 'cancelled';
152
+ export interface PrintJobOptions {
153
+ copies: number;
154
+ printerId: PrinterId;
155
+ paperSize?: PaperSize;
156
+ orientation?: PaperOrientation;
157
+ colorMode?: 'color' | 'grayscale' | 'black_white';
158
+ duplex?: boolean;
159
+ quality?: 'draft' | 'normal' | 'high';
160
+ pageRanges?: string;
161
+ }
162
+ export interface PrintJob {
163
+ id: PrintJobId;
164
+ templateId: TemplateId;
165
+ templateName: string;
166
+ entityData?: Record<string, unknown>;
167
+ entityLabel?: string;
168
+ options: PrintJobOptions;
169
+ status: PrintJobStatus;
170
+ progress?: number;
171
+ errorMessage?: string;
172
+ pages?: number;
173
+ createdAt: string;
174
+ startedAt?: string;
175
+ completedAt?: string;
176
+ priority?: number;
177
+ }
178
+ export interface NiceTemplateEditorProps {
179
+ template?: PrintTemplate;
180
+ dataSchema?: DataSourceSchema;
181
+ sampleData?: TemplateSampleData[];
182
+ availableEntities?: TemplateSampleData[];
183
+ onChange?: (template: PrintTemplate) => void;
184
+ onSave?: (template: PrintTemplate) => void;
185
+ readOnly?: boolean;
186
+ className?: string;
187
+ style?: CSSProperties;
188
+ theme?: 'light' | 'dark';
189
+ }
190
+ export interface NiceTemplateBrowserProps {
191
+ templates: PrintTemplate[];
192
+ selectedId?: TemplateId;
193
+ onSelect?: (template: PrintTemplate) => void;
194
+ onImport?: (template: PrintTemplate) => void;
195
+ onExport?: (template: PrintTemplate) => void;
196
+ onDelete?: (templateId: TemplateId) => void;
197
+ onNew?: () => void;
198
+ className?: string;
199
+ style?: CSSProperties;
200
+ theme?: 'light' | 'dark';
201
+ }
202
+ export interface NicePrintPreviewProps {
203
+ template: PrintTemplate;
204
+ entities?: Record<string, unknown>[];
205
+ sampleData?: TemplateSampleData;
206
+ activePrinterId?: PrinterId;
207
+ onPrint?: (options: Partial<PrintJobOptions>) => void;
208
+ className?: string;
209
+ style?: CSSProperties;
210
+ theme?: 'light' | 'dark';
211
+ /**
212
+ * When true (default), preview renders inside a portaled overlay with a close button.
213
+ * When false, renders inline at the call site (legacy behavior — replaces current page area).
214
+ */
215
+ asPopup?: boolean;
216
+ /** Controls overlay visibility when asPopup is true (uncontrolled if omitted). */
217
+ open?: boolean;
218
+ /** Called when the user closes the popup. */
219
+ onClose?: () => void;
220
+ }
221
+ export interface NicePrintQueueProps {
222
+ jobs: PrintJob[];
223
+ printers?: PrinterInfo[];
224
+ onJobUpdate: (id: PrintJobId, patch: Partial<PrintJob>) => void;
225
+ onJobRemove: (id: PrintJobId) => void;
226
+ onJobReorder: (fromIndex: number, toIndex: number) => void;
227
+ onJobPrint: (id: PrintJobId) => void;
228
+ onBulkRemove?: (ids: PrintJobId[]) => void;
229
+ onBulkPrint?: (ids: PrintJobId[]) => void;
230
+ maxHeight?: number;
231
+ className?: string;
232
+ style?: CSSProperties;
233
+ theme?: 'light' | 'dark';
234
+ }
235
+ export interface NicePrintButtonProps {
236
+ onPrint: (options: PrintJobOptions) => void;
237
+ printers?: PrinterInfo[];
238
+ defaultPrinterId?: PrinterId;
239
+ defaultCopies?: number;
240
+ disabled?: boolean;
241
+ loading?: boolean;
242
+ label?: string;
243
+ variant?: 'primary' | 'secondary' | 'ghost';
244
+ size?: 'sm' | 'md' | 'lg';
245
+ className?: string;
246
+ style?: CSSProperties;
247
+ theme?: 'light' | 'dark';
248
+ }
249
+ //# sourceMappingURL=printingTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printingTypes.d.ts","sourceRoot":"","sources":["../../src/types/printingTypes.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,GACV,SAAS,GACT,OAAO,GACP,SAAS,GACT,IAAI,GACJ,WAAW,GACX,aAAa,GACb,cAAc,GACd,MAAM,GACN,MAAM,GACN,aAAa,GACb,aAAa,GACb,YAAY,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAC;AAEnG,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACpD,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;QAClD,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAGD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAGD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAGD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/F,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,aAAa,CAAC;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAChE,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@nice2dev/ui-printing",
3
+ "version": "1.0.28",
4
+ "description": "React components for print management: template editor, template browser, print preview, print queue and print button",
5
+ "keywords": [
6
+ "printing",
7
+ "template",
8
+ "print-queue",
9
+ "print-preview",
10
+ "wysiwyg",
11
+ "barcode",
12
+ "watermark",
13
+ "nice2dev",
14
+ "react"
15
+ ],
16
+ "homepage": "https://nice2dev.io",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/niceto-dev/NiceToDev.UI.git",
20
+ "directory": "packages/ui-printing"
21
+ },
22
+ "license": "SEE LICENSE IN LICENSE",
23
+ "type": "module",
24
+ "sideEffects": false,
25
+ "main": "./dist/index.cjs",
26
+ "module": "./dist/index.mjs",
27
+ "types": "./dist/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "import": "./dist/index.mjs",
32
+ "require": "./dist/index.cjs"
33
+ },
34
+ "./styles": "./dist/style.css"
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "src"
39
+ ],
40
+ "scripts": {
41
+ "build": "tsc -p tsconfig.build.json && vite build",
42
+ "dev": "vite build --watch",
43
+ "test": "vitest run --passWithNoTests",
44
+ "prepublishOnly": "pnpm run build"
45
+ },
46
+ "peerDependencies": {
47
+ "react": ">=17.0.0",
48
+ "react-dom": ">=17.0.0",
49
+ "@nice2dev/ui": "^1.0.20"
50
+ },
51
+ "peerDependenciesMeta": {
52
+ "@nice2dev/ui": {
53
+ "optional": true
54
+ }
55
+ },
56
+ "devDependencies": {
57
+ "@nice2dev/ui": "^1.0.20",
58
+ "@types/react": "^18.0.0",
59
+ "@types/react-dom": "^18.0.0",
60
+ "@vitejs/plugin-react": "^4.2.0",
61
+ "typescript": "^5.0.0",
62
+ "vite": "^5.0.0",
63
+ "vite-plugin-dts": "^3.7.0",
64
+ "vitest": "^1.0.0"
65
+ }
66
+ }
@@ -0,0 +1,9 @@
1
+ declare module '*.module.css' {
2
+ const classes: { readonly [key: string]: string };
3
+ export default classes;
4
+ }
5
+
6
+ declare module '*.module.scss' {
7
+ const classes: { readonly [key: string]: string };
8
+ export default classes;
9
+ }
package/src/index.ts ADDED
@@ -0,0 +1,69 @@
1
+ // Components
2
+ export { NiceTemplateEditor } from './template-editor';
3
+ export { NiceTemplateBrowser } from './template-browser';
4
+ export { NicePrintPreview } from './print-preview';
5
+ export { NicePrintQueue } from './print-queue';
6
+ export { NicePrintButton } from './print-button';
7
+
8
+ // Types — primitives
9
+ export type { TemplateId, PrintJobId, PrinterId, FieldId } from './types/printingTypes';
10
+
11
+ // Types — paper
12
+ export type {
13
+ PaperSize,
14
+ PaperOrientation,
15
+ PaperMargins,
16
+ CustomPaperSize,
17
+ } from './types/printingTypes';
18
+
19
+ // Types — fields
20
+ export type {
21
+ PrintFieldType,
22
+ BarcodeType,
23
+ FieldPosition,
24
+ FieldStyle,
25
+ PrintDataField,
26
+ } from './types/printingTypes';
27
+
28
+ // Types — watermarks & signatures
29
+ export type {
30
+ WatermarkType,
31
+ PrintWatermark,
32
+ PrintSignature,
33
+ } from './types/printingTypes';
34
+
35
+ // Types — sections & template
36
+ export type {
37
+ SectionType,
38
+ PrintSection,
39
+ PrintTemplate,
40
+ } from './types/printingTypes';
41
+
42
+ // Types — data source
43
+ export type {
44
+ DataSourceField,
45
+ DataSourceSchema,
46
+ TemplateSampleData,
47
+ } from './types/printingTypes';
48
+
49
+ // Types — printer
50
+ export type {
51
+ PrinterCapabilities,
52
+ PrinterInfo,
53
+ } from './types/printingTypes';
54
+
55
+ // Types — jobs
56
+ export type {
57
+ PrintJobStatus,
58
+ PrintJobOptions,
59
+ PrintJob,
60
+ } from './types/printingTypes';
61
+
62
+ // Types — component props
63
+ export type {
64
+ NiceTemplateEditorProps,
65
+ NiceTemplateBrowserProps,
66
+ NicePrintPreviewProps,
67
+ NicePrintQueueProps,
68
+ NicePrintButtonProps,
69
+ } from './types/printingTypes';