@nice2dev/ui-3d 1.3.17 → 1.4.0

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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @nice2dev/ui-3d — Changelog
2
2
 
3
+ ## 1.4.0
4
+
5
+ No changes in this release.
6
+
7
+ ## 1.3.18
8
+
9
+ ### Patch Changes
10
+
11
+ - 92418c0: OmniVerk wishlist §3, packaging:
12
+
13
+ - No test declarations in `dist` any more: erp-adapter (16 files), auth (12), ui-communication (8), ui-presentations
14
+ (14), and the test `setup.d.ts` of ui-3d, ui-graphics and game-engine.
15
+ - **One stylesheet per package**: icons, ui-3d and ui-graphics ship theirs in `dist/esm` only — where `exports`
16
+ points; the `dist/cjs` copy was reached from nothing.
17
+ - design-tokens builds its CLI as ES modules only: `bin` and `./cli` point at `dist/cli/index.js`; the CommonJS
18
+ `dist/cli/index.cjs` nothing referred to is gone.
19
+ - ui README: the Tools section and its link say 12 components (the link pointed at `#tools-14-components`).
20
+
3
21
  ## 1.3.17
4
22
 
5
23
  No changes in this release.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/ui-3d",
3
- "version": "1.3.17",
3
+ "version": "1.4.0",
4
4
  "description": "Nice2Dev 3D Editor — Blender-style 3D model editor component for React, powered by Three.js",
5
5
  "author": "NiceToDev <contact@nicetodev.com>",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -65,7 +65,7 @@
65
65
  "three": ">=0.150.0"
66
66
  },
67
67
  "devDependencies": {
68
- "@nice2dev/ui": "^1.3.17",
68
+ "@nice2dev/ui": "^1.4.0",
69
69
  "@testing-library/jest-dom": "^7.0.1",
70
70
  "@testing-library/react": "^16.3.3",
71
71
  "@types/react": "^19.2.18",
@@ -1 +0,0 @@
1
- ._root_lw12r_5{display:flex;flex-direction:column;height:100%;background:var(--nice-bg-primary);color:var(--nice-text-primary);font-family:Segoe UI,Consolas,monospace;font-size:12px;user-select:none;overflow:hidden}._menuBar_lw12r_35{display:flex;align-items:center;gap:0;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);padding:0 var(--nice-space-1, 4px);height:28px;flex-shrink:0}._menuBtn_lw12r_55{background:none;border:none;color:var(--nice-text-secondary);padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px);cursor:pointer;font-size:11px;border-radius:var(--nice-radius-sm, 3px);white-space:nowrap}._menuBtn_lw12r_55:hover{background:var(--nice-bg-secondary);color:var(--nice-color-white)}._menuBtn_lw12r_55:disabled{opacity:.4;cursor:default}._menuSep_lw12r_91{width:1px;height:16px;background:var(--nice-bg-secondary);margin:0 var(--nice-space-1, 4px)}._menuLabel_lw12r_103{font-size:10px;color:var(--nice-text-secondary);margin:0 var(--nice-space-1-5, 6px);white-space:nowrap}._menuRight_lw12r_115{margin-left:auto;display:flex;align-items:center;gap:var(--nice-space-1, 4px)}._leftPanel_lw12r_141{width:240px;display:flex;flex-direction:column;background:var(--nice-bg-primary);border-right:1px solid var(--nice-border-color);overflow:hidden;flex-shrink:0}._toolbar_lw12r_163{display:flex;flex-direction:column;width:38px;background:var(--nice-bg-elevated);border-right:1px solid var(--nice-border-color);padding:var(--nice-space-1, 4px) var(--nice-space-0-5, 2px);gap:var(--nice-space-0-5, 2px);flex-shrink:0}._toolBtn_lw12r_183{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--nice-radius-sm, 4px);cursor:pointer;font-size:16px;color:var(--nice-text-muted);transition:all .1s}._toolBtn_lw12r_183:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}._toolBtnActive_lw12r_219{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}._toolSep_lw12r_229{height:1px;background:var(--nice-bg-secondary);margin:var(--nice-space-1, 4px) var(--nice-space-0-5, 2px)}._viewportContainer_lw12r_243{flex:1;height:100%;min-height:0;position:relative;overflow:hidden;background:var(--nice-bg-inset)}._viewportContainer_lw12r_243 canvas{display:block;width:100%;height:100%}._viewportOverlay_lw12r_277{position:absolute;top:8px;left:8px;display:flex;gap:var(--nice-space-1, 4px);z-index:10}._viewportBadge_lw12r_293{background:var(--nice-overlay-80, rgba(20, 20, 40, .8));border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-0-5, 2px) var(--nice-space-2, 8px);font-size:10px;color:var(--nice-text-muted)}._viewportDropZone_lw12r_309{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#5566cc26;border:2px dashed var(--nice-color-primary);z-index:20;pointer-events:none}._viewportDropZone_lw12r_309 span{background:#141428e6;padding:var(--nice-space-3, 12px) var(--nice-space-6, 24px);border-radius:var(--nice-radius-lg, 8px);font-size:14px;color:var(--nice-text-muted, #aab)}._rightPanel_lw12r_349{width:280px;display:flex;flex-direction:column;background:var(--nice-bg-primary);border-left:1px solid var(--nice-border-color);overflow-y:auto;flex-shrink:0}._panelSection_lw12r_371{border-bottom:1px solid var(--nice-border-color);padding:var(--nice-space-1-5, 6px) var(--nice-space-2, 8px)}._panelTitle_lw12r_379{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--nice-text-secondary);margin-bottom:var(--nice-space-1, 4px);display:flex;justify-content:space-between;align-items:center;cursor:pointer}._panelTitle_lw12r_379 button{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:14px;padding:0 var(--nice-space-0-5, 2px);line-height:1}._panelTitle_lw12r_379 button:hover{color:var(--nice-text-muted)}._panelCollapsed_lw12r_425 ._panelContent_lw12r_425{display:none}._panelContent_lw12r_425{padding-top:var(--nice-space-1, 4px)}._treeItem_lw12r_441{display:flex;align-items:center;gap:var(--nice-space-1, 4px);padding:var(--nice-space-0-75, 3px) var(--nice-space-1, 4px) var(--nice-space-0-75, 3px) 0;border-radius:var(--nice-radius-sm, 3px);cursor:pointer;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._treeItem_lw12r_441:hover{background:var(--nice-overlay-light-4, rgba(255, 255, 255, .04))}._treeItemActive_lw12r_471{background:var(--nice-surface)!important;outline:1px solid var(--nice-color-primary-hover)}._treeIcon_lw12r_479{font-size:12px;opacity:.6;flex-shrink:0;width:16px;text-align:center}._treeIndent_lw12r_493{display:inline-block;width:16px;flex-shrink:0}._treeToggle_lw12r_503{font-size:8px;width:12px;text-align:center;cursor:pointer;flex-shrink:0;color:var(--nice-text-muted)}._treeVisibility_lw12r_519{font-size:10px;cursor:pointer;opacity:.5;padding:0 var(--nice-space-0-5, 2px);flex-shrink:0}._treeVisibility_lw12r_519:hover{opacity:1}._propRow_lw12r_543{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-0-75, 3px)}._propLabel_lw12r_555{font-size:10px;color:var(--nice-text-muted);min-width:50px;flex-shrink:0}._propInput_lw12r_567{flex:1;background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);color:var(--nice-text-primary);border-radius:var(--nice-radius-sm, 3px);padding:var(--nice-space-0-5, 2px) var(--nice-space-1, 4px);font-size:11px;min-width:0}._propInput_lw12r_567:focus{border-color:var(--nice-color-primary);outline:none}._propVec3_lw12r_595{display:flex;gap:var(--nice-space-0-5, 2px);flex:1}._propVec3_lw12r_595 input{flex:1;background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);color:var(--nice-text-primary);border-radius:var(--nice-radius-sm, 3px);padding:var(--nice-space-0-5, 2px) var(--nice-space-0-75, 3px);font-size:10px;min-width:0;text-align:center}._propVec3_lw12r_595 input:focus{border-color:var(--nice-color-primary);outline:none}._propVec3X_lw12r_635{border-left:2px solid #cc4444!important}._propVec3Y_lw12r_641{border-left:2px solid #44cc44!important}._propVec3Z_lw12r_647{border-left:2px solid #4488cc!important}._propColorSwatch_lw12r_655{width:24px;height:24px;border-radius:var(--nice-radius-sm, 3px);border:1px solid var(--nice-overlay-light-15, rgba(255, 255, 255, .15));cursor:pointer;position:relative;flex-shrink:0}._propColorSwatch_lw12r_655 input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}._propCheckbox_lw12r_691{accent-color:var(--nice-color-primary)}._propSelect_lw12r_699{flex:1;background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);color:var(--nice-text-primary);border-radius:var(--nice-radius-sm, 3px);padding:var(--nice-space-0-5, 2px) var(--nice-space-1, 4px);font-size:11px;min-width:0}._bottomPanel_lw12r_727{height:200px;background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}._bottomPanelCollapsed_lw12r_745{height:28px}._bottomPanelHeader_lw12r_751{display:flex;align-items:center;height:28px;padding:0 var(--nice-space-2, 8px);gap:var(--nice-space-1, 4px);border-bottom:1px solid var(--nice-border-color);flex-shrink:0}._bottomPanelTitle_lw12r_769{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--nice-text-secondary);cursor:pointer}._bottomToggle_lw12r_783{font-size:8px;color:var(--nice-text-muted);cursor:pointer;margin-right:var(--nice-space-1, 4px)}._transportBar_lw12r_799{display:flex;align-items:center;gap:var(--nice-space-0-5, 2px)}._transportBtn_lw12r_809{background:none;border:none;color:var(--nice-text-secondary);font-size:14px;cursor:pointer;padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);border-radius:var(--nice-radius-sm, 3px)}._transportBtn_lw12r_809:hover{background:var(--nice-bg-secondary);color:var(--nice-color-white)}._transportBtnActive_lw12r_835{color:var(--nice-color-primary)!important}._transportTime_lw12r_841{font-size:10px;color:var(--nice-text-muted);margin:0 var(--nice-space-2, 8px);font-variant-numeric:tabular-nums}._animListArea_lw12r_857{display:flex;flex:1;min-height:0;overflow:hidden}._animList_lw12r_857{width:200px;border-right:1px solid var(--nice-border-color);overflow-y:auto;flex-shrink:0}._animItem_lw12r_881{display:flex;align-items:center;gap:var(--nice-space-1, 4px);padding:var(--nice-space-0-75, 3px) var(--nice-space-2, 8px);cursor:pointer;font-size:11px;border-left:2px solid transparent}._animItem_lw12r_881:hover{background:var(--nice-overlay-light-4, rgba(255, 255, 255, .04))}._animItemActive_lw12r_905{background:var(--nice-surface)!important;border-left-color:var(--nice-color-primary)}._animDuration_lw12r_913{margin-left:auto;font-size:9px;color:var(--nice-text-muted)}._timelineArea_lw12r_927{flex:1;position:relative;overflow-x:auto;overflow-y:hidden}._timelineRuler_lw12r_939{height:20px;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);position:relative}._rulerTick_lw12r_951{position:absolute;top:0;width:1px;height:100%;background:var(--nice-bg-secondary)}._rulerLabel_lw12r_965{position:absolute;top:2px;font-size:8px;color:var(--nice-text-muted);transform:translate(-50%)}._playhead_lw12r_979{position:absolute;top:0;width:2px;background:var(--nice-color-primary);z-index:3;pointer-events:none}._playheadHandle_lw12r_995{position:absolute;top:0;width:8px;height:8px;background:var(--nice-color-primary);transform:translate(-3px);clip-path:polygon(0 0,100% 0,50% 100%)}._timelineTracks_lw12r_1013{position:relative}._keyframeDiamond_lw12r_1019{position:absolute;width:8px;height:8px;background:#e8a030;transform:rotate(45deg);cursor:pointer;z-index:2}._keyframeDiamond_lw12r_1019:hover{background:#f0c060}._keyframeDiamondSelected_lw12r_1043{background:var(--nice-color-white)!important}._statusBar_lw12r_1057{display:flex;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-0-5, 2px) var(--nice-space-2, 8px);font-size:10px;color:var(--nice-text-muted);background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);height:20px;flex-shrink:0}._materialCard_lw12r_1089{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1-5, 6px)}._materialCardActive_lw12r_1103{border-color:var(--nice-color-primary)}._materialHeader_lw12r_1109{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1, 4px)}._materialPreview_lw12r_1121{width:32px;height:32px;border-radius:var(--nice-radius-sm, 4px);border:1px solid var(--nice-border-color);overflow:hidden;flex-shrink:0}._materialPreview_lw12r_1121 canvas{width:100%;height:100%}._materialName_lw12r_1145{flex:1;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._textureSlot_lw12r_1165{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1, 4px)}._textureThumb_lw12r_1177{width:28px;height:28px;border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm, 3px);overflow:hidden;flex-shrink:0;background:#0a0a15}._textureThumb_lw12r_1177 img{width:100%;height:100%;object-fit:cover}._textureInfo_lw12r_1205{flex:1;min-width:0}._textureName_lw12r_1213{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._textureBtn_lw12r_1225{background:none;border:1px solid var(--nice-border-color);color:var(--nice-text-muted);border-radius:var(--nice-radius-sm, 3px);padding:var(--nice-space-px, 1px) var(--nice-space-1-5, 6px);font-size:10px;cursor:pointer}._textureBtn_lw12r_1225:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}._btnPrimary_lw12r_1259{background:var(--nice-color-primary);color:var(--nice-color-white);border:none;border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-1, 4px) var(--nice-space-3, 12px);cursor:pointer;font-size:11px;white-space:nowrap}._btnPrimary_lw12r_1259:hover{background:var(--nice-primary, #6677dd)}._btnPrimary_lw12r_1259:disabled{opacity:.4;cursor:default}._btnSecondary_lw12r_1295{background:var(--nice-bg-secondary);color:var(--nice-text-muted);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-1, 4px) var(--nice-space-3, 12px);cursor:pointer;font-size:11px;white-space:nowrap}._btnSecondary_lw12r_1295:hover{background:#3a3a5a;color:var(--nice-text-primary)}._btnIcon_lw12r_1325{background:none;border:none;color:var(--nice-text-muted);cursor:pointer;font-size:14px;padding:var(--nice-space-0-5, 2px);line-height:1}._btnIcon_lw12r_1325:hover{color:var(--nice-text-secondary)}._aiPanel_lw12r_1357{background:linear-gradient(135deg,var(--nice-bg, #1a1a3e),#1e1a2e);border:1px solid var(--nice-bg-secondary, #4a3a6a);border-radius:var(--nice-radius-md, 6px);padding:var(--nice-space-2, 8px);margin:var(--nice-space-1, 4px) 0}._aiHeader_lw12r_1371{display:flex;align-items:center;gap:var(--nice-space-1, 4px);margin-bottom:var(--nice-space-1-5, 6px);font-size:11px;color:#b88adf}._aiInput_lw12r_1387{width:100%;background:var(--nice-bg-canvas);border:1px solid var(--nice-bg-secondary, #4a3a6a);color:var(--nice-text-primary);border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);font-size:11px;margin-bottom:var(--nice-space-1, 4px);resize:vertical;min-height:28px}._aiInput_lw12r_1387:focus{border-color:#86c;outline:none}._aiBtnRow_lw12r_1419{display:flex;gap:var(--nice-space-1, 4px)}._aiBtn_lw12r_1419{background:linear-gradient(135deg,#54a,#64c);color:var(--nice-color-white);border:none;border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-0-75, 3px) var(--nice-space-2-5, 10px);cursor:pointer;font-size:10px}._aiBtn_lw12r_1419:hover{background:linear-gradient(135deg,#65b,#75d)}._aiBtn_lw12r_1419:disabled{opacity:.4}._aiStatus_lw12r_1457{font-size:10px;color:#86a;margin-top:var(--nice-space-1, 4px)}._dragOver_lw12r_1475{outline:2px dashed var(--nice-color-primary);outline-offset:-2px}._contextMenu_lw12r_1491{position:fixed;background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md, 6px);padding:var(--nice-space-1, 4px) 0;min-width:180px;box-shadow:0 4px 16px var(--nice-overlay-50, rgba(0, 0, 0, .5));z-index:999}._contextItem_lw12r_1511{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-1-25, 5px) var(--nice-space-3, 12px);cursor:pointer;font-size:11px;color:var(--nice-text-secondary)}._contextItem_lw12r_1511:hover{background:var(--nice-surface)}._contextSep_lw12r_1535{height:1px;background:var(--nice-bg-secondary);margin:var(--nice-space-0-5, 2px) 0}._contextKey_lw12r_1545{margin-left:auto;font-size:10px;color:var(--nice-text-muted)}._leftPanel_lw12r_141::-webkit-scrollbar,._rightPanel_lw12r_349::-webkit-scrollbar,._animList_lw12r_857::-webkit-scrollbar,._timelineArea_lw12r_927::-webkit-scrollbar{width:6px;height:6px}._leftPanel_lw12r_141::-webkit-scrollbar-track,._rightPanel_lw12r_349::-webkit-scrollbar-track,._animList_lw12r_857::-webkit-scrollbar-track,._timelineArea_lw12r_927::-webkit-scrollbar-track{background:transparent}._leftPanel_lw12r_141::-webkit-scrollbar-thumb,._rightPanel_lw12r_349::-webkit-scrollbar-thumb,._animList_lw12r_857::-webkit-scrollbar-thumb,._timelineArea_lw12r_927::-webkit-scrollbar-thumb{background:var(--nice-bg-secondary);border-radius:var(--nice-radius-sm, 3px)}._leftPanel_lw12r_141::-webkit-scrollbar-thumb:hover,._rightPanel_lw12r_349::-webkit-scrollbar-thumb:hover,._animList_lw12r_857::-webkit-scrollbar-thumb:hover,._timelineArea_lw12r_927::-webkit-scrollbar-thumb:hover{background:var(--nice-bg-tertiary)}._resizeHandle_lw12r_1619{height:4px;cursor:ns-resize;background:transparent;transition:background .1s}._resizeHandle_lw12r_1619:hover{background:var(--nice-color-primary)}._modeSelect_lw12r_1645{background:var(--nice-bg, #222244);border:1px solid var(--nice-border-color);color:#b0b0d0;border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-0-5, 2px) var(--nice-space-2, 8px);font-size:11px;cursor:pointer;outline:none;font-weight:600}._modeSelect_lw12r_1645:focus{border-color:var(--nice-color-primary)}._modeSelect_lw12r_1645 option{background:var(--nice-bg-primary)}._menuDropdownWrap_lw12r_1687{position:relative}._dropdownMenu_lw12r_1693{position:absolute;top:100%;left:0;background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md, 6px);padding:var(--nice-space-1, 4px) 0;min-width:200px;max-height:420px;overflow-y:auto;box-shadow:0 6px 24px var(--nice-overlay-60, rgba(0, 0, 0, .6));z-index:999}._dropdownTitle_lw12r_1721{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--nice-color-primary);padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px) var(--nice-space-0-5, 2px);font-weight:700}._dropdownItem_lw12r_1737{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);padding:var(--nice-space-1-25, 5px) var(--nice-space-4, 16px);cursor:pointer;font-size:11px;color:var(--nice-text-secondary);transition:background .08s}._dropdownItem_lw12r_1737:hover{background:var(--nice-surface);color:var(--nice-color-white)}._dropdownSep_lw12r_1765{height:1px;background:var(--nice-bg-secondary);margin:var(--nice-space-1, 4px) 0}._dropdownMenu_lw12r_1693::-webkit-scrollbar{width:6px}._dropdownMenu_lw12r_1693::-webkit-scrollbar-track{background:transparent}._dropdownMenu_lw12r_1693::-webkit-scrollbar-thumb{background:var(--nice-bg-tertiary);border-radius:var(--nice-radius-sm, 3px)}._viewportShadingBar_lw12r_1803{position:absolute;top:8px;right:8px;display:flex;gap:var(--nice-space-0-5, 2px);z-index:10;background:var(--nice-overlay-80, rgba(20, 20, 40, .8));border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md, 6px);padding:var(--nice-space-0-5, 2px) var(--nice-space-1, 4px)}._shadingBtn_lw12r_1827{background:none;border:1px solid transparent;color:var(--nice-text-muted);padding:var(--nice-space-0-75, 3px) var(--nice-space-2, 8px);cursor:pointer;font-size:12px;border-radius:var(--nice-radius-sm, 4px);transition:all .1s;white-space:nowrap}._shadingBtn_lw12r_1827:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}._shadingBtnActive_lw12r_1857{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}._viewportGizmoInfo_lw12r_1875{position:absolute;top:44px;right:8px;z-index:10}._propTabs_lw12r_1895{display:flex;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);flex-shrink:0}._propTabBtn_lw12r_1907{flex:1;background:none;border:none;border-bottom:2px solid transparent;color:var(--nice-text-secondary);padding:var(--nice-space-1-5, 6px) var(--nice-space-1, 4px);cursor:pointer;font-size:14px;transition:all .15s}._propTabBtn_lw12r_1907:hover{background:var(--nice-bg-elevated);color:var(--nice-text-muted)}._propTabBtnActive_lw12r_1937{color:var(--nice-color-white)!important;border-bottom-color:var(--nice-color-primary)!important;background:var(--nice-bg-elevated)!important}._outlinerSearch_lw12r_1955{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px) 0}._outlinerSearch_lw12r_1955 input{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);color:var(--nice-text-secondary);border-radius:var(--nice-radius-sm, 4px);padding:var(--nice-space-0-75, 3px) var(--nice-space-2, 8px);font-size:11px}._outlinerSearch_lw12r_1955 input:focus{border-color:var(--nice-color-primary);outline:none}._outlinerSearch_lw12r_1955 input::placeholder{color:var(--nice-text-muted)}._root_bqnwl_5{display:flex;flex-direction:column;height:100%;background:var(--nice-bg-primary, #1a1a2e);color:var(--nice-text-primary, #e0e0e0);font-family:Segoe UI,Consolas,monospace;font-size:12px;user-select:none;overflow:hidden;position:relative}._toolbar_bqnwl_33{display:flex;align-items:center;gap:var(--nice-space-0-5, 2px);background:var(--nice-bg-canvas, #12122a);border-bottom:1px solid var(--nice-border-color, #252545);padding:0 var(--nice-space-1-5, 6px);height:32px;flex-shrink:0;z-index:2}._toolBtn_bqnwl_55{background:none;border:none;color:var(--nice-text-secondary, #ccc);padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);cursor:pointer;font-size:11px;border-radius:var(--nice-radius-sm, 3px);white-space:nowrap;display:flex;align-items:center;gap:var(--nice-space-1, 4px)}._toolBtn_bqnwl_55:hover{background:var(--nice-bg-secondary, #252545);color:var(--nice-text-primary, #fff)}._toolBtn_bqnwl_55._active_bqnwl_89{background:var(--nice-color-primary, #5577ff);color:var(--nice-text-on-primary, #fff)}._toolBtn_bqnwl_55:disabled{opacity:.4;cursor:default}._toolSep_bqnwl_105{width:1px;height:16px;background:var(--nice-bg-secondary, #333);margin:0 var(--nice-space-1, 4px)}._toolLabel_bqnwl_117{font-size:10px;color:var(--nice-text-secondary, #888);margin:0 var(--nice-space-1, 4px);white-space:nowrap}._toolRight_bqnwl_129{margin-left:auto;display:flex;align-items:center;gap:var(--nice-space-0-5, 2px)}._viewport_bqnwl_145{flex:1;position:relative;overflow:hidden;outline:none}._viewport_bqnwl_145:focus-visible:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--nice-color-primary, #3b82f6);pointer-events:none}._viewport_bqnwl_145 canvas{display:block;width:100%!important;height:100%!important}._loadingOverlay_bqnwl_189{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--nice-overlay-85, rgba(20, 20, 40, .85));z-index:10}._loadingBar_bqnwl_209{width:200px;height:4px;background:var(--nice-bg-tertiary, #444);border-radius:var(--nice-radius-sm, 2px);overflow:hidden;margin-top:var(--nice-space-3, 12px)}._loadingBarFill_bqnwl_225{height:100%;background:var(--nice-color-primary, #5577ff);transition:width .2s}._loadingText_bqnwl_235{color:var(--nice-text-secondary, #ccc);margin-bottom:var(--nice-space-2, 8px);font-size:13px}._errorOverlay_bqnwl_249{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--nice-overlay-85, rgba(20, 20, 40, .85));z-index:10;color:var(--nice-danger, #ff6b6b)}._sidePanel_bqnwl_275{position:absolute;top:32px;right:0;bottom:24px;width:240px;background:var(--nice-bg-canvas, #12122a);border-left:1px solid var(--nice-border-color, #252545);z-index:5;overflow-y:auto;padding:var(--nice-space-2, 8px);font-size:11px;display:flex;flex-direction:column;gap:var(--nice-space-3, 12px)}._sidePanel_bqnwl_275._hidden_bqnwl_307{display:none}._panelSection_bqnwl_313{display:flex;flex-direction:column;gap:var(--nice-space-1, 4px)}._panelTitle_bqnwl_323{font-size:10px;text-transform:uppercase;color:var(--nice-text-secondary, #888);letter-spacing:.5px;margin-bottom:var(--nice-space-1, 4px)}._panelRow_bqnwl_337{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px)}._panelRow_bqnwl_337 label{flex:0 0 70px;color:var(--nice-text-secondary, #aaa);font-size:10px}._panelRow_bqnwl_337 span{color:var(--nice-text-primary, #e0e0e0);font-size:11px}._animBar_bqnwl_369{display:flex;align-items:center;gap:var(--nice-space-1, 4px);background:var(--nice-bg-canvas, #12122a);border-top:1px solid var(--nice-border-color, #252545);padding:0 var(--nice-space-2, 8px);height:28px;flex-shrink:0}._animBar_bqnwl_369._hidden_bqnwl_307{display:none}._animSlider_bqnwl_395{flex:1;height:4px;appearance:none;background:var(--nice-bg-tertiary, #444);border-radius:var(--nice-radius-sm, 2px);cursor:pointer}._animSlider_bqnwl_395::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:var(--nice-color-primary, #5577ff);border-radius:var(--nice-radius-full, 50%);cursor:pointer}._animSelect_bqnwl_427{background:var(--nice-bg-secondary, #252545);border:1px solid var(--nice-border-color, #555);color:var(--nice-text-primary, #e0e0e0);font-size:10px;padding:var(--nice-space-0-5, 2px) var(--nice-space-1, 4px);border-radius:var(--nice-radius-sm, 3px);max-width:120px}._statusBar_bqnwl_449{display:flex;align-items:center;gap:var(--nice-space-2, 8px);background:var(--nice-bg-canvas, #12122a);border-top:1px solid var(--nice-border-color, #252545);padding:0 var(--nice-space-2, 8px);height:22px;font-size:10px;color:var(--nice-text-muted, #888);flex-shrink:0}._statusRight_bqnwl_473{margin-left:auto;display:flex;gap:var(--nice-space-3, 12px)}._annotationLayer_bqnwl_487{position:absolute;inset:0;pointer-events:none;z-index:3}._annotation_bqnwl_487{position:absolute;pointer-events:auto;cursor:pointer;padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);background:color-mix(in srgb,var(--nice-color-primary, #5577ff) 85%,transparent);color:var(--nice-text-on-primary, #fff);border-radius:var(--nice-radius-sm, 4px);font-size:10px;white-space:nowrap;transform:translate(-50%,-100%)}._annotation_bqnwl_487:hover{background:var(--nice-color-primary, #5577ff)}._dropZone_bqnwl_533{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--nice-color-primary, #5577ff) 15%,transparent);border:2px dashed var(--nice-color-primary, #5577ff);z-index:20;pointer-events:none;font-size:16px;color:var(--nice-color-primary, #5577ff)}._uvEditor_1q60u_7{background:var(--nice-bg-secondary, #1e1e1e);border:1px solid var(--nice-border, #333);border-radius:var(--nice-radius-sm, 4px);overflow:hidden;font-family:var(--nice-font-family, system-ui, sans-serif);font-size:12px;color:var(--nice-text, #e0e0e0)}._toolbar_1q60u_29{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-1-5, 6px) var(--nice-space-2, 8px);background:var(--nice-bg-tertiary, #252526);border-bottom:1px solid var(--nice-border, #333);flex-wrap:wrap}._toolGroup_1q60u_49{display:flex;gap:var(--nice-space-0-5, 2px);padding:0 var(--nice-space-1, 4px);border-right:1px solid var(--nice-border, #444)}._toolGroup_1q60u_49:last-child{border-right:none}._toolBtn_1q60u_71{display:flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 var(--nice-space-1-5, 6px);background:var(--nice-bg-secondary, #2d2d2d);border:1px solid transparent;border-radius:var(--nice-radius-sm, 3px);color:var(--nice-text-secondary, #aaa);cursor:pointer;transition:all .15s ease;font-size:11px;font-weight:500}._toolBtn_1q60u_71:hover:not(:disabled){background:var(--nice-bg-hover, #3c3c3c);color:var(--nice-text, #fff)}._toolBtn_1q60u_71._active_1q60u_115{background:var(--nice-primary, #007acc);color:var(--nice-text-on-primary, #fff);border-color:var(--nice-primary-hover, #0098ff)}._toolBtn_1q60u_71:disabled{opacity:.5;cursor:not-allowed}._select_1q60u_137{height:24px;padding:0 var(--nice-space-1-5, 6px);background:var(--nice-bg-secondary, #2d2d2d);border:1px solid var(--nice-border, #444);border-radius:var(--nice-radius-sm, 3px);color:var(--nice-text, #e0e0e0);font-size:11px;cursor:pointer}._select_1q60u_137:focus{outline:none;border-color:var(--nice-primary, #007acc)}._viewport_1q60u_171{flex:1;position:relative;background:var(--nice-bg-secondary, #2a2a2a);overflow:hidden;cursor:crosshair}._canvas_1q60u_187{width:100%;height:100%;display:block}._noGeometry_1q60u_199{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--nice-text-muted, #666);font-size:14px;pointer-events:none}._sidebar_1q60u_223{width:200px;background:var(--nice-bg-tertiary, #252526);border-left:1px solid var(--nice-border, #333);overflow-y:auto}._panel_1q60u_237{padding:var(--nice-space-2-5, 10px);border-bottom:1px solid var(--nice-border, #333)}._panelTitle_1q60u_247{margin:0 0 var(--nice-space-2, 8px) 0;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--nice-text-muted, #888);letter-spacing:.5px}._checkbox_1q60u_265{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);margin-bottom:var(--nice-space-1-5, 6px);cursor:pointer;font-size:11px}._checkbox_1q60u_265 input{width:14px;height:14px;margin:0;cursor:pointer;accent-color:var(--nice-primary, #007acc)}._stat_1q60u_299{display:flex;justify-content:space-between;padding:var(--nice-space-0-75, 3px) 0;font-size:11px}._stat_1q60u_299 span:first-child{color:var(--nice-text-muted, #888)}._stat_1q60u_299 span:last-child{color:var(--nice-text, #e0e0e0);font-weight:500}._rangeLabel_1q60u_331{display:block;font-size:11px;margin-top:var(--nice-space-2, 8px)}._rangeLabel_1q60u_331 input{width:100%;margin-top:var(--nice-space-1, 4px);accent-color:var(--nice-primary, #007acc)}._statusBar_1q60u_357{display:flex;gap:var(--nice-space-4, 16px);padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);background:var(--nice-bg-inset, #1a1a1a);border-top:1px solid var(--nice-border, #333);font-size:11px;color:var(--nice-text-muted, #888)}._statusBar_1q60u_357 span{white-space:nowrap}@media(max-width:768px){._sidebar_1q60u_223{display:none}._toolbar_1q60u_29{overflow-x:auto}}._materialEditor_9l27r_17{--bg-primary: var(--nice-bg, #1e1e1e);--bg-secondary: var(--nice-bg-secondary, #252526);--bg-tertiary: var(--nice-bg-secondary, #2d2d2d);--bg-hover: var(--nice-bg-secondary, #3a3a3a);--bg-active: var(--nice-bg-secondary, #4a4a4a);--text-primary: var(--nice-text-primary, #ffffff);--text-secondary: var(--nice-text-secondary, #cccccc);--text-muted: var(--nice-text-secondary, #888888);--border-color: var(--nice-bg-secondary, #3a3a3a);--border-light: var(--nice-bg-secondary, #4a4a4a);--accent-color: var(--nice-primary, #0078d4);--accent-hover: #1084d8;--error-color: var(--nice-danger, #f44336);--warning-color: var(--nice-warning, #ff9800);--success-color: var(--nice-success, #4caf50);--shadow-sm: 0 1px 3px var(--nice-overlay-30, rgba(0, 0, 0, .3));--shadow-md: 0 4px 6px var(--nice-overlay-40, rgba(0, 0, 0, .4));--shadow-lg: 0 10px 20px var(--nice-overlay-50, rgba(0, 0, 0, .5));--node-shadow: 0 4px 12px var(--nice-overlay-50, rgba(0, 0, 0, .5));--transition-fast: .1s ease;--transition-normal: .2s ease;--border-radius-sm: 3px;--border-radius-md: 6px;--border-radius-lg: 10px}._materialEditor_9l27r_17._light_9l27r_71{--bg-primary: var(--nice-bg-secondary, #f5f5f5);--bg-secondary: var(--nice-bg, #ffffff);--bg-tertiary: var(--nice-border, #e0e0e0);--bg-hover: var(--nice-border, #d0d0d0);--bg-active: var(--nice-border, #c0c0c0);--text-primary: var(--nice-text-primary, #1e1e1e);--text-secondary: var(--nice-text, #333333);--text-muted: var(--nice-text-secondary, #666666);--border-color: var(--nice-border, #d0d0d0);--border-light: var(--nice-border, #e0e0e0);--shadow-sm: 0 1px 3px var(--nice-overlay-10, rgba(0, 0, 0, .1));--shadow-md: 0 4px 6px var(--nice-overlay-15, rgba(0, 0, 0, .15));--shadow-lg: 0 10px 20px var(--nice-overlay-20, rgba(0, 0, 0, .2));--node-shadow: 0 4px 12px var(--nice-overlay-20, rgba(0, 0, 0, .2))}._materialEditor_9l27r_17{background-color:var(--nice-bg-primary);color:var(--nice-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;border-radius:var(--nice-radius-lg);overflow:hidden;user-select:none}._toolbar_9l27r_143{display:flex;align-items:center;padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);background-color:var(--nice-bg-secondary);border-bottom:1px solid var(--nice-border-color);gap:var(--nice-space-1, 4px)}._toolbarGroup_9l27r_161{display:flex;align-items:center;gap:var(--nice-space-0-5, 2px)}._toolbarSeparator_9l27r_173{width:1px;height:20px;background-color:var(--nice-border-color);margin:0 var(--nice-space-1-5, 6px)}._toolbar_9l27r_143 button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--nice-radius-sm);background-color:transparent;color:var(--nice-text-primary);cursor:pointer;font-size:14px;transition:background-color var(--transition-fast)}._toolbar_9l27r_143 button:hover:not(:disabled){background-color:var(--nice-hover-bg)}._toolbar_9l27r_143 button:active:not(:disabled){background-color:var(--nice-hover-bg)}._toolbar_9l27r_143 button:disabled{opacity:.4;cursor:not-allowed}._toolbar_9l27r_143 button._active_9l27r_245{background-color:var(--nice-color-accent);color:#fff}._palette_9l27r_263{width:220px;background-color:var(--nice-bg-secondary);border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0}._paletteSearch_9l27r_281{padding:var(--nice-space-2, 8px);border-bottom:1px solid var(--nice-border-color)}._searchInput_9l27r_291{width:100%;padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md);background-color:var(--nice-bg-tertiary);color:var(--nice-text-primary);font-size:12px;outline:none;transition:border-color var(--transition-fast)}._searchInput_9l27r_291:focus{border-color:var(--nice-color-accent)}._searchInput_9l27r_291::placeholder{color:var(--nice-text-muted)}._paletteCategories_9l27r_331{flex:1;overflow-y:auto;padding:var(--nice-space-1, 4px) 0}._paletteCategory_9l27r_343{margin-bottom:var(--nice-space-0-5, 2px)}._categoryHeader_9l27r_351{display:flex;align-items:center;width:100%;padding:var(--nice-space-2, 8px) var(--nice-space-2-5, 10px);border:none;border-left:3px solid transparent;background-color:transparent;color:var(--nice-text-primary);font-size:12px;font-weight:600;text-align:left;cursor:pointer;transition:background-color var(--transition-fast);gap:var(--nice-space-1-5, 6px)}._categoryHeader_9l27r_351:hover{background-color:var(--nice-hover-bg)}._categoryIcon_9l27r_393{font-size:10px;width:14px;color:var(--nice-text-muted)}._categoryCount_9l27r_405{margin-left:auto;padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);border-radius:var(--nice-radius-lg, 10px);background-color:var(--nice-bg-tertiary);font-size:10px;font-weight:400;color:var(--nice-text-muted)}._categoryNodes_9l27r_425{padding:var(--nice-space-0-5, 2px) 0}._paletteNode_9l27r_433{display:flex;align-items:center;padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px) var(--nice-space-1-5, 6px) var(--nice-space-7, 28px);cursor:grab;transition:background-color var(--transition-fast);gap:var(--nice-space-2, 8px)}._paletteNode_9l27r_433:hover{background-color:var(--nice-hover-bg)}._paletteNode_9l27r_433:active{cursor:grabbing}._nodeColor_9l27r_469{width:12px;height:12px;border-radius:var(--nice-radius-sm, 3px);flex-shrink:0}._nodeName_9l27r_483{flex:1;font-size:12px;color:var(--nice-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._graphCanvas_9l27r_509{flex:1;position:relative;background-color:var(--nice-bg-primary);overflow:hidden;cursor:grab}._graphCanvas_9l27r_509:active{cursor:grabbing}._connectionsSvg_9l27r_533{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}._connection_9l27r_533{pointer-events:stroke;cursor:pointer;transition:stroke-width var(--transition-fast),stroke var(--transition-fast)}._connection_9l27r_533:hover{stroke-width:4px}._pendingConnection_9l27r_575{pointer-events:none;animation:_dashAnimation_9l27r_1 .5s linear infinite}@keyframes _dashAnimation_9l27r_1{to{stroke-dashoffset:-10}}._graphNode_9l27r_605{position:absolute;background-color:var(--nice-bg-secondary);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md);box-shadow:var(--node-shadow);cursor:move;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);overflow:visible}._graphNode_9l27r_605:hover{border-color:var(--nice-border-light)}._graphNode_9l27r_605._selected_9l27r_639{border-color:var(--nice-color-accent);box-shadow:0 0 0 2px var(--nice-color-accent),var(--node-shadow)}._graphNode_9l27r_605._locked_9l27r_653{opacity:.8;cursor:not-allowed}._nodeHeader_9l27r_663{display:flex;align-items:center;justify-content:space-between;padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);border-radius:var(--nice-radius-md) var(--nice-radius-md) 0 0;font-size:11px;font-weight:600;color:#fff;text-shadow:0 1px 2px var(--nice-overlay-30, rgba(0, 0, 0, .3))}._nodeTitle_9l27r_687{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._lockIcon_9l27r_701{font-size:10px;margin-left:var(--nice-space-1-5, 6px)}._nodePorts_9l27r_711{position:relative;padding:var(--nice-space-1, 4px) 0}._inputPorts_9l27r_721{position:absolute;left:0;top:0}._outputPorts_9l27r_733{position:absolute;right:0;top:0}._port_9l27r_745{position:absolute;display:flex;align-items:center;height:20px;font-size:10px;white-space:nowrap}._inputPorts_9l27r_721 ._port_9l27r_745{left:0;padding-left:var(--nice-space-3-5, 14px)}._outputPorts_9l27r_733 ._port_9l27r_745{right:0;padding-right:var(--nice-space-3-5, 14px);justify-content:flex-end}._portHandle_9l27r_785{position:absolute;width:10px;height:10px;border-radius:var(--nice-radius-full, 50%);border:2px solid var(--nice-bg-secondary);cursor:crosshair;transition:transform var(--transition-fast);box-sizing:border-box}._portHandle_9l27r_785:hover{transform:scale(1.3)}._inputHandle_9l27r_815{left:-5px}._outputHandle_9l27r_823{right:-5px}._portHandle_9l27r_785._connected_9l27r_831{border-color:transparent}._portLabel_9l27r_839{color:var(--nice-text-secondary)}._nodeComment_9l27r_847{position:absolute;bottom:-24px;left:0;right:0;padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);background-color:#ffeb3b26;border:1px solid rgba(255,235,59,.4);border-radius:var(--nice-radius-sm);font-size:10px;color:var(--nice-warning, #ffeb3b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._previewPanel_9l27r_887{width:220px;background-color:var(--nice-bg-secondary);border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0}._previewHeader_9l27r_905{display:flex;align-items:center;justify-content:space-between;padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);border-bottom:1px solid var(--nice-border-color);font-size:12px;font-weight:600}._previewModeSelect_9l27r_925{padding:var(--nice-space-0-75, 3px) var(--nice-space-2, 8px);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm);background-color:var(--nice-bg-tertiary);color:var(--nice-text-primary);font-size:11px;cursor:pointer}._previewCanvas_9l27r_945{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;background-color:var(--nice-bg-primary);border-bottom:1px solid var(--nice-border-color)}._previewCanvas_9l27r_945 canvas{max-width:100%;max-height:100%}._previewCompiling_9l27r_975{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:var(--nice-overlay-60, rgba(0, 0, 0, .6));color:#fff;font-size:12px;animation:_pulse_9l27r_1 1s ease infinite}@keyframes _pulse_9l27r_1{0%,to{opacity:1}50%{opacity:.6}}._previewErrors_9l27r_1025{flex:1;padding:var(--nice-space-2-5, 10px);overflow-y:auto}._previewError_9l27r_1025{padding:var(--nice-space-1-5, 6px) var(--nice-space-2, 8px);margin-bottom:var(--nice-space-1-5, 6px);background-color:#f4433626;border:1px solid rgba(244,67,54,.4);border-radius:var(--nice-radius-sm);font-size:11px;color:var(--nice-color-error);word-break:break-word}._propertiesPanel_9l27r_1067{width:280px;background-color:var(--nice-bg-secondary);border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0}._propertiesHeader_9l27r_1085{display:flex;align-items:center;padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);border-bottom:1px solid var(--nice-border-color);font-size:12px;font-weight:600}._propertiesContent_9l27r_1103{flex:1;overflow-y:auto;padding:var(--nice-space-3, 12px)}._propertyGroup_9l27r_1115{margin-bottom:var(--nice-space-4, 16px)}._propertyGroupTitle_9l27r_1123{font-size:11px;font-weight:600;color:var(--nice-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--nice-space-2, 8px)}._propertyRow_9l27r_1141{display:flex;flex-direction:column;margin-bottom:var(--nice-space-2-5, 10px)}._propertyLabel_9l27r_1153{font-size:11px;color:var(--nice-text-secondary);margin-bottom:var(--nice-space-1, 4px)}._propertyInput_9l27r_1165{padding:var(--nice-space-1-5, 6px) var(--nice-space-2, 8px);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm);background-color:var(--nice-bg-tertiary);color:var(--nice-text-primary);font-size:12px;outline:none;transition:border-color var(--transition-fast)}._propertyInput_9l27r_1165:focus{border-color:var(--nice-color-accent)}._propertyColorPreview_9l27r_1195{display:flex;align-items:center;gap:var(--nice-space-2, 8px)}._colorSwatch_9l27r_1207{width:24px;height:24px;border-radius:var(--nice-radius-sm);border:1px solid var(--nice-border-color);cursor:pointer}._propertySlider_9l27r_1223{display:flex;align-items:center;gap:var(--nice-space-2, 8px)}._propertySlider_9l27r_1223 input[type=range]{flex:1;height:4px;border-radius:var(--nice-radius-sm, 2px);background:var(--nice-bg-tertiary);outline:none;-webkit-appearance:none}._propertySlider_9l27r_1223 input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:var(--nice-radius-full, 50%);background:var(--nice-color-accent);cursor:pointer}._propertySlider_9l27r_1223 ._sliderValue_9l27r_1271{width:50px;text-align:right;font-size:11px;color:var(--nice-text-secondary)}._minimap_9l27r_1293{position:absolute;right:10px;bottom:10px;width:150px;height:100px;background-color:var(--nice-bg-secondary);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md);overflow:hidden;box-shadow:var(--nice-shadow-md)}._minimapNodes_9l27r_1319{position:relative;width:100%;height:100%}._minimapNode_9l27r_1319{position:absolute;border-radius:var(--nice-radius-sm, 2px)}._minimapViewport_9l27r_1341{position:absolute;border:1px solid var(--nice-color-accent);background-color:var(--nice-primary-tint-10, rgba(0, 120, 212, .1));pointer-events:none}._selectionBox_9l27r_1363{position:absolute;border:1px dashed var(--nice-color-accent);background-color:var(--nice-primary-tint-10, rgba(0, 120, 212, .1));pointer-events:none}._contextMenu_9l27r_1385{position:fixed;min-width:160px;padding:var(--nice-space-1, 4px) 0;background-color:var(--nice-bg-secondary);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md);box-shadow:var(--nice-shadow-lg);z-index:1000}._contextMenuItem_9l27r_1407{display:flex;align-items:center;justify-content:space-between;padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);font-size:12px;cursor:pointer;transition:background-color var(--transition-fast)}._contextMenuItem_9l27r_1407:hover{background-color:var(--nice-hover-bg)}._contextMenuItem_9l27r_1407._disabled_9l27r_1435{color:var(--nice-text-muted);cursor:not-allowed}._contextMenuItem_9l27r_1407._disabled_9l27r_1435:hover{background-color:transparent}._contextMenuShortcut_9l27r_1453{margin-left:var(--nice-space-5, 20px);color:var(--nice-text-muted);font-size:11px}._contextMenuSeparator_9l27r_1465{height:1px;background-color:var(--nice-border-color);margin:var(--nice-space-1, 4px) 0}._zoomControls_9l27r_1485{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:var(--nice-space-1, 4px);padding:var(--nice-space-1, 4px);background-color:var(--nice-bg-secondary);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md);box-shadow:var(--nice-shadow-sm)}._zoomControls_9l27r_1485 button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:var(--nice-radius-sm);background-color:transparent;color:var(--nice-text-primary);cursor:pointer;font-size:14px;transition:background-color var(--transition-fast)}._zoomControls_9l27r_1485 button:hover{background-color:var(--nice-hover-bg)}._zoomLevel_9l27r_1553{min-width:50px;text-align:center;font-size:11px;color:var(--nice-text-secondary)}._tooltip_9l27r_1575{position:fixed;padding:var(--nice-space-1-5, 6px) var(--nice-space-2-5, 10px);background-color:var(--nice-text-primary, #333);color:var(--nice-text-inverse, #fff);font-size:11px;border-radius:var(--nice-radius-sm);box-shadow:var(--nice-shadow-md);pointer-events:none;z-index:9999;max-width:250px;white-space:pre-wrap;word-wrap:break-word}._tooltip_9l27r_1575:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:var(--nice-border-color, #333) transparent transparent transparent}._emptyState_9l27r_1645{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--nice-text-muted)}._emptyStateIcon_9l27r_1663{font-size:48px;margin-bottom:var(--nice-space-4, 16px);opacity:.5}._emptyStateTitle_9l27r_1675{font-size:16px;font-weight:600;margin-bottom:var(--nice-space-2, 8px);color:var(--nice-text-secondary)}._emptyStateDescription_9l27r_1689{font-size:13px;line-height:1.5;max-width:300px}@media(max-width:900px){._palette_9l27r_263{position:absolute;left:0;top:0;bottom:0;z-index:100;transform:translate(-100%);transition:transform var(--transition-normal)}._palette_9l27r_263._open_9l27r_1731{transform:translate(0)}._previewPanel_9l27r_887{position:absolute;right:0;top:0;bottom:0;z-index:100;transform:translate(100%);transition:transform var(--transition-normal)}._previewPanel_9l27r_887._open_9l27r_1731{transform:translate(0)}}@media(max-width:600px){._toolbar_9l27r_143{flex-wrap:wrap;padding:var(--nice-space-1, 4px)}._toolbarGroup_9l27r_161{flex-wrap:wrap}._toolbar_9l27r_143 button{width:32px;height:32px;font-size:16px}._palette_9l27r_263,._previewPanel_9l27r_887{width:100%;max-width:280px}}@keyframes _nodeAppear_9l27r_1{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}._graphNode_9l27r_605{animation:_nodeAppear_9l27r_1 .2s ease}@keyframes _connectionDraw_9l27r_1{0%{stroke-dashoffset:1000}to{stroke-dashoffset:0}}._connection_9l27r_533{stroke-dasharray:1000;animation:_connectionDraw_9l27r_1 .3s ease forwards}._materialEditor_9l27r_17:focus-visible{outline:2px solid var(--nice-color-accent);outline-offset:-2px}._toolbar_9l27r_143 button:focus-visible,._categoryHeader_9l27r_351:focus-visible,._paletteNode_9l27r_433:focus-visible{outline:2px solid var(--nice-color-accent);outline-offset:-2px}@media(prefers-reduced-motion:reduce){._graphNode_9l27r_605,._connection_9l27r_533,._pendingConnection_9l27r_575{animation:none}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{._toolbar_9l27r_143,._palette_9l27r_263,._previewPanel_9l27r_887,._minimap_9l27r_1293,._zoomControls_9l27r_1485{display:none!important}._materialEditor_9l27r_17{border:1px solid var(--nice-border, #ccc)}._graphCanvas_9l27r_509{background-color:#fff}._graphNode_9l27r_605{box-shadow:none;border:1px solid var(--nice-border-color, #333)}._connection_9l27r_533{stroke:var(--nice-text, #333)!important}}._particleEditor_1fne5_21{--pe-bg-primary: var(--nice-bg, #1a1a1a);--pe-bg-secondary: var(--nice-bg-secondary, #252525);--pe-bg-tertiary: var(--nice-bg-secondary, #2d2d2d);--pe-bg-hover: var(--nice-bg-secondary, #3a3a3a);--pe-bg-active: var(--nice-bg-secondary, #4a4a4a);--pe-border-color: var(--nice-border, #404040);--pe-text-primary: var(--nice-text-primary, #ffffff);--pe-text-secondary: var(--nice-text-muted, #b0b0b0);--pe-text-muted: #707070;--pe-accent: #4fc3f7;--pe-accent-hover: #29b6f6;--pe-success: #66bb6a;--pe-warning: var(--nice-warning, #ffa726);--pe-error: #ef5350;--pe-toolbar-height: 40px;--pe-panel-width: 260px;--pe-radius: 4px;--pe-transition: .15s ease}._particleEditor_1fne5_21._light_1fne5_63{--pe-bg-primary: var(--nice-bg-secondary, #f5f5f5);--pe-bg-secondary: var(--nice-bg, #ffffff);--pe-bg-tertiary: var(--nice-bg-secondary, #fafafa);--pe-bg-hover: var(--nice-border, #eeeeee);--pe-bg-active: var(--nice-border, #e0e0e0);--pe-border-color: var(--nice-border, #d0d0d0);--pe-text-primary: var(--nice-text, #212121);--pe-text-secondary: var(--nice-text-secondary, #616161);--pe-text-muted: var(--nice-text-secondary, #9e9e9e);--pe-accent: var(--nice-primary-hover, #1976d2);--pe-accent-hover: var(--nice-primary-dark, #1565c0)}._particleEditor_1fne5_21{background-color:var(--pe-bg-primary);color:var(--pe-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;border-radius:var(--pe-radius);overflow:hidden;user-select:none}._toolbar_1fne5_129{display:flex;align-items:center;height:var(--pe-toolbar-height);background-color:var(--pe-bg-secondary);border-bottom:1px solid var(--pe-border-color);padding:0 var(--nice-space-2, 8px);gap:var(--nice-space-1, 4px)}._toolbarGroup_1fne5_149{display:flex;align-items:center;gap:var(--nice-space-0-5, 2px)}._toolbarSeparator_1fne5_161{width:1px;height:20px;background-color:var(--pe-border-color);margin:0 var(--nice-space-1-5, 6px)}._toolbar_1fne5_129 button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--pe-radius);color:var(--pe-text-secondary);cursor:pointer;transition:all var(--pe-transition);font-size:14px}._toolbar_1fne5_129 button:hover:not(:disabled){background-color:var(--pe-bg-hover);color:var(--pe-text-primary)}._toolbar_1fne5_129 button:active:not(:disabled){background-color:var(--pe-bg-active)}._toolbar_1fne5_129 button._active_1fne5_223{background-color:var(--pe-accent);color:#fff}._toolbar_1fne5_129 button:disabled{opacity:.4;cursor:not-allowed}._speedSelect_1fne5_243{height:24px;padding:0 var(--nice-space-1-5, 6px);background-color:var(--pe-bg-tertiary);border:1px solid var(--pe-border-color);border-radius:var(--pe-radius);color:var(--pe-text-primary);font-size:11px;cursor:pointer}._timeDisplay_1fne5_265{min-width:50px;text-align:right;font-family:monospace;font-size:11px;color:var(--pe-text-secondary);padding:0 var(--nice-space-2, 8px)}._systemList_1fne5_291{width:var(--pe-panel-width);min-width:var(--pe-panel-width);background-color:var(--pe-bg-secondary);border-right:1px solid var(--pe-border-color);display:flex;flex-direction:column;overflow:hidden}._systemListHeader_1fne5_311{display:flex;align-items:center;justify-content:space-between;padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--pe-text-secondary);border-bottom:1px solid var(--pe-border-color)}._systemListActions_1fne5_337{display:flex;gap:var(--nice-space-1, 4px)}._systemListActions_1fne5_337 button{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:none;border-radius:var(--pe-radius);color:var(--pe-text-secondary);cursor:pointer;font-size:12px}._systemListActions_1fne5_337 button:hover{background-color:var(--pe-bg-hover);color:var(--pe-text-primary)}._presetMenu_1fne5_385{background-color:var(--pe-bg-tertiary);border-bottom:1px solid var(--pe-border-color);padding:var(--nice-space-1-5, 6px);display:flex;flex-wrap:wrap;gap:var(--nice-space-1, 4px)}._presetItem_1fne5_403{padding:var(--nice-space-1, 4px) var(--nice-space-2-5, 10px);background-color:var(--pe-bg-secondary);border:1px solid var(--pe-border-color);border-radius:var(--pe-radius);color:var(--pe-text-secondary);cursor:pointer;font-size:11px;transition:all var(--pe-transition)}._presetItem_1fne5_403:hover{background-color:var(--pe-accent);border-color:var(--pe-accent);color:#fff}._systemItems_1fne5_437{flex:1;overflow-y:auto;padding:var(--nice-space-1-5, 6px)}._systemItem_1fne5_437{display:flex;align-items:center;justify-content:space-between;padding:var(--nice-space-2, 8px) var(--nice-space-2-5, 10px);border-radius:var(--pe-radius);cursor:pointer;transition:all var(--pe-transition)}._systemItem_1fne5_437:hover{background-color:var(--pe-bg-hover)}._systemItem_1fne5_437._selected_1fne5_477{background-color:var(--pe-accent);color:#fff}._systemItem_1fne5_437._selected_1fne5_477 ._systemItemActions_1fne5_487 button{color:var(--nice-overlay-light-70, rgba(255, 255, 255, .7))}._systemItem_1fne5_437._selected_1fne5_477 ._systemItemActions_1fne5_487 button:hover{color:#fff}._systemName_1fne5_503{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}._systemItemActions_1fne5_487{display:flex;gap:var(--nice-space-0-5, 2px);opacity:0;transition:opacity var(--pe-transition)}._systemItem_1fne5_437:hover ._systemItemActions_1fne5_487{opacity:1}._systemItemActions_1fne5_487 button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;color:var(--pe-text-muted);cursor:pointer;font-size:11px}._systemItemActions_1fne5_487 button:hover:not(:disabled){color:var(--pe-text-primary)}._systemItemActions_1fne5_487 button:disabled{opacity:.3;cursor:not-allowed}._renameInput_1fne5_585{width:100%;padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);background-color:var(--pe-bg-primary);border:1px solid var(--pe-accent);border-radius:var(--pe-radius);color:var(--pe-text-primary);font-size:12px;outline:none}._inspector_1fne5_615{width:320px;min-width:280px;background-color:var(--pe-bg-secondary);border-left:1px solid var(--pe-border-color);display:flex;flex-direction:column;overflow:hidden}._inspectorHeader_1fne5_635{padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);font-weight:600;font-size:13px;border-bottom:1px solid var(--pe-border-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._inspectorModules_1fne5_655{flex:1;overflow-y:auto}._emptyInspector_1fne5_665{display:flex;align-items:center;justify-content:center;height:100%;color:var(--pe-text-muted);font-style:italic}._moduleSection_1fne5_683{border-bottom:1px solid var(--pe-border-color)}._moduleHeader_1fne5_691{display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);cursor:pointer;transition:background-color var(--pe-transition)}._moduleHeader_1fne5_691:hover{background-color:var(--pe-bg-hover)}._moduleHeader_1fne5_691._selected_1fne5_477{background-color:var(--pe-bg-tertiary)}._moduleIcon_1fne5_725{width:12px;font-size:10px;color:var(--pe-text-muted)}._moduleCheckbox_1fne5_737{width:14px;height:14px;margin:0;accent-color:var(--pe-accent);cursor:pointer}._moduleName_1fne5_753{flex:1;font-size:12px;font-weight:500}._moduleContent_1fne5_765{padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);background-color:var(--pe-bg-tertiary);border-top:1px solid var(--pe-border-color)}._moduleNotImplemented_1fne5_777{padding:var(--nice-space-3, 12px);font-size:11px;color:var(--pe-text-muted);font-style:italic;text-align:center}._propertyRow_1fne5_801{display:flex;align-items:center;gap:var(--nice-space-2, 8px);margin-bottom:var(--nice-space-2, 8px)}._propertyRow_1fne5_801:last-child{margin-bottom:0}._propertyRow_1fne5_801>label{flex:0 0 100px;font-size:11px;color:var(--pe-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._numberInput_1fne5_841{flex:1;min-width:50px;height:24px;padding:0 var(--nice-space-1-5, 6px);background-color:var(--pe-bg-primary);border:1px solid var(--pe-border-color);border-radius:var(--pe-radius);color:var(--pe-text-primary);font-size:11px;font-family:monospace}._numberInput_1fne5_841:focus{outline:none;border-color:var(--pe-accent)}._selectInput_1fne5_877{flex:1;height:24px;padding:0 var(--nice-space-1-5, 6px);background-color:var(--pe-bg-primary);border:1px solid var(--pe-border-color);border-radius:var(--pe-radius);color:var(--pe-text-primary);font-size:11px;cursor:pointer}._selectInput_1fne5_877:focus{outline:none;border-color:var(--pe-accent)}._toggleInput_1fne5_911{width:16px;height:16px;accent-color:var(--pe-accent);cursor:pointer}._distributionInput_1fne5_925{flex:1;display:flex;gap:var(--nice-space-1, 4px);align-items:center}._distributionType_1fne5_939{width:80px;height:24px;padding:0 var(--nice-space-1, 4px);background-color:var(--pe-bg-primary);border:1px solid var(--pe-border-color);border-radius:var(--pe-radius);color:var(--pe-text-primary);font-size:11px;cursor:pointer}._addButton_1fne5_963{padding:var(--nice-space-1, 4px) var(--nice-space-3, 12px);background-color:var(--pe-accent);border:none;border-radius:var(--pe-radius);color:#fff;font-size:11px;cursor:pointer;transition:background-color var(--pe-transition)}._addButton_1fne5_963:hover{background-color:var(--pe-accent-hover)}._previewPanel_1fne5_1001{flex:1;display:flex;align-items:center;justify-content:center;background-color:var(--pe-bg-primary);min-width:200px}._previewCanvas_1fne5_1019{border-radius:var(--pe-radius);background-color:var(--nice-bg, #1a1a1a)}._particleEditor_1fne5_21 ::-webkit-scrollbar{width:8px;height:8px}._particleEditor_1fne5_21 ::-webkit-scrollbar-track{background:var(--pe-bg-tertiary)}._particleEditor_1fne5_21 ::-webkit-scrollbar-thumb{background:var(--pe-border-color);border-radius:var(--nice-radius-sm, 4px)}._particleEditor_1fne5_21 ::-webkit-scrollbar-thumb:hover{background:var(--pe-text-muted)}@media(max-width:900px){._systemList_1fne5_291{width:200px;min-width:200px}._inspector_1fne5_615{width:260px;min-width:220px}._propertyRow_1fne5_801>label{flex:0 0 80px}}@media(max-width:700px){._systemList_1fne5_291{width:100%;min-width:unset;max-height:150px;border-right:none;border-bottom:1px solid var(--pe-border-color)}._inspector_1fne5_615{width:100%;min-width:unset;border-left:none;border-top:1px solid var(--pe-border-color)}}
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom/vitest';