feat(slice-modal): Bundle tier for picking presets from imported .bbscfg

Closes the loop on the bundle work: users who imported a Printer
  Preset Bundle via Settings → Slicer Bundles can now pick it in the
  SliceModal and slice through the bundle dispatch path the backend
  already supports.

  UX:
  - New "Slicer bundle" picker at the top of the modal, rendered only
    when at least one bundle is imported (GET /slicer/bundles non-empty)
  - Selecting a bundle replaces cloud/local/standard preset dropdowns
    with bundle-scoped pickers (process + per-slot filament names from
    the bundle). Printer is implicit (each .bbscfg has exactly one).
  - Submit routes through SliceRequest.bundle so the backend skips
    PresetRef resolution and asks the sidecar to materialise the JSON
    triplet from the stored bundle by name.
  - "None" leaves the modal on the original preset triplet path.

  Frontend types: SliceBundleSpec + bundle?: SliceBundleSpec on SliceRequest.
This commit is contained in:
maziggy
2026-05-06 09:55:14 +02:00
parent 7e1105dcb6
commit a50958e426
7 changed files with 924 additions and 478 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -26,8 +26,8 @@
<!-- Splash screens for iOS -->
<link rel="apple-touch-startup-image" href="./img/android-chrome-512x512.png" />
<script type="module" crossorigin src="./assets/index-B--K0Euf.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CzFVl3Rw.css">
<script type="module" crossorigin src="./assets/index-D-Dvx81t.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-DmnG_wF0.css">
</head>
<body>
<div id="root"></div>