@yumiai/chat-widget 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +100 -0
- package/README.md +119 -22
- package/dist/ExcelCore-DJOIVQMI.js +11 -0
- package/dist/ExcelCore-DJOIVQMI.js.map +1 -0
- package/dist/ExcelViewer-3YLLYYIQ.js +65 -0
- package/dist/ExcelViewer-3YLLYYIQ.js.map +1 -0
- package/dist/GerberViewerA2UI-7CNT7HX4.css +693 -0
- package/dist/GerberViewerA2UI-7CNT7HX4.css.map +1 -0
- package/dist/GerberViewerA2UI-X5FWAD5M.js +57 -0
- package/dist/GerberViewerA2UI-X5FWAD5M.js.map +1 -0
- package/dist/GraphStatsLegend-D5bPeXB_.d.cts +607 -0
- package/dist/GraphStatsLegend-D5bPeXB_.d.ts +607 -0
- package/dist/JsonRenderStandalone-EIZM62JU.js +18 -0
- package/dist/JsonRenderStandalone-EIZM62JU.js.map +1 -0
- package/dist/JsonRenderStandalone-POB4Q3N3.css +2384 -0
- package/dist/JsonRenderStandalone-POB4Q3N3.css.map +1 -0
- package/dist/JsonRenderStandalone-UsTcST4G.d.cts +23 -0
- package/dist/JsonRenderStandalone-UsTcST4G.d.ts +23 -0
- package/dist/KicadViewer-GV6ZC4AQ.js +124 -0
- package/dist/KicadViewer-GV6ZC4AQ.js.map +1 -0
- package/dist/KicadViewerCore-U7BWZHKJ.js +11 -0
- package/dist/KicadViewerCore-U7BWZHKJ.js.map +1 -0
- package/dist/PdfViewer-CHPDRK46.js +51 -0
- package/dist/PdfViewer-CHPDRK46.js.map +1 -0
- package/dist/PdfViewer-LPYGQETK.css +1899 -0
- package/dist/PdfViewer-LPYGQETK.css.map +1 -0
- package/dist/PdfViewerCore-HJPEHSRA.js +364 -0
- package/dist/PdfViewerCore-HJPEHSRA.js.map +1 -0
- package/dist/PowerPointCore-FPDR2BL4.js +11 -0
- package/dist/PowerPointCore-FPDR2BL4.js.map +1 -0
- package/dist/PowerPointViewer-LQTO6UCU.js +61 -0
- package/dist/PowerPointViewer-LQTO6UCU.js.map +1 -0
- package/dist/StepViewerCore-7W3L3R4E.js +285 -0
- package/dist/StepViewerCore-7W3L3R4E.js.map +1 -0
- package/dist/ThreeViewerCore-N3QJD5QI.js +161 -0
- package/dist/ThreeViewerCore-N3QJD5QI.js.map +1 -0
- package/dist/WordCore-JKSXK2XD.js +11 -0
- package/dist/WordCore-JKSXK2XD.js.map +1 -0
- package/dist/WordViewer-ZHCQMHOH.js +61 -0
- package/dist/WordViewer-ZHCQMHOH.js.map +1 -0
- package/dist/chunk-2SKA3F5U.js +88 -0
- package/dist/chunk-2SKA3F5U.js.map +1 -0
- package/dist/chunk-2UC7YLVX.js +318 -0
- package/dist/chunk-2UC7YLVX.js.map +1 -0
- package/dist/chunk-3R6T3LBR.js +24 -0
- package/dist/chunk-3R6T3LBR.js.map +1 -0
- package/dist/chunk-56WRZM3R.js +398 -0
- package/dist/chunk-56WRZM3R.js.map +1 -0
- package/dist/chunk-7A4FY6FK.js +10226 -0
- package/dist/chunk-7A4FY6FK.js.map +1 -0
- package/dist/chunk-7D4SUZUM.js +38 -0
- package/dist/chunk-7D4SUZUM.js.map +1 -0
- package/dist/chunk-7S67DOHQ.js +436 -0
- package/dist/chunk-7S67DOHQ.js.map +1 -0
- package/dist/chunk-CFKGNAJM.js +14013 -0
- package/dist/chunk-CFKGNAJM.js.map +1 -0
- package/dist/chunk-GAMA3VA7.js +99 -0
- package/dist/chunk-GAMA3VA7.js.map +1 -0
- package/dist/chunk-GYXTSY22.js +639 -0
- package/dist/chunk-GYXTSY22.js.map +1 -0
- package/dist/chunk-K4KGNVL5.js +77 -0
- package/dist/chunk-K4KGNVL5.js.map +1 -0
- package/dist/chunk-KQV7IKET.js +1621 -0
- package/dist/chunk-KQV7IKET.js.map +1 -0
- package/dist/chunk-O3NXUM6C.js +1871 -0
- package/dist/chunk-O3NXUM6C.js.map +1 -0
- package/dist/chunk-PZXSASDY.js +83 -0
- package/dist/chunk-PZXSASDY.js.map +1 -0
- package/dist/chunk-QLVPIM6R.js +595 -0
- package/dist/chunk-QLVPIM6R.js.map +1 -0
- package/dist/chunk-VXJWGLZ7.js +21 -0
- package/dist/chunk-VXJWGLZ7.js.map +1 -0
- package/dist/chunk-XQ562W7I.js +116 -0
- package/dist/chunk-XQ562W7I.js.map +1 -0
- package/dist/components/JsonRender/standalone.cjs +39368 -0
- package/dist/components/JsonRender/standalone.cjs.map +1 -0
- package/dist/components/JsonRender/standalone.css +2384 -0
- package/dist/components/JsonRender/standalone.css.map +1 -0
- package/dist/components/JsonRender/standalone.d.cts +16 -0
- package/dist/components/JsonRender/standalone.d.ts +16 -0
- package/dist/components/JsonRender/standalone.js +38 -0
- package/dist/components/JsonRender/standalone.js.map +1 -0
- package/dist/gerber-2d-entry-OQ4SQRBY.js +3950 -0
- package/dist/gerber-2d-entry-OQ4SQRBY.js.map +1 -0
- package/dist/gerber-3d-entry-DEHDBOO2.js +3679 -0
- package/dist/gerber-3d-entry-DEHDBOO2.js.map +1 -0
- package/dist/gerber-simulation-entry-EBDX72XE.js +1801 -0
- package/dist/gerber-simulation-entry-EBDX72XE.js.map +1 -0
- package/dist/index.cjs +60113 -2970
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +11342 -1708
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +3275 -77
- package/dist/index.d.ts +3275 -77
- package/dist/index.js +18078 -2540
- package/dist/index.js.map +1 -1
- package/dist/provenance/index.cjs +2248 -0
- package/dist/provenance/index.cjs.map +1 -0
- package/dist/provenance/index.css +52 -0
- package/dist/provenance/index.css.map +1 -0
- package/dist/provenance/index.d.cts +12 -0
- package/dist/provenance/index.d.ts +12 -0
- package/dist/provenance/index.js +27 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/resolveToArrayBuffer-AQIDZHSQ.js +23 -0
- package/dist/resolveToArrayBuffer-AQIDZHSQ.js.map +1 -0
- package/package.json +98 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/jetPaveGerberViewer/src/styles/page-2d.css","../src/components/jetPaveGerberViewer/src/styles/page-3d.css","../src/components/jetPaveGerberViewer/src/styles/page-simulation.css"],"sourcesContent":["/* 与 src/2dPage/index.html 内联样式一致,body 选择器改为 .layout-2d */\n\n.layout-2d-mount {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n.layout-2d-error {\n color: var(--ycw-color-error, #dc3545);\n padding: 16px;\n text-align: center;\n font-size: 14px;\n}\n\n.layout-2d * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.layout-2d {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n width: 100%;\n height: 100%;\n}\n\n.layout-2d .container {\n margin: 0 auto;\n max-width: calc(100% - 4px);\n background: var(--ycw-color-bg-primary, #fff);\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 400px;\n}\n\n.layout-2d .controls {\n padding: 8px 30px;\n background: var(--ycw-color-bg-tertiary, #f8f9fa);\n border-bottom: 1px solid var(--ycw-color-border, #e9ecef);\n display: flex;\n gap: 20px;\n align-items: center;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.layout-2d .controls[style*='display: none'] {\n display: none !important;\n}\n\n.layout-2d .file-input-wrapper {\n position: relative;\n display: inline-block;\n}\n\n.layout-2d .file-input-wrapper input[type='file'] {\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n\n.layout-2d .file-input-button {\n display: inline-block;\n padding: 6px 14px;\n background: var(--ycw-color-primary, #009688);\n color: var(--ycw-color-bg-primary, #fff);\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n transition: background 0.3s, opacity 0.2s;\n}\n\n.layout-2d .file-input-button:hover {\n opacity: 0.85;\n}\n\n.layout-2d .file-info {\n display: none;\n flex-direction: column;\n gap: 5px;\n}\n\n.layout-2d .file-info.active {\n display: flex;\n}\n\n.layout-2d .file-name {\n font-weight: bold;\n color: var(--ycw-color-primary, #009688);\n}\n\n.layout-2d .status {\n display: none;\n padding: 4px 10px;\n border-radius: 4px;\n font-size: 12px;\n}\n\n.layout-2d .status.success {\n color: #155724;\n background: #d4edda;\n display: block;\n}\n\n.layout-2d .status.error {\n color: #721c24;\n background: #f8d7da;\n display: block;\n}\n\n.layout-2d .status.loading {\n color: #0c5460;\n background: #d1ecf1;\n display: block;\n}\n\n.layout-2d .viewer {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.layout-2d .viewer-title {\n font-size: 1.5em;\n margin-bottom: 20px;\n color: var(--ycw-color-text-primary, #333);\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.layout-2d .viewer-title-left {\n display: flex;\n align-items: center;\n}\n\n.layout-2d .viewer-title-actions {\n display: flex;\n gap: 10px;\n margin-left: 10px;\n}\n\n.layout-2d .viewer-content {\n display: flex;\n gap: 10px;\n align-items: stretch;\n flex: 1;\n min-height: 0;\n}\n\n.layout-2d .table-detail {\n flex-shrink: 0;\n width: 320px;\n height: 100%;\n background: var(--ycw-color-bg-tertiary, #f8f9fa);\n border-radius: 8px;\n border: 1px solid var(--ycw-color-border, #e9ecef);\n overflow: hidden;\n padding: 15px;\n box-sizing: border-box;\n}\n\n.layout-2d .layer-list-container {\n width: 220px;\n height: 100%;\n background: var(--ycw-color-bg-tertiary, #f8f9fa);\n border: 1px solid var(--ycw-color-border, #e9ecef);\n overflow: hidden;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n}\n\n.layout-2d .layer-list-title {\n padding: 8px 10px;\n background: var(--ycw-color-primary, #009688);\n color: var(--ycw-color-bg-primary, #fff);\n font-weight: 600;\n font-size: 12px;\n flex-shrink: 0;\n}\n\n.layout-2d .layer-list-header {\n padding: 12px 0;\n background: var(--ycw-color-bg-tertiary, #f8f9fa);\n border-bottom: 1px solid var(--ycw-color-border, #e9ecef);\n flex-shrink: 0;\n}\n\n.layout-2d .layer-toggle-all {\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n padding-left: 26px;\n}\n\n.layout-2d .layer-toggle-all:hover {\n opacity: 0.8;\n}\n\n.layout-2d .layer-toggle-all-label {\n margin-left: 8px;\n font-size: 12px;\n color: var(--ycw-color-text-primary, #333);\n font-weight: 500;\n}\n\n.layout-2d .layer-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n min-height: 0;\n}\n\n.layout-2d .layer-item {\n display: flex;\n align-items: center;\n padding: 0 15px;\n line-height: 30px;\n border-bottom: 1px solid var(--ycw-color-border, #e9ecef);\n cursor: pointer;\n transition: background 0.2s;\n background: var(--ycw-color-bg-primary, #fff);\n}\n\n.layout-2d .layer-item .layer-index {\n width: 26px;\n}\n\n.layout-2d .layer-item:hover {\n background: var(--ycw-color-bg-hover, #f0f0f0);\n}\n\n.layout-2d .layer-item.disabled {\n background: var(--ycw-color-bg-tertiary, #f5f5f5);\n opacity: 0.6;\n}\n\n.layout-2d .layer-toggle {\n width: 18px;\n height: 18px;\n border: 2px solid var(--ycw-color-primary, #009688);\n border-radius: 4px;\n cursor: pointer;\n flex-shrink: 0;\n position: relative;\n background: var(--ycw-color-bg-primary, #fff);\n transition: all 0.2s;\n margin-right: 6px;\n}\n\n.layout-2d .layer-toggle.checked {\n background: var(--ycw-color-primary, #009688);\n}\n\n.layout-2d .layer-toggle.checked::after {\n content: '✓';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: white;\n font-size: 12px;\n font-weight: bold;\n}\n\n.layout-2d .layer-color {\n width: 20px;\n height: 20px;\n border-radius: 4px;\n margin-right: 8px;\n border: 1px solid var(--ycw-color-border, #ddd);\n flex-shrink: 0;\n}\n\n.layout-2d .layer-name {\n flex: 1;\n font-size: 12px;\n color: var(--ycw-color-text-primary, #333);\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n\n.layout-2d .webgl-canvas-container {\n flex: 1;\n height: 100%;\n min-height: 0;\n border-radius: 8px;\n}\n\n.layout-2d #canvas {\n width: 100%;\n height: 100%;\n min-height: 0;\n background: #000;\n cursor: grab;\n}\n\n.layout-2d #canvas:active {\n cursor: grabbing;\n}\n\n.layout-2d .loading-spinner {\n display: inline-block;\n width: 16px;\n height: 16px;\n border: 2px solid rgba(12, 84, 96, 0.3);\n border-radius: 50%;\n border-top-color: #0c5460;\n animation: layout2d-spin 0.8s linear infinite;\n margin-right: 8px;\n vertical-align: middle;\n}\n\n@keyframes layout2d-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.layout-2d #loadingOverlay {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n color: white;\n z-index: 9999;\n justify-content: center;\n align-items: center;\n font-size: 24px;\n}\n\n.layout-2d #loadingOverlay.active {\n display: flex;\n}\n\n.layout-2d .viewer-action-btn {\n font-size: 12px;\n padding: 4px 10px;\n background: var(--ycw-color-bg-primary, #fff);\n border: 1px solid var(--ycw-color-border, #ddd);\n border-radius: 4px;\n cursor: pointer;\n color: var(--ycw-color-text-secondary, #666);\n transition: all 0.2s;\n}\n\n.layout-2d .viewer-action-btn:hover {\n background: var(--ycw-color-bg-hover, #f0f0f0);\n color: var(--ycw-color-text-primary, #333);\n border-color: var(--ycw-color-border, #ccc);\n}\n","/* ── Mount wrapper (embedded) ── */\n.layout-3d-mount {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n/* ── Layout ── */\n.layout-3d {\n position: relative;\n width: 100%;\n height: 100%;\n margin: 0;\n overflow: hidden;\n font-family: sans-serif;\n background: #000000;\n}\n\n.layout-3d .viewer3d-canvas-host {\n position: absolute;\n inset: 0;\n z-index: 0;\n pointer-events: auto;\n}\n\n.layout-3d #info {\n position: absolute;\n top: 10px;\n left: 10px;\n color: white;\n background: rgba(0, 0, 0, 0.7);\n padding: 10px;\n border-radius: 5px;\n pointer-events: none;\n z-index: 100;\n}\n\n.layout-3d #gerber-3d-toolbar {\n z-index: 200;\n}\n\n.layout-3d .btn {\n background: var(--ycw-color-primary, #009688);\n color: var(--ycw-color-bg-primary, #fff);\n padding: 5px 12px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n transition: opacity 0.2s;\n}\n\n.layout-3d .btn:hover {\n opacity: 0.85;\n}\n\n.layout-3d #loading {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n color: white;\n z-index: 300;\n justify-content: center;\n align-items: center;\n font-size: 24px;\n}\n\n.layout-3d #loading.active {\n display: flex;\n}\n\n.layout-3d #layer-list {\n position: absolute;\n top: 10px;\n right: 10px;\n background: rgba(0, 0, 0, 0.7);\n color: white;\n padding: 10px;\n border-radius: 5px;\n max-height: 80%;\n overflow-y: auto;\n}\n\n.layout-3d .layer-item {\n margin: 5px 0;\n font-size: 12px;\n}\n\n.layout-3d-error {\n color: var(--ycw-color-error, #dc3545);\n padding: 16px;\n text-align: center;\n font-size: 14px;\n position: relative;\n z-index: 500;\n}\n","/* 与 src/simulation/index.html 内联样式一致,body 改为 .layout-simulation */\n\n.layout-simulation-mount {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n.layout-simulation * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n.layout-simulation {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Microsoft YaHei', sans-serif;\n background: var(--ycw-color-bg-secondary, #f5f5f5);\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.layout-simulation .container {\n display: flex;\n height: 100%;\n background: var(--ycw-color-bg-primary, #fff);\n}\n\n.layout-simulation .control-panel {\n width: 240px;\n background: var(--ycw-color-bg-tertiary, #f8f9fa);\n border-right: 1px solid var(--ycw-color-border, #e9ecef);\n padding: 10px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.layout-simulation .panel-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--ycw-color-text-primary, #333);\n padding-bottom: 8px;\n border-bottom: 2px solid var(--ycw-color-primary, #009688);\n}\n\n.layout-simulation .control-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.layout-simulation .control-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 6px;\n}\n\n.layout-simulation .control-label {\n font-size: 12px;\n color: var(--ycw-color-text-secondary, #555);\n min-width: 50px;\n}\n\n.layout-simulation select {\n flex: 1;\n padding: 4px 8px;\n border: 1px solid var(--ycw-color-border, #ddd);\n border-radius: 4px;\n background: var(--ycw-color-bg-primary, #fff);\n color: var(--ycw-color-text-primary, #333);\n font-size: 12px;\n cursor: pointer;\n}\n\n.layout-simulation select:hover,\n.layout-simulation select:focus {\n border-color: var(--ycw-color-primary, #009688);\n outline: none;\n}\n\n.layout-simulation .file-input-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n}\n\n.layout-simulation .file-input-wrapper input[type='file'] {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n z-index: 10;\n}\n\n.layout-simulation .file-input-button {\n display: block;\n padding: 6px 14px;\n background: var(--ycw-color-primary, #009688);\n color: var(--ycw-color-bg-primary, #fff);\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n text-align: center;\n transition: opacity 0.2s;\n}\n\n.layout-simulation .file-input-button:hover {\n opacity: 0.85;\n}\n\n.layout-simulation .btn {\n padding: 5px 12px;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n width: 100%;\n}\n\n.layout-simulation .btn-success {\n background: var(--ycw-color-primary, #009688);\n color: var(--ycw-color-bg-primary, #fff);\n}\n\n.layout-simulation .btn-success:hover {\n opacity: 0.85;\n}\n\n.layout-simulation .btn-secondary {\n background: var(--ycw-color-text-tertiary, #6c757d);\n color: var(--ycw-color-bg-primary, #fff);\n}\n\n.layout-simulation .btn-secondary:hover {\n opacity: 0.85;\n}\n\n.layout-simulation .view-toggle {\n display: flex;\n gap: 0;\n border-radius: 6px;\n overflow: hidden;\n border: 1px solid var(--ycw-color-border, #ddd);\n}\n\n.layout-simulation .view-toggle button {\n flex: 1;\n padding: 5px 8px;\n border: none;\n background: var(--ycw-color-bg-primary, #fff);\n color: var(--ycw-color-text-secondary, #555);\n font-size: 12px;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.layout-simulation .view-toggle button.active {\n background: var(--ycw-color-primary, #009688);\n color: var(--ycw-color-bg-primary, #fff);\n}\n\n.layout-simulation .view-toggle button:hover:not(.active) {\n background: var(--ycw-color-bg-hover, #f0f0f0);\n}\n\n.layout-simulation .color-preview {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n}\n\n.layout-simulation .color-swatch {\n width: 18px;\n height: 18px;\n border-radius: 4px;\n border: 1px solid var(--ycw-color-border, #ccc);\n flex-shrink: 0;\n}\n\n.layout-simulation .switch-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.layout-simulation .switch {\n position: relative;\n width: 36px;\n height: 20px;\n}\n\n.layout-simulation .switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.layout-simulation .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--ycw-color-text-quaternary, #ccc);\n transition: 0.3s;\n border-radius: 20px;\n}\n\n.layout-simulation .slider:before {\n position: absolute;\n content: '';\n height: 14px;\n width: 14px;\n left: 3px;\n bottom: 3px;\n background-color: var(--ycw-color-bg-primary, #fff);\n transition: 0.3s;\n border-radius: 50%;\n}\n\n.layout-simulation input:checked + .slider {\n background-color: var(--ycw-color-primary, #009688);\n}\n\n.layout-simulation input:checked + .slider:before {\n transform: translateX(16px);\n}\n\n.layout-simulation .main-view {\n flex: 1;\n display: flex;\n flex-direction: column;\n background: var(--ycw-color-bg-primary, #fff);\n}\n\n.layout-simulation .canvas-container {\n flex: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #1a1a1a;\n}\n\n.layout-simulation #simulationCanvas {\n cursor: grab;\n}\n\n.layout-simulation #simulationCanvas:active {\n cursor: grabbing;\n}\n\n.layout-simulation .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 15px;\n z-index: 100;\n}\n\n.layout-simulation .loading-overlay.hidden {\n display: none;\n}\n\n.layout-simulation .spinner {\n width: 40px;\n height: 40px;\n border: 3px solid var(--ycw-color-text-quaternary, #444);\n border-top-color: var(--ycw-color-primary, #009688);\n border-radius: 50%;\n animation: layoutSim-spin 1s linear infinite;\n}\n\n@keyframes layoutSim-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.layout-simulation .loading-text {\n font-size: 12px;\n color: var(--ycw-color-text-tertiary, #888);\n}\n\n.layout-simulation .hidden-status {\n display: none;\n}\n\n.layout-simulation-error {\n color: var(--ycw-color-error, #dc3545);\n padding: 16px;\n text-align: center;\n font-size: 14px;\n position: relative;\n z-index: 500;\n}\n"],"mappings":";AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,YAAU;AACZ;AAEA,CAAC;AACC,SAAO,IAAI,iBAAiB,EAAE;AAC9B,WAAS;AACT,cAAY;AACZ,aAAW;AACb;AAEA,CAAC,UAAU;AACT,UAAQ;AACR,WAAS;AACT,cAAY;AACd;AAEA,CANC;AAOC;AAAA,IAAa,aAAa;AAAA,IAAE,kBAAkB;AAAA,IAAE,UAAU;AAAA,IAAE,MAAM;AAAA,IAAE,gBAAgB;AAAA,IAAE,KAAK;AAAA,IAAE;AAC7F,SAAO;AACP,UAAQ;AACV;AAEA,CAZC,UAYU,CAAC;AACV,UAAQ,EAAE;AACV,aAAW,KAAK,KAAK,EAAE;AACvB,cAAY,IAAI,sBAAsB,EAAE;AACxC,iBAAe;AACf,YAAU;AACV,WAAS;AACT,kBAAgB;AAChB,UAAQ;AACR,cAAY;AACd;AAEA,CAxBC,UAwBU,CAAC;AACV,WAAS,IAAI;AACb,cAAY,IAAI,uBAAuB,EAAE;AACzC,iBAAe,IAAI,MAAM,IAAI,kBAAkB,EAAE;AACjD,WAAS;AACT,OAAK;AACL,eAAa;AACb,aAAW;AACX,eAAa;AACf;AAEA,CAnCC,UAmCU,CAXC,QAWQ,CAAC;AACnB,WAAS;AACX;AAEA,CAvCC,UAuCU,CAAC;AACV,YAAU;AACV,WAAS;AACX;AAEA,CA5CC,UA4CU,CALC,mBAKmB,KAAK,CAAC;AACnC,YAAU;AACV,WAAS;AACT,SAAO;AACP,UAAQ;AACR,UAAQ;AACV;AAEA,CApDC,UAoDU,CAAC;AACV,WAAS;AACT,WAAS,IAAI;AACb,cAAY,IAAI,mBAAmB,EAAE;AACrC,SAAO,IAAI,sBAAsB,EAAE;AACnC,iBAAe;AACf,UAAQ;AACR,aAAW;AACX,cAAY,WAAW,IAAI,EAAE,QAAQ;AACvC;AAEA,CA/DC,UA+DU,CAXC,iBAWiB;AAC3B,WAAS;AACX;AAEA,CAnEC,UAmEU,CAAC;AACV,WAAS;AACT,kBAAgB;AAChB,OAAK;AACP;AAEA,CAzEC,UAyEU,CANC,SAMS,CAAC;AACpB,WAAS;AACX;AAEA,CA7EC,UA6EU,CAAC;AACV,eAAa;AACb,SAAO,IAAI,mBAAmB,EAAE;AAClC;AAEA,CAlFC,UAkFU,CAAC;AACV,WAAS;AACT,WAAS,IAAI;AACb,iBAAe;AACf,aAAW;AACb;AAEA,CAzFC,UAyFU,CAPC,MAOM,CAAC;AACjB,SAAO;AACP,cAAY;AACZ,WAAS;AACX;AAEA,CA/FC,UA+FU,CAbC,MAaM,CAAC;AACjB,SAAO;AACP,cAAY;AACZ,WAAS;AACX;AAEA,CArGC,UAqGU,CAnBC,MAmBM,CAAC;AACjB,SAAO;AACP,cAAY;AACZ,WAAS;AACX;AAEA,CA3GC,UA2GU,CAAC;AACV,WAAS;AACT,kBAAgB;AAChB,QAAM;AACN,cAAY;AACZ,YAAU;AACZ;AAEA,CAnHC,UAmHU,CAAC;AACV,aAAW;AACX,iBAAe;AACf,SAAO,IAAI,wBAAwB,EAAE;AACrC,eAAa;AACb,WAAS;AACT,eAAa;AACf;AAEA,CA5HC,UA4HU,CAAC;AACV,WAAS;AACT,eAAa;AACf;AAEA,CAjIC,UAiIU,CAAC;AACV,WAAS;AACT,OAAK;AACL,eAAa;AACf;AAEA,CAvIC,UAuIU,CAAC;AACV,WAAS;AACT,OAAK;AACL,eAAa;AACb,QAAM;AACN,cAAY;AACd;AAEA,CA/IC,UA+IU,CAAC;AACV,eAAa;AACb,SAAO;AACP,UAAQ;AACR,cAAY,IAAI,uBAAuB,EAAE;AACzC,iBAAe;AACf,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC1C,YAAU;AACV,WAAS;AACT,cAAY;AACd;AAEA,CA3JC,UA2JU,CAAC;AACV,SAAO;AACP,UAAQ;AACR,cAAY,IAAI,uBAAuB,EAAE;AACzC,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC1C,YAAU;AACV,eAAa;AACb,WAAS;AACT,kBAAgB;AAClB;AAEA,CAtKC,UAsKU,CAAC;AACV,WAAS,IAAI;AACb,cAAY,IAAI,mBAAmB,EAAE;AACrC,SAAO,IAAI,sBAAsB,EAAE;AACnC,eAAa;AACb,aAAW;AACX,eAAa;AACf;AAEA,CA/KC,UA+KU,CAAC;AACV,WAAS,KAAK;AACd,cAAY,IAAI,uBAAuB,EAAE;AACzC,iBAAe,IAAI,MAAM,IAAI,kBAAkB,EAAE;AACjD,eAAa;AACf;AAEA,CAtLC,UAsLU,CAAC;AACV,WAAS;AACT,eAAa;AACb,UAAQ;AACR,eAAa;AACb,gBAAc;AAChB;AAEA,CA9LC,UA8LU,CARC,gBAQgB;AAC1B,WAAS;AACX;AAEA,CAlMC,UAkMU,CAAC;AACV,eAAa;AACb,aAAW;AACX,SAAO,IAAI,wBAAwB,EAAE;AACrC,eAAa;AACf;AAEA,CAzMC,UAyMU,CAAC;AACV,QAAM;AACN,cAAY;AACZ,cAAY;AACZ,cAAY;AACd;AAEA,CAhNC,UAgNU,CAAC;AACV,WAAS;AACT,eAAa;AACb,WAAS,EAAE;AACX,eAAa;AACb,iBAAe,IAAI,MAAM,IAAI,kBAAkB,EAAE;AACjD,UAAQ;AACR,cAAY,WAAW;AACvB,cAAY,IAAI,sBAAsB,EAAE;AAC1C;AAEA,CA3NC,UA2NU,CAXC,WAWW,CAAC;AACtB,SAAO;AACT;AAEA,CA/NC,UA+NU,CAfC,UAeU;AACpB,cAAY,IAAI,oBAAoB,EAAE;AACxC;AAEA,CAnOC,UAmOU,CAnBC,UAmBU,CAAC;AACrB,cAAY,IAAI,uBAAuB,EAAE;AACzC,WAAS;AACX;AAEA,CAxOC,UAwOU,CAAC;AACV,SAAO;AACP,UAAQ;AACR,UAAQ,IAAI,MAAM,IAAI,mBAAmB,EAAE;AAC3C,iBAAe;AACf,UAAQ;AACR,eAAa;AACb,YAAU;AACV,cAAY,IAAI,sBAAsB,EAAE;AACxC,cAAY,IAAI;AAChB,gBAAc;AAChB;AAEA,CArPC,UAqPU,CAbC,YAaY,CAAC;AACvB,cAAY,IAAI,mBAAmB,EAAE;AACvC;AAEA,CAzPC,UAyPU,CAjBC,YAiBY,CAJC,OAIO;AAC9B,WAAS;AACT,YAAU;AACV,OAAK;AACL,QAAM;AACN,aAAW,UAAU,IAAI,EAAE;AAC3B,SAAO;AACP,aAAW;AACX,eAAa;AACf;AAEA,CApQC,UAoQU,CAAC;AACV,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,gBAAc;AACd,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC1C,eAAa;AACf;AAEA,CA7QC,UA6QU,CAAC;AACV,QAAM;AACN,aAAW;AACX,SAAO,IAAI,wBAAwB,EAAE;AACrC,eAAa;AACb,YAAU;AACV,iBAAe;AACf,eAAa;AACb,aAAW;AACb;AAEA,CAxRC,UAwRU,CAAC;AACV,QAAM;AACN,UAAQ;AACR,cAAY;AACZ,iBAAe;AACjB;AAEA,CA/RC,UA+RU,CAAC;AACV,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,cAAY;AACZ,UAAQ;AACV;AAEA,CAvSC,UAuSU,CARC,MAQM;AAChB,UAAQ;AACV;AAEA,CA3SC,UA2SU,CAAC;AACV,WAAS;AACT,SAAO;AACP,UAAQ;AACR,UAAQ,IAAI,MAAM,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnC,iBAAe;AACf,oBAAkB;AAClB,aAAW,cAAc,KAAK,OAAO;AACrC,gBAAc;AACd,kBAAgB;AAClB;AAEA,WALa;AAMX;AACE,eAAW,OAAO;AACpB;AACF;AAEA,CA7TC,UA6TU,CAAC;AACV,WAAS;AACT,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,SAAO;AACP,WAAS;AACT,mBAAiB;AACjB,eAAa;AACb,aAAW;AACb;AAEA,CA5UC,UA4UU,CAfC,cAec,CAnQJ;AAoQpB,WAAS;AACX;AAEA,CAhVC,UAgVU,CAAC;AACV,aAAW;AACX,WAAS,IAAI;AACb,cAAY,IAAI,sBAAsB,EAAE;AACxC,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC1C,iBAAe;AACf,UAAQ;AACR,SAAO,IAAI,0BAA0B,EAAE;AACvC,cAAY,IAAI;AAClB;AAEA,CA3VC,UA2VU,CAXC,iBAWiB;AAC3B,cAAY,IAAI,oBAAoB,EAAE;AACtC,SAAO,IAAI,wBAAwB,EAAE;AACrC,gBAAc,IAAI,kBAAkB,EAAE;AACxC;;;AC7WA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,YAAU;AACZ;AAGA,CAAC;AACC,YAAU;AACV,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,YAAU;AACV,eAAa;AACb,cAAY;AACd;AAEA,CAVC,UAUU,CAAC;AACV,YAAU;AACV,SAAO;AACP,WAAS;AACT,kBAAgB;AAClB;AAEA,CAjBC,UAiBU,CAAC;AACV,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,WAAS;AACT,iBAAe;AACf,kBAAgB;AAChB,WAAS;AACX;AAEA,CA7BC,UA6BU,CAAC;AACV,WAAS;AACX;AAEA,CAjCC,UAiCU,CAAC;AACV,cAAY,IAAI,mBAAmB,EAAE;AACrC,SAAO,IAAI,sBAAsB,EAAE;AACnC,WAAS,IAAI;AACb,UAAQ;AACR,iBAAe;AACf,UAAQ;AACR,aAAW;AACX,cAAY,QAAQ;AACtB;AAEA,CA5CC,UA4CU,CAXC,GAWG;AACb,WAAS;AACX;AAEA,CAhDC,UAgDU,CAAC;AACV,WAAS;AACT,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,SAAO;AACP,WAAS;AACT,mBAAiB;AACjB,eAAa;AACb,aAAW;AACb;AAEA,CA/DC,UA+DU,CAfC,OAeO,CAAC;AAClB,WAAS;AACX;AAEA,CAnEC,UAmEU,CAAC;AACV,YAAU;AACV,OAAK;AACL,SAAO;AACP,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,SAAO;AACP,WAAS;AACT,iBAAe;AACf,cAAY;AACZ,cAAY;AACd;AAEA,CA/EC,UA+EU,CAAC;AACV,UAAQ,IAAI;AACZ,aAAW;AACb;AAEA,CAAC;AACC,SAAO,IAAI,iBAAiB,EAAE;AAC9B,WAAS;AACT,cAAY;AACZ,aAAW;AACX,YAAU;AACV,WAAS;AACX;;;ACjGA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,YAAU;AACZ;AAEA,CAAC,kBAAkB;AACjB,UAAQ;AACR,WAAS;AACT,cAAY;AACd;AAEA,CANC;AAOC;AAAA,IAAa,aAAa;AAAA,IAAE,kBAAkB;AAAA,IAAE,UAAU;AAAA,IAAE,MAAM;AAAA,IAAE,iBAAiB;AAAA,IAAE;AACvF,cAAY,IAAI,wBAAwB,EAAE;AAC1C,SAAO;AACP,UAAQ;AACR,YAAU;AACZ;AAEA,CAdC,kBAckB,CAAC;AAClB,WAAS;AACT,UAAQ;AACR,cAAY,IAAI,sBAAsB,EAAE;AAC1C;AAEA,CApBC,kBAoBkB,CAAC;AAClB,SAAO;AACP,cAAY,IAAI,uBAAuB,EAAE;AACzC,gBAAc,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAChD,WAAS;AACT,WAAS;AACT,kBAAgB;AAChB,OAAK;AACL,eAAa;AACb,YAAU;AACZ;AAEA,CAhCC,kBAgCkB,CAAC;AAClB,aAAW;AACX,eAAa;AACb,SAAO,IAAI,wBAAwB,EAAE;AACrC,kBAAgB;AAChB,iBAAe,IAAI,MAAM,IAAI,mBAAmB,EAAE;AACpD;AAEA,CAxCC,kBAwCkB,CAAC;AAClB,WAAS;AACT,kBAAgB;AAChB,OAAK;AACP;AAEA,CA9CC,kBA8CkB,CAAC;AAClB,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,OAAK;AACP;AAEA,CArDC,kBAqDkB,CAAC;AAClB,aAAW;AACX,SAAO,IAAI,0BAA0B,EAAE;AACvC,aAAW;AACb;AAEA,CA3DC,kBA2DkB;AACjB,QAAM;AACN,WAAS,IAAI;AACb,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC1C,iBAAe;AACf,cAAY,IAAI,sBAAsB,EAAE;AACxC,SAAO,IAAI,wBAAwB,EAAE;AACrC,aAAW;AACX,UAAQ;AACV;AAEA,CAtEC,kBAsEkB,MAAM;AACzB,CAvEC,kBAuEkB,MAAM;AACvB,gBAAc,IAAI,mBAAmB,EAAE;AACvC,WAAS;AACX;AAEA,CA5EC,kBA4EkB,CAAC;AAClB,YAAU;AACV,WAAS;AACT,SAAO;AACT;AAEA,CAlFC,kBAkFkB,CANC,mBAMmB,KAAK,CAAC;AAC3C,YAAU;AACV,OAAK;AACL,QAAM;AACN,WAAS;AACT,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,WAAS;AACX;AAEA,CA7FC,kBA6FkB,CAAC;AAClB,WAAS;AACT,WAAS,IAAI;AACb,cAAY,IAAI,mBAAmB,EAAE;AACrC,SAAO,IAAI,sBAAsB,EAAE;AACnC,iBAAe;AACf,UAAQ;AACR,aAAW;AACX,cAAY;AACZ,cAAY,QAAQ;AACtB;AAEA,CAzGC,kBAyGkB,CAZC,iBAYiB;AACnC,WAAS;AACX;AAEA,CA7GC,kBA6GkB,CAAC;AAClB,WAAS,IAAI;AACb,UAAQ;AACR,iBAAe;AACf,aAAW;AACX,eAAa;AACb,UAAQ;AACR,cAAY,IAAI,KAAK;AACrB,SAAO;AACT;AAEA,CAxHC,kBAwHkB,CAAC;AAClB,cAAY,IAAI,mBAAmB,EAAE;AACrC,SAAO,IAAI,sBAAsB,EAAE;AACrC;AAEA,CA7HC,kBA6HkB,CALC,WAKW;AAC7B,WAAS;AACX;AAEA,CAjIC,kBAiIkB,CAAC;AAClB,cAAY,IAAI,yBAAyB,EAAE;AAC3C,SAAO,IAAI,sBAAsB,EAAE;AACrC;AAEA,CAtIC,kBAsIkB,CALC,aAKa;AAC/B,WAAS;AACX;AAEA,CA1IC,kBA0IkB,CAAC;AAClB,WAAS;AACT,OAAK;AACL,iBAAe;AACf,YAAU;AACV,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC5C;AAEA,CAlJC,kBAkJkB,CARC,YAQY;AAC9B,QAAM;AACN,WAAS,IAAI;AACb,UAAQ;AACR,cAAY,IAAI,sBAAsB,EAAE;AACxC,SAAO,IAAI,0BAA0B,EAAE;AACvC,aAAW;AACX,UAAQ;AACR,cAAY,IAAI,KAAK;AACvB;AAEA,CA7JC,kBA6JkB,CAnBC,YAmBY,MAAM,CAAC;AACrC,cAAY,IAAI,mBAAmB,EAAE;AACrC,SAAO,IAAI,sBAAsB,EAAE;AACrC;AAEA,CAlKC,kBAkKkB,CAxBC,YAwBY,MAAM,MAAM,KAAK,CALV;AAMrC,cAAY,IAAI,oBAAoB,EAAE;AACxC;AAEA,CAtKC,kBAsKkB,CAAC;AAClB,WAAS;AACT,eAAa;AACb,OAAK;AACL,QAAM;AACR;AAEA,CA7KC,kBA6KkB,CAAC;AAClB,SAAO;AACP,UAAQ;AACR,iBAAe;AACf,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE;AAC1C,eAAa;AACf;AAEA,CArLC,kBAqLkB,CAAC;AAClB,WAAS;AACT,eAAa;AACb,mBAAiB;AACnB;AAEA,CA3LC,kBA2LkB,CAAC;AAClB,YAAU;AACV,SAAO;AACP,UAAQ;AACV;AAEA,CAjMC,kBAiMkB,CANC,OAMO;AACzB,WAAS;AACT,SAAO;AACP,UAAQ;AACV;AAEA,CAvMC,kBAuMkB,CAAC;AAClB,YAAU;AACV,UAAQ;AACR,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,oBAAkB,IAAI,2BAA2B,EAAE;AACnD,cAAY;AACZ,iBAAe;AACjB;AAEA,CAnNC,kBAmNkB,CAZC,MAYM;AACxB,YAAU;AACV,WAAS;AACT,UAAQ;AACR,SAAO;AACP,QAAM;AACN,UAAQ;AACR,oBAAkB,IAAI,sBAAsB,EAAE;AAC9C,cAAY;AACZ,iBAAe;AACjB;AAEA,CA/NC,kBA+NkB,KAAK,SAAS,EAAE,CAxBf;AAyBlB,oBAAkB,IAAI,mBAAmB,EAAE;AAC7C;AAEA,CAnOC,kBAmOkB,KAAK,SAAS,EAAE,CA5Bf,MA4BsB;AACxC,aAAW,WAAW;AACxB;AAEA,CAvOC,kBAuOkB,CAAC;AAClB,QAAM;AACN,WAAS;AACT,kBAAgB;AAChB,cAAY,IAAI,sBAAsB,EAAE;AAC1C;AAEA,CA9OC,kBA8OkB,CAAC;AAClB,QAAM;AACN,YAAU;AACV,YAAU;AACV,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,cAAY;AACd;AAEA,CAxPC,kBAwPkB,CAAC;AAClB,UAAQ;AACV;AAEA,CA5PC,kBA4PkB,CAJC,gBAIgB;AAClC,UAAQ;AACV;AAEA,CAhQC,kBAgQkB,CAAC;AAClB,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,kBAAgB;AAChB,OAAK;AACL,WAAS;AACX;AAEA,CA/QC,kBA+QkB,CAfC,eAee,CAAC;AAClC,WAAS;AACX;AAEA,CAnRC,kBAmRkB,CAAC;AAClB,SAAO;AACP,UAAQ;AACR,UAAQ,IAAI,MAAM,IAAI,2BAA2B,EAAE;AACnD,oBAAkB,IAAI,mBAAmB,EAAE;AAC3C,iBAAe;AACf,aAAW,eAAe,GAAG,OAAO;AACtC;AAEA,WAHa;AAIX;AACE,eAAW,OAAO;AACpB;AACF;AAEA,CAlSC,kBAkSkB,CAAC;AAClB,aAAW;AACX,SAAO,IAAI,yBAAyB,EAAE;AACxC;AAEA,CAvSC,kBAuSkB,CAAC;AAClB,WAAS;AACX;AAEA,CAAC;AACC,SAAO,IAAI,iBAAiB,EAAE;AAC9B,WAAS;AACT,cAAY;AACZ,aAAW;AACX,YAAU;AACV,WAAS;AACX;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GerberViewer_default
|
|
3
|
+
} from "./chunk-GYXTSY22.js";
|
|
4
|
+
import {
|
|
5
|
+
injectStyles,
|
|
6
|
+
useResource
|
|
7
|
+
} from "./chunk-GAMA3VA7.js";
|
|
8
|
+
import "./chunk-7D4SUZUM.js";
|
|
9
|
+
|
|
10
|
+
// src/components/JsonRender/domain/GerberViewerA2UI.tsx
|
|
11
|
+
import { useEffect, useCallback } from "react";
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
var STYLE_ID = "jr-styles-gerber-viewer";
|
|
14
|
+
var SHEET = `
|
|
15
|
+
.jr-gerber-viewer { width: 100%; min-width: 0; max-width: 100%; min-height: 400px; }
|
|
16
|
+
.jr-gerber-viewer--loading, .jr-gerber-viewer--error {
|
|
17
|
+
padding: 1rem; font-family: var(--jr-font, system-ui, sans-serif);
|
|
18
|
+
color: var(--jr-text-muted, #64748b);
|
|
19
|
+
}
|
|
20
|
+
.jr-gerber-viewer--error { color: var(--jr-danger, #ef4444); }
|
|
21
|
+
`;
|
|
22
|
+
var GerberViewer = ({ props, emit }) => {
|
|
23
|
+
injectStyles(STYLE_ID, SHEET);
|
|
24
|
+
const res = useResource({ resource_id: props.resource_id, url: props.url });
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (res.loading) return;
|
|
27
|
+
if (res.error) {
|
|
28
|
+
emit?.("viewer:error", { resource_id: props.resource_id, error: res.error });
|
|
29
|
+
} else {
|
|
30
|
+
emit?.("viewer:loaded", { resource_id: props.resource_id, mimeType: res.mimeType, fileName: res.fileName });
|
|
31
|
+
}
|
|
32
|
+
}, [res.loading, res.error]);
|
|
33
|
+
const handleModeChange = useCallback(
|
|
34
|
+
(next) => {
|
|
35
|
+
emit?.("viewer:mode-change", { resource_id: props.resource_id, mode: next });
|
|
36
|
+
},
|
|
37
|
+
[emit, props.resource_id]
|
|
38
|
+
);
|
|
39
|
+
if (res.loading) return /* @__PURE__ */ jsx("div", { className: "jr-gerber-viewer jr-gerber-viewer--loading", children: "Loading\u2026" });
|
|
40
|
+
if (res.error) return /* @__PURE__ */ jsx("div", { className: "jr-gerber-viewer jr-gerber-viewer--error", children: res.error });
|
|
41
|
+
const isControlled = props.mode !== void 0;
|
|
42
|
+
return /* @__PURE__ */ jsx("div", { className: "jr-gerber-viewer", children: /* @__PURE__ */ jsx(
|
|
43
|
+
GerberViewer_default,
|
|
44
|
+
{
|
|
45
|
+
url: res.url,
|
|
46
|
+
mode: isControlled ? props.mode : void 0,
|
|
47
|
+
defaultMode: isControlled ? void 0 : "2d",
|
|
48
|
+
onModeChange: handleModeChange
|
|
49
|
+
}
|
|
50
|
+
) });
|
|
51
|
+
};
|
|
52
|
+
var GerberViewerA2UI_default = GerberViewer;
|
|
53
|
+
export {
|
|
54
|
+
GerberViewer,
|
|
55
|
+
GerberViewerA2UI_default as default
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=GerberViewerA2UI-X5FWAD5M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/JsonRender/domain/GerberViewerA2UI.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from 'react'\nimport { useResource } from '../../../hooks/useResource.js'\nimport GerberViewerCore, { type GerberViewMode } from '../../FileViewer/viewers/GerberViewer.js'\nimport { injectStyles } from './injectStyles.js'\n\nconst STYLE_ID = 'jr-styles-gerber-viewer'\nconst SHEET = `\n.jr-gerber-viewer { width: 100%; min-width: 0; max-width: 100%; min-height: 400px; }\n.jr-gerber-viewer--loading, .jr-gerber-viewer--error {\n padding: 1rem; font-family: var(--jr-font, system-ui, sans-serif);\n color: var(--jr-text-muted, #64748b);\n}\n.jr-gerber-viewer--error { color: var(--jr-danger, #ef4444); }\n`\n\ninterface Props {\n props: {\n resource_id?: string\n url?: string\n mode?: GerberViewMode\n title?: string\n }\n emit?: (event: string, data?: unknown) => void\n}\n\nexport const GerberViewer: React.FC<Props> = ({ props, emit }) => {\n injectStyles(STYLE_ID, SHEET)\n const res = useResource({ resource_id: props.resource_id, url: props.url })\n\n useEffect(() => {\n if (res.loading) return\n if (res.error) {\n emit?.('viewer:error', { resource_id: props.resource_id, error: res.error })\n } else {\n emit?.('viewer:loaded', { resource_id: props.resource_id, mimeType: res.mimeType, fileName: res.fileName })\n }\n }, [res.loading, res.error])\n\n // CWRF-013 Phase 0 PR #3 — bridge Core mode changes back to the A2UI\n // emit channel so ActionBinding consumers can write the new mode back into\n // the spec (forming a real controlled loop when the catalog `mode` field\n // is bound to a state path).\n const handleModeChange = useCallback(\n (next: GerberViewMode) => {\n emit?.('viewer:mode-change', { resource_id: props.resource_id, mode: next })\n },\n [emit, props.resource_id],\n )\n\n if (res.loading) return <div className=\"jr-gerber-viewer jr-gerber-viewer--loading\">Loading…</div>\n if (res.error) return <div className=\"jr-gerber-viewer jr-gerber-viewer--error\">{res.error}</div>\n\n // When the catalog `mode` field is provided, drive the Core in controlled\n // mode (toggle bar becomes read-only — Agent owns the truth). Otherwise\n // run uncontrolled with default '2d' so legacy specs / external consumers\n // behave exactly as before.\n const isControlled = props.mode !== undefined\n return (\n <div className=\"jr-gerber-viewer\">\n <GerberViewerCore\n url={res.url}\n mode={isControlled ? props.mode : undefined}\n defaultMode={isControlled ? undefined : '2d'}\n onModeChange={handleModeChange}\n />\n </div>\n )\n}\n\nexport default GerberViewer\n"],"mappings":";;;;;;;;;;AAAA,SAAgB,WAAW,mBAAmB;AAiDpB;AA5C1B,IAAM,WAAW;AACjB,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBP,IAAM,eAAgC,CAAC,EAAE,OAAO,KAAK,MAAM;AAChE,eAAa,UAAU,KAAK;AAC5B,QAAM,MAAM,YAAY,EAAE,aAAa,MAAM,aAAa,KAAK,MAAM,IAAI,CAAC;AAE1E,YAAU,MAAM;AACd,QAAI,IAAI,QAAS;AACjB,QAAI,IAAI,OAAO;AACb,aAAO,gBAAgB,EAAE,aAAa,MAAM,aAAa,OAAO,IAAI,MAAM,CAAC;AAAA,IAC7E,OAAO;AACL,aAAO,iBAAiB,EAAE,aAAa,MAAM,aAAa,UAAU,IAAI,UAAU,UAAU,IAAI,SAAS,CAAC;AAAA,IAC5G;AAAA,EACF,GAAG,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC;AAM3B,QAAM,mBAAmB;AAAA,IACvB,CAAC,SAAyB;AACxB,aAAO,sBAAsB,EAAE,aAAa,MAAM,aAAa,MAAM,KAAK,CAAC;AAAA,IAC7E;AAAA,IACA,CAAC,MAAM,MAAM,WAAW;AAAA,EAC1B;AAEA,MAAI,IAAI,QAAS,QAAO,oBAAC,SAAI,WAAU,8CAA6C,2BAAQ;AAC5F,MAAI,IAAI,MAAO,QAAO,oBAAC,SAAI,WAAU,4CAA4C,cAAI,OAAM;AAM3F,QAAM,eAAe,MAAM,SAAS;AACpC,SACE,oBAAC,SAAI,WAAU,oBACb;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,IAAI;AAAA,MACT,MAAM,eAAe,MAAM,OAAO;AAAA,MAClC,aAAa,eAAe,SAAY;AAAA,MACxC,cAAc;AAAA;AAAA,EAChB,GACF;AAEJ;AAEA,IAAO,2BAAQ;","names":[]}
|